Browse Source

fixes for optional skirt_brim_extruder_nr

Tim Kuipers 3 years ago
parent
commit
33e3a45b5c
2 changed files with 8 additions and 8 deletions
  1. 7 7
      cura/BuildVolume.py
  2. 1 1
      cura/Settings/ExtruderManager.py

+ 7 - 7
cura/BuildVolume.py

@@ -851,13 +851,13 @@ class BuildVolume(SceneNode):
         result = {}
         result = {}
         skirt_brim_extruder: ExtruderStack = None
         skirt_brim_extruder: ExtruderStack = None
         skirt_brim_extruder_nr = self._global_container_stack.getProperty("skirt_brim_extruder_nr", "value")
         skirt_brim_extruder_nr = self._global_container_stack.getProperty("skirt_brim_extruder_nr", "value")
-        if skirt_brim_extruder_nr == -1:
-            skirt_brim_extruder = used_extruders[0]  # The prime tower brim is always printed with the first extruder
-        else:
-            for extruder in used_extruders:
-                if int(extruder.getProperty("extruder_nr", "value")) == int(skirt_brim_extruder_nr):
+
+        for extruder in used_extruders:
+            if skirt_brim_extruder_nr == -1:
+                skirt_brim_extruder = used_extruders[0]  # The prime tower brim is always printed with the first extruder
+            elif int(extruder.getProperty("extruder_nr", "value")) == int(skirt_brim_extruder_nr):
                     skirt_brim_extruder = extruder
                     skirt_brim_extruder = extruder
-                result[extruder.getId()] = []
+            result[extruder.getId()] = []
 
 
         # Currently, the only normally printed object is the prime tower.
         # Currently, the only normally printed object is the prime tower.
         if self._global_container_stack.getProperty("prime_tower_enable", "value"):
         if self._global_container_stack.getProperty("prime_tower_enable", "value"):
@@ -1112,7 +1112,7 @@ class BuildVolume(SceneNode):
             bed_adhesion_size = -999
             bed_adhesion_size = -999
             for extruder_stack in used_extruders:
             for extruder_stack in used_extruders:
                 extruder_nr = int(extruder_stack.getProperty("extruder_nr", "value"))
                 extruder_nr = int(extruder_stack.getProperty("extruder_nr", "value"))
-                if extruder_nr == skirt_brim_extruder_nr or skirt_brim_extruder_nr == -1:
+                if extruder_nr == skirt_brim_extruder_nr or int(skirt_brim_extruder_nr) == -1:
                     initial_layer_line_width_factor = extruder_stack.getProperty("initial_layer_line_width_factor", "value")
                     initial_layer_line_width_factor = extruder_stack.getProperty("initial_layer_line_width_factor", "value")
                     brim_line_count = extruder_stack.getProperty("brim_line_count", "value")
                     brim_line_count = extruder_stack.getProperty("brim_line_count", "value")
                     skirt_brim_line_width = extruder_stack.getProperty("skirt_brim_line_width", "value")
                     skirt_brim_line_width = extruder_stack.getProperty("skirt_brim_line_width", "value")

+ 1 - 1
cura/Settings/ExtruderManager.py

@@ -298,7 +298,7 @@ class ExtruderManager(QObject):
         # Starts with the adhesion extruder.
         # Starts with the adhesion extruder.
         adhesion_type = global_stack.getProperty("adhesion_type", "value")
         adhesion_type = global_stack.getProperty("adhesion_type", "value")
         if adhesion_type in {"skirt", "brim"}:
         if adhesion_type in {"skirt", "brim"}:
-            return global_stack.getProperty("skirt_brim_extruder_nr", "value")
+            return max(0, int(global_stack.getProperty("skirt_brim_extruder_nr", "value")))  # optional skirt/brim extruder defaults to zero
         if adhesion_type == "raft":
         if adhesion_type == "raft":
             return global_stack.getProperty("raft_base_extruder_nr", "value")
             return global_stack.getProperty("raft_base_extruder_nr", "value")