From 2d9b2216a3909c4a24530a3af49ea99b9d6d7af9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 17 Mar 2017 15:55:18 +0100 Subject: Allow printing support roof and bottom with different extruders Note that currently the support_interface_extruder_nr is still used by the engine for some things and therefore the build volume calculations may not be 100% correct. I'll fix that up soon. Contributes to issue CURA-3491. --- cura/Settings/ExtruderManager.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'cura/Settings/ExtruderManager.py') diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index f6c1759078..55621d0e3b 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -370,7 +370,8 @@ class ExtruderManager(QObject): used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_infill_extruder_nr", "value"))]) used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_extruder_nr_layer_0", "value"))]) if support_interface_enabled: - used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_interface_extruder_nr", "value"))]) + used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_roof_extruder_nr", "value"))]) + used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_bottom_extruder_nr", "value"))]) #The platform adhesion extruder. Not used if using none. if global_stack.getProperty("adhesion_type", "value") != "none": -- cgit v1.2.3 From 2f1d957f99f791d0472e915a37e472473c098ab0 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 20 Mar 2017 10:47:37 +0100 Subject: Split support_interface_enable into roof and bottom You can activate the roof and bottom separately now. If you want, of course. The original interface setting sets both of them unless overwritten. Contributes to issue CURA-3491. --- cura/Settings/ExtruderManager.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'cura/Settings/ExtruderManager.py') diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 55621d0e3b..85b30ba9d6 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -346,7 +346,8 @@ class ExtruderManager(QObject): #Get the extruders of all meshes in the scene. support_enabled = False - support_interface_enabled = False + support_bottom_enabled = False + support_roof_enabled = False scene_root = Application.getInstance().getController().getScene().getRoot() meshes = [node for node in DepthFirstIterator(scene_root) if type(node) is SceneNode and node.isSelectable()] #Only use the nodes that will be printed. for mesh in meshes: @@ -359,19 +360,22 @@ class ExtruderManager(QObject): per_mesh_stack = mesh.callDecoration("getStack") if per_mesh_stack: support_enabled |= per_mesh_stack.getProperty("support_enable", "value") - support_interface_enabled |= per_mesh_stack.getProperty("support_interface_enable", "value") + support_bottom_enabled |= per_mesh_stack.getProperty("support_bottom_enable", "value") + support_roof_enabled |= per_mesh_stack.getProperty("support_roof_enable", "value") else: #Take the setting from the build extruder stack. extruder_stack = container_registry.findContainerStacks(id = extruder_stack_id)[0] support_enabled |= extruder_stack.getProperty("support_enable", "value") - support_interface_enabled |= extruder_stack.getProperty("support_enable", "value") + support_bottom_enabled |= extruder_stack.getProperty("support_bottom_enable", "value") + support_roof_enabled |= extruder_stack.getProperty("support_roof_enable", "value") #The support extruders. if support_enabled: used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_infill_extruder_nr", "value"))]) used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_extruder_nr_layer_0", "value"))]) - if support_interface_enabled: - used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_roof_extruder_nr", "value"))]) + if support_bottom_enabled: used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_bottom_extruder_nr", "value"))]) + if support_roof_enabled: + used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_roof_extruder_nr", "value"))]) #The platform adhesion extruder. Not used if using none. if global_stack.getProperty("adhesion_type", "value") != "none": -- cgit v1.2.3