From eb253827be2e331502ec7892286549f66e037eb9 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Thu, 13 Sep 2018 13:48:08 +0200 Subject: [PATCH 1/5] JSON setting: option to let support be replaced by brim or not --- resources/definitions/fdmprinter.def.json | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 4c87a3bcf0..e5726afdca 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4538,6 +4538,17 @@ } } }, + "brim_replaces_support": + { + "label": "Brim Replaces Support", + "description": "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions fo the first layer of supprot by brim regions.", + "type": "bool", + "default_value": true, + "enabled": "resolveOrValue('adhesion_type') == 'brim' and support_enable", + "settable_per_mesh": false, + "settable_per_extruder": true, + "limit_to_extruder": "adhesion_extruder_nr" + }, "brim_outside_only": { "label": "Brim Only on Outside", From 945cc7c3e63d70fa3f66be601dda6be14302b608 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Thu, 13 Sep 2018 14:25:57 +0200 Subject: [PATCH 2/5] JSon feat: support brim settings --- resources/definitions/fdmprinter.def.json | 42 +++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index e5726afdca..74e9bab14d 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3888,6 +3888,48 @@ "settable_per_mesh": false, "settable_per_extruder": true }, + "support_brim_enable": + { + "label": "Enable Support Brim", + "description": "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate.", + "type": "bool", + "default_value": false, + "enabled": "support_enable or support_tree_enable", + "limit_to_extruder": "support_infill_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "support_brim_width": + { + "label": "Support Brim Width", + "description": "The width of the brim to print underneath the support. A larger brim enhances adhesion to the build plate, at the cost of some extra material.", + "type": "float", + "unit": "mm", + "default_value": 8.0, + "minimum_value": "0.0", + "maximum_value_warning": "50.0", + "enabled": "support_enable", + "settable_per_mesh": false, + "settable_per_extruder": true, + "limit_to_extruder": "support_infill_extruder_nr", + "children": + { + "support_brim_line_count": + { + "label": "Support Brim Line Count", + "description": "The number of lines used for the support brim. More brim lines enhance adhesion to the build plate, at the cost of some extra material.", + "type": "int", + "default_value": 20, + "minimum_value": "0", + "maximum_value_warning": "50 / skirt_brim_line_width", + "value": "math.ceil(support_brim_width / (skirt_brim_line_width * initial_layer_line_width_factor / 100.0))", + "enabled": "support_enable", + "settable_per_mesh": false, + "settable_per_extruder": true, + "limit_to_extruder": "support_infill_extruder_nr" + } + } + }, "support_z_distance": { "label": "Support Z Distance", From 25000e8a6b9232bebdb4565463dcd41e347aeb4c Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 16 Oct 2018 13:05:15 +0200 Subject: [PATCH 3/5] Fix typo's. [CURA-5760] Feature support brim. --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 22491417ab..138e1adcc5 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4613,7 +4613,7 @@ "brim_replaces_support": { "label": "Brim Replaces Support", - "description": "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions fo the first layer of supprot by brim regions.", + "description": "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions.", "type": "bool", "default_value": true, "enabled": "resolveOrValue('adhesion_type') == 'brim' and support_enable", From 20fa7f4dd8c55c32547c5157f5d7b9f94ea16af9 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Tue, 16 Oct 2018 16:47:05 +0200 Subject: [PATCH 4/5] Display retractions lines for the loaded Gcode files CURA-5769 --- plugins/GCodeReader/FlavorParser.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugins/GCodeReader/FlavorParser.py b/plugins/GCodeReader/FlavorParser.py index eb19853748..1dc20d5602 100644 --- a/plugins/GCodeReader/FlavorParser.py +++ b/plugins/GCodeReader/FlavorParser.py @@ -44,6 +44,7 @@ class FlavorParser: self._extruder_offsets = {} # type: Dict[int, List[float]] # Offsets for multi extruders. key is index, value is [x-offset, y-offset] self._current_layer_thickness = 0.2 # default self._filament_diameter = 2.85 # default + self._previous_extrusion_value = 0 # keep track of the filament retractions CuraApplication.getInstance().getPreferences().addPreference("gcodereader/show_caution", True) @@ -182,6 +183,7 @@ class FlavorParser: new_extrusion_value = params.e if self._is_absolute_extrusion else e[self._extruder_number] + params.e if new_extrusion_value > e[self._extruder_number]: path.append([x, y, z, f, new_extrusion_value + self._extrusion_length_offset[self._extruder_number], self._layer_type]) # extrusion + self._previous_extrusion_value = new_extrusion_value else: path.append([x, y, z, f, new_extrusion_value + self._extrusion_length_offset[self._extruder_number], LayerPolygon.MoveRetractionType]) # retraction e[self._extruder_number] = new_extrusion_value @@ -191,6 +193,12 @@ class FlavorParser: if z > self._previous_z and (z - self._previous_z < 1.5): self._current_layer_thickness = z - self._previous_z # allow a tiny overlap self._previous_z = z + elif self._previous_extrusion_value > e[self._extruder_number]: + path.append([x, y, z, f, e[self._extruder_number] + self._extrusion_length_offset[self._extruder_number], LayerPolygon.MoveRetractionType]) + + # This case only for initial start, for the first coordinate in GCode + elif e[self._extruder_number] == 0 and self._previous_extrusion_value == 0: + path.append([x, y, z, f, e[self._extruder_number] + self._extrusion_length_offset[self._extruder_number], LayerPolygon.MoveRetractionType]) else: path.append([x, y, z, f, e[self._extruder_number] + self._extrusion_length_offset[self._extruder_number], LayerPolygon.MoveCombingType]) return self._position(x, y, z, f, e) @@ -235,6 +243,7 @@ class FlavorParser: position.e) def processGCode(self, G: int, line: str, position: Position, path: List[List[Union[float, int]]]) -> Position: + self.previous_extrusion_value = 0 func = getattr(self, "_gCode%s" % G, None) line = line.split(";", 1)[0] # Remove comments (if any) if func is not None: From a7be605b9d3c1cd52bb7323373237f7c7554411d Mon Sep 17 00:00:00 2001 From: alekseisasin Date: Wed, 17 Oct 2018 09:50:22 +0200 Subject: [PATCH 5/5] Typing error in CI CURA-5769 --- plugins/GCodeReader/FlavorParser.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/GCodeReader/FlavorParser.py b/plugins/GCodeReader/FlavorParser.py index 1dc20d5602..9ba1deb410 100644 --- a/plugins/GCodeReader/FlavorParser.py +++ b/plugins/GCodeReader/FlavorParser.py @@ -44,7 +44,7 @@ class FlavorParser: self._extruder_offsets = {} # type: Dict[int, List[float]] # Offsets for multi extruders. key is index, value is [x-offset, y-offset] self._current_layer_thickness = 0.2 # default self._filament_diameter = 2.85 # default - self._previous_extrusion_value = 0 # keep track of the filament retractions + self._previous_extrusion_value = 0.0 # keep track of the filament retractions CuraApplication.getInstance().getPreferences().addPreference("gcodereader/show_caution", True) @@ -243,7 +243,7 @@ class FlavorParser: position.e) def processGCode(self, G: int, line: str, position: Position, path: List[List[Union[float, int]]]) -> Position: - self.previous_extrusion_value = 0 + self._previous_extrusion_value = 0.0 func = getattr(self, "_gCode%s" % G, None) line = line.split(";", 1)[0] # Remove comments (if any) if func is not None: