From 843f00f6ffce87d17235477a746d7ade3c52c1dc Mon Sep 17 00:00:00 2001 From: geeetech3d Date: Sat, 12 Mar 2022 09:46:29 +0800 Subject: [PATCH 01/70] add Mizar_S Profile --- .../definitions/geeetech_Mizar_S.def.json | 111 ++++++++++++++++++ .../geeetech_Mizar_S_extruder_0.def.json | 15 +++ 2 files changed, 126 insertions(+) create mode 100644 resources/definitions/geeetech_Mizar_S.def.json create mode 100644 resources/extruders/geeetech_Mizar_S_extruder_0.def.json diff --git a/resources/definitions/geeetech_Mizar_S.def.json b/resources/definitions/geeetech_Mizar_S.def.json new file mode 100644 index 0000000000..b8a88c51db --- /dev/null +++ b/resources/definitions/geeetech_Mizar_S.def.json @@ -0,0 +1,111 @@ +{ + "version": 2, + "name": "Mizar S", + "inherits": "fdmprinter", + "metadata": { + "author": "Barry Ding", + "manufacturer": "Geeetech", + "file_formats": "text/x-gcode", + "visible": true, + "machine_extruder_trains": { + "0": "geeetech_mizar_s_extruder_0" + } + }, + "overrides": { + "machine_name": { + "default_value": "Mizar S" + }, + "machine_start_gcode": { + "default_value": "G28 ;Home\nM190 S{material_bed_temperature}\nM109 S{material_print_temperature} T0\nG1 Z15.0 F6000 ;Move the platform down 15mm\nG92 E0\nG1 F200 E3\nG92 E0" + }, + "machine_end_gcode": { + "default_value": "M104 S0;Cooling the heat end\nM140 S0;Cooling the heat bed\nG92 E1\nG1 E-1 F300\nG28 X0 Y0;Home X axis and Y axis\nM84" + }, + "machine_width": { + "default_value": 255 + }, + "machine_height": { + "default_value": 260 + }, + "machine_depth": { + "default_value": 255 + }, + "machine_heated_bed": { + "default_value": true + }, + "machine_center_is_zero": { + "default_value": false + }, + "material_diameter": { + "default_value": 1.75 + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "layer_height": { + "default_value": 0.1 + }, + "layer_height_0": { + "default_value": 0.3 + }, + "retraction_amount": { + "default_value": 2 + }, + "retraction_speed": { + "default_value": 25 + }, + "adhesion_type": { + "default_value": "skirt" + }, + "machine_head_with_fans_polygon": { + "default_value": [ + [-32, 38], + [30, 38], + [30, -55], + [-32, -55] + ] + }, + "gantry_height": { + "value": "260" + }, + "machine_max_feedrate_x": { + "default_value": 300 + }, + "machine_max_feedrate_y": { + "default_value": 300 + }, + "machine_max_feedrate_z": { + "default_value": 10 + }, + "machine_max_feedrate_e": { + "default_value": 50 + }, + "machine_max_acceleration_x": { + "default_value": 2000 + }, + "machine_max_acceleration_y": { + "default_value": 2000 + }, + "machine_max_acceleration_z": { + "default_value": 100 + }, + "machine_max_acceleration_e": { + "default_value": 10000 + }, + "machine_acceleration": { + "default_value": 2000 + }, + "machine_max_jerk_xy": { + "default_value": 10 + }, + "machine_max_jerk_z": { + "default_value": 1 + }, + "machine_max_jerk_e": { + "default_value": 5 + }, + "machine_gcode_flavor": { + "default_value": "Repetier" + } + } +} diff --git a/resources/extruders/geeetech_Mizar_S_extruder_0.def.json b/resources/extruders/geeetech_Mizar_S_extruder_0.def.json new file mode 100644 index 0000000000..bd64fc5353 --- /dev/null +++ b/resources/extruders/geeetech_Mizar_S_extruder_0.def.json @@ -0,0 +1,15 @@ +{ + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "geeetech_mizar_s", + "position": "0" + }, + + "overrides": { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + } +} From 748c51f32f3e3dd1cd6f008810f60348a1c5daa0 Mon Sep 17 00:00:00 2001 From: geeetech3d Date: Wed, 30 Mar 2022 10:53:22 +0800 Subject: [PATCH 02/70] add Mizar_S Profile2 --- .../definitions/geeetech_Mizar_S.def.json | 118 +++++------------- ...0.def.json => geeetech_Mizar_S_1.def.json} | 6 +- 2 files changed, 37 insertions(+), 87 deletions(-) rename resources/extruders/{geeetech_Mizar_S_extruder_0.def.json => geeetech_Mizar_S_1.def.json} (72%) diff --git a/resources/definitions/geeetech_Mizar_S.def.json b/resources/definitions/geeetech_Mizar_S.def.json index b8a88c51db..7cd7e42e68 100644 --- a/resources/definitions/geeetech_Mizar_S.def.json +++ b/resources/definitions/geeetech_Mizar_S.def.json @@ -1,26 +1,22 @@ { "version": 2, - "name": "Mizar S", + "name": "Geeetech Mizar_S", "inherits": "fdmprinter", "metadata": { - "author": "Barry Ding", + "visible": true, + "author": "Amit L", "manufacturer": "Geeetech", "file_formats": "text/x-gcode", - "visible": true, - "machine_extruder_trains": { - "0": "geeetech_mizar_s_extruder_0" + "has_materials": true, + "machine_extruder_trains": + { + "0": "geeetech_Mizar_S_1" } + }, + "overrides": { - "machine_name": { - "default_value": "Mizar S" - }, - "machine_start_gcode": { - "default_value": "G28 ;Home\nM190 S{material_bed_temperature}\nM109 S{material_print_temperature} T0\nG1 Z15.0 F6000 ;Move the platform down 15mm\nG92 E0\nG1 F200 E3\nG92 E0" - }, - "machine_end_gcode": { - "default_value": "M104 S0;Cooling the heat end\nM140 S0;Cooling the heat bed\nG92 E1\nG1 E-1 F300\nG28 X0 Y0;Home X axis and Y axis\nM84" - }, + "machine_name": { "default_value": "Geeetech Mizar_S" }, "machine_width": { "default_value": 255 }, @@ -29,83 +25,35 @@ }, "machine_depth": { "default_value": 255 - }, - "machine_heated_bed": { - "default_value": true - }, + }, "machine_center_is_zero": { "default_value": false }, - "material_diameter": { - "default_value": 1.75 + "layer_height": { "default_value": 0.1 }, + "layer_height_0": { "default_value": 0.15 }, + "retraction_amount": { "default_value": 0.8 }, + "retraction_speed": { "default_value": 35 }, + "adhesion_type": { "default_value": "skirt" }, + "machine_head_with_fans_polygon": { "default_value": [[-31,31],[34,31],[34,-40],[-31,-40]] }, + "gantry_height": { "value": "28" }, + "machine_max_feedrate_z": { "default_value": 12 }, + "machine_max_feedrate_e": { "default_value": 120 }, + "machine_max_acceleration_z": { "default_value": 500 }, + "machine_acceleration": { "default_value": 1000 }, + "machine_max_jerk_xy": { "default_value": 10 }, + "machine_max_jerk_z": { "default_value": 0.2 }, + "machine_max_jerk_e": { "default_value": 2.5 }, + "machine_heated_bed": { "default_value": true }, + "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, + "machine_start_gcode": { + "default_value": "G28 ; Auto home\nG1 Z15 F300 ;Move up slightly\nM107 ;Off fans\nG90 ;Switch to absolute positioning\nM82 ;Extruder absolute mode\nG92 E0 ;Set position of extruder to 0\nG0 X10 Y20 F1500 ;Move to X10 Y20 at 1500mms\nG1 Z0.8 ;Move Z to 0.8\nG1 F300 X180 E40 ;Extrude a line of filament\nG1 F1200 Z2 ;Raise Z\nG92 E0 ;Set extruder position to zero\nG28 ;Auto home" }, - "machine_nozzle_size": { - "default_value": 0.4 + "machine_end_gcode": { + "default_value": "G91 ;Switch to relative positioning\nG1 E-1 ;Retract filament to lower pressure\nG0 X0 Y200 ;Move hotend to left and bed forward\nM104 S0 ;Cooldown hotend\nG90 ;Switch to absolute mode\nG92 E0 ;Set extruder to zero\nM140 S0 ;Cooldown bed\nM84 ; Disable steppers" }, - "layer_height": { - "default_value": 0.1 - }, - "layer_height_0": { - "default_value": 0.3 - }, - "retraction_amount": { - "default_value": 2 - }, - "retraction_speed": { - "default_value": 25 - }, - "adhesion_type": { - "default_value": "skirt" - }, - "machine_head_with_fans_polygon": { - "default_value": [ - [-32, 38], - [30, 38], - [30, -55], - [-32, -55] - ] - }, - "gantry_height": { - "value": "260" - }, - "machine_max_feedrate_x": { - "default_value": 300 - }, - "machine_max_feedrate_y": { - "default_value": 300 - }, - "machine_max_feedrate_z": { - "default_value": 10 - }, - "machine_max_feedrate_e": { - "default_value": 50 - }, - "machine_max_acceleration_x": { - "default_value": 2000 - }, - "machine_max_acceleration_y": { - "default_value": 2000 - }, - "machine_max_acceleration_z": { - "default_value": 100 - }, - "machine_max_acceleration_e": { - "default_value": 10000 - }, - "machine_acceleration": { - "default_value": 2000 - }, - "machine_max_jerk_xy": { - "default_value": 10 - }, - "machine_max_jerk_z": { + "machine_extruder_count": { "default_value": 1 - }, - "machine_max_jerk_e": { - "default_value": 5 - }, - "machine_gcode_flavor": { - "default_value": "Repetier" } + } } diff --git a/resources/extruders/geeetech_Mizar_S_extruder_0.def.json b/resources/extruders/geeetech_Mizar_S_1.def.json similarity index 72% rename from resources/extruders/geeetech_Mizar_S_extruder_0.def.json rename to resources/extruders/geeetech_Mizar_S_1.def.json index bd64fc5353..da4440cd87 100644 --- a/resources/extruders/geeetech_Mizar_S_extruder_0.def.json +++ b/resources/extruders/geeetech_Mizar_S_1.def.json @@ -1,15 +1,17 @@ { + "version": 2, "name": "Extruder 1", "inherits": "fdmextruder", "metadata": { - "machine": "geeetech_mizar_s", + "machine": "geeetech_Mizar_S", "position": "0" }, "overrides": { - "extruder_nr": { "default_value": 0 }, + "extruder_nr": { "default_value": 0 }, "machine_nozzle_size": { "default_value": 0.4 }, "material_diameter": { "default_value": 1.75 } + } } From 776c71e5c9f648d7c0b83e2feba0e1d4cd8b1eec Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Sat, 23 Jul 2022 22:35:18 +0200 Subject: [PATCH 03/70] Shorten excessively long lines - Some lines in the files were excessively long, even in the context of the Cura project which seems to prefer a long line length. These lines could not be read easily even on github .... - Removed some unnecessary whitespaces - Added some extra spaces so that inline comments are separated by at least two spaces from the statement --- cura/LayerPolygon.py | 62 +++++++++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/cura/LayerPolygon.py b/cura/LayerPolygon.py index 2c3b432b1d..89bb84d375 100644 --- a/cura/LayerPolygon.py +++ b/cura/LayerPolygon.py @@ -24,9 +24,12 @@ class LayerPolygon: PrimeTowerType = 11 __number_of_types = 12 - __jump_map = numpy.logical_or(numpy.logical_or(numpy.arange(__number_of_types) == NoneType, numpy.arange(__number_of_types) == MoveCombingType), numpy.arange(__number_of_types) == MoveRetractionType) + __jump_map = numpy.logical_or(numpy.logical_or(numpy.arange(__number_of_types) == NoneType, + numpy.arange(__number_of_types) == MoveCombingType), + numpy.arange(__number_of_types) == MoveRetractionType) - def __init__(self, extruder: int, line_types: numpy.ndarray, data: numpy.ndarray, line_widths: numpy.ndarray, line_thicknesses: numpy.ndarray, line_feedrates: numpy.ndarray) -> None: + def __init__(self, extruder: int, line_types: numpy.ndarray, data: numpy.ndarray, + line_widths: numpy.ndarray, line_thicknesses: numpy.ndarray, line_feedrates: numpy.ndarray) -> None: """LayerPolygon, used in ProcessSlicedLayersJob :param extruder: The position of the extruder @@ -58,14 +61,16 @@ class LayerPolygon: self._mesh_line_count = len(self._types) - self._jump_count self._vertex_count = self._mesh_line_count + numpy.sum(self._types[1:] == self._types[:-1]) - # Buffering the colors shouldn't be necessary as it is not + # Buffering the colors shouldn't be necessary as it is not # re-used and can save a lot of memory usage. self._color_map = LayerPolygon.getColorMap() self._colors = self._color_map[self._types] # type: numpy.ndarray - # When type is used as index returns true if type == LayerPolygon.InfillType or type == LayerPolygon.SkinType or type == LayerPolygon.SupportInfillType + # When type is used as index returns true if type == LayerPolygon.InfillType + # or type == LayerPolygon.SkinType + # or type == LayerPolygon.SupportInfillType # Should be generated in better way, not hardcoded. - self._is_infill_or_skin_type_map = numpy.array([0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0], dtype = bool) + self._is_infill_or_skin_type_map = numpy.array([0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0], dtype=bool) self._build_cache_line_mesh_mask = None # type: Optional[numpy.ndarray] self._build_cache_needed_points = None # type: Optional[numpy.ndarray] @@ -80,12 +85,14 @@ class LayerPolygon: # Only if the type of line segment changes do we need to add an extra vertex to change colors self._build_cache_needed_points[1:, 0][:, numpy.newaxis] = self._types[1:] != self._types[:-1] # Mark points as unneeded if they are of types we don't want in the line mesh according to the calculated mask - numpy.logical_and(self._build_cache_needed_points, self._build_cache_line_mesh_mask, self._build_cache_needed_points ) + numpy.logical_and(self._build_cache_needed_points, self._build_cache_line_mesh_mask, self._build_cache_needed_points) self._vertex_begin = 0 self._vertex_end = cast(int, numpy.sum(self._build_cache_needed_points)) - def build(self, vertex_offset: int, index_offset: int, vertices: numpy.ndarray, colors: numpy.ndarray, line_dimensions: numpy.ndarray, feedrates: numpy.ndarray, extruders: numpy.ndarray, line_types: numpy.ndarray, indices: numpy.ndarray) -> None: + def build(self, vertex_offset: int, index_offset: int, vertices: numpy.ndarray, + colors: numpy.ndarray, line_dimensions: numpy.ndarray, feedrates: numpy.ndarray, + extruders: numpy.ndarray, line_types: numpy.ndarray, indices: numpy.ndarray) -> None: """Set all the arrays provided by the function caller, representing the LayerPolygon The arrays are either by vertex or by indices. @@ -112,18 +119,18 @@ class LayerPolygon: needed_points_list = self._build_cache_needed_points # Index to the points we need to represent the line mesh. This is constructed by generating simple - # start and end points for each line. For line segment n these are points n and n+1. Row n reads [n n+1] - # Then then the indices for the points we don't need are thrown away based on the pre-calculated list. - index_list = ( numpy.arange(len(self._types)).reshape((-1, 1)) + numpy.array([[0, 1]]) ).reshape((-1, 1))[needed_points_list.reshape((-1, 1))] + # start and end points for each line. For line segment n these are points n and n+1. Row n reads [n n+1] + # Then then the indices for the points we don't need are thrown away based on the pre-calculated list. + index_list = (numpy.arange(len(self._types)).reshape((-1, 1)) + numpy.array([[0, 1]])).reshape((-1, 1))[needed_points_list.reshape((-1, 1))] # The relative values of begin and end indices have already been set in buildCache, so we only need to offset them to the parents offset. self._vertex_begin += vertex_offset self._vertex_end += vertex_offset - # Points are picked based on the index list to get the vertices needed. + # Points are picked based on the index list to get the vertices needed. vertices[self._vertex_begin:self._vertex_end, :] = self._data[index_list, :] - # Create an array with colors for each vertex and remove the color data for the points that has been thrown away. + # Create an array with colors for each vertex and remove the color data for the points that has been thrown away. colors[self._vertex_begin:self._vertex_end, :] = numpy.tile(self._colors, (1, 2)).reshape((-1, 4))[needed_points_list.ravel()] # Create an array with line widths and thicknesses for each vertex. @@ -138,14 +145,15 @@ class LayerPolygon: # Convert type per vertex to type per line line_types[self._vertex_begin:self._vertex_end] = numpy.tile(self._types, (1, 2)).reshape((-1, 1))[needed_points_list.ravel()][:, 0] - # The relative values of begin and end indices have already been set in buildCache, so we only need to offset them to the parents offset. + # The relative values of begin and end indices have already been set in buildCache, + # so we only need to offset them to the parents offset. self._index_begin += index_offset self._index_end += index_offset - indices[self._index_begin:self._index_end, :] = numpy.arange(self._index_end-self._index_begin, dtype = numpy.int32).reshape((-1, 1)) + indices[self._index_begin:self._index_end, :] = numpy.arange(self._index_end-self._index_begin, dtype=numpy.int32).reshape((-1, 1)) # When the line type changes the index needs to be increased by 2. indices[self._index_begin:self._index_end, :] += numpy.cumsum(needed_points_list[line_mesh_mask.ravel(), 0], dtype = numpy.int32).reshape((-1, 1)) - # Each line segment goes from it's starting point p to p+1, offset by the vertex index. + # Each line segment goes from it's starting point p to p+1, offset by the vertex index. # The -1 is to compensate for the necessarily True value of needed_points_list[0,0] which causes an unwanted +1 in cumsum above. indices[self._index_begin:self._index_end, :] += numpy.array([self._vertex_begin - 1, self._vertex_begin]) @@ -214,7 +222,7 @@ class LayerPolygon: """ normals = numpy.copy(self._data) - normals[:, 1] = 0.0 # We are only interested in 2D normals + normals[:, 1] = 0.0 # We are only interested in 2D normals # Calculate the edges between points. # The call to numpy.roll shifts the entire array by one so that @@ -245,17 +253,17 @@ class LayerPolygon: if cls.__color_map is None: theme = cast(Theme, QtApplication.getInstance().getTheme()) cls.__color_map = numpy.array([ - theme.getColor("layerview_none").getRgbF(), # NoneType - theme.getColor("layerview_inset_0").getRgbF(), # Inset0Type - theme.getColor("layerview_inset_x").getRgbF(), # InsetXType - theme.getColor("layerview_skin").getRgbF(), # SkinType - theme.getColor("layerview_support").getRgbF(), # SupportType - theme.getColor("layerview_skirt").getRgbF(), # SkirtType - theme.getColor("layerview_infill").getRgbF(), # InfillType - theme.getColor("layerview_support_infill").getRgbF(), # SupportInfillType - theme.getColor("layerview_move_combing").getRgbF(), # MoveCombingType - theme.getColor("layerview_move_retraction").getRgbF(), # MoveRetractionType - theme.getColor("layerview_support_interface").getRgbF(), # SupportInterfaceType + theme.getColor("layerview_none").getRgbF(), # NoneType + theme.getColor("layerview_inset_0").getRgbF(), # Inset0Type + theme.getColor("layerview_inset_x").getRgbF(), # InsetXType + theme.getColor("layerview_skin").getRgbF(), # SkinType + theme.getColor("layerview_support").getRgbF(), # SupportType + theme.getColor("layerview_skirt").getRgbF(), # SkirtType + theme.getColor("layerview_infill").getRgbF(), # InfillType + theme.getColor("layerview_support_infill").getRgbF(), # SupportInfillType + theme.getColor("layerview_move_combing").getRgbF(), # MoveCombingType + theme.getColor("layerview_move_retraction").getRgbF(), # MoveRetractionType + theme.getColor("layerview_support_interface").getRgbF(), # SupportInterfaceType theme.getColor("layerview_prime_tower").getRgbF() # PrimeTowerType ]) From bce60a7d96d88e47723c68a69e9bbbcf33d689ff Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Sat, 23 Jul 2022 23:02:00 +0200 Subject: [PATCH 04/70] Fix typo Correct typo (duplicated word) --- cura/LayerPolygon.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/LayerPolygon.py b/cura/LayerPolygon.py index 89bb84d375..4ba206e34d 100644 --- a/cura/LayerPolygon.py +++ b/cura/LayerPolygon.py @@ -120,7 +120,7 @@ class LayerPolygon: # Index to the points we need to represent the line mesh. This is constructed by generating simple # start and end points for each line. For line segment n these are points n and n+1. Row n reads [n n+1] - # Then then the indices for the points we don't need are thrown away based on the pre-calculated list. + # Then the indices for the points we don't need are thrown away based on the pre-calculated list. index_list = (numpy.arange(len(self._types)).reshape((-1, 1)) + numpy.array([[0, 1]])).reshape((-1, 1))[needed_points_list.reshape((-1, 1))] # The relative values of begin and end indices have already been set in buildCache, so we only need to offset them to the parents offset. From 9221c3e21e41c6cd318c350028677ce984b2fc21 Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Sat, 23 Jul 2022 23:11:06 +0200 Subject: [PATCH 05/70] Improve layout of comment Modify the layout of the comment to improve readability. Now each sentence starts on a new line. Add a punctuation mark (comma) to improve clarity. --- cura/LayerPolygon.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cura/LayerPolygon.py b/cura/LayerPolygon.py index 4ba206e34d..7a66b60ca0 100644 --- a/cura/LayerPolygon.py +++ b/cura/LayerPolygon.py @@ -118,8 +118,9 @@ class LayerPolygon: line_mesh_mask = self._build_cache_line_mesh_mask needed_points_list = self._build_cache_needed_points - # Index to the points we need to represent the line mesh. This is constructed by generating simple - # start and end points for each line. For line segment n these are points n and n+1. Row n reads [n n+1] + # Index to the points we need to represent the line mesh. + # This is constructed by generating simple start and end points for each line. + # For line segment n, these are points n and n+1. Row n reads [n n+1] # Then the indices for the points we don't need are thrown away based on the pre-calculated list. index_list = (numpy.arange(len(self._types)).reshape((-1, 1)) + numpy.array([[0, 1]])).reshape((-1, 1))[needed_points_list.reshape((-1, 1))] From 1bf330df66f0797077d7ffdd469d1fe5b3762c82 Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Sat, 23 Jul 2022 23:19:20 +0200 Subject: [PATCH 06/70] Improve layout of comment Modify the layout of the comment to improve readability. Now each sentence starts on a new line. --- cura/LayerPolygon.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/cura/LayerPolygon.py b/cura/LayerPolygon.py index 7a66b60ca0..d5714f403e 100644 --- a/cura/LayerPolygon.py +++ b/cura/LayerPolygon.py @@ -226,10 +226,9 @@ class LayerPolygon: normals[:, 1] = 0.0 # We are only interested in 2D normals # Calculate the edges between points. - # The call to numpy.roll shifts the entire array by one so that - # we end up subtracting each next point from the current, wrapping - # around. This gives us the edges from the next point to the current - # point. + # The call to numpy.roll shifts the entire array by one + # so that we end up subtracting each next point from the current, wrapping around. + # This gives us the edges from the next point to the current point. normals = numpy.diff(normals, 1, 0) # Calculate the length of each edge using standard Pythagoras From b8f448a359b84ef33bfee783cfe3bceab3d91541 Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Thu, 28 Jul 2022 11:18:16 +0200 Subject: [PATCH 07/70] Add link to style guide Add link to the document that describes the code conventions and guidelines to be followed in all Ultimaker code, regardless the programming environment / language. This document is located in the Ultimaker/Meta repo. --- contributing.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/contributing.md b/contributing.md index 06f9dd472b..180b6b1461 100644 --- a/contributing.md +++ b/contributing.md @@ -16,4 +16,6 @@ Making pull requests -------------------- If you want to propose a change to Cura's source code, please create a pull request in the appropriate repository (being [Cura](https://github.com/Ultimaker/Cura), [Uranium](https://github.com/Ultimaker/Uranium), [CuraEngine](https://github.com/Ultimaker/CuraEngine), [fdm_materials](https://github.com/Ultimaker/fdm_materials), [libArcus](https://github.com/Ultimaker/libArcus), [cura-build](https://github.com/Ultimaker/cura-build), [cura-build-environment](https://github.com/Ultimaker/cura-build-environment), [libSavitar](https://github.com/Ultimaker/libSavitar), [libCharon](https://github.com/Ultimaker/libCharon) or [cura-binary-data](https://github.com/Ultimaker/cura-binary-data)) and if your change requires changes on multiple of these repositories, please link them together so that we know to merge them together. -Some of these repositories will have automated tests running when you create a pull request, indicated by green check marks or red crosses in the Github web page. If you see a red cross, that means that a test has failed. If the test doesn't fail on the Master branch but does fail on your branch, that indicates that you've probably made a mistake and you need to do that. Click on the cross for more details, or run the test locally by running `cmake . && ctest --verbose`. \ No newline at end of file +The style guide for code contributions to Cura and other Ultimaker projects can be found [here](https://github.com/Ultimaker/Meta/blob/master/general/generic_code_conventions.md). + +Some of these repositories will have automated tests running when you create a pull request, indicated by green check marks or red crosses in the Github web page. If you see a red cross, that means that a test has failed. If the test doesn't fail on the Master branch but does fail on your branch, that indicates that you've probably made a mistake and you need to do that. Click on the cross for more details, or run the test locally by running `cmake . && ctest --verbose`. From 556b009a9dbe68ba25960a29e9ff1eb88725e140 Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Wed, 3 Aug 2022 11:26:39 +0200 Subject: [PATCH 08/70] Fix Bug in timing MachineErrorChecker execution We want the Logger in line 215 to give the execution time in seconds so we don't want the start time to be the epoch. Currently the logger will output something like time = 1659518458.5s not like time = 3.0s --- cura/Machines/MachineErrorChecker.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Machines/MachineErrorChecker.py b/cura/Machines/MachineErrorChecker.py index 2cb333d157..d2140cc49b 100644 --- a/cura/Machines/MachineErrorChecker.py +++ b/cura/Machines/MachineErrorChecker.py @@ -43,7 +43,7 @@ class MachineErrorChecker(QObject): self._application = cura.CuraApplication.CuraApplication.getInstance() self._machine_manager = self._application.getMachineManager() - self._start_time = 0. # measure checking time + self._start_time = time.time() # measure checking time # This timer delays the starting of error check so we can react less frequently if the user is frequently # changing settings. From fad47856e49ac4c9e4052e5fb9f9c581335ebc30 Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Wed, 3 Aug 2022 11:40:15 +0200 Subject: [PATCH 09/70] Rename _start_time to _check_start_time This better reflects what _start_time is and makes the code easier to read. _check_start_time is self documenting. The current comment next to _start_time is erroneous since _start_time is not "measuring the checking time" --- cura/Machines/MachineErrorChecker.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cura/Machines/MachineErrorChecker.py b/cura/Machines/MachineErrorChecker.py index d2140cc49b..df335eddb4 100644 --- a/cura/Machines/MachineErrorChecker.py +++ b/cura/Machines/MachineErrorChecker.py @@ -43,7 +43,7 @@ class MachineErrorChecker(QObject): self._application = cura.CuraApplication.CuraApplication.getInstance() self._machine_manager = self._application.getMachineManager() - self._start_time = time.time() # measure checking time + self._check_start_time = time.time() # This timer delays the starting of error check so we can react less frequently if the user is frequently # changing settings. @@ -152,7 +152,7 @@ class MachineErrorChecker(QObject): self._stacks_and_keys_to_check.append((stack, key)) self._application.callLater(self._checkStack) - self._start_time = time.time() + self._check_start_time = time.time() Logger.log("d", "New error check scheduled.") def _checkStack(self) -> None: @@ -212,4 +212,4 @@ class MachineErrorChecker(QObject): self._check_in_progress = False self.needToWaitForResultChanged.emit() self.errorCheckFinished.emit() - Logger.log("i", "Error check finished, result = %s, time = %0.1fs", result, time.time() - self._start_time) + Logger.log("i", "Error check finished, result = %s, time = %0.1fs", result, time.time() - self._check_start_time) From a39fed1dc3c99650e701e434c78a4b14b2303574 Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Thu, 4 Aug 2022 09:45:47 +0200 Subject: [PATCH 10/70] Use one line conditional assignment Use one line conditional assignement instead of if else block. The intent is now clearer and the code is easier to read. --- cura/Machines/MachineErrorChecker.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/cura/Machines/MachineErrorChecker.py b/cura/Machines/MachineErrorChecker.py index 2cb333d157..022b01ae35 100644 --- a/cura/Machines/MachineErrorChecker.py +++ b/cura/Machines/MachineErrorChecker.py @@ -204,10 +204,7 @@ class MachineErrorChecker(QObject): self._has_errors = result self.hasErrorUpdated.emit() self._machine_manager.stacksValidationChanged.emit() - if keys_to_recheck is None: - self._keys_to_check = set() - else: - self._keys_to_check = keys_to_recheck + self._keys_to_check = keys_to_recheck if keys_to_recheck else set() self._need_to_check = False self._check_in_progress = False self.needToWaitForResultChanged.emit() From 9ac7eb4da7d2859f430792b4dca7fa24caa63e2f Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Fri, 5 Aug 2022 10:37:02 +0200 Subject: [PATCH 11/70] Use enumerate to iterate over self._types This is more pythonic. The comparaison in the if block below the for loop now becomes clearer. --- cura/LayerPolygon.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cura/LayerPolygon.py b/cura/LayerPolygon.py index 2c3b432b1d..c13bef85de 100644 --- a/cura/LayerPolygon.py +++ b/cura/LayerPolygon.py @@ -39,10 +39,10 @@ class LayerPolygon: self._extruder = extruder self._types = line_types - for i in range(len(self._types)): - if self._types[i] >= self.__number_of_types: # Got faulty line data from the engine. - Logger.log("w", "Found an unknown line type: %s", i) - self._types[i] = self.NoneType + for idx, line_type in enumerate(self._types): + if line_type >= self.__number_of_types: # Got faulty line data from the engine. + Logger.log("w", "Found an unknown line type: %s", line_type) + self._types[idx] = self.NoneType self._data = data self._line_widths = line_widths self._line_thicknesses = line_thicknesses From 1c3479c9fc63ae7fc23726cd24dd42e458b06237 Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Fri, 5 Aug 2022 11:08:20 +0200 Subject: [PATCH 12/70] Refactor check for unknown line types Using .where() clarifies the intent. --- cura/LayerPolygon.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/cura/LayerPolygon.py b/cura/LayerPolygon.py index c13bef85de..01970bd54f 100644 --- a/cura/LayerPolygon.py +++ b/cura/LayerPolygon.py @@ -39,9 +39,11 @@ class LayerPolygon: self._extruder = extruder self._types = line_types - for idx, line_type in enumerate(self._types): - if line_type >= self.__number_of_types: # Got faulty line data from the engine. - Logger.log("w", "Found an unknown line type: %s", line_type) + unknown_types = np.where(self_types >= self_number_of_types) + if unknown_types: + # Got faulty line data from the engine. + for idx in unknown_types: + Logger.log("w", "Found an unknown line type at: %s", idx) self._types[idx] = self.NoneType self._data = data self._line_widths = line_widths From e54c859b2d126a571e9f5e5029a09a5fc8cdcf98 Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Mon, 8 Aug 2022 10:33:32 +0200 Subject: [PATCH 13/70] Iterate directly over list in readIndex() No need for range(len.. and later use of index... --- plugins/X3DReader/X3DReader.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/X3DReader/X3DReader.py b/plugins/X3DReader/X3DReader.py index 548c9f44e6..7f6955b458 100644 --- a/plugins/X3DReader/X3DReader.py +++ b/plugins/X3DReader/X3DReader.py @@ -866,13 +866,13 @@ def readIndex(node, attr): v = readIntArray(node, attr, []) chunks = [] chunk = [] - for i in range(len(v)): - if v[i] == -1: + for i in v: + if i == -1: if chunk: chunks.append(chunk) chunk = [] else: - chunk.append(v[i]) + chunk.append(i) if chunk: chunks.append(chunk) return chunks From f8971df04c0e777ef739892e1b420130ae61cb66 Mon Sep 17 00:00:00 2001 From: BagelOrb Date: Tue, 9 Feb 2021 10:25:26 +0100 Subject: [PATCH 14/70] setting for support_tree_max_diameter --- resources/definitions/fdmprinter.def.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 0c939e03f2..19c479748a 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4508,6 +4508,20 @@ "settable_per_mesh": false, "settable_per_extruder": true }, + "support_tree_max_diameter": + { + "label": "Tree Support Trunk Diameter", + "description": "The diameter of the widest branches of tree support. A thicker trunk is more sturdy; a thinner trunk takes up less space on the build plate.", + "unit": "mm", + "type": "float", + "minimum_value": "support_tree_branch_diameter", + "minimum_value_warning": "support_line_width * 5", + "default_value": 15, + "limit_to_extruder": "support_infill_extruder_nr", + "enabled": "support_enable and support_structure=='tree'", + "settable_per_mesh": false, + "settable_per_extruder": true + }, "support_tree_branch_diameter_angle": { "label": "Tree Support Branch Diameter Angle", From efe3bdb83e7787d3d4ceda365fcd183fa43f9b3b Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Sat, 13 Aug 2022 12:07:41 +0200 Subject: [PATCH 15/70] VersionUpgrade.py: Use enumerate Use enumerate instead of range(len --- plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py b/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py index ded892d137..2c3a0939a8 100644 --- a/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py +++ b/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py @@ -64,7 +64,7 @@ class VersionUpgrade22to24(VersionUpgrade): config.remove_option("general", "containers") - for idx in range(len(container_list)): + for idx, _ in enumerate(container_list): config.set("containers", str(idx), container_list[idx]) output = io.StringIO() From 50a0ffa2573ee4a957168cf7bb92e44ca9a6f760 Mon Sep 17 00:00:00 2001 From: Michel Wilhelm Date: Sat, 13 Aug 2022 16:07:56 -0300 Subject: [PATCH 16/70] chore: definition file is out of the pattern --- .../definitions/renkforce_rf100_xl.def.json | 122 +++++++++--------- 1 file changed, 60 insertions(+), 62 deletions(-) diff --git a/resources/definitions/renkforce_rf100_xl.def.json b/resources/definitions/renkforce_rf100_xl.def.json index f0e8644ae4..a8cad09618 100644 --- a/resources/definitions/renkforce_rf100_xl.def.json +++ b/resources/definitions/renkforce_rf100_xl.def.json @@ -7,66 +7,64 @@ "file_formats": "text/x-gcode", "manufacturer": "Renkforce", "visible": true, - "machine_extruder_trains": - { + "machine_extruder_trains": { "0": "renkforce_rf100_xl_extruder_0" } }, - "overrides": { "adhesion_type": { "default_value": "skirt" }, "bottom_thickness": { - "value": "0.6" + "value": 0.6 }, "brim_width": { - "value": "3.0" + "value": 3.0 }, "cool_fan_enabled": { - "value": "True" + "value": true }, "cool_fan_full_at_height": { - "value": "0.5" + "value": 0.5 }, "cool_fan_speed_max": { - "value": "100.0" + "value": 100.0 }, "cool_fan_speed_min": { - "value": "100.0" + "value": 100.0 }, "cool_lift_head": { - "value": "True" + "value": true }, "cool_min_layer_time": { - "value": "1.0" + "value": 1.0 }, "cool_min_speed": { - "value": "5.0" + "value": 5.0 }, "infill_before_walls": { - "value": "True" + "value": true }, "infill_line_width": { - "value": "0.6" + "value": 0.6 }, "infill_overlap": { - "value": "15.0" + "value": 15.0 }, "infill_sparse_density": { - "value": "26.0" + "value": 26.0 }, "ironing_enabled": { - "value": "True" + "value": true }, "layer_0_z_overlap": { - "value": "0.11" + "value": 0.11 }, "layer_height_0": { - "value": "0.3" + "value": 0.3 }, "machine_depth": { - "value": "200" + "value": 200 }, "machine_end_gcode": { "default_value": ";End GCode\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-4 F300 ;move Z up a bit and retract filament even more\nM104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG0 Z{machine_height} F1800 ;move the platform all the way down\nG28 X0 Y0 F1800 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning\nM117 Done" @@ -75,10 +73,10 @@ "default_value": "RepRap (Marlin/Sprinter)" }, "machine_heated_bed": { - "default_value": "true" + "default_value": true }, "machine_height": { - "value": "200" + "value": 200 }, "machine_name": { "default_value": "Renkforce RF100 XL" @@ -87,112 +85,112 @@ "default_value": ";Sliced at: {day} {date} {time}\nG21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG1 Z5.0 F1800 ;move Z to 5mm\nG28 X0 Y0 F1800 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstop\nG92 E0 ;zero the extruded length\nG1 F200 E6.0 ;extrude 6.0mm of feed stock to build pressure\nG1 Z5.0 F300 ;move the platform down 5mm\nG92 E0 ;zero the extruded length again\nG1 F1800\n;Put printing message on LCD screen\nM117 Printing..." }, "machine_width": { - "value": "200" + "value": 200 }, "material_bed_temperature": { - "value": "70" + "value": 70 }, "material_print_temperature": { - "value": "210.0" + "value": 210.0 }, "ooze_shield_enabled": { - "value": "True" + "value": true }, "raft_airgap": { - "value": "0.33" + "value": 0.33 }, "raft_base_line_spacing": { - "value": "3.0" + "value": 3.0 }, "raft_base_line_width": { - "value": "1.0" + "value": 1.0 }, "raft_base_thickness": { - "value": "0.3" + "value": 0.3 }, "raft_interface_line_spacing": { - "value": "3.0" + "value": 3.0 }, "raft_interface_line_width": { - "value": "0.4" + "value": 0.4 }, "raft_interface_thickness": { - "value": "0.27" + "value": 0.27 }, "raft_margin": { - "value": "6.0" + "value": 6.0 }, "raft_speed": { - "value": "20.0" + "value": 20.0 }, "raft_surface_layers": { - "value": "2" + "value": 2 }, "raft_surface_line_spacing": { - "value": "0.4" + "value": 0.4 }, "raft_surface_line_width": { - "value": "0.4" + "value": 0.4 }, "raft_surface_thickness": { - "value": "0.1" + "value": 0.1 }, "retraction_amount": { - "value": "5.0" + "value": 5.0 }, "retraction_combing": { - "value": "'all'" + "value": "all" }, "retraction_enable": { - "value": "True" + "value": true }, "retraction_min_travel": { - "value": "1.5" + "value": 1.5 }, "skin_overlap": { - "value": "15.0" + "value": 15.0 }, "skirt_brim_minimal_length": { - "value": "150.0" + "value": 150.0 }, "skirt_gap": { - "value": "3.0" + "value": 3.0 }, "skirt_line_count": { - "value": "3" + "value": 3 }, "speed_infill": { - "value": "50.0" + "value": 50.0 }, "speed_layer_0": { - "value": "15.0" + "value": 15.0 }, "speed_print": { - "value": "50.0" + "value": 50.0 }, "speed_topbottom": { - "value": "30.0" + "value": 30.0 }, "speed_travel": { - "value": "50.0" + "value": 50.0 }, "speed_wall_0": { - "value": "25.0" + "value": 25.0 }, "speed_wall_x": { - "value": "35.0" + "value": 35.0 }, "support_angle": { - "value": "60.0" + "value": 60.0 }, "support_enable": { - "value": "False" + "value": false }, "support_infill_rate": { "value": "15 if support_enable and support_structure == 'normal' else 0 if support_enable and support_structure == 'tree' else 15" }, "support_line_width": { - "value": "0.6" + "value": 0.6 }, "support_pattern": { "default_value": "lines" @@ -201,16 +199,16 @@ "default_value": "everywhere" }, "support_xy_distance": { - "value": "0.7" + "value": 0.7 }, "support_z_distance": { - "value": "0.35" + "value": 0.35 }, "top_bottom_thickness": { - "value": "0.8" + "value": 0.8 }, "wall_thickness": { - "value": "0.8" + "value": 0.8 } } -} +} \ No newline at end of file From 6fd1e11964d1230beb1809911c82786a58858a99 Mon Sep 17 00:00:00 2001 From: odaki Date: Mon, 15 Aug 2022 12:40:23 +0900 Subject: [PATCH 17/70] Prevents the head from moving outside the print area Prevents the head from moving outside the print area after printing is complete. --- resources/definitions/kingroon_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/kingroon_base.def.json b/resources/definitions/kingroon_base.def.json index a8dd8725e2..4ea97f2527 100644 --- a/resources/definitions/kingroon_base.def.json +++ b/resources/definitions/kingroon_base.def.json @@ -129,7 +129,7 @@ "overrides": { "machine_name": { "default_value": "Kingroon Base Printer" }, "machine_start_gcode": { "default_value": "G28 ; home all axes\n M117 Purge extruder\n G92 E0 ; reset extruder\n G1 Z1.0 F3000 ; move z up little to prevent scratching of surface\n G1 X2 Y20 Z0.3 F5000.0 ; move to start-line position\n G1 X2 Y175.0 Z0.3 F1500.0 E15 ; draw 1st line\n G1 X2 Y175.0 Z0.4 F5000.0 ; move to side a little\n G1 X2 Y20 Z0.4 F1500.0 E30 ; draw 2nd line\n G92 E0 ; reset extruder\n G1 Z1.0 F3000 ; move z up little to prevent scratching of surface"}, - "machine_end_gcode": { "default_value": "G91; relative positioning\n G1 Z1.0 F3000 ; move z up little to prevent scratching of print\n G90; absolute positioning\n G1 X0 Y200 F1000 ; prepare for part removal\n M104 S0; turn off extruder\n M140 S0 ; turn off bed\n G1 X0 Y300 F1000 ; prepare for part removal\n M84 ; disable motors\n M106 S0 ; turn off fan" }, + "machine_end_gcode": { "default_value": "G91; relative positioning\n G1 Z1.0 F3000 ; move z up little to prevent scratching of print\n G90; absolute positioning\n M104 S0; turn off extruder\n M140 S0 ; turn off bed\n G1 X0 Y175 F1000 ; prepare for part removal\n M84 ; disable motors\n M106 S0 ; turn off fan" }, "machine_width": { "default_value": 180 }, "machine_depth": { "default_value": 180 }, From c3833c2ff8e8f8e580c85cb8ec9a73524ca24594 Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Thu, 18 Aug 2022 12:22:07 +0200 Subject: [PATCH 18/70] ArrangeObjectsJob.py: Refactor run method arrange from Nest2DArrange will return a boolean so we can simplify --- cura/Arranging/ArrangeObjectsJob.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cura/Arranging/ArrangeObjectsJob.py b/cura/Arranging/ArrangeObjectsJob.py index e65a442acb..d1370d46e1 100644 --- a/cura/Arranging/ArrangeObjectsJob.py +++ b/cura/Arranging/ArrangeObjectsJob.py @@ -28,18 +28,20 @@ class ArrangeObjectsJob(Job): title = i18n_catalog.i18nc("@info:title", "Finding Location")) status_message.show() - found_solution_for_all = None try: found_solution_for_all = arrange(self._nodes, Application.getInstance().getBuildVolume(), self._fixed_nodes) except: # If the thread crashes, the message should still close + found_solution_for_all = False Logger.logException("e", "Unable to arrange the objects on the buildplate. The arrange algorithm has crashed.") status_message.hide() - if found_solution_for_all is not None and not found_solution_for_all: + + if not found_solution_for_all: no_full_solution_message = Message( i18n_catalog.i18nc("@info:status", "Unable to find a location within the build volume for all objects"), title = i18n_catalog.i18nc("@info:title", "Can't Find Location"), message_type = Message.MessageType.ERROR) no_full_solution_message.show() + self.finished.emit(self) From 9f3a1cfe0ae3810e41ddba09f2ec836f12b2f6ec Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Tue, 23 Aug 2022 19:53:50 +0200 Subject: [PATCH 19/70] Use f-string and info method with Logger Use f-string and info method for Logger instead of "Old Style" string formating. --- cura/Machines/MachineErrorChecker.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cura/Machines/MachineErrorChecker.py b/cura/Machines/MachineErrorChecker.py index df335eddb4..a770e63785 100644 --- a/cura/Machines/MachineErrorChecker.py +++ b/cura/Machines/MachineErrorChecker.py @@ -212,4 +212,5 @@ class MachineErrorChecker(QObject): self._check_in_progress = False self.needToWaitForResultChanged.emit() self.errorCheckFinished.emit() - Logger.log("i", "Error check finished, result = %s, time = %0.1fs", result, time.time() - self._check_start_time) + execution_time = time.time() - self._check_start_time + Logger.info(f"Error check finished, result = {result}, time = {execution_time:.2f}s") From e9172b10af9e8132ab81c1841b3d0262e489f17c Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Tue, 23 Aug 2022 20:01:47 +0200 Subject: [PATCH 20/70] Use f-string and warn method with Logger Use f-string and warn method for Logger instead of "Old Style" string formatting. Co-authored-by: Jelle Spijker --- cura/LayerPolygon.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/LayerPolygon.py b/cura/LayerPolygon.py index 01970bd54f..91a26b2500 100644 --- a/cura/LayerPolygon.py +++ b/cura/LayerPolygon.py @@ -43,7 +43,7 @@ class LayerPolygon: if unknown_types: # Got faulty line data from the engine. for idx in unknown_types: - Logger.log("w", "Found an unknown line type at: %s", idx) + Logger.warn(f"Found an unknown line type at: {idx}") self._types[idx] = self.NoneType self._data = data self._line_widths = line_widths From afb90b4b2eb7efe45dc0525294cac8485a1762d4 Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Wed, 24 Aug 2022 19:52:26 +0200 Subject: [PATCH 21/70] Move initialization of found_solution_for_all Initialize the variable found_solution_for_all with False and don't set it a the exception block. --- cura/Arranging/ArrangeObjectsJob.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Arranging/ArrangeObjectsJob.py b/cura/Arranging/ArrangeObjectsJob.py index d1370d46e1..6ba6717191 100644 --- a/cura/Arranging/ArrangeObjectsJob.py +++ b/cura/Arranging/ArrangeObjectsJob.py @@ -21,6 +21,7 @@ class ArrangeObjectsJob(Job): self._min_offset = min_offset def run(self): + found_solution_for_all = False status_message = Message(i18n_catalog.i18nc("@info:status", "Finding new location for objects"), lifetime = 0, dismissable = False, @@ -31,7 +32,6 @@ class ArrangeObjectsJob(Job): try: found_solution_for_all = arrange(self._nodes, Application.getInstance().getBuildVolume(), self._fixed_nodes) except: # If the thread crashes, the message should still close - found_solution_for_all = False Logger.logException("e", "Unable to arrange the objects on the buildplate. The arrange algorithm has crashed.") status_message.hide() From 16500e06de596618ad4be2a9585a59a935aaa025 Mon Sep 17 00:00:00 2001 From: GroovyDrifter Date: Thu, 25 Aug 2022 09:28:15 +0200 Subject: [PATCH 22/70] Update creality_ender6.def.json Remove material temperatures from profile so they can follow those in the material seleced. --- resources/definitions/creality_ender6.def.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/resources/definitions/creality_ender6.def.json b/resources/definitions/creality_ender6.def.json index 56ceab88b2..c5d46b1a36 100644 --- a/resources/definitions/creality_ender6.def.json +++ b/resources/definitions/creality_ender6.def.json @@ -14,8 +14,6 @@ "infill_sparse_density": { "value": "10"}, "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'grid'"}, "infill_overlap":{"value": 10}, - "material_print_temperature":{"value": 220}, - "material_bed_temperature":{"value": 50}, "retraction_amount":{"value": 10}, "speed_travel": { "value": 80.0 }, "coasting_enable": { "value": true}, From b3fb34d84a1d8ffdc28c8e142efb07412306b83a Mon Sep 17 00:00:00 2001 From: Rijk van Manen Date: Wed, 31 Aug 2022 15:54:20 +0200 Subject: [PATCH 23/70] clean up adhesion_type S-line printers can follow the machine default. PP-brim will be moved to fdm materials. PP-235 --- .../ultimaker_s3/um_s3_aa0.25_PC_Normal_Quality.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.4_Nylon_Draft_Print.inst.cfg | 3 --- .../quality/ultimaker_s3/um_s3_aa0.4_Nylon_Fast_Print.inst.cfg | 3 --- .../ultimaker_s3/um_s3_aa0.4_Nylon_High_Quality.inst.cfg | 3 --- .../ultimaker_s3/um_s3_aa0.4_Nylon_Normal_Quality.inst.cfg | 3 --- .../quality/ultimaker_s3/um_s3_aa0.4_PC_Draft_Print.inst.cfg | 2 -- .../quality/ultimaker_s3/um_s3_aa0.4_PC_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_PC_High_Quality.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.4_PC_Normal_Quality.inst.cfg | 1 - .../ultimaker_s3/um_s3_cc0.4_CFFCPE_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_cc0.4_CFFCPE_Fast_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_cc0.4_CFFPA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Fast_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_cc0.4_GFFCPE_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_cc0.4_GFFCPE_Fast_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_cc0.4_GFFPA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Fast_Print.inst.cfg | 3 --- .../ultimaker_s3/um_s3_cc0.6_CFFCPE_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_cc0.6_CFFPA_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_cc0.6_GFFCPE_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_cc0.6_GFFPA_Draft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg | 3 --- .../ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg | 3 --- .../ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg | 3 --- .../quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg | 2 -- .../ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg | 2 -- .../ultimaker_s5/um_s5_cc0.4_CFFCPE_Draft_Print.inst.cfg | 3 --- .../ultimaker_s5/um_s5_cc0.4_CFFCPE_Fast_Print.inst.cfg | 3 --- .../ultimaker_s5/um_s5_cc0.4_CFFPA_Draft_Print.inst.cfg | 3 --- .../quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Fast_Print.inst.cfg | 3 --- .../ultimaker_s5/um_s5_cc0.4_GFFCPE_Draft_Print.inst.cfg | 3 --- .../ultimaker_s5/um_s5_cc0.4_GFFCPE_Fast_Print.inst.cfg | 3 --- .../ultimaker_s5/um_s5_cc0.4_GFFPA_Draft_Print.inst.cfg | 3 --- .../quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Fast_Print.inst.cfg | 3 --- .../ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg | 2 -- .../ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg | 2 -- .../ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg | 2 -- .../ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg | 1 - 42 files changed, 80 deletions(-) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_PC_Normal_Quality.inst.cfg index 886807a836..49ecf8eb7c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_PC_Normal_Quality.inst.cfg @@ -13,7 +13,6 @@ variant = AA 0.25 is_experimental = True [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Draft_Print.inst.cfg index ea80f381a1..5d04d3730c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Draft_Print.inst.cfg @@ -12,11 +12,8 @@ material = generic_nylon variant = AA 0.4 [values] -adhesion_type = brim cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 10 - - material_print_temperature = =default_material_print_temperature + 10 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Fast_Print.inst.cfg index d9ba64ae04..ee6b31d104 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Fast_Print.inst.cfg @@ -12,11 +12,8 @@ material = generic_nylon variant = AA 0.4 [values] -adhesion_type = brim cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 10 - - material_print_temperature = =default_material_print_temperature + 5 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_High_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_High_Quality.inst.cfg index 8a6d73d6ca..81fa776bba 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_High_Quality.inst.cfg @@ -12,11 +12,8 @@ material = generic_nylon variant = AA 0.4 [values] -adhesion_type = brim cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 15 - - material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 ooze_shield_angle = 40 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Normal_Quality.inst.cfg index 8688939b35..3b785f2999 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Normal_Quality.inst.cfg @@ -12,11 +12,8 @@ material = generic_nylon variant = AA 0.4 [values] -adhesion_type = brim cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 12 - - material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 ooze_shield_angle = 40 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Draft_Print.inst.cfg index d02bf873f4..a0fae041a4 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Draft_Print.inst.cfg @@ -12,13 +12,11 @@ material = generic_pc variant = AA 0.4 [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 90 cool_min_layer_time_fan_speed_max = 5 cool_min_speed = 6 - infill_overlap = 0 infill_overlap_mm = =0 if infill_sparse_density > 80 else 0.05 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Fast_Print.inst.cfg index f15ca790ed..7b26bb0613 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Fast_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_pc variant = AA 0.4 [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 85 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_High_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_High_Quality.inst.cfg index 330ccb1d66..893fc789f2 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_High_Quality.inst.cfg @@ -12,7 +12,6 @@ material = generic_pc variant = AA 0.4 [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Normal_Quality.inst.cfg index e931b99e4d..ef6fc99b12 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Normal_Quality.inst.cfg @@ -12,7 +12,6 @@ material = generic_pc variant = AA 0.4 [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Draft_Print.inst.cfg index ee5eb84f18..0ad61736ab 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_cffcpe variant = CC 0.4 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Fast_Print.inst.cfg index 27aa351fcb..758a81d3a8 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Fast_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_cffcpe variant = CC 0.4 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Draft_Print.inst.cfg index 308f7d4659..a0ca08eb8a 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_cffpa variant = CC 0.4 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Fast_Print.inst.cfg index efd383a565..d538f95bea 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Fast_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_cffpa variant = CC 0.4 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Draft_Print.inst.cfg index 31dffcd0fa..2caa3776eb 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_gffcpe variant = CC 0.4 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Fast_Print.inst.cfg index 5086b257e2..f9fffb3171 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Fast_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_gffcpe variant = CC 0.4 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Draft_Print.inst.cfg index 4fecd89e67..465bff3d8d 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_gffpa variant = CC 0.4 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Fast_Print.inst.cfg index 0355b4906d..40df72973c 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Fast_Print.inst.cfg @@ -12,14 +12,11 @@ material = generic_gffpa variant = CC 0.4 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 - material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFCPE_Draft_Print.inst.cfg index 4dbf39a83e..8a617f2d04 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFCPE_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_cffcpe variant = CC 0.6 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFPA_Draft_Print.inst.cfg index fdaa98e8e3..9c396012bb 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFPA_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_cffpa variant = CC 0.6 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFCPE_Draft_Print.inst.cfg index 06e1b1e186..de38df43ee 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFCPE_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_gffcpe variant = CC 0.6 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFPA_Draft_Print.inst.cfg index 3e570585d5..5b3c0024ab 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFPA_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_gffpa variant = CC 0.6 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg index 0ee0d7cbe9..21619933c7 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg @@ -13,7 +13,6 @@ variant = AA 0.25 is_experimental = True [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 50 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg index ab5ee10570..de31626bc4 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_nylon variant = AA 0.4 [values] -adhesion_type = brim cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 10 material_print_temperature = =default_material_print_temperature + 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg index e0d5fd698f..76637899fc 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg @@ -12,11 +12,8 @@ material = generic_nylon variant = AA 0.4 [values] -adhesion_type = brim cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 10 - - material_print_temperature = =default_material_print_temperature + 5 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg index 11369becf7..b0c2360339 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg @@ -12,11 +12,8 @@ material = generic_nylon variant = AA 0.4 [values] -adhesion_type = brim cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 15 - - material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 ooze_shield_angle = 40 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg index c5076d7b11..4c1c0a1871 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg @@ -12,11 +12,8 @@ material = generic_nylon variant = AA 0.4 [values] -adhesion_type = brim cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 12 - - material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 ooze_shield_angle = 40 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg index ad46d3ba5c..11c316f5d6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_pc variant = AA 0.4 [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 90 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg index 0bd02289de..fd8f30f78f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_pc variant = AA 0.4 [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 85 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg index f5bf35a232..c3cff67a2c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg @@ -12,13 +12,11 @@ material = generic_pc variant = AA 0.4 [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 50 cool_min_layer_time_fan_speed_max = 5 cool_min_speed = 8 - infill_overlap = 0 infill_overlap_mm = =0 if infill_sparse_density > 80 else 0.05 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg index a4c0c3d365..868de66c25 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg @@ -12,13 +12,11 @@ material = generic_pc variant = AA 0.4 [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 50 cool_min_layer_time_fan_speed_max = 5 cool_min_speed = 5 - infill_overlap = 0 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' infill_wipe_dist = 0.1 diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Draft_Print.inst.cfg index cb1a50803c..0e738f1e3d 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Draft_Print.inst.cfg @@ -12,14 +12,11 @@ material = generic_cffcpe variant = CC 0.4 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 - material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Fast_Print.inst.cfg index ce03a5ae09..e0d01ba82f 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Fast_Print.inst.cfg @@ -12,14 +12,11 @@ material = generic_cffcpe variant = CC 0.4 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 - material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Draft_Print.inst.cfg index 3036247066..52d0a07ea5 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Draft_Print.inst.cfg @@ -12,14 +12,11 @@ material = generic_cffpa variant = CC 0.4 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 - material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Fast_Print.inst.cfg index a399338789..86dad3779b 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Fast_Print.inst.cfg @@ -12,14 +12,11 @@ material = generic_cffpa variant = CC 0.4 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 - material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Draft_Print.inst.cfg index dfcf839d41..da79e206cf 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Draft_Print.inst.cfg @@ -12,14 +12,11 @@ material = generic_gffcpe variant = CC 0.4 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 - material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Fast_Print.inst.cfg index 2b7a43ccfc..644b964c28 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Fast_Print.inst.cfg @@ -12,14 +12,11 @@ material = generic_gffcpe variant = CC 0.4 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 - material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Draft_Print.inst.cfg index 918680ec18..2977a497eb 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Draft_Print.inst.cfg @@ -12,14 +12,11 @@ material = generic_gffpa variant = CC 0.4 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 - material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Fast_Print.inst.cfg index 67fb7b24c1..a339098b6a 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Fast_Print.inst.cfg @@ -12,14 +12,11 @@ material = generic_gffpa variant = CC 0.4 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 - material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg index d91ade8af3..dd2f4231c7 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg @@ -12,12 +12,10 @@ material = generic_cffcpe variant = CC 0.6 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg index 087a3868bf..eb2cc63b78 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg @@ -12,12 +12,10 @@ material = generic_cffpa variant = CC 0.6 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg index 431a570dc0..e5bc3d2e5b 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg @@ -12,12 +12,10 @@ material = generic_gffcpe variant = CC 0.6 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg index 29e0335e9e..72e1c0f4fe 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_gffpa variant = CC 0.6 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 From 3040a7c83071f460bafc5da201a3e0f0156b9aba Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 31 Aug 2022 18:11:24 +0200 Subject: [PATCH 24/70] Always check if an abstract machine needs to be added CURA-9289 --- .../UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 4082431cd9..bdae34a860 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -194,6 +194,9 @@ class CloudOutputDeviceManager: if cluster_data.printer_type not in self._abstract_clusters: self._abstract_clusters[cluster_data.printer_type] = AbstractCloudOutputDevice(self._api, cluster_data.printer_type) + # Ensure that the abstract machine is added (either because it was never added, or it somehow got + # removed) + _abstract_machine = CuraStackBuilder.createAbstractMachine(cluster_data.printer_type) # If the machine already existed before, it will be present in the host_guid_map if cluster_data.host_guid in host_guid_map: @@ -365,8 +368,6 @@ class CloudOutputDeviceManager: self._setOutputDeviceMetadata(device, new_machine) - _abstract_machine = CuraStackBuilder.createAbstractMachine(device.printerType) - if activate: CuraApplication.getInstance().getMachineManager().setActiveMachine(new_machine.getId()) From 2385b00af3dcf3427092c9f3e73db25c79ca9ffb Mon Sep 17 00:00:00 2001 From: jellespijker Date: Thu, 1 Sep 2022 09:33:23 +0200 Subject: [PATCH 25/70] Fixes external PR version Differentiate between internal actions and those of PR's This should fix the failing unit tests on forked PR --- .github/workflows/conan-recipe-version.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index ddadfe1781..72dad25033 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -53,9 +53,18 @@ jobs: steps: - name: Checkout repo uses: actions/checkout@v3 + if: ${{ ! contains(github.event, 'pull_request') }} with: - ref: ${{ github.head_ref }} fetch-depth: 0 + ref: ${{ github.head_ref }} + + - name: Checkout repo PR + uses: actions/checkout@v3 + if: ${{ contains(github.event, 'pull_request') }} + with: + fetch-depth: 0 + ref: ${{ github.event.pull_request.head.ref }} + repository: ${{ github.event.pull_request.head.repo.full_name }} - name: Setup Python and pip uses: actions/setup-python@v4 @@ -106,7 +115,7 @@ jobs: else: channel = repo.active_branch.name.split("_")[0].replace("-", "_").lower() - if event_name == "pull_request": + if "pull_request" in event_name: channel = f"pr_{issue_number}" # %% Get the actual version From 046985270ab7b09fcea9a4897a9cc0beec6ef522 Mon Sep 17 00:00:00 2001 From: jellespijker Date: Thu, 1 Sep 2022 09:51:46 +0200 Subject: [PATCH 26/70] Add optional input is_external_pr --- .github/workflows/conan-recipe-version.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index 72dad25033..78ff667387 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -12,6 +12,11 @@ on: default: "" type: string + is_external_pr: + required: false + default: false + type: boolean + outputs: recipe_id_full: description: "The full Conan recipe id: /@/" @@ -53,14 +58,14 @@ jobs: steps: - name: Checkout repo uses: actions/checkout@v3 - if: ${{ ! contains(github.event, 'pull_request') }} + if: ${{ ! is_external_pr }} with: fetch-depth: 0 ref: ${{ github.head_ref }} - name: Checkout repo PR uses: actions/checkout@v3 - if: ${{ contains(github.event, 'pull_request') }} + if: ${{ is_external_pr }} with: fetch-depth: 0 ref: ${{ github.event.pull_request.head.ref }} From df0179ef583f333b3f8c2717b0742b9d2613a106 Mon Sep 17 00:00:00 2001 From: "j.spijker@ultimaker.com" Date: Thu, 1 Sep 2022 10:26:02 +0200 Subject: [PATCH 27/70] define it as inputs --- .github/workflows/conan-recipe-version.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index 78ff667387..7c99b61c9e 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -58,14 +58,14 @@ jobs: steps: - name: Checkout repo uses: actions/checkout@v3 - if: ${{ ! is_external_pr }} + if: ${{ ! inputs.is_external_pr }} with: fetch-depth: 0 ref: ${{ github.head_ref }} - name: Checkout repo PR uses: actions/checkout@v3 - if: ${{ is_external_pr }} + if: ${{ inputs.is_external_pr }} with: fetch-depth: 0 ref: ${{ github.event.pull_request.head.ref }} From 76466b776afd3ef7d848584682e29ec74893aaf2 Mon Sep 17 00:00:00 2001 From: jellespijker Date: Thu, 1 Sep 2022 12:00:07 +0200 Subject: [PATCH 28/70] Use different checkout scheme based on forked repo --- .github/workflows/conan-recipe-version.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index 7c99b61c9e..c6bac8d8ab 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -12,11 +12,6 @@ on: default: "" type: string - is_external_pr: - required: false - default: false - type: boolean - outputs: recipe_id_full: description: "The full Conan recipe id: /@/" @@ -58,14 +53,14 @@ jobs: steps: - name: Checkout repo uses: actions/checkout@v3 - if: ${{ ! inputs.is_external_pr }} + if: ${{ github.event.pull_request.head.repo.full_name == github.repository }} with: fetch-depth: 0 ref: ${{ github.head_ref }} - name: Checkout repo PR uses: actions/checkout@v3 - if: ${{ inputs.is_external_pr }} + if: ${{ github.event.pull_request.head.repo.full_name != github.repository }} with: fetch-depth: 0 ref: ${{ github.event.pull_request.head.ref }} From 03c6686f7d18ca18735a55e2f4553f605e20fb16 Mon Sep 17 00:00:00 2001 From: "j.spijker@ultimaker.com" Date: Thu, 1 Sep 2022 12:02:33 +0200 Subject: [PATCH 29/70] Only run create package on our pr --- .github/workflows/conan-package-create.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/conan-package-create.yml b/.github/workflows/conan-package-create.yml index 4af608b7ac..f753b76e71 100644 --- a/.github/workflows/conan-package-create.yml +++ b/.github/workflows/conan-package-create.yml @@ -53,6 +53,7 @@ env: jobs: conan-package-create: + if: ${{ github.event.pull_request.head.repo.full_name == github.repository }} runs-on: ${{ inputs.runs_on }} steps: From e59aa8e22ba64eb08532f9357d6de11cc3b9f8c8 Mon Sep 17 00:00:00 2001 From: jellespijker Date: Thu, 1 Sep 2022 12:13:31 +0200 Subject: [PATCH 30/70] temporary fix for external PR --- .github/workflows/conan-recipe-version.yml | 60 ++++++++++++---------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index c6bac8d8ab..20be4a2342 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -130,36 +130,40 @@ jobs: latest_branch_version = version latest_branch_tag = repo.tag(tag) - # %% Get the actual version - no_commits = 0 - for commit in repo.iter_commits("HEAD"): - if commit == latest_branch_tag.commit: - break - no_commits += 1 - - if no_commits == 0: - # This is a release - actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}" - if channel == "stable": - user = "_" - channel = "_" - else: - if latest_branch_version.prerelease and not "." in latest_branch_version.prerelease: - # The prerealese did not contain a version number, default it to 1 - latest_branch_version.prerelease += ".1" - if event_name == "pull_request": - actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.lower()}+{buildmetadata}pr_{issue_number}_{no_commits}" + if latest_branch_tag: + # %% Get the actual version + no_commits = 0 + for commit in repo.iter_commits("HEAD"): + if commit == latest_branch_tag.commit: + break + no_commits += 1 + + if no_commits == 0: + # This is a release + actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}" + if channel == "stable": + user = "_" + channel = "_" else: - if channel in ("stable", "_", ""): - channel_metadata = f"{no_commits}" + if latest_branch_version.prerelease and not "." in latest_branch_version.prerelease: + # The prerealese did not contain a version number, default it to 1 + latest_branch_version.prerelease += ".1" + if event_name == "pull_request": + actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.lower()}+{buildmetadata}pr_{issue_number}_{no_commits}" else: - channel_metadata = f"{channel}_{no_commits}" - # FIXME: for when we create a new release branch - if latest_branch_version.prerelease == "": - bump_up_minor = int(latest_branch_version.minor) + 1 - actual_version = f"{latest_branch_version.major}.{bump_up_minor}.{latest_branch_version.patch}-alpha+{buildmetadata}{channel_metadata}" - else: - actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.lower()}+{buildmetadata}{channel_metadata}" + if channel in ("stable", "_", ""): + channel_metadata = f"{no_commits}" + else: + channel_metadata = f"{channel}_{no_commits}" + # FIXME: for when we create a new release branch + if latest_branch_version.prerelease == "": + bump_up_minor = int(latest_branch_version.minor) + 1 + actual_version = f"{latest_branch_version.major}.{bump_up_minor}.{latest_branch_version.patch}-alpha+{buildmetadata}{channel_metadata}" + else: + actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.lower()}+{buildmetadata}{channel_metadata}" + else: + # FIXME: for external PR's + actual_version = f"5.2.0-alpha+{buildmetadata}pr_{issue_number}_{no_commits}" # %% print to output cmd_name = ["echo", f"::set-output name=name::{project_name}"] From 3f02a96b339488e66526ba82ff83930aa4409815 Mon Sep 17 00:00:00 2001 From: jelle Spijker Date: Thu, 1 Sep 2022 12:15:21 +0200 Subject: [PATCH 31/70] don't use no_commits --- .github/workflows/conan-recipe-version.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index 20be4a2342..3e86c880a6 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -163,7 +163,7 @@ jobs: actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.lower()}+{buildmetadata}{channel_metadata}" else: # FIXME: for external PR's - actual_version = f"5.2.0-alpha+{buildmetadata}pr_{issue_number}_{no_commits}" + actual_version = f"5.2.0-alpha+{buildmetadata}pr_{issue_number}" # %% print to output cmd_name = ["echo", f"::set-output name=name::{project_name}"] From 6563ba32b442c95c044a868fdb67a03f8e8d898d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 1 Sep 2022 14:12:02 +0200 Subject: [PATCH 32/70] Fix crash with removedPrinterMessage --- .../UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py b/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py index c047fee4f2..c875eb183a 100644 --- a/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py +++ b/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py @@ -15,7 +15,7 @@ class RemovedPrintersMessage(Message): "info:status", "This printer is not linked to the Digital Factory:", "These printers are not linked to the Digital Factory:", - len(self.removed_devices) + len(self._removed_devices) ) message_text += "
    {}

".format(device_names) From 053437a50211ed82b91c8a8e5b988ddda5af200d Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Thu, 1 Sep 2022 14:15:06 +0200 Subject: [PATCH 33/70] UX: The color needs to be the same. --- plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml index c55c00f378..e508f70cbb 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml @@ -86,7 +86,7 @@ Component visible: Cura.MachineManager.activeMachineIsAbstractCloudPrinter - color: UM.Theme.getColor("detail_background") + color: UM.Theme.getColor("monitor_stage_background") height: childrenRect.height + UM.Theme.getSize("default_margin").height * 2 width: childrenRect.width + UM.Theme.getSize("wide_margin").width * 2 anchors From 2d77a08460b3e6f27bbe2514943881e7a66e9214 Mon Sep 17 00:00:00 2001 From: GroovyDrifter Date: Thu, 1 Sep 2022 15:33:53 +0200 Subject: [PATCH 34/70] Modify the Ender 6 profile to the minimun Modify the Ender 6 profile to the minimun, to fit other creality printers. all additional configuration removed. Print quality is better with default Creality firmware and this simpler definition. --- .../definitions/creality_ender6.def.json | 39 +++++++------------ 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/resources/definitions/creality_ender6.def.json b/resources/definitions/creality_ender6.def.json index c5d46b1a36..72dd042abd 100644 --- a/resources/definitions/creality_ender6.def.json +++ b/resources/definitions/creality_ender6.def.json @@ -1,23 +1,17 @@ { - "name": "Creality Ender-6", + "name": "Creality Ender-3 Pro", "version": 2, "inherits": "creality_base", + "metadata": { + "quality_definition": "creality_base", + "visible": true, + "platform": "creality_ender3.3mf" + }, "overrides": { - "machine_name": { "default_value": "Creality Ender-6" }, - "machine_start_gcode": { "default_value": "\nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n"}, - "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\n\nG28 X Y ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" }, - "machine_width": { "default_value": 260 }, - "machine_depth": { "default_value": 260 }, - "machine_height": { "default_value": 400 }, - "z_seam_type": { "value": "'sharpest_corner'"}, - "z_seam_corner": { "value": "'z_seam_corner_inner'"}, - "infill_sparse_density": { "value": "10"}, - "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'grid'"}, - "infill_overlap":{"value": 10}, - "retraction_amount":{"value": 10}, - "speed_travel": { "value": 80.0 }, - "coasting_enable": { "value": true}, - "coasting_min_volume": { "value": 0.5}, + "machine_name": { "default_value": "Creality Ender-3 Pro" }, + "machine_width": { "default_value": 220 }, + "machine_depth": { "default_value": 220 }, + "machine_height": { "default_value": 250 }, "machine_head_with_fans_polygon": { "default_value": [ [-26, 34], [-26, -32], @@ -25,15 +19,10 @@ [32, 34] ] }, + "machine_start_gcode": { + "default_value": "; Ender 3 Custom Start G-code\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM104 S{material_standby_temperature} ; Start heating up the nozzle most of the way\nM190 S{material_bed_temperature_layer_0} ; Start heating the bed, wait until target temperature reached\nM109 S{material_print_temperature_layer_0} ; Finish heating the nozzle\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position\nG1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line\nG1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little\nG1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish" + }, - "gantry_height": { "value": 25 }, - - "speed_print": { "value": 50.0 }, - "speed_wall": { "value": 30.0 } - - }, - "metadata": { - "quality_definition": "creality_base", - "visible": true + "gantry_height": { "value": 25 } } } From 89fbac74f94877d74b2d02f2b3b167ee4eacf32c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 1 Sep 2022 17:51:25 +0200 Subject: [PATCH 35/70] Fix incorrectly setting material_print_temperature If this is set to an absolute value, the material settings wont have any effect anymore. A much better way is to just set the default temperature, which is what the intent is --- resources/definitions/SV02.def.json | 8 +++----- resources/definitions/crazy3dprint_cz_300.def.json | 3 +-- resources/definitions/creality_ender6.def.json | 4 ++-- resources/definitions/cremaker_common.def.json | 1 - resources/definitions/eryone_er20.def.json | 4 ++-- resources/definitions/eryone_thinker.def.json | 1 - resources/definitions/hms434.def.json | 1 - resources/definitions/koonovo_base.def.json | 2 +- resources/definitions/koonovo_kn3.def.json | 5 ++--- resources/definitions/koonovo_kn5.def.json | 5 ++--- resources/definitions/maker_made_300x.def.json | 1 - resources/definitions/renkforce_rf100.def.json | 2 +- resources/definitions/renkforce_rf100_v2.def.json | 3 --- resources/definitions/renkforce_rf100_xl.def.json | 3 --- resources/definitions/skriware_2.def.json | 8 ++++---- 15 files changed, 18 insertions(+), 33 deletions(-) diff --git a/resources/definitions/SV02.def.json b/resources/definitions/SV02.def.json index 352cd23394..b718f19a9a 100644 --- a/resources/definitions/SV02.def.json +++ b/resources/definitions/SV02.def.json @@ -28,7 +28,7 @@ "retraction_speed": { "default_value": 50}, "gantry_height": { "value": "30" }, "speed_print": { "default_value": 50 }, - "material_print_temperature": { "value": 195 }, + "default_material_print_temperature": { "value": 195 }, "material_print_temperature_layer_0": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": 195 }, @@ -41,11 +41,9 @@ "machine_max_acceleration_z": { "value": 100 }, "machine_max_acceleration_e": { "value": 500 }, "machine_acceleration": { "value": 500 }, - "machine_max_jerk_xy": { "value": 8 }, - "machine_max_jerk_z": { "value": 0.4 }, - "machine_max_jerk_e": { "value": 5 }, + "material_diameter": { "default_value": 1.75 }, - "infill_overlap": { "default_value": 15 }, + "acceleration_print": { "value": 500 }, "acceleration_travel": { "value": 500 }, "acceleration_travel_layer_0": { "value": "acceleration_travel" }, diff --git a/resources/definitions/crazy3dprint_cz_300.def.json b/resources/definitions/crazy3dprint_cz_300.def.json index 56d3d69757..2748b39b53 100644 --- a/resources/definitions/crazy3dprint_cz_300.def.json +++ b/resources/definitions/crazy3dprint_cz_300.def.json @@ -36,9 +36,8 @@ "min_infill_area": { "default_value": 2.0 }, "retract_at_layer_change": { "default_value": true }, "default_material_print_temperature": { "default_value": 210 }, - "material_print_temperature": { "value": 210 }, "material_final_print_temperature": { "value": 210 }, - "material_bed_temperature": { "value": 70 }, + "default_material_bed_temperature": { "value": 70 }, "material_bed_temperature_layer_0": { "value": 70 }, "material_flow_layer_0": {"value": 140}, "retraction_amount": { "default_value": 10 }, diff --git a/resources/definitions/creality_ender6.def.json b/resources/definitions/creality_ender6.def.json index 56ceab88b2..1df152b7ca 100644 --- a/resources/definitions/creality_ender6.def.json +++ b/resources/definitions/creality_ender6.def.json @@ -14,8 +14,8 @@ "infill_sparse_density": { "value": "10"}, "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'grid'"}, "infill_overlap":{"value": 10}, - "material_print_temperature":{"value": 220}, - "material_bed_temperature":{"value": 50}, + "default_material_print_temperature":{"value": 220}, + "default_material_bed_temperature":{"value": 50}, "retraction_amount":{"value": 10}, "speed_travel": { "value": 80.0 }, "coasting_enable": { "value": true}, diff --git a/resources/definitions/cremaker_common.def.json b/resources/definitions/cremaker_common.def.json index 6fd339f58f..48b7d4042c 100644 --- a/resources/definitions/cremaker_common.def.json +++ b/resources/definitions/cremaker_common.def.json @@ -24,7 +24,6 @@ "xy_offset": { "value": 0.1 }, "xy_offset_layer_0": { "value": -0.1 }, "hole_xy_offset": { "value": 0.15 }, - "material_print_temperature": { "value": 200 }, "speed_travel": { "value": 100 }, "speed_layer_0": { "value": 25 }, "acceleration_enabled": { "value": true }, diff --git a/resources/definitions/eryone_er20.def.json b/resources/definitions/eryone_er20.def.json index 2f5f02d7db..c19a8b1035 100644 --- a/resources/definitions/eryone_er20.def.json +++ b/resources/definitions/eryone_er20.def.json @@ -53,7 +53,7 @@ "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 Z5 F720 ;Raise Z\nG1 E-5 F300 ;Retract a bit to protect nozzle\nM104 S0 ;Turn off extruder\nM140 S0 ;Turn off bed\nM107 ;Turn off all fans\nG90 ;Absolute positioning\nG1 X230 Y200 F4800 ;Parking the hotend\nM84 X Y E ;All steppers off but left Z\n" }, - "material_print_temperature": { + "default_material_print_temperature": { "value": 205 }, "material_print_temperature_layer_0": { @@ -103,7 +103,7 @@ "infill_before_walls": { "value": false }, - "material_bed_temperature": { + "default_material_bed_temperature": { "value": 60 }, "material_bed_temperature_layer_0": { diff --git a/resources/definitions/eryone_thinker.def.json b/resources/definitions/eryone_thinker.def.json index 33c96f45ca..e2dbd44215 100644 --- a/resources/definitions/eryone_thinker.def.json +++ b/resources/definitions/eryone_thinker.def.json @@ -138,7 +138,6 @@ "value": "material_print_temperature" }, "material_bed_temperature": { - "value": "default_material_bed_temperature", "maximum_value_warning": 100 }, "material_bed_temperature_layer_0": { diff --git a/resources/definitions/hms434.def.json b/resources/definitions/hms434.def.json index 80466d45bd..bf5a601dbd 100644 --- a/resources/definitions/hms434.def.json +++ b/resources/definitions/hms434.def.json @@ -113,7 +113,6 @@ "material_initial_print_temperature": {"value": "material_print_temperature", "maximum_value_warning": "material_print_temperature + 15", "maximum_value": "401" }, - "material_initial_print_temperature": {"maximum_value": "401" }, "material_final_print_temperature": {"value": "material_print_temperature", "maximum_value": "401" }, "material_break_preparation_temperature": {"maximum_value": "401" }, diff --git a/resources/definitions/koonovo_base.def.json b/resources/definitions/koonovo_base.def.json index bb984d6650..c2713c7a44 100644 --- a/resources/definitions/koonovo_base.def.json +++ b/resources/definitions/koonovo_base.def.json @@ -58,7 +58,7 @@ "infill_sparse_density": { "value": "15" }, "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, - "material_print_temperature": { "value": "195" }, + "default_material_print_temperature": { "value": "195" }, "material_print_temperature_layer_0": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, diff --git a/resources/definitions/koonovo_kn3.def.json b/resources/definitions/koonovo_kn3.def.json index dc0c40837d..485190958d 100644 --- a/resources/definitions/koonovo_kn3.def.json +++ b/resources/definitions/koonovo_kn3.def.json @@ -75,12 +75,11 @@ "infill_sparse_density": { "value": "15" }, "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, - "material_print_temperature": { "value": "195" }, + "default_material_print_temperature": { "value": "195" }, "material_print_temperature_layer_0": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, - "material_bed_temperature": { "value": "55" }, - "material_bed_temperature_layer_0": { "value": "material_bed_temperature" }, + "default_material_bed_temperature": { "value": "55" }, "material_flow": { "value": 100 }, "material_standby_temperature": { "value": "material_print_temperature" }, diff --git a/resources/definitions/koonovo_kn5.def.json b/resources/definitions/koonovo_kn5.def.json index 9870c85eb6..8b517a232a 100644 --- a/resources/definitions/koonovo_kn5.def.json +++ b/resources/definitions/koonovo_kn5.def.json @@ -77,13 +77,12 @@ "infill_sparse_density": { "value": "15" }, "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, - "material_print_temperature": { "value": "195" }, + "default_material_print_temperature": { "value": "195" }, "material_print_temperature_layer_0": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, - "material_bed_temperature": { "value": "45" }, - "material_bed_temperature_layer_0": { "value": "material_bed_temperature" }, + "default_material_bed_temperature": { "value": "45" }, "material_flow": { "value": 100 }, "speed_print": { "value": 50.0 } , diff --git a/resources/definitions/maker_made_300x.def.json b/resources/definitions/maker_made_300x.def.json index 70479856e3..0be2112bed 100644 --- a/resources/definitions/maker_made_300x.def.json +++ b/resources/definitions/maker_made_300x.def.json @@ -68,7 +68,6 @@ "infill_support_enabled": {"value": false }, "max_skin_angle_for_expansion": {"value": 90}, "default_material_print_temperature": {"value": 220}, - "material_print_temperature": {"value": 220}, "material_print_temperature_layer_0": {"value": 220}, "material_initial_print_temperature": {"value": 220}, "material_final_print_temperature": {"value": 220}, diff --git a/resources/definitions/renkforce_rf100.def.json b/resources/definitions/renkforce_rf100.def.json index 7ad092ce8f..f241df9a44 100644 --- a/resources/definitions/renkforce_rf100.def.json +++ b/resources/definitions/renkforce_rf100.def.json @@ -104,7 +104,7 @@ "material_flow": { "value": "110" }, - "material_print_temperature": { + "default_material_print_temperature": { "value": "210.0" }, "ooze_shield_enabled": { diff --git a/resources/definitions/renkforce_rf100_v2.def.json b/resources/definitions/renkforce_rf100_v2.def.json index 05907a1c20..881b5c94ca 100644 --- a/resources/definitions/renkforce_rf100_v2.def.json +++ b/resources/definitions/renkforce_rf100_v2.def.json @@ -104,9 +104,6 @@ "material_flow": { "value": "110" }, - "material_print_temperature": { - "value": "210.0" - }, "ooze_shield_enabled": { "value": "True" }, diff --git a/resources/definitions/renkforce_rf100_xl.def.json b/resources/definitions/renkforce_rf100_xl.def.json index f0e8644ae4..f0e26487f1 100644 --- a/resources/definitions/renkforce_rf100_xl.def.json +++ b/resources/definitions/renkforce_rf100_xl.def.json @@ -92,9 +92,6 @@ "material_bed_temperature": { "value": "70" }, - "material_print_temperature": { - "value": "210.0" - }, "ooze_shield_enabled": { "value": "True" }, diff --git a/resources/definitions/skriware_2.def.json b/resources/definitions/skriware_2.def.json index dbcf140585..7bb6968865 100644 --- a/resources/definitions/skriware_2.def.json +++ b/resources/definitions/skriware_2.def.json @@ -30,8 +30,11 @@ "support_skip_zag_per_mm": { "default_value": 10 }, + "default_material_bed_temperature": + { + "value": "50" + }, "material_bed_temperature": { - "value": "50", "minimum_value_warning": "30", "resolve": "extruderValues('material_bed_temperature')[adhesion_extruder_nr] if resolveOrValue('adhesion_type') == 'raft' else max(extruderValues('material_bed_temperature'))" }, @@ -366,9 +369,6 @@ "z_seam_x": { "value": "115" }, - "material_print_temperature": { - "value": "195" - }, "material_bed_temperature_layer_0": { "value": "50", "minimum_value_warning": "30", From 023046370a600c84835db826069d402cf5d4a31b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 2 Sep 2022 10:03:24 +0200 Subject: [PATCH 36/70] Throttle how often the local cluster updates This puts it in line with how often the cloud does it Might contribute to #11608 --- .../src/Network/LocalClusterOutputDevice.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDevice.py b/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDevice.py index f5afb0b14e..466f7debde 100644 --- a/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDevice.py @@ -3,6 +3,8 @@ import os from typing import Optional, Dict, List, Callable, Any +from time import time + from PyQt6.QtGui import QDesktopServices from PyQt6.QtCore import pyqtSlot, QUrl, pyqtSignal, pyqtProperty, QObject from PyQt6.QtNetwork import QNetworkReply @@ -32,6 +34,8 @@ class LocalClusterOutputDevice(UltimakerNetworkedPrinterOutputDevice): activeCameraUrlChanged = pyqtSignal() + CHECK_CLUSTER_INTERVAL = 10.0 # seconds + def __init__(self, device_id: str, address: str, properties: Dict[bytes, bytes], parent=None) -> None: super().__init__( @@ -107,6 +111,8 @@ class LocalClusterOutputDevice(UltimakerNetworkedPrinterOutputDevice): def _update(self) -> None: super()._update() + if time() - self._time_of_last_request < self.CHECK_CLUSTER_INTERVAL: + return # avoid calling the cluster too often self._getApiClient().getPrinters(self._updatePrinters) self._getApiClient().getPrintJobs(self._updatePrintJobs) self._updatePrintJobPreviewImages() From 3c1ff09d3953c30316312eeaa15d8c0b55e999fc Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 2 Sep 2022 15:56:18 +0200 Subject: [PATCH 37/70] Update the description of Wall Ordering to include center line CURA-9290 --- 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 a4c6019959..c24192b7d0 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1184,7 +1184,7 @@ "inset_direction": { "label": "Wall Ordering", - "description": "Determines the order in which walls are printed. Printing outer walls earlier helps with dimensional accuracy, as faults from inner walls cannot propagate to the outside. However printing them later allows them to stack better when overhangs are printed.", + "description": "Determines the order in which walls are printed. Printing outer walls earlier helps with dimensional accuracy, as faults from inner walls cannot propagate to the outside. However printing them later allows them to stack better when overhangs are printed. When there is an uneven amount of total innner walls, the 'center last line' is always printed last.", "type": "enum", "options": { "inside_out": "Inside To Outside", From 8bb2671a28aaf213ba3ee98f967a0c26b336016e Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Fri, 2 Sep 2022 15:35:59 +0200 Subject: [PATCH 38/70] Don't show abstract machines in configuration page So they cannot be removed through the preferences CURA-9289 --- cura/Machines/Models/GlobalStacksModel.py | 22 ++++++++++++++++++++++ resources/qml/Preferences/MachinesPage.qml | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/cura/Machines/Models/GlobalStacksModel.py b/cura/Machines/Models/GlobalStacksModel.py index 8f13d34ccf..69f2ec3822 100644 --- a/cura/Machines/Models/GlobalStacksModel.py +++ b/cura/Machines/Models/GlobalStacksModel.py @@ -44,6 +44,7 @@ class GlobalStacksModel(ListModel): self._filter_connection_type = None # type: Optional[ConnectionType] self._filter_online_only = False self._filter_capabilities: List[str] = [] # Required capabilities that all listed printers must have. + self._filter_abstract_machines: Optional[bool] = None # Listen to changes CuraContainerRegistry.getInstance().containerAdded.connect(self._onContainerChanged) @@ -54,6 +55,7 @@ class GlobalStacksModel(ListModel): filterConnectionTypeChanged = pyqtSignal() filterCapabilitiesChanged = pyqtSignal() filterOnlineOnlyChanged = pyqtSignal() + filterAbstractMachinesChanged = pyqtSignal() def setFilterConnectionType(self, new_filter: Optional[ConnectionType]) -> None: if self._filter_connection_type != new_filter: @@ -98,6 +100,22 @@ class GlobalStacksModel(ListModel): """ return self._filter_capabilities + def setFilterAbstractMachines(self, new_filter: Optional[bool]) -> None: + if self._filter_abstract_machines != new_filter: + self._filter_abstract_machines = new_filter + self.filterAbstractMachinesChanged.emit() + + @pyqtProperty(bool, fset = setFilterAbstractMachines, notify = filterAbstractMachinesChanged) + def filterAbstractMachines(self) -> Optional[bool]: + """ + Weather we include abstract printers, non-abstract printers or both + + if this is set to None both abstract and non-abstract printers will be included in the list + set to True will only include abstract printers + set to False will only inclde non-abstract printers + """ + return self._filter_abstract_machines + def _onContainerChanged(self, container) -> None: """Handler for container added/removed events from registry""" @@ -130,6 +148,10 @@ class GlobalStacksModel(ListModel): if self._filter_online_only and not is_online: continue + is_abstract_machine = parseBool(container_stack.getMetaDataEntry("is_abstract_machine", False)) + if self._filter_abstract_machines is not None and self._filter_abstract_machines is not is_abstract_machine: + continue + capabilities = set(container_stack.getMetaDataEntry(META_CAPABILITIES, "").split(",")) if set(self._filter_capabilities) - capabilities: # Not all required capabilities are met. continue diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index c77545bc03..258b45292e 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -17,7 +17,7 @@ UM.ManagementPage title: catalog.i18nc("@title:tab", "Printers") detailsPlaneCaption: base.currentItem && base.currentItem.name ? base.currentItem.name : "" - model: Cura.GlobalStacksModel { } + model: Cura.GlobalStacksModel { filterAbstractMachines: false } sectionRole: "discoverySource" From 27fc11b8404ed84a9b95b2fdddab239d2cd3c93b Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Fri, 2 Sep 2022 15:48:22 +0200 Subject: [PATCH 39/70] Prevent abstract machines from being deleted in the config menu CURA-9277 --- cura/Machines/Models/GlobalStacksModel.py | 3 ++- resources/qml/Preferences/MachinesPage.qml | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/cura/Machines/Models/GlobalStacksModel.py b/cura/Machines/Models/GlobalStacksModel.py index 69f2ec3822..62b470daee 100644 --- a/cura/Machines/Models/GlobalStacksModel.py +++ b/cura/Machines/Models/GlobalStacksModel.py @@ -172,6 +172,7 @@ class GlobalStacksModel(ListModel): "metadata": container_stack.getMetaData().copy(), "discoverySource": section_name, "removalWarning": removal_warning, - "isOnline": is_online}) + "isOnline": is_online, + "isAbstractMachine": is_abstract_machine}) items.sort(key=lambda i: (not i["hasRemoteConnection"], i["name"])) self.setItems(items) diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index 258b45292e..16f144cf85 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -17,7 +17,7 @@ UM.ManagementPage title: catalog.i18nc("@title:tab", "Printers") detailsPlaneCaption: base.currentItem && base.currentItem.name ? base.currentItem.name : "" - model: Cura.GlobalStacksModel { filterAbstractMachines: false } + model: Cura.GlobalStacksModel { } sectionRole: "discoverySource" @@ -139,7 +139,7 @@ UM.ManagementPage Cura.MenuItem { text: catalog.i18nc("@action:button", "Remove") - enabled: base.currentItem != null && model.count > 1 + enabled: base.currentItem != null && model.count > 1 && !base.currentItem.isAbstractMachine onTriggered: confirmDialog.open() } Cura.MenuItem From 6d0acbe0952408cbe4c08961127a99ee7d8be59e Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Fri, 2 Sep 2022 16:28:10 +0200 Subject: [PATCH 40/70] Always show correct number of connected machines Calculate number of connected machines _after_ the abstract machine its connected is removed from the list CURA-9277 --- cura/Machines/Models/MachineListModel.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index 55db072180..d3ae8f7acb 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -89,12 +89,13 @@ class MachineListModel(ListModel): machines_manager = CuraApplication.getInstance().getMachineManager() online_machine_stacks = machines_manager.getMachinesWithDefinition(definition_id, online_only = True) - # Create a list item for abstract machine - self.addItem(abstract_machine, len(online_machine_stacks)) other_machine_stacks.remove(abstract_machine) if abstract_machine in online_machine_stacks: online_machine_stacks.remove(abstract_machine) + # Create a list item for abstract machine + self.addItem(abstract_machine, len(online_machine_stacks)) + # Create list of machines that are children of the abstract machine for stack in online_machine_stacks: if self._show_cloud_printers: From 4b2d03fe1d364f4ae90914ec289e71dfef7b85f2 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 5 Sep 2022 10:27:03 +0200 Subject: [PATCH 41/70] Don't show warning message if creating abstract printer failed --- cura/Settings/CuraStackBuilder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Settings/CuraStackBuilder.py b/cura/Settings/CuraStackBuilder.py index 813b3f7d2e..c1aeb26151 100644 --- a/cura/Settings/CuraStackBuilder.py +++ b/cura/Settings/CuraStackBuilder.py @@ -288,7 +288,7 @@ class CuraStackBuilder: if definitions: name = definitions[0].getName() - stack = cls.createMachine(abstract_machine_id, definition_id) + stack = cls.createMachine(abstract_machine_id, definition_id, show_warning_message=False) if not stack: return None From ce6d7d72bd0194e3146e153450ce7d3fa7045d30 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 5 Sep 2022 11:14:13 +0200 Subject: [PATCH 42/70] Fix calculating number of removed devices CURA-9277 --- .../UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py b/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py index c875eb183a..caed6ddf91 100644 --- a/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py +++ b/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py @@ -31,7 +31,7 @@ class RemovedPrintersMessage(Message): super().__init__(title=self.i18n_catalog.i18ncp("info:status", "A cloud connection is not available for a printer", "A cloud connection is not available for some printers", - len(self.removed_devices)), + len(self._removed_devices)), message_type=Message.MessageType.WARNING, text = message_text) From 871e442a2ecbd38db700accf4fa31e5acb116f75 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Mon, 5 Sep 2022 11:34:57 +0200 Subject: [PATCH 43/70] Don't use conan 1.52.0 Fails on Windows in the `MSBuildDeps` generator. Looks like a bug in Conan raised an issue conan-io/conan#12023 --- .github/workflows/requirements-conan-package.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/requirements-conan-package.txt b/.github/workflows/requirements-conan-package.txt index fcc1379cfa..bd19974dd9 100644 --- a/.github/workflows/requirements-conan-package.txt +++ b/.github/workflows/requirements-conan-package.txt @@ -1,2 +1,2 @@ -conan!=1.51.0,!=1.51.1,!=1.51.2,!=1.51.3 +conan!=1.51.0,!=1.51.1,!=1.51.2,!=1.51.3,!=1.52.0 sip From 48b8585ce669a1e52bb21968a727acc8268cae3e Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 5 Sep 2022 11:44:29 +0200 Subject: [PATCH 44/70] Make sure online printers are always shown in the correct tab CURA-9277 --- cura/Machines/Models/MachineListModel.py | 27 +++++++++++++----------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index d3ae8f7acb..ead1061a05 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -89,17 +89,27 @@ class MachineListModel(ListModel): machines_manager = CuraApplication.getInstance().getMachineManager() online_machine_stacks = machines_manager.getMachinesWithDefinition(definition_id, online_only = True) + def online_machines_has_connection_filter(machine_stack): + # This is required because machines loaded from projects have the is_online="True" but no connection type. + # We want to display them the same way as unconnected printers in this case. + has_connection = False + for connection_type in [ConnectionType.NetworkConnection.value, ConnectionType.CloudConnection.value]: + has_connection |= connection_type in machine_stack.configuredConnectionTypes + return has_connection + + online_machine_stacks = list(filter(online_machines_has_connection_filter, online_machine_stacks)) + other_machine_stacks.remove(abstract_machine) if abstract_machine in online_machine_stacks: online_machine_stacks.remove(abstract_machine) # Create a list item for abstract machine - self.addItem(abstract_machine, len(online_machine_stacks)) + self.addItem(abstract_machine, True, len(online_machine_stacks)) # Create list of machines that are children of the abstract machine for stack in online_machine_stacks: if self._show_cloud_printers: - self.addItem(stack) + self.addItem(stack, True) # Remove this machine from the other stack list if stack in other_machine_stacks: other_machine_stacks.remove(stack) @@ -119,25 +129,18 @@ class MachineListModel(ListModel): }) for stack in other_machine_stacks: - self.addItem(stack) + self.addItem(stack, False) - def addItem(self, container_stack: ContainerStack, machine_count: int = 0) -> None: + def addItem(self, container_stack: ContainerStack, is_online, machine_count: int = 0) -> None: if parseBool(container_stack.getMetaDataEntry("hidden", False)): return - # This is required because machines loaded from projects have the is_online="True" but no connection type. - # We want to display them the same way as unconnected printers in this case. - has_connection = False - has_connection |= parseBool(container_stack.getMetaDataEntry("is_abstract_machine", False)) - for connection_type in [ConnectionType.NetworkConnection.value, ConnectionType.CloudConnection.value]: - has_connection |= connection_type in container_stack.configuredConnectionTypes - self.appendItem({ "componentType": "MACHINE", "name": container_stack.getName(), "id": container_stack.getId(), "metadata": container_stack.getMetaData().copy(), - "isOnline": parseBool(container_stack.getMetaDataEntry("is_online", False)) and has_connection, + "isOnline": is_online, "isAbstractMachine": parseBool(container_stack.getMetaDataEntry("is_abstract_machine", False)), "machineCount": machine_count, }) From db6e7d57f93a9845f1a6460d9835800ac02aee48 Mon Sep 17 00:00:00 2001 From: KOONOVO3DPrinter Date: Mon, 5 Sep 2022 20:08:59 +0800 Subject: [PATCH 45/70] Add tank-M machine (#13036) CURA-9605 --- resources/definitions/tank_m3.def.json | 25 ++++ resources/definitions/tank_m3_max.def.json | 24 ++++ resources/definitions/tank_m_base.def.json | 124 ++++++++++++++++++ .../extruders/tank_m_base_extruder_0.def.json | 16 +++ resources/images/tank_m.png | Bin 0 -> 66583 bytes resources/meshes/tank_m.obj | 60 +++++++++ .../quality/tank_m_base_global_draft.inst.cfg | 17 +++ .../quality/tank_m_base_global_high.inst.cfg | 18 +++ .../tank_m_base_global_standard.inst.cfg | 18 +++ 9 files changed, 302 insertions(+) create mode 100644 resources/definitions/tank_m3.def.json create mode 100644 resources/definitions/tank_m3_max.def.json create mode 100644 resources/definitions/tank_m_base.def.json create mode 100644 resources/extruders/tank_m_base_extruder_0.def.json create mode 100644 resources/images/tank_m.png create mode 100644 resources/meshes/tank_m.obj create mode 100644 resources/quality/tank_m_base_global_draft.inst.cfg create mode 100644 resources/quality/tank_m_base_global_high.inst.cfg create mode 100644 resources/quality/tank_m_base_global_standard.inst.cfg diff --git a/resources/definitions/tank_m3.def.json b/resources/definitions/tank_m3.def.json new file mode 100644 index 0000000000..9a65397a64 --- /dev/null +++ b/resources/definitions/tank_m3.def.json @@ -0,0 +1,25 @@ +{ + "name": "Tank M3", + "version": 2, + "inherits": "tank_m_base", + "overrides": { + "machine_name": { "default_value": "Tank M3" }, + "machine_width": { "default_value": 235 }, + "machine_depth": { "default_value": 235 }, + "machine_height": { "default_value": 250 }, + "machine_head_with_fans_polygon": { "default_value": [ + [-26, 34], + [-26, -32], + [32, -32], + [32, 34] + ] + }, + + "gantry_height": { "value": 0 } + + }, + "metadata": { + "quality_definition": "tank_m_base", + "visible": true + } +} diff --git a/resources/definitions/tank_m3_max.def.json b/resources/definitions/tank_m3_max.def.json new file mode 100644 index 0000000000..ef271dc2f5 --- /dev/null +++ b/resources/definitions/tank_m3_max.def.json @@ -0,0 +1,24 @@ +{ + "name": "Tank M3 Max", + "version": 2, + "inherits": "tank_m_base", + "overrides": { + "machine_name": { "default_value": "Tank M3 Max" }, + "machine_width": { "default_value": 310 }, + "machine_depth": { "default_value": 310 }, + "machine_height": { "default_value": 400 }, + "machine_head_with_fans_polygon": { "default_value": [ + [-26, 34], + [-26, -32], + [32, -32], + [32, 34] + ] + }, + + "gantry_height": { "value": 0 } + }, + "metadata": { + "quality_definition": "tank_m_base", + "visible": true + } +} diff --git a/resources/definitions/tank_m_base.def.json b/resources/definitions/tank_m_base.def.json new file mode 100644 index 0000000000..e4f465d39e --- /dev/null +++ b/resources/definitions/tank_m_base.def.json @@ -0,0 +1,124 @@ +{ + "name": "tank_m Base Printer", + "version": 2, + "inherits": "fdmprinter", + "metadata": { + "visible": false, + "author": "tank_m", + "manufacturer": "tank_m", + "file_formats": "text/x-gcode", + "platform": "tank_m.obj", + "platform_texture": "tank_m.png", + + "first_start_actions": [ "MachineSettingsAction" ], + "machine_extruder_trains": {"0": "tank_m_base_extruder_0"}, + + "has_materials": true, + "has_machine_quality": true, + + + "preferred_quality_type": "standard", + "preferred_material": "generic_pla" + }, + + + "overrides": { + "machine_start_gcode": { + "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 ;Move to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nM117 Printing..." + }, + "machine_end_gcode": { + "default_value": "M104 T0 S0 ;1st extruder heater off\nM104 T1 S0 ;2nd extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" + }, + + "machine_max_feedrate_x": { "value": 500 }, + "machine_max_feedrate_y": { "value": 500 }, + "machine_max_feedrate_z": { "value": 50 }, + "machine_max_feedrate_e": { "value": 500 }, + + "machine_max_acceleration_x": { "value": 2500 }, + "machine_max_acceleration_y": { "value": 2500 }, + "machine_max_acceleration_z": { "value": 100 }, + "machine_max_acceleration_e": { "value": 2000 }, + "machine_acceleration": { "value": 2500 }, + + "machine_heated_bed": { "default_value": true }, + + "material_diameter": { "default_value": 1.75 }, + + + "acceleration_print": { "value": 2500 }, + "acceleration_travel": { "value": 2500 }, + + "line_width": { "value": "machine_nozzle_size" }, + + "wall_thickness": {"value": "line_width * 2" }, + + "top_bottom_thickness": {"value": "layer_height_0 + layer_height * 3" }, + + "infill_sparse_density": { "value": "15" }, + "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, + + "material_print_temperature": { "value": "195" }, + "material_print_temperature_layer_0": { "value": "material_print_temperature" }, + "material_initial_print_temperature": { "value": "material_print_temperature" }, + "material_final_print_temperature": { "value": "material_print_temperature" }, + "material_bed_temperature": { "value": "55" }, + "material_bed_temperature_layer_0": { "value": "material_bed_temperature" }, + "material_flow": { "value": 100 }, + "material_standby_temperature": { "value": "material_print_temperature" }, + + + "speed_print": { "value": 50.0 } , + "speed_infill": { "value": "speed_print" }, + "speed_wall": { "value": "speed_print / 2" }, + "speed_wall_0": { "value": "speed_wall" }, + "speed_wall_x": { "value": "speed_wall" }, + "speed_topbottom": { "value": "speed_print / 2" }, + "speed_travel": { "value": "120.0 if speed_print < 60 else 300.0 if speed_print > 100 else speed_print * 2.2" }, + "speed_layer_0": { "value": 25.0 }, + "speed_print_layer_0": { "value": "speed_layer_0" }, + "speed_travel_layer_0": { "value": "100 if speed_layer_0 < 25 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, + "speed_prime_tower": { "value": "speed_topbottom" }, + "speed_support": { "value": "speed_wall_0" }, + "speed_z_hop": { "value": 5 }, + + "retraction_enable": { "value": true }, + "retraction_amount": { "value": 1.0 }, + "retraction_speed": { "value": 40 }, + + "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, + "cool_fan_enabled": { "value": true }, + "cool_min_layer_time": { "value": 10 }, + + + "support_brim_enable": { "value": true }, + "support_angle": { "value": "math.floor(math.degrees(math.atan(line_width/2.0/layer_height)))" }, + "support_pattern": { "value": "'zigzag'" }, + "support_infill_rate": { "value": "0 if support_enable and support_structure == 'tree' else 20" }, + "support_use_towers": { "value": false }, + "support_xy_distance": { "value": "wall_line_width_0 * 2" }, + "support_xy_distance_overhang": { "value": "wall_line_width_0" }, + "support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height*2" }, + "support_xy_overrides_z": { "value": "'xy_overrides_z'" }, + "support_wall_count": { "value": 1 }, + "support_brim_width": { "value": 4 }, + + "support_enable": { "value": true }, + "support_interface_enable": { "value": true }, + "support_interface_height": { "value": "layer_height * 4" }, + "support_interface_density": { "value": 33.333 }, + "support_interface_pattern": { "value": "'grid'" }, + "support_interface_skip_height": { "value": 0.2 }, + "minimum_support_area": { "value": 2 }, + "minimum_interface_area": { "value": 10 }, + + "fill_outline_gaps": { "value": false }, + + "adhesion_type": { "value": "'skirt'" }, + "brim_replaces_support": { "value": false }, + "skirt_gap": { "value": 6.0 }, + "skirt_line_count": { "value": 3 } + + + } +} diff --git a/resources/extruders/tank_m_base_extruder_0.def.json b/resources/extruders/tank_m_base_extruder_0.def.json new file mode 100644 index 0000000000..64bafe97d2 --- /dev/null +++ b/resources/extruders/tank_m_base_extruder_0.def.json @@ -0,0 +1,16 @@ +{ + "version": 2, + "name": "Extruder 0", + "inherits": "fdmextruder", + "metadata": { + "machine": "tank_m_base", + "position": "0" + }, + + "overrides": { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + + } +} diff --git a/resources/images/tank_m.png b/resources/images/tank_m.png new file mode 100644 index 0000000000000000000000000000000000000000..b5c93afc5a1c18d50886ec377186bdac650f81f5 GIT binary patch literal 66583 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 literal 0 HcmV?d00001 diff --git a/resources/meshes/tank_m.obj b/resources/meshes/tank_m.obj new file mode 100644 index 0000000000..c84c1e3efa --- /dev/null +++ b/resources/meshes/tank_m.obj @@ -0,0 +1,60 @@ +v 200 200 0 +v 200 -200 0 +v 200 -200 -4 +v 200 200 -4 +v -200 200 0 +v -200 200 -4 +v -200 -200 0 +v -200 -200 -4 +vt 0 1 +vt 0 1 +vt 0 1 +vt 0 1 +vt 0 1 +vt 0 1 +vt 0 1 +vt 0 1 +vt 0 1 +vt 0 1 +vt 0 1 +vt 0 1 +vt 0 1 +vt 0 1 +vt 0 1 +vt 0 1 +vt 0 0 +vt 1 0 +vt 0 1 +vt 1 1 +vt 0 0 +vt 1 0 +vt 0 1 +vt 1 1 +f 1/1 2/2 4/3 +f 4/3 2/2 3/4 +f 5/5 1/6 6/7 +f 6/7 1/6 4/8 +f 7/9 5/10 8/11 +f 8/11 5/10 6/12 +f 2/13 7/14 3/15 +f 3/15 7/14 8/16 +f 6/21 4/22 3/24 8/23 +v -50 270.7 70.7 +v 50 270.7 70.7 +v 50 200 0 +v -50 200 0 +v -50 270.7 66.7 +v 50 270.7 66.7 +v 50 200 -4 +v -50 200 -4 +vt 0 1 +vt 0 0 +vt 1 0 +vt 1 1 +vt 0 1 +f 10/1 11/2 15/3 14/4 +f 9/4 10/8 14/7 13/8 +f 12/9 9/10 13/11 16/12 +f 11/13 12/14 16/15 15/16 +f 12/26 11/27 10/28 9/25 +f 13/13 14/14 15/15 16/16 \ No newline at end of file diff --git a/resources/quality/tank_m_base_global_draft.inst.cfg b/resources/quality/tank_m_base_global_draft.inst.cfg new file mode 100644 index 0000000000..cd5d1a23c0 --- /dev/null +++ b/resources/quality/tank_m_base_global_draft.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Draft Quality +definition = tank_m_base + +[metadata] +setting_version = 20 +type = quality +quality_type = draft +global_quality = True + +[values] +layer_height = 0.24 +layer_height_0 = 0.24 +top_bottom_thickness = =layer_height_0+layer_height*3 +wall_thickness = =line_width*2 +support_interface_height = =layer_height*4 diff --git a/resources/quality/tank_m_base_global_high.inst.cfg b/resources/quality/tank_m_base_global_high.inst.cfg new file mode 100644 index 0000000000..26af4239b1 --- /dev/null +++ b/resources/quality/tank_m_base_global_high.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Super Quality +definition = tank_m_base + +[metadata] +setting_version = 20 +type = quality +quality_type = high +weight = -1 +global_quality = True + +[values] +layer_height = 0.12 +layer_height_0 = 0.12 +top_bottom_thickness = =layer_height_0+layer_height*6 +wall_thickness = =line_width*3 +support_interface_height = =layer_height*8 diff --git a/resources/quality/tank_m_base_global_standard.inst.cfg b/resources/quality/tank_m_base_global_standard.inst.cfg new file mode 100644 index 0000000000..eb7984c7ec --- /dev/null +++ b/resources/quality/tank_m_base_global_standard.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Standard Quality +definition = tank_m_base + +[metadata] +setting_version = 20 +type = quality +quality_type = standard +weight = -3 +global_quality = True + +[values] +layer_height = 0.2 +layer_height_0 = 0.2 +top_bottom_thickness = =layer_height_0+layer_height*3 +wall_thickness = =line_width*2 +support_interface_height = =layer_height*4 From 2d3ad84167236aea48e9a92ab72073d4736a792d Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 5 Sep 2022 14:26:11 +0200 Subject: [PATCH 46/70] Fix extruders enabled button not updating The `numberExtrudersEnabled` property was never updated, as such the checks if the property changed based on the new value being different from this value didn't work. CURA-8463 --- cura/Settings/MachineManager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index d091ab9f6f..ca45cdc4b9 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -904,7 +904,7 @@ class MachineManager(QObject): if self._global_container_stack is None \ or self._global_container_stack.getProperty(setting_key, "value") == new_value \ - or self.numberExtrudersEnabled < 2: + or self._global_container_stack.definitionChanges.getProperty("extruders_enabled_count", "value") < 2: return user_changes_container = self._global_container_stack.userChanges @@ -1009,7 +1009,7 @@ class MachineManager(QObject): for position, extruder in enumerate(self._global_container_stack.extruderList): if extruder.isEnabled and int(position) < machine_extruder_count: extruder_count += 1 - if self.numberExtrudersEnabled != extruder_count: + if self._global_container_stack.definitionChanges.getProperty("extruders_enabled_count", "value") != extruder_count: definition_changes_container.setProperty("extruders_enabled_count", "value", extruder_count) self.numberExtrudersEnabledChanged.emit() From b6a461bd08d0e5f5a471586e1e1212e0187439f6 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 5 Sep 2022 17:32:23 +0200 Subject: [PATCH 47/70] Revert "Prevent abstract machines from being deleted in the config menu" This reverts commit 27fc11b8404ed84a9b95b2fdddab239d2cd3c93b. --- cura/Machines/Models/GlobalStacksModel.py | 3 +-- resources/qml/Preferences/MachinesPage.qml | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/cura/Machines/Models/GlobalStacksModel.py b/cura/Machines/Models/GlobalStacksModel.py index 62b470daee..69f2ec3822 100644 --- a/cura/Machines/Models/GlobalStacksModel.py +++ b/cura/Machines/Models/GlobalStacksModel.py @@ -172,7 +172,6 @@ class GlobalStacksModel(ListModel): "metadata": container_stack.getMetaData().copy(), "discoverySource": section_name, "removalWarning": removal_warning, - "isOnline": is_online, - "isAbstractMachine": is_abstract_machine}) + "isOnline": is_online}) items.sort(key=lambda i: (not i["hasRemoteConnection"], i["name"])) self.setItems(items) diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index 16f144cf85..258b45292e 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -17,7 +17,7 @@ UM.ManagementPage title: catalog.i18nc("@title:tab", "Printers") detailsPlaneCaption: base.currentItem && base.currentItem.name ? base.currentItem.name : "" - model: Cura.GlobalStacksModel { } + model: Cura.GlobalStacksModel { filterAbstractMachines: false } sectionRole: "discoverySource" @@ -139,7 +139,7 @@ UM.ManagementPage Cura.MenuItem { text: catalog.i18nc("@action:button", "Remove") - enabled: base.currentItem != null && model.count > 1 && !base.currentItem.isAbstractMachine + enabled: base.currentItem != null && model.count > 1 onTriggered: confirmDialog.open() } Cura.MenuItem From f30fd519b74351bf090310e4358a2d54659b58db Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Mon, 5 Sep 2022 19:37:34 +0200 Subject: [PATCH 48/70] PrintInformation.py Use warning method with Logger Use f-string and warning method with Logger instead of "Old Style string formatting --- cura/UI/PrintInformation.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/UI/PrintInformation.py b/cura/UI/PrintInformation.py index 2b8e13b09f..e16037c603 100644 --- a/cura/UI/PrintInformation.py +++ b/cura/UI/PrintInformation.py @@ -186,7 +186,7 @@ class PrintInformation(QObject): if time != time: # Check for NaN. Engine can sometimes give us weird values. duration.setDuration(0) - Logger.log("w", "Received NaN for print duration message") + Logger.warning("Received NaN for print duration message") continue total_estimated_time += time @@ -368,7 +368,7 @@ class PrintInformation(QObject): mime_type = MimeTypeDatabase.getMimeTypeForFile(name) data = mime_type.stripExtension(name) except MimeTypeNotFoundError: - Logger.log("w", "Unsupported Mime Type Database file extension %s", name) + Logger.warning(f"Unsupported Mime Type Database file extension {name}") if data is not None and check_name is not None: self._base_name = data From 699a9c053062a3835f4ea88b6b8086258a2b8eed Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Sep 2022 10:13:45 +0200 Subject: [PATCH 49/70] Remove unneeded excluded materials These machines are 1.75mm, so there is no need to add the UM materials as excluded --- resources/definitions/alya3dp.def.json | 2 +- resources/definitions/alyanx3dp.def.json | 2 +- resources/definitions/artillery_base.def.json | 49 ---------- .../atmat_signal_pro_base.def.json | 98 ------------------- resources/definitions/creality_base.def.json | 49 ---------- .../definitions/flyingbear_base.def.json | 49 ---------- .../imade3d_jellybox_root.def.json | 49 ---------- resources/definitions/kupido.def.json | 2 +- resources/definitions/mingda_base.def.json | 49 ---------- resources/definitions/rigid3d_base.def.json | 10 -- resources/definitions/rigid3d_hobby.def.json | 49 ---------- resources/definitions/rigid3d_mucit.def.json | 49 ---------- resources/definitions/rigid3d_zero.def.json | 49 ---------- resources/definitions/tizyx_evy.def.json | 2 +- resources/definitions/tizyx_k25.def.json | 2 +- .../definitions/trimaker_cosmosII.def.json | 49 ---------- .../definitions/trimaker_nebula.def.json | 49 ---------- resources/definitions/uni_base.def.json | 49 ---------- resources/definitions/voron2_base.def.json | 52 +--------- resources/definitions/zav_base.def.json | 57 +---------- 20 files changed, 10 insertions(+), 756 deletions(-) diff --git a/resources/definitions/alya3dp.def.json b/resources/definitions/alya3dp.def.json index f335285cfb..4b800226cf 100644 --- a/resources/definitions/alya3dp.def.json +++ b/resources/definitions/alya3dp.def.json @@ -10,7 +10,7 @@ "file_formats": "text/x-gcode", "platform": "alya_platform.3mf", "platform_offset": [-60, -45, 75 ], - "exclude_materials": ["chromatik_pla", "dsm_arnitel2045_175", "dsm_novamid1070_175", "fabtotum_abs", "fabtotum_nylon", "fabtotum_pla", "fabtotum_tpu", "fiberlogy_hd_pla", "filo3d_pla", "filo3d_pla_green", "filo3d_pla_red", "generic_abs", "generic_abs_175", "generic_bam", "generic_cpe", "generic_cpe_175", "generic_cpe_plus", "generic_hips", "generic_hips_175", "generic_nylon", "generic_nylon_175", "generic_pc", "generic_pc_175", "generic_petg", "generic_petg_175", "generic_pp", "generic_pva", "generic_pva_175", "generic_tough_pla", "generic_tpu", "generic_tpu_175", "imade3d_petg_green", "imade3d_petg_pink", "imade3d_pla_green", "imade3d_pla_pink", "innofill_innoflex60_175", "octofiber_pla", "polyflex_pla", "polymax_pla", "polyplus_pla", "polywood_pla", "ultimaker_abs_black", "ultimaker_abs_blue", "ultimaker_abs_green", "ultimaker_abs_grey", "ultimaker_abs_orange", "ultimaker_abs_pearl-gold", "ultimaker_abs_red", "ultimaker_abs_silver-metallic", "ultimaker_abs_white", "ultimaker_abs_yellow", "ultimaker_bam", "ultimaker_cpe_black", "ultimaker_cpe_blue", "ultimaker_cpe_dark-grey", "ultimaker_cpe_green", "ultimaker_cpe_light-grey", "ultimaker_cpe_plus_black", "ultimaker_cpe_plus_transparent", "ultimaker_cpe_plus_white", "ultimaker_cpe_red", "ultimaker_cpe_transparent", "ultimaker_cpe_white", "ultimaker_cpe_yellow", "ultimaker_nylon_black", "ultimaker_nylon_transparent", "ultimaker_pc_black", "ultimaker_pc_transparent", "ultimaker_pc_white", "ultimaker_pla_black", "ultimaker_pla_blue", "ultimaker_pla_green", "ultimaker_pla_magenta", "ultimaker_pla_orange", "ultimaker_pla_pearl-white", "ultimaker_pla_red", "ultimaker_pla_silver-metallic", "ultimaker_pla_transparent", "ultimaker_pla_white", "ultimaker_pla_yellow", "ultimaker_pp_transparent", "ultimaker_pva", "ultimaker_tough_pla_black", "ultimaker_tough_pla_green", "ultimaker_tough_pla_red", "ultimaker_tough_pla_white", "ultimaker_tpu_black", "ultimaker_tpu_blue", "ultimaker_tpu_red", "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", "Vertex_Delta_PLA", "Vertex_Delta_TPU", "zyyx_pro_flex", "zyyx_pro_pla","tizyx_pla","tizyx_abs","tizyx_pla_bois" ], + "exclude_materials": ["chromatik_pla", "dsm_arnitel2045_175", "dsm_novamid1070_175", "fabtotum_abs", "fabtotum_nylon", "fabtotum_pla", "fabtotum_tpu", "fiberlogy_hd_pla", "filo3d_pla", "filo3d_pla_green", "filo3d_pla_red", "generic_abs", "generic_abs_175", "generic_bam", "generic_cpe", "generic_cpe_175", "generic_cpe_plus", "generic_hips", "generic_hips_175", "generic_nylon", "generic_nylon_175", "generic_pc", "generic_pc_175", "generic_petg", "generic_petg_175", "generic_pp", "generic_pva", "generic_pva_175", "generic_tough_pla", "generic_tpu", "generic_tpu_175", "imade3d_petg_green", "imade3d_petg_pink", "imade3d_pla_green", "imade3d_pla_pink", "innofill_innoflex60_175", "octofiber_pla", "polyflex_pla", "polymax_pla", "polyplus_pla", "polywood_pla", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", "Vertex_Delta_PLA", "Vertex_Delta_TPU", "zyyx_pro_flex", "zyyx_pro_pla","tizyx_pla","tizyx_abs","tizyx_pla_bois" ], "preferred_material": "generic_pla", "has_machine_quality": true, "has_materials": true, diff --git a/resources/definitions/alyanx3dp.def.json b/resources/definitions/alyanx3dp.def.json index 76ce87445b..509f252488 100644 --- a/resources/definitions/alyanx3dp.def.json +++ b/resources/definitions/alyanx3dp.def.json @@ -10,7 +10,7 @@ "file_formats": "text/x-gcode", "platform": "alya_nx_platform.3mf", "platform_offset": [-104, 0, 93 ], - "exclude_materials": ["chromatik_pla", "dsm_arnitel2045_175", "dsm_novamid1070_175", "fabtotum_abs", "fabtotum_nylon", "fabtotum_pla", "fabtotum_tpu", "fiberlogy_hd_pla", "filo3d_pla", "filo3d_pla_green", "filo3d_pla_red", "generic_abs", "generic_abs_175", "generic_bam", "generic_cpe", "generic_cpe_175", "generic_cpe_plus", "generic_hips", "generic_hips_175", "generic_nylon", "generic_nylon_175", "generic_pc", "generic_pc_175", "generic_petg", "generic_petg_175", "generic_pp", "generic_pva", "generic_pva_175", "generic_tough_pla", "generic_tpu", "generic_tpu_175", "imade3d_petg_green", "imade3d_petg_pink", "imade3d_pla_green", "imade3d_pla_pink", "innofill_innoflex60_175", "octofiber_pla", "polyflex_pla", "polymax_pla", "polyplus_pla", "polywood_pla", "ultimaker_abs_black", "ultimaker_abs_blue", "ultimaker_abs_green", "ultimaker_abs_grey", "ultimaker_abs_orange", "ultimaker_abs_pearl-gold", "ultimaker_abs_red", "ultimaker_abs_silver-metallic", "ultimaker_abs_white", "ultimaker_abs_yellow", "ultimaker_bam", "ultimaker_cpe_black", "ultimaker_cpe_blue", "ultimaker_cpe_dark-grey", "ultimaker_cpe_green", "ultimaker_cpe_light-grey", "ultimaker_cpe_plus_black", "ultimaker_cpe_plus_transparent", "ultimaker_cpe_plus_white", "ultimaker_cpe_red", "ultimaker_cpe_transparent", "ultimaker_cpe_white", "ultimaker_cpe_yellow", "ultimaker_nylon_black", "ultimaker_nylon_transparent", "ultimaker_pc_black", "ultimaker_pc_transparent", "ultimaker_pc_white", "ultimaker_pla_black", "ultimaker_pla_blue", "ultimaker_pla_green", "ultimaker_pla_magenta", "ultimaker_pla_orange", "ultimaker_pla_pearl-white", "ultimaker_pla_red", "ultimaker_pla_silver-metallic", "ultimaker_pla_transparent", "ultimaker_pla_white", "ultimaker_pla_yellow", "ultimaker_pp_transparent", "ultimaker_pva", "ultimaker_tough_pla_black", "ultimaker_tough_pla_green", "ultimaker_tough_pla_red", "ultimaker_tough_pla_white", "ultimaker_tpu_black", "ultimaker_tpu_blue", "ultimaker_tpu_red", "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", "Vertex_Delta_PLA", "Vertex_Delta_TPU", "zyyx_pro_flex", "zyyx_pro_pla","tizyx_pla","tizyx_abs","tizyx_pla_bois" ], + "exclude_materials": ["chromatik_pla", "dsm_arnitel2045_175", "dsm_novamid1070_175", "fabtotum_abs", "fabtotum_nylon", "fabtotum_pla", "fabtotum_tpu", "fiberlogy_hd_pla", "filo3d_pla", "filo3d_pla_green", "filo3d_pla_red", "generic_abs", "generic_abs_175", "generic_bam", "generic_cpe", "generic_cpe_175", "generic_cpe_plus", "generic_hips", "generic_hips_175", "generic_nylon", "generic_nylon_175", "generic_pc", "generic_pc_175", "generic_petg", "generic_petg_175", "generic_pp", "generic_pva", "generic_pva_175", "generic_tough_pla", "generic_tpu", "generic_tpu_175", "imade3d_petg_green", "imade3d_petg_pink", "imade3d_pla_green", "imade3d_pla_pink", "innofill_innoflex60_175", "octofiber_pla", "polyflex_pla", "polymax_pla", "polyplus_pla", "polywood_pla", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", "Vertex_Delta_PLA", "Vertex_Delta_TPU", "zyyx_pro_flex", "zyyx_pro_pla","tizyx_pla","tizyx_abs","tizyx_pla_bois" ], "preferred_material": "generic_pla", "has_machine_quality": true, "has_materials": true, diff --git a/resources/definitions/artillery_base.def.json b/resources/definitions/artillery_base.def.json index eabe97ba03..1dd22d9f5f 100644 --- a/resources/definitions/artillery_base.def.json +++ b/resources/definitions/artillery_base.def.json @@ -64,55 +64,6 @@ "tizyx_abs", "tizyx_pla", "tizyx_pla_bois", - "ultimaker_abs_black", - "ultimaker_abs_blue", - "ultimaker_abs_green", - "ultimaker_abs_grey", - "ultimaker_abs_orange", - "ultimaker_abs_pearl-gold", - "ultimaker_abs_red", - "ultimaker_abs_silver-metallic", - "ultimaker_abs_white", - "ultimaker_abs_yellow", - "ultimaker_bam", - "ultimaker_cpe_black", - "ultimaker_cpe_blue", - "ultimaker_cpe_dark-grey", - "ultimaker_cpe_green", - "ultimaker_cpe_light-grey", - "ultimaker_cpe_plus_black", - "ultimaker_cpe_plus_transparent", - "ultimaker_cpe_plus_white", - "ultimaker_cpe_red", - "ultimaker_cpe_transparent", - "ultimaker_cpe_white", - "ultimaker_cpe_yellow", - "ultimaker_nylon_black", - "ultimaker_nylon_transparent", - "ultimaker_pc_black", - "ultimaker_pc_transparent", - "ultimaker_pc_white", - "ultimaker_pla_black", - "ultimaker_pla_blue", - "ultimaker_pla_green", - "ultimaker_pla_magenta", - "ultimaker_pla_orange", - "ultimaker_pla_pearl-white", - "ultimaker_pla_red", - "ultimaker_pla_silver-metallic", - "ultimaker_pla_transparent", - "ultimaker_pla_white", - "ultimaker_pla_yellow", - "ultimaker_pp_transparent", - "ultimaker_pva", - "ultimaker_tough_pla_black", - "ultimaker_tough_pla_green", - "ultimaker_tough_pla_red", - "ultimaker_tough_pla_white", - "ultimaker_tpu_black", - "ultimaker_tpu_blue", - "ultimaker_tpu_red", - "ultimaker_tpu_white", "verbatim_bvoh_175", "zyyx_pro_flex", "zyyx_pro_pla" diff --git a/resources/definitions/atmat_signal_pro_base.def.json b/resources/definitions/atmat_signal_pro_base.def.json index 0d1c5a75c2..d92ea5c468 100644 --- a/resources/definitions/atmat_signal_pro_base.def.json +++ b/resources/definitions/atmat_signal_pro_base.def.json @@ -23,55 +23,6 @@ "supports_usb_connection": false, "supports_network_connection": false, "exclude_materials": [ - "ultimaker_abs_black", - "ultimaker_abs_blue", - "ultimaker_abs_green", - "ultimaker_abs_grey", - "ultimaker_abs_orange", - "ultimaker_abs_pearl-gold", - "ultimaker_abs_red", - "ultimaker_abs_silver-metallic", - "ultimaker_abs_white", - "ultimaker_abs_yellow", - "ultimaker_bam", - "ultimaker_cpe_black", - "ultimaker_cpe_blue", - "ultimaker_cpe_dark-grey", - "ultimaker_cpe_green", - "ultimaker_cpe_light-grey", - "ultimaker_cpe_plus_black", - "ultimaker_cpe_plus_transparent", - "ultimaker_cpe_plus_white", - "ultimaker_cpe_red", - "ultimaker_cpe_transparent", - "ultimaker_cpe_white", - "ultimaker_cpe_yellow", - "ultimaker_nylon_black", - "ultimaker_nylon_transparent", - "ultimaker_pc_black", - "ultimaker_pc_transparent", - "ultimaker_pc_white", - "ultimaker_pla_black", - "ultimaker_pla_blue", - "ultimaker_pla_green", - "ultimaker_pla_magenta", - "ultimaker_pla_orange", - "ultimaker_pla_pearl-white", - "ultimaker_pla_red", - "ultimaker_pla_silver-metallic", - "ultimaker_pla_transparent", - "ultimaker_pla_white", - "ultimaker_pla_yellow", - "ultimaker_pp_transparent", - "ultimaker_pva", - "ultimaker_tough_pla_black", - "ultimaker_tough_pla_green", - "ultimaker_tough_pla_red", - "ultimaker_tough_pla_white", - "ultimaker_tpu_black", - "ultimaker_tpu_blue", - "ultimaker_tpu_red", - "ultimaker_tpu_white", "chromatik_pla", "dsm_arnitel2045_175", "dsm_novamid1070_175", @@ -128,55 +79,6 @@ "tizyx_pla", "tizyx_pla_bois", "tizyx_pva", - "ultimaker_abs_black", - "ultimaker_abs_blue", - "ultimaker_abs_green", - "ultimaker_abs_grey", - "ultimaker_abs_orange", - "ultimaker_abs_pearl-gold", - "ultimaker_abs_red", - "ultimaker_abs_silver-metallic", - "ultimaker_abs_white", - "ultimaker_abs_yellow", - "ultimaker_bam", - "ultimaker_cpe_black", - "ultimaker_cpe_blue", - "ultimaker_cpe_dark-grey", - "ultimaker_cpe_green", - "ultimaker_cpe_light-grey", - "ultimaker_cpe_plus_black", - "ultimaker_cpe_plus_transparent", - "ultimaker_cpe_plus_white", - "ultimaker_cpe_red", - "ultimaker_cpe_transparent", - "ultimaker_cpe_white", - "ultimaker_cpe_yellow", - "ultimaker_nylon_black", - "ultimaker_nylon_transparent", - "ultimaker_pc_black", - "ultimaker_pc_transparent", - "ultimaker_pc_white", - "ultimaker_pla_black", - "ultimaker_pla_blue", - "ultimaker_pla_green", - "ultimaker_pla_magenta", - "ultimaker_pla_orange", - "ultimaker_pla_pearl-white", - "ultimaker_pla_red", - "ultimaker_pla_silver-metallic", - "ultimaker_pla_transparent", - "ultimaker_pla_white", - "ultimaker_pla_yellow", - "ultimaker_pp_transparent", - "ultimaker_pva", - "ultimaker_tough_pla_black", - "ultimaker_tough_pla_green", - "ultimaker_tough_pla_red", - "ultimaker_tough_pla_white", - "ultimaker_tpu_black", - "ultimaker_tpu_blue", - "ultimaker_tpu_red", - "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", diff --git a/resources/definitions/creality_base.def.json b/resources/definitions/creality_base.def.json index 4d2391f959..9d1c578f81 100644 --- a/resources/definitions/creality_base.def.json +++ b/resources/definitions/creality_base.def.json @@ -68,55 +68,6 @@ "tizyx_abs", "tizyx_pla", "tizyx_pla_bois", - "ultimaker_abs_black", - "ultimaker_abs_blue", - "ultimaker_abs_green", - "ultimaker_abs_grey", - "ultimaker_abs_orange", - "ultimaker_abs_pearl-gold", - "ultimaker_abs_red", - "ultimaker_abs_silver-metallic", - "ultimaker_abs_white", - "ultimaker_abs_yellow", - "ultimaker_bam", - "ultimaker_cpe_black", - "ultimaker_cpe_blue", - "ultimaker_cpe_dark-grey", - "ultimaker_cpe_green", - "ultimaker_cpe_light-grey", - "ultimaker_cpe_plus_black", - "ultimaker_cpe_plus_transparent", - "ultimaker_cpe_plus_white", - "ultimaker_cpe_red", - "ultimaker_cpe_transparent", - "ultimaker_cpe_white", - "ultimaker_cpe_yellow", - "ultimaker_nylon_black", - "ultimaker_nylon_transparent", - "ultimaker_pc_black", - "ultimaker_pc_transparent", - "ultimaker_pc_white", - "ultimaker_pla_black", - "ultimaker_pla_blue", - "ultimaker_pla_green", - "ultimaker_pla_magenta", - "ultimaker_pla_orange", - "ultimaker_pla_pearl-white", - "ultimaker_pla_red", - "ultimaker_pla_silver-metallic", - "ultimaker_pla_transparent", - "ultimaker_pla_white", - "ultimaker_pla_yellow", - "ultimaker_pp_transparent", - "ultimaker_pva", - "ultimaker_tough_pla_black", - "ultimaker_tough_pla_green", - "ultimaker_tough_pla_red", - "ultimaker_tough_pla_white", - "ultimaker_tpu_black", - "ultimaker_tpu_blue", - "ultimaker_tpu_red", - "ultimaker_tpu_white", "verbatim_bvoh_175", "zyyx_pro_flex", "zyyx_pro_pla" diff --git a/resources/definitions/flyingbear_base.def.json b/resources/definitions/flyingbear_base.def.json index 89da5ecf70..9dc406494e 100644 --- a/resources/definitions/flyingbear_base.def.json +++ b/resources/definitions/flyingbear_base.def.json @@ -88,55 +88,6 @@ "tizyx_pla", "tizyx_pla_bois", "tizyx_pva", - "ultimaker_abs_black", - "ultimaker_abs_blue", - "ultimaker_abs_green", - "ultimaker_abs_grey", - "ultimaker_abs_orange", - "ultimaker_abs_pearl-gold", - "ultimaker_abs_red", - "ultimaker_abs_silver-metallic", - "ultimaker_abs_white", - "ultimaker_abs_yellow", - "ultimaker_bam", - "ultimaker_cpe_black", - "ultimaker_cpe_blue", - "ultimaker_cpe_dark-grey", - "ultimaker_cpe_green", - "ultimaker_cpe_light-grey", - "ultimaker_cpe_plus_black", - "ultimaker_cpe_plus_transparent", - "ultimaker_cpe_plus_white", - "ultimaker_cpe_red", - "ultimaker_cpe_transparent", - "ultimaker_cpe_white", - "ultimaker_cpe_yellow", - "ultimaker_nylon_black", - "ultimaker_nylon_transparent", - "ultimaker_pc_black", - "ultimaker_pc_transparent", - "ultimaker_pc_white", - "ultimaker_pla_black", - "ultimaker_pla_blue", - "ultimaker_pla_green", - "ultimaker_pla_magenta", - "ultimaker_pla_orange", - "ultimaker_pla_pearl-white", - "ultimaker_pla_red", - "ultimaker_pla_silver-metallic", - "ultimaker_pla_transparent", - "ultimaker_pla_white", - "ultimaker_pla_yellow", - "ultimaker_pp_transparent", - "ultimaker_pva", - "ultimaker_tough_pla_black", - "ultimaker_tough_pla_green", - "ultimaker_tough_pla_red", - "ultimaker_tough_pla_white", - "ultimaker_tpu_black", - "ultimaker_tpu_blue", - "ultimaker_tpu_red", - "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", diff --git a/resources/definitions/imade3d_jellybox_root.def.json b/resources/definitions/imade3d_jellybox_root.def.json index 5de6d9dae1..6d5025d56a 100644 --- a/resources/definitions/imade3d_jellybox_root.def.json +++ b/resources/definitions/imade3d_jellybox_root.def.json @@ -53,55 +53,6 @@ "tizyx_abs", "tizyx_pla_bois", "tizyx_pla", - "ultimaker_abs_black", - "ultimaker_abs_blue", - "ultimaker_abs_green", - "ultimaker_abs_grey", - "ultimaker_abs_orange", - "ultimaker_abs_pearl-gold", - "ultimaker_abs_red", - "ultimaker_abs_silver-metallic", - "ultimaker_abs_white", - "ultimaker_abs_yellow", - "ultimaker_bam", - "ultimaker_cpe_black", - "ultimaker_cpe_blue", - "ultimaker_cpe_dark-grey", - "ultimaker_cpe_green", - "ultimaker_cpe_light-grey", - "ultimaker_cpe_plus_black", - "ultimaker_cpe_plus_transparent", - "ultimaker_cpe_plus_white", - "ultimaker_cpe_red", - "ultimaker_cpe_transparent", - "ultimaker_cpe_white", - "ultimaker_cpe_yellow", - "ultimaker_nylon_black", - "ultimaker_nylon_transparent", - "ultimaker_pc_black", - "ultimaker_pc_transparent", - "ultimaker_pc_white", - "ultimaker_pla_black", - "ultimaker_pla_blue", - "ultimaker_pla_green", - "ultimaker_pla_magenta", - "ultimaker_pla_orange", - "ultimaker_pla_pearl-white", - "ultimaker_pla_red", - "ultimaker_pla_silver-metallic", - "ultimaker_pla_transparent", - "ultimaker_pla_white", - "ultimaker_pla_yellow", - "ultimaker_pp_transparent", - "ultimaker_pva", - "ultimaker_tough_pla_black", - "ultimaker_tough_pla_green", - "ultimaker_tough_pla_red", - "ultimaker_tough_pla_white", - "ultimaker_tpu_black", - "ultimaker_tpu_blue", - "ultimaker_tpu_red", - "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", diff --git a/resources/definitions/kupido.def.json b/resources/definitions/kupido.def.json index 717c85f93b..667f25a1c4 100644 --- a/resources/definitions/kupido.def.json +++ b/resources/definitions/kupido.def.json @@ -9,7 +9,7 @@ "manufacturer": "Kati Hal ARGE", "file_formats": "text/x-gcode", "platform_offset": [ 0, 0, 0], - "exclude_materials": ["chromatik_pla", "dsm_arnitel2045_175", "dsm_novamid1070_175", "fabtotum_abs", "fabtotum_nylon", "fabtotum_pla", "fabtotum_tpu", "fiberlogy_hd_pla", "filo3d_pla", "filo3d_pla_green", "filo3d_pla_red", "generic_bam", "generic_cpe", "generic_cpe_175", "generic_cpe_plus", "generic_hips", "generic_hips_175", "generic_nylon", "generic_nylon_175", "generic_pc", "generic_pc_175", "generic_petg", "generic_petg_175", "generic_pp", "generic_pva", "generic_pva_175", "generic_tough_pla", "generic_tpu", "generic_tpu_175", "imade3d_petg_green", "imade3d_petg_pink", "imade3d_pla_green", "imade3d_pla_pink", "innofill_innoflex60_175", "octofiber_pla", "polyflex_pla", "polymax_pla", "polyplus_pla", "polywood_pla", "ultimaker_abs_black", "ultimaker_abs_blue", "ultimaker_abs_green", "ultimaker_abs_grey", "ultimaker_abs_orange", "ultimaker_abs_pearl-gold", "ultimaker_abs_red", "ultimaker_abs_silver-metallic", "ultimaker_abs_white", "ultimaker_abs_yellow", "ultimaker_bam", "ultimaker_cpe_black", "ultimaker_cpe_blue", "ultimaker_cpe_dark-grey", "ultimaker_cpe_green", "ultimaker_cpe_light-grey", "ultimaker_cpe_plus_black", "ultimaker_cpe_plus_transparent", "ultimaker_cpe_plus_white", "ultimaker_cpe_red", "ultimaker_cpe_transparent", "ultimaker_cpe_white", "ultimaker_cpe_yellow", "ultimaker_nylon_black", "ultimaker_nylon_transparent", "ultimaker_pc_black", "ultimaker_pc_transparent", "ultimaker_pc_white", "ultimaker_pla_black", "ultimaker_pla_blue", "ultimaker_pla_green", "ultimaker_pla_magenta", "ultimaker_pla_orange", "ultimaker_pla_pearl-white", "ultimaker_pla_red", "ultimaker_pla_silver-metallic", "ultimaker_pla_transparent", "ultimaker_pla_white", "ultimaker_pla_yellow", "ultimaker_pp_transparent", "ultimaker_pva", "ultimaker_tough_pla_black", "ultimaker_tough_pla_green", "ultimaker_tough_pla_red", "ultimaker_tough_pla_white", "ultimaker_tpu_black", "ultimaker_tpu_blue", "ultimaker_tpu_red", "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", "Vertex_Delta_PLA", "Vertex_Delta_TPU", "zyyx_pro_flex", "zyyx_pro_pla","tizyx_pla","tizyx_abs","tizyx_pla_bois" ], + "exclude_materials": ["chromatik_pla", "dsm_arnitel2045_175", "dsm_novamid1070_175", "fabtotum_abs", "fabtotum_nylon", "fabtotum_pla", "fabtotum_tpu", "fiberlogy_hd_pla", "filo3d_pla", "filo3d_pla_green", "filo3d_pla_red", "generic_bam", "generic_cpe", "generic_cpe_175", "generic_cpe_plus", "generic_hips", "generic_hips_175", "generic_nylon", "generic_nylon_175", "generic_pc", "generic_pc_175", "generic_petg", "generic_petg_175", "generic_pp", "generic_pva", "generic_pva_175", "generic_tough_pla", "generic_tpu", "generic_tpu_175", "imade3d_petg_green", "imade3d_petg_pink", "imade3d_pla_green", "imade3d_pla_pink", "innofill_innoflex60_175", "octofiber_pla", "polyflex_pla", "polymax_pla", "polyplus_pla", "polywood_pla", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", "Vertex_Delta_PLA", "Vertex_Delta_TPU", "zyyx_pro_flex", "zyyx_pro_pla","tizyx_pla","tizyx_abs","tizyx_pla_bois" ], "preferred_material": "generic_pla", "has_machine_quality": true, "has_materials": true, diff --git a/resources/definitions/mingda_base.def.json b/resources/definitions/mingda_base.def.json index f59a26fc1a..ce80fda7c4 100644 --- a/resources/definitions/mingda_base.def.json +++ b/resources/definitions/mingda_base.def.json @@ -64,55 +64,6 @@ "tizyx_abs", "tizyx_pla", "tizyx_pla_bois", - "ultimaker_abs_black", - "ultimaker_abs_blue", - "ultimaker_abs_green", - "ultimaker_abs_grey", - "ultimaker_abs_orange", - "ultimaker_abs_pearl-gold", - "ultimaker_abs_red", - "ultimaker_abs_silver-metallic", - "ultimaker_abs_white", - "ultimaker_abs_yellow", - "ultimaker_bam", - "ultimaker_cpe_black", - "ultimaker_cpe_blue", - "ultimaker_cpe_dark-grey", - "ultimaker_cpe_green", - "ultimaker_cpe_light-grey", - "ultimaker_cpe_plus_black", - "ultimaker_cpe_plus_transparent", - "ultimaker_cpe_plus_white", - "ultimaker_cpe_red", - "ultimaker_cpe_transparent", - "ultimaker_cpe_white", - "ultimaker_cpe_yellow", - "ultimaker_nylon_black", - "ultimaker_nylon_transparent", - "ultimaker_pc_black", - "ultimaker_pc_transparent", - "ultimaker_pc_white", - "ultimaker_pla_black", - "ultimaker_pla_blue", - "ultimaker_pla_green", - "ultimaker_pla_magenta", - "ultimaker_pla_orange", - "ultimaker_pla_pearl-white", - "ultimaker_pla_red", - "ultimaker_pla_silver-metallic", - "ultimaker_pla_transparent", - "ultimaker_pla_white", - "ultimaker_pla_yellow", - "ultimaker_pp_transparent", - "ultimaker_pva", - "ultimaker_tough_pla_black", - "ultimaker_tough_pla_green", - "ultimaker_tough_pla_red", - "ultimaker_tough_pla_white", - "ultimaker_tpu_black", - "ultimaker_tpu_blue", - "ultimaker_tpu_red", - "ultimaker_tpu_white", "verbatim_bvoh_175", "zyyx_pro_flex", "zyyx_pro_pla" diff --git a/resources/definitions/rigid3d_base.def.json b/resources/definitions/rigid3d_base.def.json index bd1995f3dc..8d180872d6 100644 --- a/resources/definitions/rigid3d_base.def.json +++ b/resources/definitions/rigid3d_base.def.json @@ -50,16 +50,6 @@ "redd_abs", "redd_asa", "redd_hips", "redd_nylon", "redd_petg", "redd_pla", "redd_tpe", "structur3d_dap100silicone", "tizyx_abs", "tizyx_flex", "tizyx_petg", "tizyx_pla", "tizyx_pla_bois", "tizyx_pva", - "ultimaker_abs_black", "ultimaker_abs_blue", "ultimaker_abs_green", "ultimaker_abs_grey", "ultimaker_abs_orange", "ultimaker_abs_pearl-gold", "ultimaker_abs_red", "ultimaker_abs_silver-metallic", "ultimaker_abs_white", "ultimaker_abs_yellow", - "ultimaker_bam", - "ultimaker_cpe_black", "ultimaker_cpe_blue", "ultimaker_cpe_dark-grey", "ultimaker_cpe_green", "ultimaker_cpe_light-grey", "ultimaker_cpe_plus_black", "ultimaker_cpe_plus_transparent", "ultimaker_cpe_plus_white", "ultimaker_cpe_red", "ultimaker_cpe_transparent", "ultimaker_cpe_white", "ultimaker_cpe_yellow", - "ultimaker_nylon_black", "ultimaker_nylon_transparent", - "ultimaker_pc_black", "ultimaker_pc_transparent", "ultimaker_pc_white", - "ultimaker_pla_black", "ultimaker_pla_blue", "ultimaker_pla_green", "ultimaker_pla_magenta", "ultimaker_pla_orange", "ultimaker_pla_pearl-white", "ultimaker_pla_red", "ultimaker_pla_silver-metallic", "ultimaker_pla_transparent", "ultimaker_pla_white", "ultimaker_pla_yellow", - "ultimaker_pp_transparent", - "ultimaker_pva", - "ultimaker_tough_pla_black", "ultimaker_tough_pla_green", "ultimaker_tough_pla_red", "ultimaker_tough_pla_white", - "ultimaker_tpu_black", "ultimaker_tpu_blue", "ultimaker_tpu_red", "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", "Vertex_Delta_PLA", "Vertex_Delta_PLA_Glitter", "Vertex_Delta_PLA_Mat", "Vertex_Delta_PLA_Satin", "Vertex_Delta_PLA_Wood", "Vertex_Delta_TPU", "zyyx_pro_flex", "zyyx_pro_pla" diff --git a/resources/definitions/rigid3d_hobby.def.json b/resources/definitions/rigid3d_hobby.def.json index 9e62173f1e..19a65f7e1a 100644 --- a/resources/definitions/rigid3d_hobby.def.json +++ b/resources/definitions/rigid3d_hobby.def.json @@ -72,55 +72,6 @@ "tizyx_pla", "tizyx_pla_bois", "tizyx_pva", - "ultimaker_abs_black", - "ultimaker_abs_blue", - "ultimaker_abs_green", - "ultimaker_abs_grey", - "ultimaker_abs_orange", - "ultimaker_abs_pearl-gold", - "ultimaker_abs_red", - "ultimaker_abs_silver-metallic", - "ultimaker_abs_white", - "ultimaker_abs_yellow", - "ultimaker_bam", - "ultimaker_cpe_black", - "ultimaker_cpe_blue", - "ultimaker_cpe_dark-grey", - "ultimaker_cpe_green", - "ultimaker_cpe_light-grey", - "ultimaker_cpe_plus_black", - "ultimaker_cpe_plus_transparent", - "ultimaker_cpe_plus_white", - "ultimaker_cpe_red", - "ultimaker_cpe_transparent", - "ultimaker_cpe_white", - "ultimaker_cpe_yellow", - "ultimaker_nylon_black", - "ultimaker_nylon_transparent", - "ultimaker_pc_black", - "ultimaker_pc_transparent", - "ultimaker_pc_white", - "ultimaker_pla_black", - "ultimaker_pla_blue", - "ultimaker_pla_green", - "ultimaker_pla_magenta", - "ultimaker_pla_orange", - "ultimaker_pla_pearl-white", - "ultimaker_pla_red", - "ultimaker_pla_silver-metallic", - "ultimaker_pla_transparent", - "ultimaker_pla_white", - "ultimaker_pla_yellow", - "ultimaker_pp_transparent", - "ultimaker_pva", - "ultimaker_tough_pla_black", - "ultimaker_tough_pla_green", - "ultimaker_tough_pla_red", - "ultimaker_tough_pla_white", - "ultimaker_tpu_black", - "ultimaker_tpu_blue", - "ultimaker_tpu_red", - "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", diff --git a/resources/definitions/rigid3d_mucit.def.json b/resources/definitions/rigid3d_mucit.def.json index 45255579eb..ad0d4c7463 100644 --- a/resources/definitions/rigid3d_mucit.def.json +++ b/resources/definitions/rigid3d_mucit.def.json @@ -74,55 +74,6 @@ "tizyx_pla", "tizyx_pla_bois", "tizyx_pva", - "ultimaker_abs_black", - "ultimaker_abs_blue", - "ultimaker_abs_green", - "ultimaker_abs_grey", - "ultimaker_abs_orange", - "ultimaker_abs_pearl-gold", - "ultimaker_abs_red", - "ultimaker_abs_silver-metallic", - "ultimaker_abs_white", - "ultimaker_abs_yellow", - "ultimaker_bam", - "ultimaker_cpe_black", - "ultimaker_cpe_blue", - "ultimaker_cpe_dark-grey", - "ultimaker_cpe_green", - "ultimaker_cpe_light-grey", - "ultimaker_cpe_plus_black", - "ultimaker_cpe_plus_transparent", - "ultimaker_cpe_plus_white", - "ultimaker_cpe_red", - "ultimaker_cpe_transparent", - "ultimaker_cpe_white", - "ultimaker_cpe_yellow", - "ultimaker_nylon_black", - "ultimaker_nylon_transparent", - "ultimaker_pc_black", - "ultimaker_pc_transparent", - "ultimaker_pc_white", - "ultimaker_pla_black", - "ultimaker_pla_blue", - "ultimaker_pla_green", - "ultimaker_pla_magenta", - "ultimaker_pla_orange", - "ultimaker_pla_pearl-white", - "ultimaker_pla_red", - "ultimaker_pla_silver-metallic", - "ultimaker_pla_transparent", - "ultimaker_pla_white", - "ultimaker_pla_yellow", - "ultimaker_pp_transparent", - "ultimaker_pva", - "ultimaker_tough_pla_black", - "ultimaker_tough_pla_green", - "ultimaker_tough_pla_red", - "ultimaker_tough_pla_white", - "ultimaker_tpu_black", - "ultimaker_tpu_blue", - "ultimaker_tpu_red", - "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", diff --git a/resources/definitions/rigid3d_zero.def.json b/resources/definitions/rigid3d_zero.def.json index 678f4bc80c..d4db4f1281 100644 --- a/resources/definitions/rigid3d_zero.def.json +++ b/resources/definitions/rigid3d_zero.def.json @@ -72,55 +72,6 @@ "tizyx_pla", "tizyx_pla_bois", "tizyx_pva", - "ultimaker_abs_black", - "ultimaker_abs_blue", - "ultimaker_abs_green", - "ultimaker_abs_grey", - "ultimaker_abs_orange", - "ultimaker_abs_pearl-gold", - "ultimaker_abs_red", - "ultimaker_abs_silver-metallic", - "ultimaker_abs_white", - "ultimaker_abs_yellow", - "ultimaker_bam", - "ultimaker_cpe_black", - "ultimaker_cpe_blue", - "ultimaker_cpe_dark-grey", - "ultimaker_cpe_green", - "ultimaker_cpe_light-grey", - "ultimaker_cpe_plus_black", - "ultimaker_cpe_plus_transparent", - "ultimaker_cpe_plus_white", - "ultimaker_cpe_red", - "ultimaker_cpe_transparent", - "ultimaker_cpe_white", - "ultimaker_cpe_yellow", - "ultimaker_nylon_black", - "ultimaker_nylon_transparent", - "ultimaker_pc_black", - "ultimaker_pc_transparent", - "ultimaker_pc_white", - "ultimaker_pla_black", - "ultimaker_pla_blue", - "ultimaker_pla_green", - "ultimaker_pla_magenta", - "ultimaker_pla_orange", - "ultimaker_pla_pearl-white", - "ultimaker_pla_red", - "ultimaker_pla_silver-metallic", - "ultimaker_pla_transparent", - "ultimaker_pla_white", - "ultimaker_pla_yellow", - "ultimaker_pp_transparent", - "ultimaker_pva", - "ultimaker_tough_pla_black", - "ultimaker_tough_pla_green", - "ultimaker_tough_pla_red", - "ultimaker_tough_pla_white", - "ultimaker_tpu_black", - "ultimaker_tpu_blue", - "ultimaker_tpu_red", - "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", diff --git a/resources/definitions/tizyx_evy.def.json b/resources/definitions/tizyx_evy.def.json index 5032ee16d7..5cbdba0de5 100644 --- a/resources/definitions/tizyx_evy.def.json +++ b/resources/definitions/tizyx_evy.def.json @@ -15,7 +15,7 @@ "preferred_variant_name": "0.4mm", "preferred_material": "tizyx_pla", "preferred_quality_type": "normal", - "exclude_materials": ["chromatik_pla", "dsm_arnitel2045_175", "dsm_novamid1070_175", "fabtotum_abs", "fabtotum_nylon", "fabtotum_pla", "fabtotum_tpu", "fiberlogy_hd_pla", "filo3d_pla", "filo3d_pla_green", "filo3d_pla_red", "generic_bam", "generic_cpe", "generic_cpe_175", "generic_cpe_plus", "generic_hips", "generic_hips_175", "generic_nylon", "generic_nylon_175", "generic_pc", "generic_pc_175","generic_pp", "generic_pva", "generic_pva_175", "generic_tpu", "generic_tpu_175", "imade3d_petg_green", "imade3d_petg_pink", "imade3d_pla_green", "imade3d_pla_pink", "innofill_innoflex60_175", "octofiber_pla", "polyflex_pla", "polymax_pla", "polyplus_pla", "polywood_pla", "ultimaker_abs_black", "ultimaker_abs_blue", "ultimaker_abs_green", "ultimaker_abs_grey", "ultimaker_abs_orange", "ultimaker_abs_pearl-gold", "ultimaker_abs_red", "ultimaker_abs_silver-metallic", "ultimaker_abs_white", "ultimaker_abs_yellow", "ultimaker_bam", "ultimaker_cpe_black", "ultimaker_cpe_blue", "ultimaker_cpe_dark-grey", "ultimaker_cpe_green", "ultimaker_cpe_light-grey", "ultimaker_cpe_plus_black", "ultimaker_cpe_plus_transparent", "ultimaker_cpe_plus_white", "ultimaker_cpe_red", "ultimaker_cpe_transparent", "ultimaker_cpe_white", "ultimaker_cpe_yellow", "ultimaker_nylon_black", "ultimaker_nylon_transparent", "ultimaker_pc_black", "ultimaker_pc_transparent", "ultimaker_pc_white", "ultimaker_pla_black", "ultimaker_pla_blue", "ultimaker_pla_green", "ultimaker_pla_magenta", "ultimaker_pla_orange", "ultimaker_pla_pearl-white", "ultimaker_pla_red", "ultimaker_pla_silver-metallic", "ultimaker_pla_transparent", "ultimaker_pla_white", "ultimaker_pla_yellow", "ultimaker_pp_transparent", "ultimaker_pva", "ultimaker_tough_pla_black", "ultimaker_tough_pla_green", "ultimaker_tough_pla_red", "ultimaker_tough_pla_white", "ultimaker_tpu_black", "ultimaker_tpu_blue", "ultimaker_tpu_red", "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", "Vertex_Delta_PLA", "Vertex_Delta_TPU", "zyyx_pro_flex", "zyyx_pro_pla" ], + "exclude_materials": ["chromatik_pla", "dsm_arnitel2045_175", "dsm_novamid1070_175", "fabtotum_abs", "fabtotum_nylon", "fabtotum_pla", "fabtotum_tpu", "fiberlogy_hd_pla", "filo3d_pla", "filo3d_pla_green", "filo3d_pla_red", "generic_bam", "generic_cpe", "generic_cpe_175", "generic_cpe_plus", "generic_hips", "generic_hips_175", "generic_nylon", "generic_nylon_175", "generic_pc", "generic_pc_175","generic_pp", "generic_pva", "generic_pva_175", "generic_tpu", "generic_tpu_175", "imade3d_petg_green", "imade3d_petg_pink", "imade3d_pla_green", "imade3d_pla_pink", "innofill_innoflex60_175", "octofiber_pla", "polyflex_pla", "polymax_pla", "polyplus_pla", "polywood_pla", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", "Vertex_Delta_PLA", "Vertex_Delta_TPU", "zyyx_pro_flex", "zyyx_pro_pla" ], "machine_extruder_trains": { diff --git a/resources/definitions/tizyx_k25.def.json b/resources/definitions/tizyx_k25.def.json index 9f65d67313..14a9d3e410 100644 --- a/resources/definitions/tizyx_k25.def.json +++ b/resources/definitions/tizyx_k25.def.json @@ -10,7 +10,7 @@ "file_formats": "text/x-gcode", "platform": "tizyx_k25_platform.3mf", "platform_offset": [0, -4, 0], - "exclude_materials": ["chromatik_pla", "dsm_arnitel2045_175", "dsm_novamid1070_175", "fabtotum_abs", "fabtotum_nylon", "fabtotum_pla", "fabtotum_tpu", "fiberlogy_hd_pla", "filo3d_pla", "filo3d_pla_green", "filo3d_pla_red", "generic_abs", "generic_abs_175", "generic_bam", "generic_cpe", "generic_cpe_175", "generic_cpe_plus", "generic_hips", "generic_hips_175", "generic_nylon", "generic_nylon_175", "generic_pc", "generic_pc_175", "generic_petg", "generic_petg_175", "generic_pla", "generic_pla_175", "generic_pp", "generic_pva", "generic_pva_175", "generic_tough_pla", "generic_tpu", "generic_tpu_175", "imade3d_petg_green", "imade3d_petg_pink", "imade3d_pla_green", "imade3d_pla_pink", "innofill_innoflex60_175", "octofiber_pla", "polyflex_pla", "polymax_pla", "polyplus_pla", "polywood_pla", "ultimaker_abs_black", "ultimaker_abs_blue", "ultimaker_abs_green", "ultimaker_abs_grey", "ultimaker_abs_orange", "ultimaker_abs_pearl-gold", "ultimaker_abs_red", "ultimaker_abs_silver-metallic", "ultimaker_abs_white", "ultimaker_abs_yellow", "ultimaker_bam", "ultimaker_cpe_black", "ultimaker_cpe_blue", "ultimaker_cpe_dark-grey", "ultimaker_cpe_green", "ultimaker_cpe_light-grey", "ultimaker_cpe_plus_black", "ultimaker_cpe_plus_transparent", "ultimaker_cpe_plus_white", "ultimaker_cpe_red", "ultimaker_cpe_transparent", "ultimaker_cpe_white", "ultimaker_cpe_yellow", "ultimaker_nylon_black", "ultimaker_nylon_transparent", "ultimaker_pc_black", "ultimaker_pc_transparent", "ultimaker_pc_white", "ultimaker_pla_black", "ultimaker_pla_blue", "ultimaker_pla_green", "ultimaker_pla_magenta", "ultimaker_pla_orange", "ultimaker_pla_pearl-white", "ultimaker_pla_red", "ultimaker_pla_silver-metallic", "ultimaker_pla_transparent", "ultimaker_pla_white", "ultimaker_pla_yellow", "ultimaker_pp_transparent", "ultimaker_pva", "ultimaker_tough_pla_black", "ultimaker_tough_pla_green", "ultimaker_tough_pla_red", "ultimaker_tough_pla_white", "ultimaker_tpu_black", "ultimaker_tpu_blue", "ultimaker_tpu_red", "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", "Vertex_Delta_PLA", "Vertex_Delta_TPU", "zyyx_pro_flex", "zyyx_pro_pla" ], + "exclude_materials": ["chromatik_pla", "dsm_arnitel2045_175", "dsm_novamid1070_175", "fabtotum_abs", "fabtotum_nylon", "fabtotum_pla", "fabtotum_tpu", "fiberlogy_hd_pla", "filo3d_pla", "filo3d_pla_green", "filo3d_pla_red", "generic_abs", "generic_abs_175", "generic_bam", "generic_cpe", "generic_cpe_175", "generic_cpe_plus", "generic_hips", "generic_hips_175", "generic_nylon", "generic_nylon_175", "generic_pc", "generic_pc_175", "generic_petg", "generic_petg_175", "generic_pla", "generic_pla_175", "generic_pp", "generic_pva", "generic_pva_175", "generic_tough_pla", "generic_tpu", "generic_tpu_175", "imade3d_petg_green", "imade3d_petg_pink", "imade3d_pla_green", "imade3d_pla_pink", "innofill_innoflex60_175", "octofiber_pla", "polyflex_pla", "polymax_pla", "polyplus_pla", "polywood_pla", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", "Vertex_Delta_PLA", "Vertex_Delta_TPU", "zyyx_pro_flex", "zyyx_pro_pla" ], "preferred_material": "tizyx_pla", "has_machine_quality": true, "has_materials": true, diff --git a/resources/definitions/trimaker_cosmosII.def.json b/resources/definitions/trimaker_cosmosII.def.json index 45072df1b1..0866582f18 100644 --- a/resources/definitions/trimaker_cosmosII.def.json +++ b/resources/definitions/trimaker_cosmosII.def.json @@ -89,55 +89,6 @@ "tizyx_pla", "tizyx_pla_bois", "tizyx_pva", - "ultimaker_abs_black", - "ultimaker_abs_blue", - "ultimaker_abs_green", - "ultimaker_abs_grey", - "ultimaker_abs_orange", - "ultimaker_abs_pearl-gold", - "ultimaker_abs_red", - "ultimaker_abs_silver-metallic", - "ultimaker_abs_white", - "ultimaker_abs_yellow", - "ultimaker_bam", - "ultimaker_cpe_black", - "ultimaker_cpe_blue", - "ultimaker_cpe_dark-grey", - "ultimaker_cpe_green", - "ultimaker_cpe_light-grey", - "ultimaker_cpe_plus_black", - "ultimaker_cpe_plus_transparent", - "ultimaker_cpe_plus_white", - "ultimaker_cpe_red", - "ultimaker_cpe_transparent", - "ultimaker_cpe_white", - "ultimaker_cpe_yellow", - "ultimaker_nylon_black", - "ultimaker_nylon_transparent", - "ultimaker_pc_black", - "ultimaker_pc_transparent", - "ultimaker_pc_white", - "ultimaker_pla_black", - "ultimaker_pla_blue", - "ultimaker_pla_green", - "ultimaker_pla_magenta", - "ultimaker_pla_orange", - "ultimaker_pla_pearl-white", - "ultimaker_pla_red", - "ultimaker_pla_silver-metallic", - "ultimaker_pla_transparent", - "ultimaker_pla_white", - "ultimaker_pla_yellow", - "ultimaker_pp_transparent", - "ultimaker_pva", - "ultimaker_tough_pla_black", - "ultimaker_tough_pla_green", - "ultimaker_tough_pla_red", - "ultimaker_tough_pla_white", - "ultimaker_tpu_black", - "ultimaker_tpu_blue", - "ultimaker_tpu_red", - "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", diff --git a/resources/definitions/trimaker_nebula.def.json b/resources/definitions/trimaker_nebula.def.json index dd8e3a565c..c475bc074b 100644 --- a/resources/definitions/trimaker_nebula.def.json +++ b/resources/definitions/trimaker_nebula.def.json @@ -89,55 +89,6 @@ "tizyx_pla", "tizyx_pla_bois", "tizyx_pva", - "ultimaker_abs_black", - "ultimaker_abs_blue", - "ultimaker_abs_green", - "ultimaker_abs_grey", - "ultimaker_abs_orange", - "ultimaker_abs_pearl-gold", - "ultimaker_abs_red", - "ultimaker_abs_silver-metallic", - "ultimaker_abs_white", - "ultimaker_abs_yellow", - "ultimaker_bam", - "ultimaker_cpe_black", - "ultimaker_cpe_blue", - "ultimaker_cpe_dark-grey", - "ultimaker_cpe_green", - "ultimaker_cpe_light-grey", - "ultimaker_cpe_plus_black", - "ultimaker_cpe_plus_transparent", - "ultimaker_cpe_plus_white", - "ultimaker_cpe_red", - "ultimaker_cpe_transparent", - "ultimaker_cpe_white", - "ultimaker_cpe_yellow", - "ultimaker_nylon_black", - "ultimaker_nylon_transparent", - "ultimaker_pc_black", - "ultimaker_pc_transparent", - "ultimaker_pc_white", - "ultimaker_pla_black", - "ultimaker_pla_blue", - "ultimaker_pla_green", - "ultimaker_pla_magenta", - "ultimaker_pla_orange", - "ultimaker_pla_pearl-white", - "ultimaker_pla_red", - "ultimaker_pla_silver-metallic", - "ultimaker_pla_transparent", - "ultimaker_pla_white", - "ultimaker_pla_yellow", - "ultimaker_pp_transparent", - "ultimaker_pva", - "ultimaker_tough_pla_black", - "ultimaker_tough_pla_green", - "ultimaker_tough_pla_red", - "ultimaker_tough_pla_white", - "ultimaker_tpu_black", - "ultimaker_tpu_blue", - "ultimaker_tpu_red", - "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", diff --git a/resources/definitions/uni_base.def.json b/resources/definitions/uni_base.def.json index 82b05f3366..1eadbc015f 100644 --- a/resources/definitions/uni_base.def.json +++ b/resources/definitions/uni_base.def.json @@ -65,55 +65,6 @@ "tizyx_pla", "tizyx_pla_bois", "tizyx_pva", - "ultimaker_abs_black", - "ultimaker_abs_blue", - "ultimaker_abs_green", - "ultimaker_abs_grey", - "ultimaker_abs_orange", - "ultimaker_abs_pearl-gold", - "ultimaker_abs_red", - "ultimaker_abs_silver-metallic", - "ultimaker_abs_white", - "ultimaker_abs_yellow", - "ultimaker_bam", - "ultimaker_cpe_black", - "ultimaker_cpe_blue", - "ultimaker_cpe_dark-grey", - "ultimaker_cpe_green", - "ultimaker_cpe_light-grey", - "ultimaker_cpe_plus_black", - "ultimaker_cpe_plus_transparent", - "ultimaker_cpe_plus_white", - "ultimaker_cpe_red", - "ultimaker_cpe_transparent", - "ultimaker_cpe_white", - "ultimaker_cpe_yellow", - "ultimaker_nylon_black", - "ultimaker_nylon_transparent", - "ultimaker_pc_black", - "ultimaker_pc_transparent", - "ultimaker_pc_white", - "ultimaker_pla_black", - "ultimaker_pla_blue", - "ultimaker_pla_green", - "ultimaker_pla_magenta", - "ultimaker_pla_orange", - "ultimaker_pla_pearl-white", - "ultimaker_pla_red", - "ultimaker_pla_silver-metallic", - "ultimaker_pla_transparent", - "ultimaker_pla_white", - "ultimaker_pla_yellow", - "ultimaker_pp_transparent", - "ultimaker_pva", - "ultimaker_tough_pla_black", - "ultimaker_tough_pla_green", - "ultimaker_tough_pla_red", - "ultimaker_tough_pla_white", - "ultimaker_tpu_black", - "ultimaker_tpu_blue", - "ultimaker_tpu_red", - "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 850a75ef28..e735a6290f 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -17,57 +17,7 @@ "preferred_variant_name": "V6 0.40mm", "machine_extruder_trains": { "0": "voron2_extruder_0" }, "preferred_material": "generic_abs", - "exclude_materials": [ - "ultimaker_abs_black", - "ultimaker_abs_blue", - "ultimaker_abs_green", - "ultimaker_abs_grey", - "ultimaker_abs_orange", - "ultimaker_abs_pearl-gold", - "ultimaker_abs_red", - "ultimaker_abs_silver-metallic", - "ultimaker_abs_white", - "ultimaker_abs_yellow", - "ultimaker_bam", - "ultimaker_cpe_black", - "ultimaker_cpe_blue", - "ultimaker_cpe_dark-grey", - "ultimaker_cpe_green", - "ultimaker_cpe_light-grey", - "ultimaker_cpe_plus_black", - "ultimaker_cpe_plus_transparent", - "ultimaker_cpe_plus_white", - "ultimaker_cpe_red", - "ultimaker_cpe_transparent", - "ultimaker_cpe_white", - "ultimaker_cpe_yellow", - "ultimaker_nylon_black", - "ultimaker_nylon_transparent", - "ultimaker_pc_black", - "ultimaker_pc_transparent", - "ultimaker_pc_white", - "ultimaker_pla_black", - "ultimaker_pla_blue", - "ultimaker_pla_green", - "ultimaker_pla_magenta", - "ultimaker_pla_orange", - "ultimaker_pla_pearl-white", - "ultimaker_pla_red", - "ultimaker_pla_silver-metallic", - "ultimaker_pla_transparent", - "ultimaker_pla_white", - "ultimaker_pla_yellow", - "ultimaker_pp_transparent", - "ultimaker_pva", - "ultimaker_tough_pla_black", - "ultimaker_tough_pla_green", - "ultimaker_tough_pla_red", - "ultimaker_tough_pla_white", - "ultimaker_tpu_black", - "ultimaker_tpu_blue", - "ultimaker_tpu_red", - "ultimaker_tpu_white" - ] + "exclude_materials": [] }, "overrides": { diff --git a/resources/definitions/zav_base.def.json b/resources/definitions/zav_base.def.json index 9f73419d46..5e20b849f5 100644 --- a/resources/definitions/zav_base.def.json +++ b/resources/definitions/zav_base.def.json @@ -74,55 +74,6 @@ "tizyx_pla", "tizyx_pla_bois", "tizyx_pva", - "ultimaker_abs_black", - "ultimaker_abs_blue", - "ultimaker_abs_green", - "ultimaker_abs_grey", - "ultimaker_abs_orange", - "ultimaker_abs_pearl-gold", - "ultimaker_abs_red", - "ultimaker_abs_silver-metallic", - "ultimaker_abs_white", - "ultimaker_abs_yellow", - "ultimaker_bam", - "ultimaker_cpe_black", - "ultimaker_cpe_blue", - "ultimaker_cpe_dark-grey", - "ultimaker_cpe_green", - "ultimaker_cpe_light-grey", - "ultimaker_cpe_plus_black", - "ultimaker_cpe_plus_transparent", - "ultimaker_cpe_plus_white", - "ultimaker_cpe_red", - "ultimaker_cpe_transparent", - "ultimaker_cpe_white", - "ultimaker_cpe_yellow", - "ultimaker_nylon_black", - "ultimaker_nylon_transparent", - "ultimaker_pc_black", - "ultimaker_pc_transparent", - "ultimaker_pc_white", - "ultimaker_pla_black", - "ultimaker_pla_blue", - "ultimaker_pla_green", - "ultimaker_pla_magenta", - "ultimaker_pla_orange", - "ultimaker_pla_pearl-white", - "ultimaker_pla_red", - "ultimaker_pla_silver-metallic", - "ultimaker_pla_transparent", - "ultimaker_pla_white", - "ultimaker_pla_yellow", - "ultimaker_pp_transparent", - "ultimaker_pva", - "ultimaker_tough_pla_black", - "ultimaker_tough_pla_green", - "ultimaker_tough_pla_red", - "ultimaker_tough_pla_white", - "ultimaker_tpu_black", - "ultimaker_tpu_blue", - "ultimaker_tpu_red", - "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", @@ -150,10 +101,10 @@ "machine_center_is_zero": {"default_value": false}, "machine_gcode_flavor": {"default_value": "RepRap (Marlin/Sprinter)"}, "machine_head_with_fans_polygon": {"default_value": [ - [-26,41], - [-26,-21], - [36,-21], - [36,41] + [-26, 41], + [-26, -21], + [36, -21], + [36, 41] ] }, "gantry_height": {"value": 999999}, From 9d12ee841bd3d313a64a282fd3a7a282d1d9cd5a Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Sep 2022 10:21:21 +0200 Subject: [PATCH 50/70] Remove unneeded values from machine profiles --- resources/definitions/SV02.def.json | 1 - resources/definitions/atom3.def.json | 73 ++++++++------------ resources/definitions/hms434.def.json | 3 +- resources/definitions/koonovo_base.def.json | 1 - resources/definitions/koonovo_kn3.def.json | 1 - resources/definitions/koonovo_kn5.def.json | 1 - resources/definitions/mp_mini_delta.def.json | 1 - resources/definitions/rigid3d_base.def.json | 2 +- resources/definitions/tank_m_base.def.json | 3 +- 9 files changed, 30 insertions(+), 56 deletions(-) diff --git a/resources/definitions/SV02.def.json b/resources/definitions/SV02.def.json index b718f19a9a..ab2ad8439e 100644 --- a/resources/definitions/SV02.def.json +++ b/resources/definitions/SV02.def.json @@ -29,7 +29,6 @@ "gantry_height": { "value": "30" }, "speed_print": { "default_value": 50 }, "default_material_print_temperature": { "value": 195 }, - "material_print_temperature_layer_0": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": 195 }, "machine_max_feedrate_x": { "value": 500 }, diff --git a/resources/definitions/atom3.def.json b/resources/definitions/atom3.def.json index 2483b81155..62d6c23577 100644 --- a/resources/definitions/atom3.def.json +++ b/resources/definitions/atom3.def.json @@ -2,7 +2,8 @@ "version": 2, "name": "Atom 3", "inherits": "fdmprinter", - "metadata": { + "metadata": + { "visible": true, "author": "Daniel Kurth", "manufacturer": "Layer One", @@ -22,10 +23,8 @@ }, - - - "overrides": { - + "overrides": + { "machine_name": { "default_value": "Atom 3" }, "machine_show_variants": { "default_value": true}, "machine_shape": { "default_value": "elliptic" }, @@ -48,45 +47,36 @@ "machine_gcode_flavor": { "RepRap (Marlin/Sprinter)": "Marlin" }, "machine_heated_bed": { "default_value": true }, "material_diameter": { "default_value": 1.75}, - "machine_start_gcode": { + "machine_start_gcode": + { "default_value": ";MACHINE START CODE\nG21 ;metric values\nG90 ;absolute positioning\nG28 ;home\nG1 Z5 F9000\n;MACHINE START CODE" }, - "machine_end_gcode": { + "machine_end_gcode": + { "default_value": ";MACHINE END CODE\nG91 ;relative positioning\nG1 E-1 F300 ;retract filament release pressure\nG1 Z+1.0 E-5 F9000 ;move up a and retract more\nG90 ;absolute positioning\nG28; home\nM84 ;steppers off\n;MACHINE END CODE" }, - - - "layer_height": {"default_value": 0.2 }, - "layer_height_0": { + "layer_height_0": + { "default_value": 0.2, "value": "layer_height" }, "line_width": { "value": "machine_nozzle_size"}, - "infill_line_width": { "value":"line_width"}, + "initial_layer_line_width_factor": { "default_value": 100}, - - - "top_bottom_thickness": { "default_value": 1.0}, - - - "infill_sparse_density": { "default_value": 17}, "infill_before_walls": { "value": false}, "zig_zaggify_infill": { "value": true}, - - - "default_material_print_temperature": { "default_value": 200 }, - "material_print_temperature_layer_0": { "value": "material_print_temperature + 0"}, "material_initial_print_temperature": { "value": "material_print_temperature_layer_0"}, "material_final_print_temperature": { "value": "material_print_temperature"}, - "default_material_bed_temperature": { + "default_material_bed_temperature": + { "default_value": 60, "minimum_value": "0", "minimum_value_warning": "build_volume_temperature", @@ -95,16 +85,13 @@ }, "material_bed_temperature": { - "value": "round(default_material_bed_temperature-((-0.202*default_material_bed_temperature)+7.16)) if default_material_bed_temperature > 40 else default_material_bed_temperature", + "value": "round(default_material_bed_temperature-(-0.202 * default_material_bed_temperature + 7.16)) if default_material_bed_temperature > 40 else default_material_bed_temperature", "minimum_value": "0", "minimum_value_warning": "build_volume_temperature", "maximum_value_warning": "115", "maximum_value": "120" }, - - - "speed_print": { "default_value": 40}, "speed_wall": { "value": "speed_print * 0.75"}, "speed_wall_0": { "value": "speed_print * 0.5"}, @@ -112,48 +99,42 @@ "speed_layer_0": { "value": "20"}, "speed_slowdown_layers": { "default_value": 1}, - - - - "retraction_amount": { + "retraction_amount": + { "default_value": 7, - "maximum_value_warning": 9 }, - "retraction_speed": { + "maximum_value_warning": 9 + }, + "retraction_speed": + { "default_value": 70, "maximum_value_warning": 80 }, "retraction_hop_enabled": { "default_value": true}, "retraction_hop": { "default_value": 0.5}, - - - "cool_min_layer_time": { "default_value": 5}, "cool_min_speed": { "default_value": 10}, "cool_lift_head": { "default_value": false}, - - - "support_type": { "default_value": "everywhere"}, "support_angle": { "default_value": 60}, "support_z_distance": { "value": "layer_height"}, "support_xy_distance_overhang":{"value": "machine_nozzle_size"}, - - "adhesion_type": { "default_value": "skirt"}, - "skirt_brim_minimal_length": { + "skirt_brim_minimal_length": + { "default_value": 750, - "value": "60/(layer_height_0*line_width)", + "value": "60 / (layer_height_0 * line_width)", "minimum_value": "0", "minimum_value_warning": "25", "maximum_value_warning": "4000" }, - "skirt_gap": { - "default_value": "1`", - "value": "3*wall_line_width_0" + "skirt_gap": + { + "default_value": 1, + "value": "3 * wall_line_width_0" } } } \ No newline at end of file diff --git a/resources/definitions/hms434.def.json b/resources/definitions/hms434.def.json index bf5a601dbd..584a642ceb 100644 --- a/resources/definitions/hms434.def.json +++ b/resources/definitions/hms434.def.json @@ -108,8 +108,7 @@ "default_material_print_temperature": {"maximum_value": "401" }, "material_print_temperature": {"maximum_value": "401" }, - "material_print_temperature_layer_0": {"value": "material_print_temperature", - "maximum_value": "401" }, + "material_print_temperature_layer_0": {"maximum_value": "401" }, "material_initial_print_temperature": {"value": "material_print_temperature", "maximum_value_warning": "material_print_temperature + 15", "maximum_value": "401" }, diff --git a/resources/definitions/koonovo_base.def.json b/resources/definitions/koonovo_base.def.json index c2713c7a44..3b3ab06fff 100644 --- a/resources/definitions/koonovo_base.def.json +++ b/resources/definitions/koonovo_base.def.json @@ -59,7 +59,6 @@ "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, "default_material_print_temperature": { "value": "195" }, - "material_print_temperature_layer_0": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, "material_bed_temperature": { "value": "55" }, diff --git a/resources/definitions/koonovo_kn3.def.json b/resources/definitions/koonovo_kn3.def.json index 485190958d..c67209805d 100644 --- a/resources/definitions/koonovo_kn3.def.json +++ b/resources/definitions/koonovo_kn3.def.json @@ -76,7 +76,6 @@ "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, "default_material_print_temperature": { "value": "195" }, - "material_print_temperature_layer_0": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, "default_material_bed_temperature": { "value": "55" }, diff --git a/resources/definitions/koonovo_kn5.def.json b/resources/definitions/koonovo_kn5.def.json index 8b517a232a..7cd82a61aa 100644 --- a/resources/definitions/koonovo_kn5.def.json +++ b/resources/definitions/koonovo_kn5.def.json @@ -78,7 +78,6 @@ "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, "default_material_print_temperature": { "value": "195" }, - "material_print_temperature_layer_0": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, diff --git a/resources/definitions/mp_mini_delta.def.json b/resources/definitions/mp_mini_delta.def.json index eda45bb413..b003bb3853 100644 --- a/resources/definitions/mp_mini_delta.def.json +++ b/resources/definitions/mp_mini_delta.def.json @@ -48,7 +48,6 @@ }, "material_bed_temperature": { "value": 40 }, "line_width": { "value": "round(machine_nozzle_size, 2)" }, - "material_print_temperature_layer_0": { "value": "material_print_temperature" }, "material_bed_temperature_layer_0": { "value": "material_bed_temperature" }, "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, "machine_max_feedrate_x": { "default_value": 150 }, diff --git a/resources/definitions/rigid3d_base.def.json b/resources/definitions/rigid3d_base.def.json index 8d180872d6..b205f03cc8 100644 --- a/resources/definitions/rigid3d_base.def.json +++ b/resources/definitions/rigid3d_base.def.json @@ -112,7 +112,7 @@ "retraction_combing": { "value": "'noskin'" }, "travel_avoid_other_parts": { "value": "False" }, - "support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height*2" }, + "support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height * 2" }, "support_interface_enable": { "value": "True" }, "support_interface_density": { "value": 70 }, "minimum_interface_area": { "value": 5.0 }, diff --git a/resources/definitions/tank_m_base.def.json b/resources/definitions/tank_m_base.def.json index e4f465d39e..41387fad7e 100644 --- a/resources/definitions/tank_m_base.def.json +++ b/resources/definitions/tank_m_base.def.json @@ -58,8 +58,7 @@ "infill_sparse_density": { "value": "15" }, "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, - "material_print_temperature": { "value": "195" }, - "material_print_temperature_layer_0": { "value": "material_print_temperature" }, + "material_print_temperature": { "value": "195" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, "material_bed_temperature": { "value": "55" }, From 328b32ee6bd2378e985588cacccff8c83f8ad955 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Sep 2022 10:29:19 +0200 Subject: [PATCH 51/70] Remove a bunch of duplicate settings from artillery base --- resources/definitions/artillery_base.def.json | 28 ++++++------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/resources/definitions/artillery_base.def.json b/resources/definitions/artillery_base.def.json index 1dd22d9f5f..a6da7e7d96 100644 --- a/resources/definitions/artillery_base.def.json +++ b/resources/definitions/artillery_base.def.json @@ -106,35 +106,25 @@ "jerk_enabled": { "value": false }, "speed_print": { "value": 60.0 } , - "speed_infill": { "value": "speed_print" }, - "speed_wall": { "value": "speed_print / 2" }, - "speed_wall_0": { "value": "speed_wall" }, "speed_wall_x": { "value": "speed_wall" }, - "speed_topbottom": { "value": "speed_print / 2" }, - "speed_roofing": { "value": "speed_topbottom" }, "speed_travel": { "value": "150.0 if speed_print < 60 else 250.0 if speed_print > 100 else speed_print * 2.5" }, "speed_layer_0": { "value": 20.0 }, - "speed_print_layer_0": { "value": "speed_layer_0" }, "speed_travel_layer_0": { "value": "100 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_support": { "value": "speed_wall_0" }, "speed_support_interface": { "value": "speed_topbottom" }, "speed_z_hop": { "value": 5 }, - "skirt_brim_speed": { "value": "speed_layer_0" }, - "line_width": { "value": "machine_nozzle_size * 1.1" }, - "optimize_wall_printing_order": { "value": "True" }, + "optimize_wall_printing_order": { "value": true }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, - "material_flow": { "value": 100 }, "z_seam_type": { "value": "'back'" }, "z_seam_corner": { "value": "'z_seam_corner_none'" }, - - "infill_sparse_density": { "value": "20" }, + "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, "infill_before_walls": { "value": false }, "infill_overlap": { "value": 30.0 }, @@ -144,15 +134,18 @@ "fill_outline_gaps": { "value": false }, - "retraction_speed": { + "retraction_speed": + { "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')", "maximum_value": 200 }, - "retraction_retract_speed": { + "retraction_retract_speed": + { "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')", "maximum_value": 200 }, - "retraction_prime_speed": { + "retraction_prime_speed": + { "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')", "maximum_value": 200 }, @@ -172,7 +165,6 @@ "retraction_min_travel": { "value": 1.5 }, "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_fan_enabled": { "value": true }, "cool_min_layer_time": { "value": 10 }, "adhesion_type": { "value": "'none' if support_enable else 'skirt'" }, @@ -187,14 +179,13 @@ "meshfix_maximum_travel_resolution": { "value": "meshfix_maximum_resolution" }, "support_angle": { "value": "math.floor(math.degrees(math.atan(line_width / 2.0 / layer_height)))" }, - "support_pattern": { "value": "'zigzag'" }, + "support_infill_rate": { "value": "0 if support_enable and support_structure == 'tree' else 20" }, "support_use_towers": { "value": false }, "support_xy_distance": { "value": "wall_line_width_0 * 2" }, "support_xy_distance_overhang": { "value": "wall_line_width_0" }, "support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height * 2" }, "support_xy_overrides_z": { "value": "'xy_overrides_z'" }, - "support_wall_count": { "value": 1 }, "support_brim_enable": { "value": true }, "support_brim_width": { "value": 4 }, @@ -207,7 +198,6 @@ "minimum_interface_area": { "value": 10 }, "top_bottom_thickness": {"value": "layer_height_0 + layer_height * 3" }, "wall_thickness": {"value": "line_width * 2" } - } } From 59d9bfde99864c341f900f25a00c5c4b34ca6a1f Mon Sep 17 00:00:00 2001 From: jelle Spijker Date: Tue, 6 Sep 2022 11:33:18 +0200 Subject: [PATCH 52/70] Use umbase 0.1.7 This will now set the version by default if not defined at the cmd line to the first entry in the conandata.yml --- conandata.yml | 107 +------------------------------------------------- conanfile.py | 26 ++++++------ 2 files changed, 16 insertions(+), 117 deletions(-) diff --git a/conandata.yml b/conandata.yml index 4b9d8dd612..83f45a2056 100644 --- a/conandata.yml +++ b/conandata.yml @@ -1,5 +1,5 @@ --- -# Usage: defaults to None +# Usage: defaults to the first entry in this conandata.yml file # If you're on a release branch create an entry for that **version** e.q.: `5.1.0` update the requirements (use pinned versions, not latest) # also create a beta entry for that **version** e.q.: `5.1.0-beta`, update the requirements (use the /(latest)@ultimaker/stable) # @@ -10,111 +10,6 @@ # requirements (use the /(latest)@ultimaker/testing) # # Subject to change in the future! -"None": - requirements: - - "pyarcus/(latest)@ultimaker/testing" - - "curaengine/(latest)@ultimaker/testing" - - "pysavitar/(latest)@ultimaker/testing" - - "pynest2d/(latest)@ultimaker/testing" - - "uranium/(latest)@ultimaker/testing" - - "fdm_materials/(latest)@ultimaker/testing" - - "cura_binary_data/(latest)@ultimaker/testing" - - "cpython/3.10.4" - internal_requirements: - - "fdm_materials_private/(latest)@ultimaker/testing" - - "cura_private_data/(latest)@ultimaker/testing" - runinfo: - entrypoint: "cura_app.py" - pyinstaller: - datas: - cura_plugins: - package: "cura" - src: "plugins" - dst: "share/cura/plugins" - cura_resources: - package: "cura" - src: "resources" - dst: "share/cura/resources" - cura_private_data: - package: "cura_private_data" - src: "resources" - dst: "share/cura/resources" - internal: true - uranium_plugins: - package: "uranium" - src: "plugins" - dst: "share/uranium/plugins" - uranium_resources: - package: "uranium" - src: "resources" - dst: "share/uranium/resources" - uranium_um_qt_qml_um: - package: "uranium" - src: "site-packages/UM/Qt/qml/UM" - dst: "PyQt6/Qt6/qml/UM" - cura_binary_data: - package: "cura_binary_data" - src: "resources/cura/resources" - dst: "share/cura/resources" - uranium_binary_data: - package: "cura_binary_data" - src: "resources/uranium/resources" - dst: "share/uranium/resources" - windows_binary_data: - package: "cura_binary_data" - src: "windows" - dst: "share/windows" - fdm_materials: - package: "fdm_materials" - src: "materials" - dst: "share/cura/resources/materials" - fdm_materials_private: - package: "fdm_materials_private" - src: "resources/materials" - dst: "share/cura/resources/materials" - internal: true - tcl: - package: "tcl" - src: "lib/tcl8.6" - dst: "tcl" - tk: - package: "tk" - src: "lib/tk8.6" - dst: "tk" - binaries: - curaengine: - package: "curaengine" - src: "bin" - dst: "." - binary: "CuraEngine" - hiddenimports: - - "pySavitar" - - "pyArcus" - - "pynest2d" - - "PyQt6" - - "PyQt6.QtNetwork" - - "PyQt6.sip" - - "logging.handlers" - - "zeroconf" - - "fcntl" - - "stl" - - "serial" - collect_all: - - "cura" - - "UM" - - "serial" - - "Charon" - - "sqlite3" - - "trimesh" - - "win32ctypes" - - "PyQt6" - - "PyQt6.QtNetwork" - - "PyQt6.sip" - - "stl" - icon: - Windows: "./icons/Cura.ico" - Macos: "./icons/cura.icns" - Linux: "./icons/cura-128.png" "5.2.0-alpha": requirements: - "pyarcus/(latest)@ultimaker/testing" diff --git a/conanfile.py b/conanfile.py index bcdaeda5d9..c5f584ed16 100644 --- a/conanfile.py +++ b/conanfile.py @@ -3,13 +3,13 @@ from pathlib import Path from jinja2 import Template -from conans import tools from conan import ConanFile -from conan.tools import files +from conan.tools.files import copy, rmdir, save from conan.tools.env import VirtualRunEnv, Environment +from conan.tools.scm import Version from conan.errors import ConanInvalidConfiguration -required_conan_version = ">=1.48.0" +required_conan_version = ">=1.50.0" class CuraConan(ConanFile): @@ -26,7 +26,7 @@ class CuraConan(ConanFile): # FIXME: Remove specific branch once merged to main # Extending the conanfile with the UMBaseConanfile https://github.com/Ultimaker/conan-ultimaker-index/tree/CURA-9177_Fix_CI_CD/recipes/umbase - python_requires = "umbase/0.1.5@ultimaker/testing" + python_requires = "umbase/[>=0.1.7]@ultimaker/stable" python_requires_extend = "umbase.UMBaseConanfile" options = { @@ -135,7 +135,7 @@ class CuraConan(ConanFile): def _site_packages(self): if self.settings.os == "Windows": return self._base_dir.joinpath("Lib", "site-packages") - py_version = tools.Version(self.deps_cpp_info["cpython"].version) + py_version = Version(self.deps_cpp_info["cpython"].version) return self._base_dir.joinpath("lib", f"python{py_version.major}.{py_version.minor}", "site-packages") @property @@ -151,7 +151,7 @@ class CuraConan(ConanFile): cura_version = self.version if self.options.internal: - version = tools.Version(self.version) + version = Version(self.version) cura_version = f"{version.major}.{version.minor}.{version.patch}-{version.prerelease.replace('+', '+internal_')}" with open(Path(location, "CuraVersion.py"), "w") as f: @@ -220,7 +220,7 @@ class CuraConan(ConanFile): with open(Path(__file__).parent.joinpath("Ultimaker-Cura.spec.jinja"), "r") as f: pyinstaller = Template(f.read()) - cura_version = tools.Version(self.version) if self.version else tools.Version("0.0.0") + cura_version = Version(self.version) if self.version else Version("0.0.0") with open(Path(location, "Ultimaker-Cura.spec"), "w") as f: f.write(pyinstaller.render( @@ -243,6 +243,10 @@ class CuraConan(ConanFile): short_version = f"'{cura_version.major}.{cura_version.minor}.{cura_version.patch}'", )) + def set_version(self): + if self.version is None: + self.version = self._umdefault_version() + def configure(self): self.options["pyarcus"].shared = True self.options["pysavitar"].shared = True @@ -250,7 +254,7 @@ class CuraConan(ConanFile): self.options["cpython"].shared = True def validate(self): - if self.version and tools.Version(self.version) <= tools.Version("4"): + if self.version and Version(self.version) <= Version("4"): raise ConanInvalidConfiguration("Only versions 5+ are support") def requirements(self): @@ -293,7 +297,7 @@ class CuraConan(ConanFile): self.copy("CuraEngine.exe", root_package = "curaengine", src = "@bindirs", dst = "", keep_path = False) self.copy("CuraEngine", root_package = "curaengine", src = "@bindirs", dst = "", keep_path = False) - files.rmdir(self, "resources/materials") + rmdir(self, os.path.join(self.source_folder, "resources", "materials")) self.copy("*.fdm_material", root_package = "fdm_materials", src = "@resdirs", dst = "resources/materials", keep_path = False) self.copy("*.sig", root_package = "fdm_materials", src = "@resdirs", dst = "resources/materials", keep_path = False) @@ -377,7 +381,7 @@ class CuraConan(ConanFile): self.copy("*.txt", src = self.cpp_info.resdirs[-1], dst = self._base_dir.joinpath("pip_requirements")) # Generate the GitHub Action version info Environment - cura_version = tools.Version(self.version) + cura_version = Version(self.version) env_prefix = "Env:" if self.settings.os == "Windows" else "" activate_github_actions_version_env = Template(r"""echo "CURA_VERSION_MAJOR={{ cura_version_major }}" >> ${{ env_prefix }}GITHUB_ENV echo "CURA_VERSION_MINOR={{ cura_version_minor }}" >> ${{ env_prefix }}GITHUB_ENV @@ -392,7 +396,7 @@ echo "CURA_VERSION_FULL={{ cura_version_full }}" >> ${{ env_prefix }}GITHUB_ENV env_prefix = env_prefix) ext = ".sh" if self.settings.os != "Windows" else ".ps1" - files.save(self, self._script_dir.joinpath(f"activate_github_actions_version_env{ext}"), activate_github_actions_version_env) + save(self, self._script_dir.joinpath(f"activate_github_actions_version_env{ext}"), activate_github_actions_version_env) self._generate_cura_version(Path(self._site_packages, "cura")) From 2c331604e82cc4a6d2d2fbbf592d41f51c68f169 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Sep 2022 11:39:08 +0200 Subject: [PATCH 53/70] Clean up a lot of duplicate settings from machine profiles These were errors that were copy pasted from other definitions. So leaving them as is would continue to decrease the quality of third party profiles. --- .../definitions/Mark2_for_Ultimaker2.def.json | 3 - resources/definitions/SV01.def.json | 6 +- resources/definitions/SV03.def.json | 6 +- resources/definitions/anet3d.def.json | 37 ++++------ resources/definitions/anycubic_4max.def.json | 1 - .../definitions/anycubic_i3_mega_s.def.json | 11 +-- .../definitions/anycubic_mega_zero.def.json | 1 - resources/definitions/artillery_base.def.json | 2 +- resources/definitions/biqu_base.def.json | 12 +--- .../definitions/blv_mgn_cube_base.def.json | 3 - .../builder_premium_large.def.json | 1 - .../builder_premium_medium.def.json | 1 - .../builder_premium_small.def.json | 1 - resources/definitions/cartesio.def.json | 1 - resources/definitions/creality_base.def.json | 35 ++++----- .../dagoma_pro_430_bowden.def.json | 1 - .../definitions/deltacomb_dc20flux.def.json | 2 +- .../definitions/deltacomb_dc21flux.def.json | 2 +- resources/definitions/dxu.def.json | 3 - resources/definitions/eryone_er20.def.json | 3 - resources/definitions/eryone_thinker.def.json | 3 - .../definitions/flyingbear_base.def.json | 8 --- resources/definitions/goofoo_base.def.json | 20 ++---- .../definitions/hctech_hc300-m1&m1h.def.json | 3 - .../definitions/hctech_hc300-m2h.def.json | 2 - .../definitions/hctech_hc300-m3.def.json | 2 - resources/definitions/hms434.def.json | 6 +- resources/definitions/inat_base.def.json | 11 --- resources/definitions/kingroon_base.def.json | 9 +-- resources/definitions/koonovo_base.def.json | 13 +--- resources/definitions/koonovo_kn3.def.json | 10 --- resources/definitions/koonovo_kn5.def.json | 13 +--- resources/definitions/liquid.def.json | 3 +- resources/definitions/longer_base.def.json | 16 +---- resources/definitions/lotmaxx_sc10.def.json | 72 +++++++++---------- resources/definitions/lotmaxx_sc20.def.json | 3 - resources/definitions/malyan_m200.def.json | 2 - resources/definitions/mingda_base.def.json | 9 +-- .../definitions/mixware_hyper_s.def.json | 9 --- resources/definitions/rigid3d_base.def.json | 2 +- ...tur3d_discov3ry1_complete_um2plus.def.json | 3 - resources/definitions/tank_m_base.def.json | 11 --- .../definitions/trimaker_nebula_plus.def.json | 1 - resources/definitions/tronxy_x.def.json | 16 ++--- resources/definitions/two_trees_base.def.json | 18 +---- .../ultimaker2_plus_connect.def.json | 2 - resources/definitions/ultimaker3.def.json | 1 - resources/definitions/ultimaker_s3.def.json | 1 - resources/definitions/ultimaker_s5.def.json | 1 - resources/definitions/weedo_x40.def.json | 16 +---- resources/definitions/winbo_dragonl4.def.json | 26 ++++--- resources/definitions/winbo_mini2.def.json | 16 ++--- .../definitions/winbo_superhelper105.def.json | 21 +++--- 53 files changed, 122 insertions(+), 359 deletions(-) diff --git a/resources/definitions/Mark2_for_Ultimaker2.def.json b/resources/definitions/Mark2_for_Ultimaker2.def.json index 68498db423..2418445a26 100644 --- a/resources/definitions/Mark2_for_Ultimaker2.def.json +++ b/resources/definitions/Mark2_for_Ultimaker2.def.json @@ -63,9 +63,6 @@ "machine_heated_bed": { "default_value": true }, - "speed_infill": { - "value": "speed_print" - }, "speed_wall_x": { "value": "speed_wall" }, diff --git a/resources/definitions/SV01.def.json b/resources/definitions/SV01.def.json index 439ced7d38..bd7773de6f 100644 --- a/resources/definitions/SV01.def.json +++ b/resources/definitions/SV01.def.json @@ -45,16 +45,12 @@ "acceleration_enabled": { "value": false }, "jerk_enabled": { "value": false }, "speed_print": { "value": 50.0 } , - "speed_infill": { "value": "speed_print" }, "skirt_brim_speed": { "value": "speed_layer_0" }, - "line_width": { "value": "machine_nozzle_size" }, "optimize_wall_printing_order": { "value": "True" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, - "material_flow": { "value": 100 }, "z_seam_type": { "value": "'back'" }, - "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, - "infill_sparse_density": { "value": "20" }, + "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, "infill_pattern": { "value": "'lines'" }, "infill_before_walls": { "value": false }, "infill_overlap": { "value": 30.0 }, diff --git a/resources/definitions/SV03.def.json b/resources/definitions/SV03.def.json index 5968a82c0d..b056175b27 100644 --- a/resources/definitions/SV03.def.json +++ b/resources/definitions/SV03.def.json @@ -45,16 +45,12 @@ "acceleration_enabled": { "value": false }, "jerk_enabled": { "value": false }, "speed_print": { "value": 50.0 } , - "speed_infill": { "value": "speed_print" }, "skirt_brim_speed": { "value": "speed_layer_0" }, - "line_width": { "value": "machine_nozzle_size" }, "optimize_wall_printing_order": { "value": "True" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, - "material_flow": { "value": 100 }, "z_seam_type": { "value": "'back'" }, - "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, - "infill_sparse_density": { "value": "20" }, + "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, , "infill_pattern": { "value": "'lines'" }, "infill_before_walls": { "value": false }, "infill_overlap": { "value": 30.0 }, diff --git a/resources/definitions/anet3d.def.json b/resources/definitions/anet3d.def.json index 59ad93416c..1946b81bc0 100644 --- a/resources/definitions/anet3d.def.json +++ b/resources/definitions/anet3d.def.json @@ -51,14 +51,11 @@ "speed_print": { "value": 50.0 } , "speed_infill": { "value": "speed_print * 2" }, - "speed_wall": { "value": "speed_print / 2" }, - "speed_wall_0": { "value": "speed_wall" }, + "speed_wall_x": { "value": "speed_wall" }, - "speed_topbottom": { "value": "speed_print / 2" }, "speed_roofing": { "value": "speed_topbottom" }, "speed_travel": { "value": "150.0 if speed_print < 60 else 250.0 if speed_print > 100 else speed_print * 2.5" }, "speed_layer_0": { "value": "speed_print / 2" }, - "speed_print_layer_0": { "value": "speed_layer_0" }, "speed_travel_layer_0": { "value": "100 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, "speed_prime_tower": { "value": "speed_print" }, "speed_support": { "value": "speed_print" }, @@ -67,18 +64,14 @@ "skirt_brim_speed": { "value": "speed_layer_0" }, - "line_width": { "value": "machine_nozzle_size" }, - "optimize_wall_printing_order": { "value": true }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, - "material_flow": { "value": 100 }, "z_seam_type": { "value": "'back'" }, "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, - - "infill_sparse_density": { "value": "20" }, + "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, "infill_before_walls": { "value": true }, "infill_overlap": { "value": 30.0 }, @@ -88,34 +81,34 @@ "fill_outline_gaps": { "value": false }, - "retraction_speed": { + "retraction_speed": + { "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')", "maximum_value": 200 }, - "retraction_retract_speed": { + "retraction_retract_speed": + { "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')", "maximum_value": 200 }, - "retraction_prime_speed": { + "retraction_prime_speed": + { "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')", "maximum_value": 200 }, - - "retraction_hop_enabled": { "value": "False" }, + "retraction_hop": { "value": 1 }, "retraction_combing": { "value": "'off' if retraction_hop_enabled else 'noskin'" }, "retraction_combing_max_distance": { "value": 30 }, "travel_avoid_other_parts": { "value": true }, "travel_avoid_supports": { "value": true }, "travel_retract_before_outer_wall": { "value": true }, - - "retraction_enable": { "value": true }, + "retraction_count_max": { "value": 100 }, "retraction_extrusion_window": { "value": 10 }, "retraction_min_travel": { "value": 1.5 }, "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_fan_enabled": { "value": true }, "cool_min_layer_time": { "value": 10 }, "adaptive_layer_height_variation": { "value": 0.04 }, @@ -133,16 +126,12 @@ "extruder_prime_pos_y":{"minimum_value": "0","maximum_value": "machine_depth"}, "extruder_prime_pos_x":{"minimum_value": "0","maximum_value": "machine_width"}, - "relative_extrusion":{"value": false,"enabled": false}, + "relative_extrusion":{"value": false, "enabled": false}, "machine_use_extruder_offset_to_offset_coords": {"default_value": true}, "machine_gcode_flavor": {"default_value": "RepRap (Marlin/Sprinter)"}, - "machine_center_is_zero": { - "default_value": false - }, - "gantry_height": { - "value": "0" - } + "machine_center_is_zero": { "default_value": false }, + "gantry_height": { "value": "0"} } } diff --git a/resources/definitions/anycubic_4max.def.json b/resources/definitions/anycubic_4max.def.json index 6d6c20e8f5..838c81f991 100644 --- a/resources/definitions/anycubic_4max.def.json +++ b/resources/definitions/anycubic_4max.def.json @@ -51,7 +51,6 @@ "gantry_height": { "value": "25.0" }, "skin_overlap": { "value": "10" }, - "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, "acceleration_print": { "value": "900" }, diff --git a/resources/definitions/anycubic_i3_mega_s.def.json b/resources/definitions/anycubic_i3_mega_s.def.json index 2e972c78b6..54fa459946 100644 --- a/resources/definitions/anycubic_i3_mega_s.def.json +++ b/resources/definitions/anycubic_i3_mega_s.def.json @@ -53,8 +53,6 @@ "material_bed_temperature": { "maximum_value_warning": 110 }, "material_bed_temperature_layer_0": { "maximum_value_warning": 110 }, - "material_flow": { "value": 100 }, - "top_bottom_thickness": { "value": "layer_height_0 + layer_height * math.floor(1.2 / layer_height)" }, "wall_thickness": { "value": "line_width * 3 if line_width < 0.6 else line_width * 2" }, @@ -70,15 +68,11 @@ "jerk_enabled": { "value": true }, "speed_print": { "value": 50.0 } , - "speed_infill": { "value": "speed_print" }, - "speed_wall": { "value": "speed_print / 2" }, - "speed_wall_0": { "value": "speed_wall" }, + "speed_wall_x": { "value": "speed_wall" }, - "speed_topbottom": { "value": "speed_print / 2" }, "speed_roofing": { "value": "speed_topbottom" }, "speed_travel": { "value": 100.0, "maximum_value_warning": 150.0, "maximum_value": 200.0 }, "speed_layer_0": { "value": "speed_topbottom if speed_topbottom < 20 else 20" }, - "speed_print_layer_0": { "value": "speed_layer_0" }, "speed_travel_layer_0": { "value": "speed_travel" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_support": { "value": "speed_wall_0" }, @@ -101,7 +95,7 @@ "retraction_hop": { "value": 0.075 }, "retraction_hop_only_when_collides": { "value": true }, "retraction_amount": { "value": 6 }, - "retraction_enable": { "value": true }, + "retraction_min_travel": { "value": 1.5 }, "retraction_combing": { "value": "'off'" }, "retraction_combing_max_distance": { "value": 30 }, @@ -114,7 +108,6 @@ "cool_fan_speed": { "value": 100 }, "cool_fan_speed_0": { "value": 30 }, - "cool_fan_enabled": { "value": true }, "cool_min_layer_time": { "value": 10 }, "adhesion_type": { "value": "'none' if support_enable else 'skirt'" }, diff --git a/resources/definitions/anycubic_mega_zero.def.json b/resources/definitions/anycubic_mega_zero.def.json index 5f71d243ab..c483a4ad09 100644 --- a/resources/definitions/anycubic_mega_zero.def.json +++ b/resources/definitions/anycubic_mega_zero.def.json @@ -99,7 +99,6 @@ "travel_avoid_supports": { "value": true }, "travel_retract_before_outer_wall": { "value": true }, - "retraction_enable": { "value": true }, "retraction_speed": { "value": 30 }, "retraction_amount": { "value": 7 }, "retraction_count_max": { "value": 100 }, diff --git a/resources/definitions/artillery_base.def.json b/resources/definitions/artillery_base.def.json index a6da7e7d96..171ac4a524 100644 --- a/resources/definitions/artillery_base.def.json +++ b/resources/definitions/artillery_base.def.json @@ -159,7 +159,7 @@ "travel_retract_before_outer_wall": { "value": true }, "retraction_amount": { "value": 2 }, - "retraction_enable": { "value": true }, + "retraction_count_max": { "value": 100 }, "retraction_extrusion_window": { "value": 10 }, "retraction_min_travel": { "value": 1.5 }, diff --git a/resources/definitions/biqu_base.def.json b/resources/definitions/biqu_base.def.json index 82ee71dd7a..44a582e545 100755 --- a/resources/definitions/biqu_base.def.json +++ b/resources/definitions/biqu_base.def.json @@ -59,15 +59,11 @@ "jerk_enabled": { "value": false }, "speed_print": { "value": 50.0 } , - "speed_infill": { "value": "speed_print" }, - "speed_wall": { "value": "speed_print / 2" }, - "speed_wall_0": { "value": "speed_wall" }, + "speed_wall_x": { "value": "speed_wall" }, - "speed_topbottom": { "value": "speed_print / 2" }, "speed_roofing": { "value": "speed_topbottom" }, "speed_travel": { "value": "150.0 if speed_print < 60 else 250.0 if speed_print > 100 else speed_print * 2.5" }, "speed_layer_0": { "value": 20.0 }, - "speed_print_layer_0": { "value": "speed_layer_0" }, "speed_travel_layer_0": { "value": "100 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_support": { "value": "speed_wall_0" }, @@ -76,19 +72,16 @@ "skirt_brim_speed": { "value": "speed_layer_0" }, - "line_width": { "value": "machine_nozzle_size" }, "optimize_wall_printing_order": { "value": "True" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, - "material_flow": { "value": 100 }, "z_seam_type": { "value": "'sharpest_corner'" }, "z_seam_corner": { "value": "'z_seam_corner_inner'" }, "infill_line_width": { "value": "line_width * 1.2" }, - "infill_sparse_density": { "value": "20" }, "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, "infill_before_walls": { "value": false }, "infill_overlap": { "value": 30.0 }, @@ -111,7 +104,6 @@ "maximum_value": 200 }, - "retraction_hop_enabled": { "value": "False" }, "retraction_hop": { "value": 0.2 }, "retraction_combing": { "value": "'off' if retraction_hop_enabled else 'noskin'" }, "retraction_combing_max_distance": { "value": 30 }, @@ -119,13 +111,11 @@ "travel_avoid_supports": { "value": true }, "travel_retract_before_outer_wall": { "value": true }, - "retraction_enable": { "value": true }, "retraction_count_max": { "value": 100 }, "retraction_extrusion_window": { "value": 10 }, "retraction_min_travel": { "value": 1.5 }, "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_fan_enabled": { "value": true }, "cool_min_layer_time": { "value": 10 }, "adhesion_type": { "value": "'skirt'" }, diff --git a/resources/definitions/blv_mgn_cube_base.def.json b/resources/definitions/blv_mgn_cube_base.def.json index 2c73b80cfc..84c585e016 100644 --- a/resources/definitions/blv_mgn_cube_base.def.json +++ b/resources/definitions/blv_mgn_cube_base.def.json @@ -165,9 +165,6 @@ "skin_overlap": { "value": 10.0 }, - "speed_infill": { - "value": "speed_print" - }, "speed_travel_layer_0": { "value": "math.ceil(speed_travel * 0.4)" }, diff --git a/resources/definitions/builder_premium_large.def.json b/resources/definitions/builder_premium_large.def.json index f0e64921e7..8f49efedb2 100644 --- a/resources/definitions/builder_premium_large.def.json +++ b/resources/definitions/builder_premium_large.def.json @@ -54,7 +54,6 @@ "prime_blob_enable": { "enabled": true }, - "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, "acceleration_print": { "value": "3000" }, diff --git a/resources/definitions/builder_premium_medium.def.json b/resources/definitions/builder_premium_medium.def.json index e85c654fa2..c87e3f70c4 100644 --- a/resources/definitions/builder_premium_medium.def.json +++ b/resources/definitions/builder_premium_medium.def.json @@ -54,7 +54,6 @@ "prime_blob_enable": { "enabled": true }, - "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, "acceleration_print": { "value": "3000" }, diff --git a/resources/definitions/builder_premium_small.def.json b/resources/definitions/builder_premium_small.def.json index c89b01566b..8a7969ec50 100644 --- a/resources/definitions/builder_premium_small.def.json +++ b/resources/definitions/builder_premium_small.def.json @@ -53,7 +53,6 @@ "prime_blob_enable": { "enabled": true }, - "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, "acceleration_print": { "value": "3000" }, diff --git a/resources/definitions/cartesio.def.json b/resources/definitions/cartesio.def.json index 631f947324..996e03ef0a 100644 --- a/resources/definitions/cartesio.def.json +++ b/resources/definitions/cartesio.def.json @@ -41,7 +41,6 @@ "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, "material_print_temp_wait": { "default_value": false }, "material_bed_temp_wait": { "default_value": false }, - "prime_tower_enable": { "default_value": false }, "prime_tower_min_volume": { "value": "0.7" }, "prime_tower_size": { "value": 24.0 }, "prime_tower_position_x": { "value": "125" }, diff --git a/resources/definitions/creality_base.def.json b/resources/definitions/creality_base.def.json index 9d1c578f81..a947369de7 100644 --- a/resources/definitions/creality_base.def.json +++ b/resources/definitions/creality_base.def.json @@ -73,7 +73,8 @@ "zyyx_pro_pla" ] }, - "overrides": { + "overrides": + { "machine_name": { "default_value": "Creawsome Base Printer" }, "machine_start_gcode": { "default_value": "M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration\nM203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate\nM204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration\nM205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n" }, "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\n\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" }, @@ -109,36 +110,25 @@ "acceleration_enabled": { "value": false }, "jerk_enabled": { "value": false }, - "speed_print": { "value": 50.0 } , - "speed_infill": { "value": "speed_print" }, - "speed_wall": { "value": "speed_print / 2" }, - "speed_wall_0": { "value": "speed_wall" }, + "speed_print": { "value": 50.0 }, "speed_wall_x": { "value": "speed_wall" }, - "speed_topbottom": { "value": "speed_print / 2" }, "speed_roofing": { "value": "speed_topbottom" }, "speed_travel": { "value": "150.0 if speed_print < 60 else 250.0 if speed_print > 100 else speed_print * 2.5" }, "speed_layer_0": { "value": 20.0 }, - "speed_print_layer_0": { "value": "speed_layer_0" }, "speed_travel_layer_0": { "value": "100 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_support": { "value": "speed_wall_0" }, "speed_support_interface": { "value": "speed_topbottom" }, "speed_z_hop": { "value": 5 }, - "skirt_brim_speed": { "value": "speed_layer_0" }, - - "line_width": { "value": "machine_nozzle_size" }, - "optimize_wall_printing_order": { "value": "True" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, - "material_flow": { "value": 100 }, "z_seam_type": { "value": "'back'" }, "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, - - "infill_sparse_density": { "value": "20" }, + "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, "infill_before_walls": { "value": false }, "infill_overlap": { "value": 30.0 }, @@ -148,34 +138,33 @@ "fill_outline_gaps": { "value": false }, - "retraction_speed": { + "retraction_speed": + { "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')", "maximum_value": 200 }, - "retraction_retract_speed": { + "retraction_retract_speed": + { "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')", "maximum_value": 200 }, - "retraction_prime_speed": { + "retraction_prime_speed": + { "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')", "maximum_value": 200 }, - - "retraction_hop_enabled": { "value": "False" }, "retraction_hop": { "value": 0.2 }, "retraction_combing": { "value": "'off' if retraction_hop_enabled else 'noskin'" }, "retraction_combing_max_distance": { "value": 30 }, "travel_avoid_other_parts": { "value": true }, "travel_avoid_supports": { "value": true }, "travel_retract_before_outer_wall": { "value": true }, - - "retraction_enable": { "value": true }, + "retraction_count_max": { "value": 100 }, "retraction_extrusion_window": { "value": 10 }, "retraction_min_travel": { "value": 1.5 }, "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_fan_enabled": { "value": true }, "cool_min_layer_time": { "value": 10 }, "adhesion_type": { "value": "'skirt'" }, @@ -189,7 +178,7 @@ "meshfix_maximum_resolution": { "value": "0.25" }, "meshfix_maximum_travel_resolution": { "value": "meshfix_maximum_resolution" }, - "support_angle": { "value": "math.floor(math.degrees(math.atan(line_width/2.0/layer_height)))" }, + "support_angle": { "value": "math.floor(math.degrees(math.atan(line_width / 2.0 /layer_height)))" }, "support_pattern": { "value": "'zigzag'" }, "support_infill_rate": { "value": "0 if support_enable and support_structure == 'tree' else 20" }, "support_use_towers": { "value": false }, diff --git a/resources/definitions/dagoma_pro_430_bowden.def.json b/resources/definitions/dagoma_pro_430_bowden.def.json index 7ed1adb0b7..5a2608d4d8 100644 --- a/resources/definitions/dagoma_pro_430_bowden.def.json +++ b/resources/definitions/dagoma_pro_430_bowden.def.json @@ -25,7 +25,6 @@ "machine_max_jerk_e": { "value": 5 }, "machine_max_feedrate_e": { "default_value": 200 }, "machine_steps_per_mm_e": { "default_value": 139.5 }, - "acceleration_enabled": { "value": "True" }, "acceleration_print": { "value": "1250", "maximum_value": 1500 }, "acceleration_layer_0": { "value": "acceleration_topbottom", "maximum_value": 1500 }, "acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1000 / 1250)", "maximum_value": 1500 }, diff --git a/resources/definitions/deltacomb_dc20flux.def.json b/resources/definitions/deltacomb_dc20flux.def.json index fa6fdb0ca7..f907649312 100644 --- a/resources/definitions/deltacomb_dc20flux.def.json +++ b/resources/definitions/deltacomb_dc20flux.def.json @@ -25,7 +25,7 @@ "machine_end_gcode": { "default_value": ";---------------------------------------\n;Deltacomb end script\n;---------------------------------------\nG91 ;relative positioning\nG1 X8.0 E-10 F6000 ;wipe filament+material retraction\nG1 Z2 E9 ;Lift and start filament shaping\nG1 E-9\nG1 E8\nG1 E-8\nG1 E-10 F110\nG1 E-40 F5000 ; move to park position\nG28 ;home all axes (max endstops)\nM84 ;steppers off" }, "switch_extruder_retraction_amount": { "value": "0" }, "prime_tower_min_volume": { "value": "50" }, - "prime_tower_enable": { "value": "1" }, + "prime_tower_enable": { "value": true }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" } diff --git a/resources/definitions/deltacomb_dc21flux.def.json b/resources/definitions/deltacomb_dc21flux.def.json index f2b7941518..42e1851ab0 100644 --- a/resources/definitions/deltacomb_dc21flux.def.json +++ b/resources/definitions/deltacomb_dc21flux.def.json @@ -25,7 +25,7 @@ "machine_end_gcode": { "default_value": ";---------------------------------------\n;Deltacomb end script\n;---------------------------------------\nG91 ;relative positioning\nG1 X8.0 E-10 F6000 ;wipe filament+material retraction\nG1 Z2 E9 ;Lift and start filament shaping\nG1 E-9\nG1 E8\nG1 E-8\nG1 E-10 F110\nG1 E-40 F5000 ; move to park position\nG28 ;home all axes (max endstops)\nM84 ;steppers off" }, "switch_extruder_retraction_amount": { "value": "0" }, "prime_tower_min_volume": { "value": "50" }, - "prime_tower_enable": { "value": "1" }, + "prime_tower_enable": { "value": true }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" } diff --git a/resources/definitions/dxu.def.json b/resources/definitions/dxu.def.json index 4d7c3eb446..e810506fea 100644 --- a/resources/definitions/dxu.def.json +++ b/resources/definitions/dxu.def.json @@ -70,9 +70,6 @@ "machine_heated_bed": { "default_value": true }, - "speed_infill": { - "value": "speed_print" - }, "speed_wall_x": { "value": "speed_wall" }, diff --git a/resources/definitions/eryone_er20.def.json b/resources/definitions/eryone_er20.def.json index c19a8b1035..f9fe209151 100644 --- a/resources/definitions/eryone_er20.def.json +++ b/resources/definitions/eryone_er20.def.json @@ -156,9 +156,6 @@ "skirt_line_count": { "value": 3 }, - "speed_infill": { - "value": "speed_print" - }, "speed_topbottom": { "value": "math.ceil(speed_print * 20 / 50)" }, diff --git a/resources/definitions/eryone_thinker.def.json b/resources/definitions/eryone_thinker.def.json index e2dbd44215..e48803e368 100644 --- a/resources/definitions/eryone_thinker.def.json +++ b/resources/definitions/eryone_thinker.def.json @@ -143,9 +143,6 @@ "material_bed_temperature_layer_0": { "value": "material_bed_temperature" }, - "speed_infill": { - "value": "speed_print" - }, "speed_wall": { "value": "speed_print" }, diff --git a/resources/definitions/flyingbear_base.def.json b/resources/definitions/flyingbear_base.def.json index 9dc406494e..68c709a630 100644 --- a/resources/definitions/flyingbear_base.def.json +++ b/resources/definitions/flyingbear_base.def.json @@ -116,7 +116,6 @@ "material_diameter": { "default_value": 1.75 }, "layer_height_0": { "value": 0.2 }, - "line_width": { "value": "machine_nozzle_size" }, "skin_line_width": { "value": "machine_nozzle_size" }, "infill_line_width": { "value": "line_width + 0.1" }, "skirt_brim_line_width": { "value": "line_width + 0.1" }, @@ -140,25 +139,19 @@ "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, - "material_flow": { "value": 100 }, - "retraction_enable": { "value": true }, "retraction_min_travel": { "value": 1.5 }, "retraction_count_max": { "value": 100 }, "retraction_extrusion_window": { "value": 10 }, "speed_print": { "value": 60 } , "speed_infill": { "value": "speed_print * 1.5" }, - "speed_wall": { "value": "speed_print / 2" }, - "speed_wall_0": { "value": "speed_wall" }, "speed_wall_x": { "value": "speed_print" }, "speed_roofing": { "value": "speed_topbottom" }, - "speed_topbottom": { "value": "speed_print / 2" }, "speed_support": { "value": "speed_print" }, "speed_support_interface": { "value": "speed_topbottom" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_travel": { "value": "150.0 if speed_print < 60 else 250.0 if speed_print > 100 else speed_print * 2.5" }, "speed_layer_0": { "value": "speed_print / 2" }, - "speed_print_layer_0": { "value": "speed_layer_0" }, "speed_travel_layer_0": { "value": "100 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, "skirt_brim_speed": { "value": "speed_layer_0" }, "speed_z_hop": { "value": 5 }, @@ -171,7 +164,6 @@ "retraction_hop_enabled": { "value": false }, "retraction_hop": { "value": 0.2 }, - "cool_fan_enabled": { "value": true }, "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, "cool_min_layer_time": { "value": 10 }, diff --git a/resources/definitions/goofoo_base.def.json b/resources/definitions/goofoo_base.def.json index 05f34bf8fe..65c0b9067c 100644 --- a/resources/definitions/goofoo_base.def.json +++ b/resources/definitions/goofoo_base.def.json @@ -59,16 +59,13 @@ "acceleration_enabled": { "value": false }, "jerk_enabled": { "value": false }, - "speed_print": { "value": 40.0 } , - "speed_infill": { "value": "speed_print" }, + "speed_print": { "value": 40.0 }, "speed_wall": { "value": "speed_print" }, - "speed_wall_0": { "value": "speed_wall" }, "speed_wall_x": { "value": "speed_wall" }, "speed_topbottom": { "value": "speed_print" }, "speed_roofing": { "value": "speed_topbottom" }, "speed_travel": { "value": "80" }, "speed_layer_0": { "value": 20.0 }, - "speed_print_layer_0": { "value": "speed_layer_0" }, "speed_travel_layer_0": { "value": "60" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_support": { "value": "speed_wall_0" }, @@ -77,18 +74,15 @@ "skirt_brim_speed": { "value": "speed_layer_0" }, - "line_width": { "value": "machine_nozzle_size" }, "optimize_wall_printing_order": { "value": "True" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, - "material_flow": { "value": 100 }, "z_seam_type": { "value": "'back'" }, "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, - - "infill_sparse_density": { "value": "20" }, + "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, "infill_before_walls": { "value": false }, "infill_overlap": { "value": 30.0 }, @@ -110,26 +104,20 @@ "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')", "maximum_value": 200 }, - - "retraction_hop_enabled": { "value": "False" }, + "retraction_hop": { "value": 0.2 }, "retraction_combing": { "value": "'off' if retraction_hop_enabled else 'noskin'" }, "retraction_combing_max_distance": { "value": 30 }, "travel_avoid_other_parts": { "value": true }, "travel_avoid_supports": { "value": true }, "travel_retract_before_outer_wall": { "value": true }, - - "retraction_enable": { "value": true }, + "retraction_count_max": { "value": 100 }, "retraction_extrusion_window": { "value": 10 }, "retraction_min_travel": { "value": 1.5 }, "cool_fan_full_at_height": { "value": "3 * layer_height" }, - "cool_fan_enabled": { "value": true }, "cool_min_layer_time": { "value": 10 }, - - - "top_bottom_thickness": {"value": "layer_height_0 + layer_height * 3" }, "wall_thickness": {"value": "line_width * 2" } diff --git a/resources/definitions/hctech_hc300-m1&m1h.def.json b/resources/definitions/hctech_hc300-m1&m1h.def.json index 188ed3e7e7..7a311975e6 100644 --- a/resources/definitions/hctech_hc300-m1&m1h.def.json +++ b/resources/definitions/hctech_hc300-m1&m1h.def.json @@ -36,7 +36,6 @@ "retraction_speed": { "default_value": 35}, "travel_avoid_supports": { "value": true }, "travel_retract_before_outer_wall": { "value": true }, - "retraction_enable": { "value": true }, "gantry_height": { "value": "55" }, "speed_print": { "default_value": 60.0 } , @@ -48,8 +47,6 @@ "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-1 F2700 ;Retract a bit\nG1 Z1 E-1 F2400 ;Retract and raise Z\nG1 Z2 ;Raise Z\nG90 ;Absolute positioning\nG12 P1;clean nozzle\nG1 X5 Y300 ;Return to Start Point\nM106 S0 ;Switch off part cooling fan\nM104 S0 ;turn off temperature\nM140 S0 ;turn off Heated Bed\nM84 X Y E ;Disable all steppers but Z\nM81 ;turn-off power" }, "cool_fan_speed": { "value": 75 }, - "cool_fan_enabled": { "value": true }, - "line_width": { "value": 0.38 }, "travel_avoid_distance": { "value": 1 }, "infill_before_walls": { "value": false } diff --git a/resources/definitions/hctech_hc300-m2h.def.json b/resources/definitions/hctech_hc300-m2h.def.json index d08258c7c6..651af04ec6 100644 --- a/resources/definitions/hctech_hc300-m2h.def.json +++ b/resources/definitions/hctech_hc300-m2h.def.json @@ -37,7 +37,6 @@ "retraction_speed": { "default_value": 35}, "travel_avoid_supports": { "value": true }, "travel_retract_before_outer_wall": { "value": true }, - "retraction_enable": { "value": true }, "gantry_height": { "value": "55" }, "speed_print": { "default_value": 60.0 } , @@ -49,7 +48,6 @@ "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-1 F2700 ;Retract a bit\nG1 Z1 E-1 F2400 ;Retract and raise Z\nG1 Z2 ;Raise Z\nG90 ;Absolute positioning\nG12 ;clean nozzle\nG1 X5 Y319 ;Return to Start Point\nM106 S0 ;Switch off part cooling fan\nM104 S0 ;turn off temperature\nM140 S0 ;turn off Heated Bed\nM84 X Y E ;Disable all steppers but Z\nM81 ;turn-off power" }, "cool_fan_speed": { "value": 75 }, - "cool_fan_enabled": { "value": true }, "line_width": { "value": 0.38 }, "travel_avoid_distance": { "value": 1 }, diff --git a/resources/definitions/hctech_hc300-m3.def.json b/resources/definitions/hctech_hc300-m3.def.json index cbbae35cfa..10fea4272b 100644 --- a/resources/definitions/hctech_hc300-m3.def.json +++ b/resources/definitions/hctech_hc300-m3.def.json @@ -38,7 +38,6 @@ "retraction_speed": { "default_value": 35}, "travel_avoid_supports": { "value": true }, "travel_retract_before_outer_wall": { "value": true }, - "retraction_enable": { "value": true }, "gantry_height": { "value": "55" }, "speed_print": { "default_value": 60.0 } , @@ -49,7 +48,6 @@ "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 Z1 E-2 F2400 ;Retract and raise Z\nG1 Z2 ;Raise Z\nG90 ;Absolute positioning\nG1 X5 Y290 ;Return to Start Point\nM106 S0 ;Switch off part cooling fan\nM104 S0 ;turn off temperature\nM140 S0 ;turn off Heated Bed\nM84 X Y E ;Disable all steppers but Z" }, "cool_fan_speed": { "value": 75 }, - "cool_fan_enabled": { "value": true }, "line_width": { "value": 0.38 }, "travel_avoid_distance": { "value": 1 }, diff --git a/resources/definitions/hms434.def.json b/resources/definitions/hms434.def.json index 584a642ceb..9f9183c99e 100644 --- a/resources/definitions/hms434.def.json +++ b/resources/definitions/hms434.def.json @@ -124,10 +124,9 @@ "switch_extruder_prime_speed": {"value": "(retraction_prime_speed)"}, "speed_print": {"value": "50"}, - "speed_infill": {"value": "speed_print"}, - "speed_wall": {"value": "(speed_print/5*3) if speed_print > 45 else speed_print"}, + "speed_wall": {"value": "(speed_print/ 5 * 3) if speed_print > 45 else speed_print"}, "speed_wall_x": {"value": "speed_wall"}, - "speed_layer_0": {"value": "(speed_print/5*4) if speed_print > 45 else speed_print"}, + "speed_layer_0": {"value": "(speed_print / 5 * 4) if speed_print > 45 else speed_print"}, "speed_topbottom": {"value": "speed_layer_0"}, "speed_travel": {"value": "250"}, "speed_travel_layer_0": {"value": "speed_travel"}, @@ -165,7 +164,6 @@ "skirt_gap": {"value": 1}, "skirt_brim_minimal_length": {"value": 50}, - "prime_tower_enable": {"value": false }, "prime_tower_size": {"value": 20.6 }, "prime_tower_position_x": {"value": 125 }, "prime_tower_position_y": {"value": 70 }, diff --git a/resources/definitions/inat_base.def.json b/resources/definitions/inat_base.def.json index 61a543c9cc..42a71ee149 100644 --- a/resources/definitions/inat_base.def.json +++ b/resources/definitions/inat_base.def.json @@ -151,43 +151,32 @@ "value": "4" }, "default_material_print_temperature": { - "maximum_value_warning": "470", "maximum_value": "470" }, "material_print_temperature": { - "maximum_value_warning": "470", "maximum_value": "470" }, "material_print_temperature_layer_0": { "value": "material_print_temperature", - "maximum_value_warning": "470", "maximum_value": "470" }, "material_initial_print_temperature": { "value": "material_print_temperature", - "maximum_value_warning": "470", "maximum_value": "470" }, "material_final_print_temperature": { "value": "material_print_temperature", - "maximum_value_warning": "470", "maximum_value": "470" }, "default_material_bed_temperature": { - "maximum_value_warning": "150", "maximum_value": "150" }, "material_bed_temperature": { - "maximum_value_warning": "150", "maximum_value": "150" }, "material_bed_temperature_layer_0": { - "maximum_value_warning": "150", "maximum_value": "150" }, - "speed_infill": { - "value": "speed_print" - }, "speed_wall": { "value": "speed_print" }, diff --git a/resources/definitions/kingroon_base.def.json b/resources/definitions/kingroon_base.def.json index 4ea97f2527..c78f1fc31a 100644 --- a/resources/definitions/kingroon_base.def.json +++ b/resources/definitions/kingroon_base.def.json @@ -170,15 +170,11 @@ "default_material_bed_temperature": { "maximum_value": "150" }, "speed_print": { "value": 60.0 } , - "speed_infill": { "value": "speed_print" }, - "speed_wall": { "value": "speed_print / 2" }, - "speed_wall_0": { "value": "speed_wall" }, + "speed_wall_x": { "value": "speed_wall" }, - "speed_topbottom": { "value": "speed_print / 2" }, "speed_roofing": { "value": "speed_topbottom" }, "speed_travel": { "value": "150.0 if speed_print < 60 else 250.0 if speed_print > 100 else speed_print * 2.5" }, "speed_layer_0": { "value": 20.0 }, - "speed_print_layer_0": { "value": "speed_layer_0" }, "speed_travel_layer_0": { "value": "100 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_support": { "value": "speed_wall_0" }, @@ -193,7 +189,6 @@ "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, - "material_flow": { "value": 100 }, "z_seam_type": { "value": "'back'" }, "z_seam_corner": { "value": "'z_seam_corner_none'" }, @@ -230,13 +225,11 @@ "travel_retract_before_outer_wall": { "value": true }, "retraction_amount": { "value": 2 }, - "retraction_enable": { "value": true }, "retraction_count_max": { "value": 100 }, "retraction_extrusion_window": { "value": 2 }, "retraction_min_travel": { "value": 1.5 }, "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_fan_enabled": { "value": true }, "cool_min_layer_time": { "value": 10 }, "adhesion_type": { "value": "'none' if support_enable else 'skirt'" }, diff --git a/resources/definitions/koonovo_base.def.json b/resources/definitions/koonovo_base.def.json index 3b3ab06fff..868129109e 100644 --- a/resources/definitions/koonovo_base.def.json +++ b/resources/definitions/koonovo_base.def.json @@ -49,7 +49,6 @@ "acceleration_print": { "value": 500 }, "acceleration_travel": { "value": 500 }, - "line_width": { "value": "machine_nozzle_size" }, "wall_thickness": {"value": "line_width * 2" }, @@ -63,33 +62,23 @@ "material_final_print_temperature": { "value": "material_print_temperature" }, "material_bed_temperature": { "value": "55" }, "material_bed_temperature_layer_0": { "value": "material_bed_temperature" }, - "material_flow": { "value": 100 }, "material_standby_temperature": { "value": "material_print_temperature" }, - "speed_print": { "value": 50.0 } , - "speed_infill": { "value": "speed_print" }, - "speed_wall": { "value": "speed_print / 2" }, - "speed_wall_0": { "value": "speed_wall" }, + "speed_wall_x": { "value": "speed_wall" }, - "speed_topbottom": { "value": "speed_print / 2" }, "speed_travel": { "value": "120.0 if speed_print < 60 else 180.0 if speed_print > 100 else speed_print * 2.2" }, "speed_layer_0": { "value": 25.0 }, - "speed_print_layer_0": { "value": "speed_layer_0" }, "speed_travel_layer_0": { "value": "100 if speed_layer_0 < 25 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_support": { "value": "speed_wall_0" }, "speed_z_hop": { "value": 5 }, - - "retraction_enable": { "value": true }, "retraction_amount": { "value": 2.5 }, "retraction_speed": { "value": 40 }, "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_fan_enabled": { "value": true }, "cool_min_layer_time": { "value": 10 }, - "support_brim_enable": { "value": true }, "support_angle": { "value": "math.floor(math.degrees(math.atan(line_width/2.0/layer_height)))" }, "support_pattern": { "value": "'zigzag'" }, diff --git a/resources/definitions/koonovo_kn3.def.json b/resources/definitions/koonovo_kn3.def.json index c67209805d..2f8ba71ecf 100644 --- a/resources/definitions/koonovo_kn3.def.json +++ b/resources/definitions/koonovo_kn3.def.json @@ -66,7 +66,6 @@ "acceleration_print": { "value": 500 }, "acceleration_travel": { "value": 500 }, - "line_width": { "value": "machine_nozzle_size" }, "wall_thickness": {"value": "line_width * 2" }, @@ -79,30 +78,21 @@ "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, "default_material_bed_temperature": { "value": "55" }, - "material_flow": { "value": 100 }, "material_standby_temperature": { "value": "material_print_temperature" }, - "speed_print": { "value": 50.0 } , - "speed_infill": { "value": "speed_print" }, - "speed_wall": { "value": "speed_print / 2" }, - "speed_wall_0": { "value": "speed_wall" }, "speed_wall_x": { "value": "speed_wall" }, - "speed_topbottom": { "value": "speed_print / 2" }, "speed_travel": { "value": "120.0 if speed_print < 60 else 180.0 if speed_print > 100 else speed_print * 2.2" }, "speed_layer_0": { "value": 25.0 }, - "speed_print_layer_0": { "value": "speed_layer_0" }, "speed_travel_layer_0": { "value": "100 if speed_layer_0 < 25 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_support": { "value": "speed_wall_0" }, "speed_z_hop": { "value": 5 }, - "retraction_enable": { "value": true }, "retraction_amount": { "value": 2.5 }, "retraction_speed": { "value": 40 }, "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_fan_enabled": { "value": true }, "cool_min_layer_time": { "value": 10 }, diff --git a/resources/definitions/koonovo_kn5.def.json b/resources/definitions/koonovo_kn5.def.json index 7cd82a61aa..d206c9b87a 100644 --- a/resources/definitions/koonovo_kn5.def.json +++ b/resources/definitions/koonovo_kn5.def.json @@ -67,8 +67,6 @@ "acceleration_print": { "value": 500 }, "acceleration_travel": { "value": 500 }, - - "line_width": { "value": "machine_nozzle_size" }, "wall_thickness": {"value": "line_width * 2" }, @@ -82,31 +80,22 @@ "material_final_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, "default_material_bed_temperature": { "value": "45" }, - "material_flow": { "value": 100 }, - "speed_print": { "value": 50.0 } , - "speed_infill": { "value": "speed_print" }, - "speed_wall": { "value": "speed_print / 2" }, - "speed_wall_0": { "value": "speed_wall" }, + "speed_print": { "value": 50.0 } , , "speed_wall_x": { "value": "speed_wall" }, - "speed_topbottom": { "value": "speed_print / 2" }, "speed_travel": { "value": "120.0 if speed_print < 60 else 180.0 if speed_print > 100 else speed_print * 2.2" }, "speed_layer_0": { "value": 25.0 }, - "speed_print_layer_0": { "value": "speed_layer_0" }, "speed_travel_layer_0": { "value": "100 if speed_layer_0 < 25 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_support": { "value": "speed_wall_0" }, "speed_z_hop": { "value": 5 }, - "retraction_enable": { "value": true }, "retraction_amount": { "value": 2.5 }, "retraction_speed": { "value": 40 }, "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_fan_enabled": { "value": true }, "cool_min_layer_time": { "value": 10 }, - "support_brim_enable": { "value": true }, "support_angle": { "value": "math.floor(math.degrees(math.atan(line_width/2.0/layer_height)))" }, "support_pattern": { "value": "'zigzag'" }, diff --git a/resources/definitions/liquid.def.json b/resources/definitions/liquid.def.json index 0fc0f3c9ca..0d0d5f0a43 100644 --- a/resources/definitions/liquid.def.json +++ b/resources/definitions/liquid.def.json @@ -87,8 +87,7 @@ "value": true, "enabled": true }, - - "acceleration_enabled": { "value": "True" }, + "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, "acceleration_print": { "value": "4000" }, diff --git a/resources/definitions/longer_base.def.json b/resources/definitions/longer_base.def.json index 2a2e6f5867..435b3000ab 100644 --- a/resources/definitions/longer_base.def.json +++ b/resources/definitions/longer_base.def.json @@ -60,15 +60,10 @@ "jerk_enabled": { "value": false }, "speed_print": { "value": 50.0 } , - "speed_infill": { "value": "speed_print" }, - "speed_wall": { "value": "speed_print / 2" }, - "speed_wall_0": { "value": "speed_wall" }, "speed_wall_x": { "value": "speed_wall" }, - "speed_topbottom": { "value": "speed_print / 2" }, "speed_roofing": { "value": "speed_topbottom" }, "speed_travel": { "value": "150.0 if speed_print < 60 else 250.0 if speed_print > 100 else speed_print * 2.5" }, "speed_layer_0": { "value": 20.0 }, - "speed_print_layer_0": { "value": "speed_layer_0" }, "speed_travel_layer_0": { "value": "100 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_support": { "value": "speed_wall_0" }, @@ -77,18 +72,15 @@ "skirt_brim_speed": { "value": "speed_layer_0" }, - "line_width": { "value": "machine_nozzle_size" }, "optimize_wall_printing_order": { "value": "True" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, - "material_flow": { "value": 100 }, "z_seam_type": { "value": "'back'" }, "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, - - "infill_sparse_density": { "value": "20" }, + "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, "infill_before_walls": { "value": false }, "infill_overlap": { "value": 30.0 }, @@ -112,8 +104,7 @@ "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')", "maximum_value": 200 }, - - "retraction_hop_enabled": { "value": "False" }, + "retraction_hop": { "value": 0.2 }, "retraction_combing": { "value": "'off' if retraction_hop_enabled else 'noskin'" }, "retraction_combing_max_distance": { "value": 30 }, @@ -121,13 +112,12 @@ "travel_avoid_supports": { "value": true }, "travel_retract_before_outer_wall": { "value": true }, - "retraction_enable": { "value": true }, + "retraction_count_max": { "value": 100 }, "retraction_extrusion_window": { "value": 10 }, "retraction_min_travel": { "value": 1.5 }, "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_fan_enabled": { "value": true }, "cool_min_layer_time": { "value": 10 }, "adhesion_type": { "value": "'raft'" }, diff --git a/resources/definitions/lotmaxx_sc10.def.json b/resources/definitions/lotmaxx_sc10.def.json index b94c63533c..6700521b53 100644 --- a/resources/definitions/lotmaxx_sc10.def.json +++ b/resources/definitions/lotmaxx_sc10.def.json @@ -14,7 +14,8 @@ "0": "lotmaxx_sc10_extruder_0" } }, - "overrides": { + "overrides": + { "machine_name": { "default_value": "Lotmaxx SC-10" }, "machine_width": { "default_value": 235 }, "machine_depth": { "default_value": 235 }, @@ -23,42 +24,39 @@ "gantry_height": { "value": 40 }, "machine_start_gcode": { "default_value": "; SC-10 Custom Start G-code\nG28 ; Home all axes\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position\nG1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line\nG1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little\nG1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\n; End of custom start GCode" }, "machine_end_gcode": { "default_value": "; SC-10 Custom End G-code\nG4 ; Wait\nM220 S100 ; Reset Speed factor override percentage to default (100%)\nM221 S100 ; Reset Extrude factor override percentage to default (100%)\nG91 ; Set coordinates to relative\nG1 F1800 E-3 ; Retract filament 3 mm to prevent oozing\nG1 F3000 Z20 ; Move Z Axis up 20 mm to allow filament ooze freely\nG90 ; Set coordinates to absolute\nG1 X0 Y{machine_depth} F1000 ; Move Heat Bed to the front for easy print removal\nM84 ; Disable stepper motors\n; End of custom end GCode" }, - "machine_max_jerk_xy":{ "value":10 }, - "machine_max_jerk_z":{ "value":0.4 }, - "machine_max_jerk_e":{ "value":5 }, - "machine_heated_bed":{ "default_value":true }, - "material_diameter":{ "default_value":1.75 }, - "jerk_print":{ "value":8 }, - "jerk_travel":{ "value":"jerk_print" }, - "jerk_travel_layer_0":{ "value":"jerk_travel" }, - "acceleration_enabled":{ "value":false }, - "jerk_enabled":{ "value":false }, - "speed_print":{ "value":60.0 }, - "speed_infill":{ "value":"speed_print * 2" }, - "speed_wall":{ "value":"speed_print / 2" }, - "speed_wall_0":{ "value":"speed_wall" }, - "speed_wall_x":{ "value":"speed_wall" }, - "speed_topbottom":{ "value":"speed_print / 2" }, - "speed_roofing":{ "value":"speed_topbottom" }, - "speed_travel":{ "value":"150.0 if speed_print < 60 else 250.0 if speed_print > 100 else speed_print * 2.5" }, - "speed_layer_0":{ "value":20.0 }, - "speed_print_layer_0":{ "value":"speed_layer_0" }, - "speed_travel_layer_0":{ "value":"100 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, - "speed_prime_tower":{ "value":"speed_topbottom" }, - "speed_support":{ "value":"speed_wall_0" }, - "speed_support_interface":{ "value":"speed_topbottom" }, - "skirt_brim_speed":{ "value":"speed_layer_0" }, - "retraction_enable":{ "value":true }, - "retraction_count_max":{ "value":100 }, - "retraction_extrusion_window":{ "value":10 }, - "retraction_min_travel":{ "value":1.5 }, - "cool_fan_full_at_height":{ "value":"layer_height_0 + 2 * layer_height" }, - "cool_fan_enabled":{ "value":true }, - "cool_min_layer_time":{ "value":10 }, - "meshfix_maximum_resolution":{ "value":"0.25" }, - "meshfix_maximum_travel_resolution":{ "value":"meshfix_maximum_resolution" }, + "machine_max_jerk_xy":{ "value": 10 }, + "machine_max_jerk_z":{ "value": 0.4 }, + "machine_max_jerk_e":{ "value": 5 }, + "machine_heated_bed":{ "default_value": true }, + "material_diameter":{ "default_value": 1.75 }, + "jerk_print":{ "value": 8 }, + "jerk_travel":{ "value": "jerk_print" }, + "jerk_travel_layer_0":{ "value":" jerk_travel" }, + "acceleration_enabled":{ "value": false }, + "jerk_enabled":{ "value": false }, + "speed_print":{ "value": 60.0 }, + "speed_infill":{ "value": "speed_print * 2" }, + "speed_wall_0":{ "value": "speed_wall" }, + "speed_wall_x":{ "value": "speed_wall" }, + "speed_roofing":{ "value": "speed_topbottom" }, + "speed_travel":{ "value": "150.0 if speed_print < 60 else 250.0 if speed_print > 100 else speed_print * 2.5" }, + "speed_layer_0":{ "value": 20.0 }, + "speed_travel_layer_0":{ "value": "100 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, + "speed_prime_tower":{ "value": "speed_topbottom" }, + "speed_support":{ "value": "speed_wall_0" }, + "speed_support_interface":{ "value": "speed_topbottom" }, + "skirt_brim_speed":{ "value": "speed_layer_0" }, + "retraction_enable":{ "value": true }, + "retraction_count_max":{ "value": 100 }, + "retraction_extrusion_window":{ "value": 10 }, + "retraction_min_travel":{ "value": 1.5 }, + "cool_fan_full_at_height":{ "value": "layer_height_0 + 2 * layer_height" }, + "cool_fan_enabled":{ "value": true }, + "cool_min_layer_time":{ "value": 10 }, + "meshfix_maximum_resolution":{ "value": "0.25" }, + "meshfix_maximum_travel_resolution":{ "value": "meshfix_maximum_resolution" }, "adhesion_type": { "value": "'none' if support_enable else 'skirt'" }, - "skirt_gap":{ "value":5.0 }, - "skirt_line_count":{ "value":4 } + "skirt_gap":{ "value": 5.0 }, + "skirt_line_count":{ "value": 4 } } } diff --git a/resources/definitions/lotmaxx_sc20.def.json b/resources/definitions/lotmaxx_sc20.def.json index f96cb0839a..1aa982430d 100644 --- a/resources/definitions/lotmaxx_sc20.def.json +++ b/resources/definitions/lotmaxx_sc20.def.json @@ -35,14 +35,11 @@ "jerk_enabled":{ "value":false }, "speed_print":{ "value":60.0 }, "speed_infill":{ "value":"speed_print * 2" }, - "speed_wall":{ "value":"speed_print / 2" }, "speed_wall_0":{ "value":"speed_wall" }, "speed_wall_x":{ "value":"speed_wall" }, - "speed_topbottom":{ "value":"speed_print / 2" }, "speed_roofing":{ "value":"speed_topbottom" }, "speed_travel":{ "value":"150.0 if speed_print < 60 else 250.0 if speed_print > 100 else speed_print * 2.5" }, "speed_layer_0":{ "value":20.0 }, - "speed_print_layer_0":{ "value":"speed_layer_0" }, "speed_travel_layer_0":{ "value":"100 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, "speed_prime_tower":{ "value":"speed_topbottom" }, "speed_support":{ "value":"speed_wall_0" }, diff --git a/resources/definitions/malyan_m200.def.json b/resources/definitions/malyan_m200.def.json index c8eb4eb654..2eeef96cbd 100644 --- a/resources/definitions/malyan_m200.def.json +++ b/resources/definitions/malyan_m200.def.json @@ -28,7 +28,6 @@ "speed_wall_x": { "value": "speed_print" }, "speed_support": { "value": "speed_wall_0" }, "speed_layer_0": { "value": "round(speed_print / 2.0, 2)" }, - "speed_infill": { "value": "speed_print" }, "speed_topbottom": {"value": "speed_print / 2"}, "layer_height": @@ -80,7 +79,6 @@ "retraction_amount" : { "default_value": 4.5}, "retraction_speed" : { "default_value": 40}, "coasting_enable": { "default_value": true }, - "prime_tower_enable": { "default_value": false}, "speed_z_hop": {"default_value": 1.5} } } diff --git a/resources/definitions/mingda_base.def.json b/resources/definitions/mingda_base.def.json index ce80fda7c4..169adc8b85 100644 --- a/resources/definitions/mingda_base.def.json +++ b/resources/definitions/mingda_base.def.json @@ -108,15 +108,10 @@ "jerk_enabled": { "value": false }, "speed_print": { "value": 60.0 } , - "speed_infill": { "value": "speed_print" }, - "speed_wall": { "value": "speed_print / 2" }, - "speed_wall_0": { "value": "speed_wall" }, "speed_wall_x": { "value": "speed_wall" }, - "speed_topbottom": { "value": "speed_print / 2" }, "speed_roofing": { "value": "speed_topbottom" }, "speed_travel": { "value": "150.0 if speed_print < 60 else 250.0 if speed_print > 100 else speed_print * 2.5" }, "speed_layer_0": { "value": 20.0 }, - "speed_print_layer_0": { "value": "speed_layer_0" }, "speed_travel_layer_0": { "value": "100 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_support": { "value": "speed_wall_0" }, @@ -131,7 +126,6 @@ "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, - "material_flow": { "value": 100 }, "z_seam_type": { "value": "'back'" }, "z_seam_corner": { "value": "'z_seam_corner_none'" }, @@ -168,13 +162,12 @@ "travel_retract_before_outer_wall": { "value": true }, "retraction_amount": { "value": 2 }, - "retraction_enable": { "value": true }, + "retraction_count_max": { "value": 100 }, "retraction_extrusion_window": { "value": 10 }, "retraction_min_travel": { "value": 1.5 }, "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_fan_enabled": { "value": true }, "cool_min_layer_time": { "value": 10 }, "adhesion_type": { "value": "'none' if support_enable else 'skirt'" }, diff --git a/resources/definitions/mixware_hyper_s.def.json b/resources/definitions/mixware_hyper_s.def.json index 12e55444cf..b467f8e98c 100644 --- a/resources/definitions/mixware_hyper_s.def.json +++ b/resources/definitions/mixware_hyper_s.def.json @@ -241,12 +241,6 @@ "skirt_brim_speed": { "value": "speed_layer_0" }, - "speed_infill": { - "value": "speed_print" - }, - "speed_wall": { - "value": "speed_print / 2" - }, "speed_wall_0": { "value": "speed_wall" }, @@ -262,9 +256,6 @@ "speed_travel": { "value": "150.0 if speed_print < 60 else 250.0 if speed_print > 100 else speed_print * 2.5" }, - "speed_print_layer_0": { - "value": "speed_layer_0" - }, "speed_travel_layer_0": { "value": "100 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, diff --git a/resources/definitions/rigid3d_base.def.json b/resources/definitions/rigid3d_base.def.json index b205f03cc8..bc592ccff8 100644 --- a/resources/definitions/rigid3d_base.def.json +++ b/resources/definitions/rigid3d_base.def.json @@ -113,7 +113,7 @@ "travel_avoid_other_parts": { "value": "False" }, "support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height * 2" }, - "support_interface_enable": { "value": "True" }, + "support_interface_enable": { "value": true }, "support_interface_density": { "value": 70 }, "minimum_interface_area": { "value": 5.0 }, "minimum_support_area": { "value": 5 }, diff --git a/resources/definitions/structur3d_discov3ry1_complete_um2plus.def.json b/resources/definitions/structur3d_discov3ry1_complete_um2plus.def.json index 6f04cdd93c..6b280a6c7b 100644 --- a/resources/definitions/structur3d_discov3ry1_complete_um2plus.def.json +++ b/resources/definitions/structur3d_discov3ry1_complete_um2plus.def.json @@ -28,9 +28,6 @@ "overrides": { "machine_name": { "default_value": "Discov3ry Complete (Ultimaker 2+)" }, - "speed_infill": { - "value": "speed_print" - }, "infill_sparse_density": { "value": 100 }, diff --git a/resources/definitions/tank_m_base.def.json b/resources/definitions/tank_m_base.def.json index 41387fad7e..b3e0bcfb86 100644 --- a/resources/definitions/tank_m_base.def.json +++ b/resources/definitions/tank_m_base.def.json @@ -49,7 +49,6 @@ "acceleration_print": { "value": 2500 }, "acceleration_travel": { "value": 2500 }, - "line_width": { "value": "machine_nozzle_size" }, "wall_thickness": {"value": "line_width * 2" }, @@ -63,33 +62,23 @@ "material_final_print_temperature": { "value": "material_print_temperature" }, "material_bed_temperature": { "value": "55" }, "material_bed_temperature_layer_0": { "value": "material_bed_temperature" }, - "material_flow": { "value": 100 }, "material_standby_temperature": { "value": "material_print_temperature" }, - "speed_print": { "value": 50.0 } , - "speed_infill": { "value": "speed_print" }, - "speed_wall": { "value": "speed_print / 2" }, - "speed_wall_0": { "value": "speed_wall" }, "speed_wall_x": { "value": "speed_wall" }, - "speed_topbottom": { "value": "speed_print / 2" }, "speed_travel": { "value": "120.0 if speed_print < 60 else 300.0 if speed_print > 100 else speed_print * 2.2" }, "speed_layer_0": { "value": 25.0 }, - "speed_print_layer_0": { "value": "speed_layer_0" }, "speed_travel_layer_0": { "value": "100 if speed_layer_0 < 25 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_support": { "value": "speed_wall_0" }, "speed_z_hop": { "value": 5 }, - "retraction_enable": { "value": true }, "retraction_amount": { "value": 1.0 }, "retraction_speed": { "value": 40 }, "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_fan_enabled": { "value": true }, "cool_min_layer_time": { "value": 10 }, - "support_brim_enable": { "value": true }, "support_angle": { "value": "math.floor(math.degrees(math.atan(line_width/2.0/layer_height)))" }, "support_pattern": { "value": "'zigzag'" }, diff --git a/resources/definitions/trimaker_nebula_plus.def.json b/resources/definitions/trimaker_nebula_plus.def.json index 71fb729c0f..0a2983e67e 100644 --- a/resources/definitions/trimaker_nebula_plus.def.json +++ b/resources/definitions/trimaker_nebula_plus.def.json @@ -32,7 +32,6 @@ "machine_acceleration": { "default_value": 3000 }, "machine_extruder_count": { "default_value": 1 }, - "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_print": { "value": "4000" }, "acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, diff --git a/resources/definitions/tronxy_x.def.json b/resources/definitions/tronxy_x.def.json index 9665ca0f4f..488316ded2 100644 --- a/resources/definitions/tronxy_x.def.json +++ b/resources/definitions/tronxy_x.def.json @@ -46,15 +46,12 @@ "jerk_enabled": { "value": false }, "speed_print": { "value": 60.0 } , - "speed_infill": { "value": "speed_print" }, - "speed_wall": { "value": "speed_print *0.75" }, - "speed_wall_0": { "value": "speed_wall" }, + "speed_wall": { "value": "speed_print * 0.75" }, "speed_wall_x": { "value": "speed_wall" }, "speed_topbottom": { "value": "speed_print * 0.5" }, "speed_roofing": { "value": "speed_topbottom" }, "speed_travel": { "value": "60.0 if speed_print < 50 else 120.0 if speed_print > 80 else speed_print * 1.25" }, "speed_layer_0": { "value": 30.0 }, - "speed_print_layer_0": { "value": "speed_layer_0" }, "speed_travel_layer_0": { "value": "45 if speed_layer_0 < 20 else 60 if speed_layer_0 > 30 else speed_layer_0 * 1.5" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_support": { "value": "speed_wall_0" }, @@ -63,7 +60,6 @@ "skirt_brim_speed": { "value": "speed_layer_0" }, - "line_width": { "value": "machine_nozzle_size" }, "optimize_wall_printing_order": { "value": "True" }, @@ -74,8 +70,7 @@ "z_seam_type": { "value": "'sharpest_corner'" }, "z_seam_corner": { "value": "'z_seam_corner_inner'" }, - - "infill_sparse_density": { "value": "20" }, + "infill_pattern": { "value": "'lines' if infill_sparse_density > 56 else 'cubic'" }, "infill_before_walls": { "value": false }, "infill_overlap": { "value": 30.0 }, @@ -105,8 +100,7 @@ "travel_avoid_other_parts": { "value": false }, "travel_avoid_supports": { "value": true }, "travel_retract_before_outer_wall": { "value": true }, - - "retraction_enable": { "value": true }, + "retract_at_layer_change": { "value": true }, "retraction_count_max": { "value": 100 }, "retraction_extrusion_window": { "value": 5 }, @@ -114,7 +108,6 @@ "retraction_min_travel": { "value": 1.5 }, "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_fan_enabled": { "value": true }, "cool_min_layer_time": { "value": 10 }, "adhesion_type": { "value": "'skirt'" }, @@ -140,8 +133,7 @@ "support_wall_count": { "value": 0 }, "support_brim_enable": { "value": true }, "support_brim_width": { "value": 4 }, - - "support_interface_enable": { "value": false }, + , "support_interface_height": { "value": "layer_height * 4" }, "support_interface_density": { "value": 33.333 }, "support_interface_pattern": { "value": "'grid'" }, diff --git a/resources/definitions/two_trees_base.def.json b/resources/definitions/two_trees_base.def.json index b672a2f4cd..f6918c6121 100644 --- a/resources/definitions/two_trees_base.def.json +++ b/resources/definitions/two_trees_base.def.json @@ -32,15 +32,10 @@ "material_diameter": { "default_value": 1.75 }, - "speed_print": { "value": 50.0 } , - "speed_infill": { "value": "speed_print" }, - "speed_wall": { "value": "speed_print / 2" }, - "speed_wall_0": { "value": "speed_wall" }, + "speed_print": { "value": 50.0 }, "speed_wall_x": { "value": "speed_print / 1.5" }, - "speed_topbottom": { "value": "speed_print / 2" }, "speed_roofing": { "value": "speed_topbottom" }, "speed_layer_0": { "value": 20.0 }, - "speed_print_layer_0": { "value": "speed_layer_0" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_support": { "value": "speed_wall_0" }, "speed_support_interface": { "value": "speed_topbottom" }, @@ -48,14 +43,12 @@ "skirt_brim_speed": { "value": "speed_layer_0" }, - "line_width": { "value": "machine_nozzle_size" }, "optimize_wall_printing_order": { "value": "True" }, "z_seam_type": { "value": "'sharpest_corner'" }, "z_seam_corner": { "value": "'z_seam_corner_inner'" }, - - "infill_sparse_density": { "value": "20" }, + "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, "infill_before_walls": { "value": false }, "infill_overlap": { "value": 30.0 }, @@ -65,24 +58,20 @@ "fill_outline_gaps": { "value": false }, - "retraction_hop_enabled": { "value": "False" }, "retraction_hop": { "value": 0.2 }, "retraction_combing": { "value": "'off' if retraction_hop_enabled else 'noskin'" }, "retraction_combing_max_distance": { "value": 30 }, "travel_avoid_other_parts": { "value": true }, "travel_avoid_supports": { "value": true }, "travel_retract_before_outer_wall": { "value": true }, - - "retraction_enable": { "value": true }, + "retraction_speed": { "default_value" : 40 }, "retraction_amount": { "default_value" : 7 }, "retraction_count_max": { "value": 100 }, "retraction_extrusion_window": { "value": 10 }, "retraction_min_travel": { "value": 1.5 }, - "cool_fan_full_layer": { "value": "2" }, - "cool_fan_enabled": { "value": true }, "cool_min_layer_time": { "value": 10 }, "adhesion_type": { "value": "'skirt'" }, @@ -108,7 +97,6 @@ "support_brim_enable": { "value": true }, "support_brim_width": { "value": 5 }, - "support_interface_enable": { "value": false }, "support_interface_height": { "value": "layer_height * 4" }, "support_interface_density": { "value": 33.333 }, "support_interface_pattern": { "value": "'grid'" }, diff --git a/resources/definitions/ultimaker2_plus_connect.def.json b/resources/definitions/ultimaker2_plus_connect.def.json index 8ccbd7f380..adb5efadcf 100644 --- a/resources/definitions/ultimaker2_plus_connect.def.json +++ b/resources/definitions/ultimaker2_plus_connect.def.json @@ -57,8 +57,6 @@ "infill_wipe_dist": { "value": "0" }, "infill_overlap": { "value": "0" }, "infill_pattern": { "value": "'zigzag' if infill_sparse_density > 80 else 'grid'" }, - "speed_infill": { "value": "speed_print" }, - "speed_wall_x": { "value": "speed_wall" }, "layer_height_0": { "value": "round(machine_nozzle_size / 1.5, 2)" }, "optimize_wall_printing_order": { "value": "True" }, "zig_zaggify_infill": { "value": "gradual_infill_steps == 0" }, diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index ddb02b7810..97a83c5ee7 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -82,7 +82,6 @@ "prime_blob_enable": { "enabled": true, "default_value": true, "value": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, - "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 3500)" }, "acceleration_print": { "value": "3500" }, diff --git a/resources/definitions/ultimaker_s3.def.json b/resources/definitions/ultimaker_s3.def.json index 5ccbc2c5a0..5d1464396f 100644 --- a/resources/definitions/ultimaker_s3.def.json +++ b/resources/definitions/ultimaker_s3.def.json @@ -75,7 +75,6 @@ "value": "150" }, - "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 3500)" }, "acceleration_print": { "value": "3500" }, diff --git a/resources/definitions/ultimaker_s5.def.json b/resources/definitions/ultimaker_s5.def.json index 9eb00e6155..314da546de 100644 --- a/resources/definitions/ultimaker_s5.def.json +++ b/resources/definitions/ultimaker_s5.def.json @@ -77,7 +77,6 @@ "value": "150" }, - "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 3500)" }, "acceleration_print": { "value": "3500" }, diff --git a/resources/definitions/weedo_x40.def.json b/resources/definitions/weedo_x40.def.json index 9fb5cad2d8..305dd8b765 100644 --- a/resources/definitions/weedo_x40.def.json +++ b/resources/definitions/weedo_x40.def.json @@ -215,7 +215,6 @@ "infill_overlap": { "value": 30.0 }, "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, "infill_wipe_dist": { "value": 0.0 }, - "infill_sparse_density": { "value": "20" }, "infill_before_walls": { "value": false }, "jerk_enabled": { "value": false }, "jerk_print": { "value": 11 }, @@ -223,41 +222,32 @@ "jerk_wall": { "value": "jerk_print - 2" }, "jerk_travel": { "value": 18 }, "jerk_travel_layer_0": { "value": "jerk_travel" }, - "layer_height_0": { "value": "round(layer_height * 1.5, 2)" }, - "line_width": { "value": "machine_nozzle_size" }, + "layer_height_0": { "value": "round(layer_height * 1.5, 2)" }, "machine_min_cool_heat_time_window": { "default_value": 360 }, "machine_max_jerk_xy": { "value": 10 }, "machine_max_jerk_z": { "value": 0.4 }, "machine_max_jerk_e": { "value": 5 }, "machine_center_is_zero": { "default_value": false }, "material_diameter": { "default_value": 1.75 }, - "material_flow": { "value": 100 }, "material_standby_temperature": { "value": "100" }, - "material_print_temp_prepend": { "default_value":false }, - "prime_tower_enable": { "default_value": false }, + "material_print_temp_prepend": { "default_value": false }, "raft_airgap": { "default_value": 0.22 }, "raft_base_speed":{ "value": 20 }, "raft_interface_speed": { "value": 33 }, "raft_margin": { "default_value": 8 }, - "retraction_enable": { "value": true }, + "retraction_amount": { "default_value": 4.5 }, "retraction_count_max": { "value": 100 }, "retraction_extrusion_window": { "value": 8 }, "retraction_hop": { "value": 0.5 }, - "retraction_hop_enabled": { "value": "False" }, "retraction_min_travel": { "value": 1.5 }, "skin_overlap": { "value": 10.0 }, "speed_layer_0": { "value": "round(speed_print / 2.5, 2)" }, "speed_print": { "value": 50.0 }, "speed_support": { "value": "speed_wall_0" }, "speed_support_interface": { "value": "speed_print" }, - "speed_topbottom": { "value": "speed_print / 2" }, - "speed_wall": { "value": "speed_print / 2" }, - "speed_wall_0": { "value": "speed_wall" }, "speed_wall_x": { "value": "speed_wall" }, - "speed_infill": { "value": "speed_print" }, "speed_support_infill": { "value": 58.0 }, - "speed_print_layer_0": { "value": "speed_layer_0" }, "speed_travel_layer_0": { "value": 60 }, "speed_support_roof": { "value": 39.0 }, "speed_support_bottom": { "value": 39.0 }, diff --git a/resources/definitions/winbo_dragonl4.def.json b/resources/definitions/winbo_dragonl4.def.json index 746b9ce2fe..d365cb2672 100644 --- a/resources/definitions/winbo_dragonl4.def.json +++ b/resources/definitions/winbo_dragonl4.def.json @@ -40,7 +40,6 @@ "machine_start_gcode": { "default_value": "G21\nG90\nM82\nM107\nM9998\nG28 X0 Y0\nG28 Z0\nG1 F6000 Z0.3\nG92 E0\nG1 F800 X585 E12\nG92 E0" }, "machine_end_gcode": { "default_value": "M104 S0\nM140 S0\nG92 E2\nG1 E0 F200\nG28 X0 Y0\nM84 X Y E" }, "prime_blob_enable": { "enabled": true }, - "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, "acceleration_print": { "value": "1800" }, @@ -69,11 +68,11 @@ "jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" }, "jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" }, "wall_thickness": { "value": "2.4"}, - "line_width": { "value": "extruderValue(-1,'machine_nozzle_size')" }, + "line_width": { "value": "extruderValue(-1, 'machine_nozzle_size')" }, "wall_0_inset": { "value": "0.05" }, "wall_line_width_x": { "value": "line_width" }, "wall_line_width_0": { "value": "line_width-0.05" }, - "support_line_width": { "value": "max(min(line_width,0.4),line_width/2)" }, + "support_line_width": { "value": "max(min(line_width, 0.4),line_width / 2)" }, "support_interface_line_width": { "value": "support_line_width" }, "machine_min_cool_heat_time_window": { "value": "15" }, "default_material_print_temperature": { "value": "200" }, @@ -99,33 +98,32 @@ "skin_overlap": { "value": "10" }, "speed_layer_0": { "value": "25" }, "speed_print": { "value": "70" }, - "speed_support": { "value": "speed_print*line_width/support_line_width" }, - "speed_support_interface": { "value": "speed_print*line_width/support_interface_line_width" }, - "speed_topbottom": { "value": "speed_print*line_width/skin_line_width" }, + "speed_support": { "value": "speed_print * line_width / support_line_width" }, + "speed_support_interface": { "value": "speed_print * line_width / support_interface_line_width" }, + "speed_topbottom": { "value": "speed_print * line_width / skin_line_width" }, "speed_travel": { "value": "100" }, - "speed_infill": { "value": "speed_print*line_width/infill_line_width" }, - "speed_wall": { "value": "speed_print*wall_line_width_0/line_width" }, + "speed_infill": { "value": "speed_print * line_width / infill_line_width" }, + "speed_wall": { "value": "speed_print * wall_line_width_0 / line_width" }, "speed_wall_0": { "value": "math.ceil(speed_wall * 0.6)" }, "speed_wall_x": { "value": "speed_wall" }, "support_angle": { "value": "50" }, "support_xy_distance": { "value": "1" }, - "support_z_distance": { "value": "max((0.2 if(0.2%layer_height==0) else layer_height*int((0.2+layer_height)/layer_height)),layer_height)" }, - "support_bottom_distance": { "value": "max(support_z_distance,layer_height*int(0.45/layer_height))" }, - "top_bottom_thickness": { "value": "max(1.2,layer_height*6)" }, + "support_z_distance": { "value": "max((0.2 if(0.2 % layer_height == 0) else layer_height * int((0.2 + layer_height) / layer_height)), layer_height)" }, + "support_bottom_distance": { "value": "max(support_z_distance, layer_height * int(0.45 / layer_height))" }, + "top_bottom_thickness": { "value": "max(1.2, layer_height * 6)" }, "travel_avoid_distance": { "value": "3" }, "gradual_support_infill_step_height": { "value": "0.2" }, "gradual_support_infill_steps": { "value": "1" }, - "infill_sparse_density": { "value": "20" }, "gradual_infill_step_height": { "value": "1" }, "initial_layer_line_width_factor": { "value": "120" }, "jerk_travel": { "value": "25" }, "support_bottom_enable": { "value": "True" }, - "support_bottom_height": { "value": "max((0.15 if(0.15%layer_height==0) else layer_height*int((0.15+layer_height)/layer_height)),layer_height)" }, + "support_bottom_height": { "value": "max((0.15 if(0.15 % layer_height == 0) else layer_height * int((0.15 + layer_height) / layer_height)), layer_height)" }, "support_bottom_pattern": { "value": "'zigzag'" }, "support_connect_zigzags": { "value": "False" }, "support_infill_rate": { "value": "8 if support_enable and support_structure == 'normal' else 0 if support_enable and support_structure == 'tree' else 8" }, "support_interface_density": { "value": "80" }, - "support_interface_enable": { "value": "True" }, + "support_interface_enable": { "value": true }, "support_interface_height": { "value": "0.5" }, "support_roof_pattern": { "value": "'concentric'" }, "z_seam_type": { "value": "'shortest'" } diff --git a/resources/definitions/winbo_mini2.def.json b/resources/definitions/winbo_mini2.def.json index 903142010b..73c6562edd 100644 --- a/resources/definitions/winbo_mini2.def.json +++ b/resources/definitions/winbo_mini2.def.json @@ -40,7 +40,6 @@ "machine_start_gcode": { "default_value": "G21\nG90\nM82\nM107\nG28 X0 Y0\nG28 Z0\nG1 F1000 Z3\nG1 F4000 X0\nG1 F4000 Y0\nG1 F1000 Z0.2\nG92 E0\nG1 F1000 X30 E8\nG92 E0\nM117 Printing." }, "machine_end_gcode": { "default_value": "M104 S0\nM140 S0\nG92 E2\nG1 E0 F200\nG28 X0 Y0\nM84 X Y E" }, "prime_blob_enable": { "enabled": true }, - "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, "acceleration_print": { "value": "2000" }, @@ -99,23 +98,22 @@ "skin_overlap": { "value": "10" }, "speed_layer_0": { "value": "20" }, "speed_print": { "value": "50" }, - "speed_support": { "value": "speed_print*line_width/support_line_width" }, - "speed_support_interface": { "value": "speed_print*line_width/support_interface_line_width" }, - "speed_topbottom": { "value": "speed_print*line_width/skin_line_width" }, + "speed_support": { "value": "speed_print * line_width / support_line_width" }, + "speed_support_interface": { "value": "speed_print * line_width / support_interface_line_width" }, + "speed_topbottom": { "value": "speed_print * line_width / skin_line_width" }, "speed_travel": { "value": "90" }, - "speed_infill": { "value": "speed_print*line_width/infill_line_width" }, - "speed_wall": { "value": "speed_print*wall_line_width_0/line_width" }, + "speed_infill": { "value": "speed_print * line_width / infill_line_width" }, + "speed_wall": { "value": "speed_print * wall_line_width_0 /line_width" }, "speed_wall_0": { "value": "math.ceil(speed_wall * 0.6)" }, "speed_wall_x": { "value": "speed_wall" }, "support_angle": { "value": "50" }, "support_xy_distance": { "value": "1" }, - "support_z_distance": { "value": "max((0.2 if(0.2%layer_height==0) else layer_height*int((0.2+layer_height)/layer_height)),layer_height)" }, + "support_z_distance": { "value": "max((0.2 if(0.2 % layer_height==0) else layer_height * int((0.2 + layer_height) / layer_height)), layer_height)" }, "support_bottom_distance": { "value": "max(support_z_distance,layer_height*int(0.45/layer_height))" }, "top_bottom_thickness": { "value": "max(1.2,layer_height*6)" }, "travel_avoid_distance": { "value": "3" }, "gradual_support_infill_step_height": { "value": "0.2" }, "gradual_support_infill_steps": { "value": "1" }, - "infill_sparse_density": { "value": "20" }, "gradual_infill_step_height": { "value": "1" }, "initial_layer_line_width_factor": { "value": "120" }, "jerk_travel": { "value": "25" }, @@ -125,7 +123,7 @@ "support_connect_zigzags": { "value": "False" }, "support_infill_rate": { "value": "8 if support_enable and support_structure == 'normal' else 0 if support_enable and support_structure == 'tree' else 8" }, "support_interface_density": { "value": "80" }, - "support_interface_enable": { "value": "True" }, + "support_interface_enable": { "value": true }, "support_interface_height": { "value": "0.5" }, "support_roof_pattern": { "value": "'concentric'" }, "z_seam_type": { "value": "'shortest'" } diff --git a/resources/definitions/winbo_superhelper105.def.json b/resources/definitions/winbo_superhelper105.def.json index 055967f8ab..5fa6fe7eb6 100644 --- a/resources/definitions/winbo_superhelper105.def.json +++ b/resources/definitions/winbo_superhelper105.def.json @@ -88,33 +88,32 @@ "skin_overlap": { "value": "10" }, "speed_layer_0": { "value": "20" }, "speed_print": { "value": "52" }, - "speed_support": { "value": "speed_print*line_width/support_line_width" }, - "speed_support_interface": { "value": "speed_print*line_width/support_interface_line_width" }, - "speed_topbottom": { "value": "speed_print*line_width/skin_line_width" }, + "speed_support": { "value": "speed_print * line_width / support_line_width" }, + "speed_support_interface": { "value": "speed_print * line_width / support_interface_line_width" }, + "speed_topbottom": { "value": "speed_print * line_width / skin_line_width" }, "speed_travel": { "value": "80" }, - "speed_infill": { "value": "speed_print*line_width/infill_line_width" }, - "speed_wall": { "value": "speed_print*wall_line_width_0/line_width" }, + "speed_infill": { "value": "speed_print * line_width / infill_line_width" }, + "speed_wall": { "value": "speed_print * wall_line_width_0 / line_width" }, "speed_wall_0": { "value": "math.ceil(speed_wall * 0.6)" }, "speed_wall_x": { "value": "speed_wall" }, "support_angle": { "value": "50" }, "support_xy_distance": { "value": "1" }, - "support_z_distance": { "value": "max((0.2 if(0.2%layer_height==0) else layer_height*int((0.2+layer_height)/layer_height)),layer_height)" }, - "support_bottom_distance": { "value": "max(support_z_distance,layer_height*int(0.45/layer_height))" }, + "support_z_distance": { "value": "max((0.2 if(0.2 % layer_height == 0) else layer_height * int((0.2 + layer_height) / layer_height)), layer_height)" }, + "support_bottom_distance": { "value": "max(support_z_distance,layer_height * int(0.45 / layer_height))" }, "top_bottom_thickness": { "value": "max(1.2,layer_height*6)" }, "travel_avoid_distance": { "value": "3" }, "gradual_support_infill_step_height": { "value": "0.2" }, "gradual_support_infill_steps": { "value": "1" }, - "infill_sparse_density": { "value": "20" }, "gradual_infill_step_height": { "value": "1" }, "initial_layer_line_width_factor": { "value": "120" }, "jerk_travel": { "value": "25" }, - "support_bottom_enable": { "value": "True" }, + "support_bottom_enable": { "value": true }, "support_bottom_height": { "value": "max((0.15 if(0.15%layer_height==0) else layer_height*int((0.15+layer_height)/layer_height)),layer_height)" }, "support_bottom_pattern": { "value": "'zigzag'" }, - "support_connect_zigzags": { "value": "False" }, + "support_connect_zigzags": { "value": false }, "support_infill_rate": { "value": "8 if support_enable and support_structure == 'normal' else 0 if support_enable and support_structure == 'tree' else 8" }, "support_interface_density": { "value": "80" }, - "support_interface_enable": { "value": "True" }, + "support_interface_enable": { "value": true }, "support_interface_height": { "value": "0.5" }, "support_roof_pattern": { "value": "'concentric'" }, "z_seam_type": { "value": "'shortest'" } From 250c038e037712b1a84befa0b3d5e36d963fc4ab Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Tue, 6 Sep 2022 11:41:50 +0200 Subject: [PATCH 54/70] CuraContainerStack.py: iterate directly over IndexTypeMap (#12988) * CuraContainerStack.py: iterate directly over IndexTypeMap There is no need for range(len Co-authored-by: Jelle Spijker --- cura/Settings/CuraContainerStack.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Settings/CuraContainerStack.py b/cura/Settings/CuraContainerStack.py index a8a1d780ea..41502f8874 100755 --- a/cura/Settings/CuraContainerStack.py +++ b/cura/Settings/CuraContainerStack.py @@ -49,7 +49,7 @@ class CuraContainerStack(ContainerStack): self._empty_material = cura_empty_instance_containers.empty_material_container #type: InstanceContainer self._empty_variant = cura_empty_instance_containers.empty_variant_container #type: InstanceContainer - self._containers = [self._empty_instance_container for i in range(len(_ContainerIndexes.IndexTypeMap))] #type: List[ContainerInterface] + self._containers: List[ContainerInterface] = [self._empty_instance_container for i in _ContainerIndexes.IndexTypeMap] self._containers[_ContainerIndexes.QualityChanges] = self._empty_quality_changes self._containers[_ContainerIndexes.Quality] = self._empty_quality self._containers[_ContainerIndexes.Material] = self._empty_material From 543598a2009c46270f4911ac1b9b127be6a52794 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Sep 2022 11:43:45 +0200 Subject: [PATCH 55/70] Fix typo --- resources/definitions/tronxy_x.def.json | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/definitions/tronxy_x.def.json b/resources/definitions/tronxy_x.def.json index 488316ded2..69525e5f27 100644 --- a/resources/definitions/tronxy_x.def.json +++ b/resources/definitions/tronxy_x.def.json @@ -133,7 +133,6 @@ "support_wall_count": { "value": 0 }, "support_brim_enable": { "value": true }, "support_brim_width": { "value": 4 }, - , "support_interface_height": { "value": "layer_height * 4" }, "support_interface_density": { "value": 33.333 }, "support_interface_pattern": { "value": "'grid'" }, From a5f23939f5c907347eef5a01bd1807f3978d3d1d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Sep 2022 11:47:33 +0200 Subject: [PATCH 56/70] Fix a few more typos --- resources/definitions/SV03.def.json | 2 +- resources/definitions/koonovo_kn5.def.json | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/resources/definitions/SV03.def.json b/resources/definitions/SV03.def.json index b056175b27..9a550c1960 100644 --- a/resources/definitions/SV03.def.json +++ b/resources/definitions/SV03.def.json @@ -50,7 +50,7 @@ "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, "z_seam_type": { "value": "'back'" }, - "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, , + "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, "infill_pattern": { "value": "'lines'" }, "infill_before_walls": { "value": false }, "infill_overlap": { "value": 30.0 }, diff --git a/resources/definitions/koonovo_kn5.def.json b/resources/definitions/koonovo_kn5.def.json index d206c9b87a..3fc8705e52 100644 --- a/resources/definitions/koonovo_kn5.def.json +++ b/resources/definitions/koonovo_kn5.def.json @@ -22,9 +22,9 @@ "preferred_quality_type": "standard", "preferred_material": "generic_pla" }, - - - "overrides": { + + "overrides": + { "machine_name": { "default_value": "Koonovo KN5" }, "machine_width": { "default_value": 420 }, "machine_depth": { "default_value": 420 }, @@ -39,7 +39,6 @@ "gantry_height": { "value": 0 }, - "machine_extruder_count": { "default_value": 2 }, "machine_start_gcode": { @@ -64,7 +63,6 @@ "material_diameter": { "default_value": 1.75 }, - "acceleration_print": { "value": 500 }, "acceleration_travel": { "value": 500 }, @@ -81,7 +79,7 @@ "material_standby_temperature": { "value": "material_print_temperature" }, "default_material_bed_temperature": { "value": "45" }, - "speed_print": { "value": 50.0 } , , + "speed_print": { "value": 50.0 } , "speed_wall_x": { "value": "speed_wall" }, "speed_travel": { "value": "120.0 if speed_print < 60 else 180.0 if speed_print > 100 else speed_print * 2.2" }, "speed_layer_0": { "value": 25.0 }, From d097b7d030c2ce9fb4d0db58402ec6ac254f4c0b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Sep 2022 11:52:33 +0200 Subject: [PATCH 57/70] Minor codestyle changes to fdmprinter --- resources/definitions/fdmprinter.def.json | 46 +++++++++------------- resources/definitions/koonovo_kn5.def.json | 2 +- 2 files changed, 19 insertions(+), 29 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index c24192b7d0..5b6268a875 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -426,9 +426,7 @@ "label": "Disallowed Areas", "description": "A list of polygons with areas the print head is not allowed to enter.", "type": "polygons", - "default_value": - [ - ], + "default_value": [], "settable_per_mesh": false, "settable_per_extruder": false, "settable_per_meshgroup": false @@ -438,9 +436,7 @@ "label": "Nozzle Disallowed Areas", "description": "A list of polygons with areas the nozzle is not allowed to enter.", "type": "polygons", - "default_value": - [ - ], + "default_value": [], "settable_per_mesh": false, "settable_per_extruder": false, "settable_per_meshgroup": false @@ -452,22 +448,10 @@ "type": "polygon", "default_value": [ - [ - -20, - 10 - ], - [ - 10, - 10 - ], - [ - 10, - -10 - ], - [ - -20, - -10 - ] + [ -20, 10 ], + [ 10, 10 ], + [ 10, -10 ], + [ -20, -10 ] ], "settable_per_mesh": false, "settable_per_extruder": false, @@ -1027,7 +1011,8 @@ "settable_per_meshgroup": true, "settable_globally": true, "enabled": "extruders_enabled_count > 1", - "children": { + "children": + { "wall_0_extruder_nr": { "label": "Outer Wall Extruder", @@ -1186,7 +1171,8 @@ "label": "Wall Ordering", "description": "Determines the order in which walls are printed. Printing outer walls earlier helps with dimensional accuracy, as faults from inner walls cannot propagate to the outside. However printing them later allows them to stack better when overhangs are printed. When there is an uneven amount of total innner walls, the 'center last line' is always printed last.", "type": "enum", - "options": { + "options": + { "inside_out": "Inside To Outside", "outside_in": "Outside To Inside" }, @@ -1241,7 +1227,8 @@ } } }, - "fill_outline_gaps": { + "fill_outline_gaps": + { "label": "Print Thin Walls", "description": "Print pieces of the model which are horizontally thinner than the nozzle size.", "type": "bool", @@ -1444,7 +1431,8 @@ "limit_to_extruder": "roofing_extruder_nr", "settable_per_mesh": true, "enabled": "top_layers > 0", - "children": { + "children": + { "roofing_line_width": { "label": "Top Surface Skin Line Width", @@ -4418,7 +4406,8 @@ "enabled": "(support_enable or support_meshes_present) and extruders_enabled_count > 1", "settable_per_mesh": false, "settable_per_extruder": false, - "children": { + "children": + { "support_infill_extruder_nr": { "label": "Support Infill Extruder", @@ -8065,7 +8054,8 @@ "description": "Settings which are only used if CuraEngine isn't called from the Cura frontend.", "type": "category", "enabled": false, - "children": { + "children": + { "center_object": { "description": "Whether to center the object on the middle of the build platform (0,0), instead of using the coordinate system in which the object was saved.", diff --git a/resources/definitions/koonovo_kn5.def.json b/resources/definitions/koonovo_kn5.def.json index 3fc8705e52..e770579487 100644 --- a/resources/definitions/koonovo_kn5.def.json +++ b/resources/definitions/koonovo_kn5.def.json @@ -22,7 +22,7 @@ "preferred_quality_type": "standard", "preferred_material": "generic_pla" }, - + "overrides": { "machine_name": { "default_value": "Koonovo KN5" }, From bc7db5ffa7a142e578d9f61344e9c747d4e2730e Mon Sep 17 00:00:00 2001 From: "j.spijker@ultimaker.com" Date: Tue, 6 Sep 2022 12:58:57 +0200 Subject: [PATCH 58/70] Always run --- .github/workflows/conan-package-create.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/conan-package-create.yml b/.github/workflows/conan-package-create.yml index f753b76e71..4af608b7ac 100644 --- a/.github/workflows/conan-package-create.yml +++ b/.github/workflows/conan-package-create.yml @@ -53,7 +53,6 @@ env: jobs: conan-package-create: - if: ${{ github.event.pull_request.head.repo.full_name == github.repository }} runs-on: ${{ inputs.runs_on }} steps: From 7eb47d450fe8e00ca9c910311cb3211a8fd06da7 Mon Sep 17 00:00:00 2001 From: "j.spijker@ultimaker.com" Date: Tue, 6 Sep 2022 13:00:30 +0200 Subject: [PATCH 59/70] Also use gcc12 for the unittest in case curaengine isn't build --- .github/workflows/unit-test.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 20ea83bdb1..eb2edc09d8 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -103,7 +103,18 @@ jobs: - name: Install Linux system requirements if: ${{ runner.os == 'Linux' }} - run: sudo apt install build-essential checkinstall libegl-dev zlib1g-dev libssl-dev ninja-build autoconf libx11-dev libx11-xcb-dev libfontenc-dev libice-dev libsm-dev libxau-dev libxaw7-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxi-dev libxinerama-dev libxkbfile-dev libxmu-dev libxmuu-dev libxpm-dev libxrandr-dev libxrender-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev libxxf86vm-dev xtrans-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-xkb-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-xinerama0-dev xkb-data libxcb-dri3-dev uuid-dev libxcb-util-dev libxkbcommon-x11-dev -y + run: | + sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y + sudo apt update + sudo apt upgrade + sudo apt install build-essential checkinstall libegl-dev zlib1g-dev libssl-dev ninja-build autoconf libx11-dev libx11-xcb-dev libfontenc-dev libice-dev libsm-dev libxau-dev libxaw7-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxi-dev libxinerama-dev libxkbfile-dev libxmu-dev libxmuu-dev libxpm-dev libxrandr-dev libxrender-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev libxxf86vm-dev xtrans-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-xkb-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-xinerama0-dev xkb-data libxcb-dri3-dev uuid-dev libxcb-util-dev libxkbcommon-x11-dev pkg-config -y + + - name: Install GCC-12 on ubuntu-22.04 + if: ${{ startsWith(inputs.runs_on, 'ubuntu-22.04') }} + run: | + sudo apt install g++-12 gcc-12 -y + sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12 + sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 12 - name: Get Conan configuration run: conan config install https://github.com/Ultimaker/conan-config.git From 6253fb2fdc1340a0c457771c7eb6b44f081a5215 Mon Sep 17 00:00:00 2001 From: Casper Lamboo Date: Tue, 6 Sep 2022 13:19:50 +0200 Subject: [PATCH 60/70] Add typing to function argument CURA-9277 Co-authored-by: Joey de l'Arago --- cura/Machines/Models/MachineListModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index ead1061a05..8750da6305 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -131,7 +131,7 @@ class MachineListModel(ListModel): for stack in other_machine_stacks: self.addItem(stack, False) - def addItem(self, container_stack: ContainerStack, is_online, machine_count: int = 0) -> None: + def addItem(self, container_stack: ContainerStack, is_online: bool, machine_count: int = 0) -> None: if parseBool(container_stack.getMetaDataEntry("hidden", False)): return From 370d0bcf03707db7d7ae6b7edfb264b1a0fbfac9 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Sep 2022 13:43:14 +0200 Subject: [PATCH 61/70] Add extra BOM numbers to UMs3 and UMs5 --- resources/definitions/ultimaker_s3.def.json | 2 +- resources/definitions/ultimaker_s5.def.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/ultimaker_s3.def.json b/resources/definitions/ultimaker_s3.def.json index 5d1464396f..4bcc9cf8dd 100644 --- a/resources/definitions/ultimaker_s3.def.json +++ b/resources/definitions/ultimaker_s3.def.json @@ -35,7 +35,7 @@ "update_url": "https://ultimaker.com/firmware?utm_source=cura&utm_medium=software&utm_campaign=fw-update" }, "bom_numbers": [ - 213482 + 213482, 213483 ] }, diff --git a/resources/definitions/ultimaker_s5.def.json b/resources/definitions/ultimaker_s5.def.json index 314da546de..5d4c2616c2 100644 --- a/resources/definitions/ultimaker_s5.def.json +++ b/resources/definitions/ultimaker_s5.def.json @@ -36,7 +36,7 @@ "update_url": "https://ultimaker.com/firmware?utm_source=cura&utm_medium=software&utm_campaign=fw-update" }, "bom_numbers": [ - 9051, 214475 + 9051, 214475, 214476 ] }, From 148263a06828e6b5669854a6f0feacba7d4bc2ce Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 6 Sep 2022 13:52:10 +0200 Subject: [PATCH 62/70] Move `hasNetworkedConnection` to `GlobalStack` From code review CURA-9277 Co-authored-by: Joey --- cura/Machines/Models/MachineListModel.py | 10 +--------- cura/Settings/GlobalStack.py | 6 ++++++ 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index 8750da6305..919d593200 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -89,15 +89,7 @@ class MachineListModel(ListModel): machines_manager = CuraApplication.getInstance().getMachineManager() online_machine_stacks = machines_manager.getMachinesWithDefinition(definition_id, online_only = True) - def online_machines_has_connection_filter(machine_stack): - # This is required because machines loaded from projects have the is_online="True" but no connection type. - # We want to display them the same way as unconnected printers in this case. - has_connection = False - for connection_type in [ConnectionType.NetworkConnection.value, ConnectionType.CloudConnection.value]: - has_connection |= connection_type in machine_stack.configuredConnectionTypes - return has_connection - - online_machine_stacks = list(filter(online_machines_has_connection_filter, online_machine_stacks)) + online_machine_stacks = list(filter(lambda machine: machine.hasNetworkedConnection(), online_machine_stacks)) other_machine_stacks.remove(abstract_machine) if abstract_machine in online_machine_stacks: diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index b94ca45763..041bd19d3a 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -347,6 +347,12 @@ class GlobalStack(CuraContainerStack): nameChanged = pyqtSignal() name = pyqtProperty(str, fget=getName, fset=setName, notify=nameChanged) + def hasNetworkedConnection(self) -> bool: + has_connection = False + for connection_type in [ConnectionType.NetworkConnection.value, ConnectionType.CloudConnection.value]: + has_connection |= connection_type in self.configuredConnectionTypes + return has_connection + ## private: global_stack_mime = MimeType( name = "application/x-cura-globalstack", From f2edc1ac491e1725a8c2f790cfb9b8b246a47040 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Sep 2022 13:56:24 +0200 Subject: [PATCH 63/70] Fix typo --- .../UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py b/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py index c875eb183a..caed6ddf91 100644 --- a/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py +++ b/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py @@ -31,7 +31,7 @@ class RemovedPrintersMessage(Message): super().__init__(title=self.i18n_catalog.i18ncp("info:status", "A cloud connection is not available for a printer", "A cloud connection is not available for some printers", - len(self.removed_devices)), + len(self._removed_devices)), message_type=Message.MessageType.WARNING, text = message_text) From 6c0d76807efbb25b70cc09be12053df3cc5c8189 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Sep 2022 14:43:38 +0200 Subject: [PATCH 64/70] Add trycatch around whatsnew & changelog pages Fixes CURA-4DX (sentry crash) --- cura/UI/WhatsNewPagesModel.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/cura/UI/WhatsNewPagesModel.py b/cura/UI/WhatsNewPagesModel.py index 4fb7802924..1faf9572c7 100644 --- a/cura/UI/WhatsNewPagesModel.py +++ b/cura/UI/WhatsNewPagesModel.py @@ -62,15 +62,21 @@ class WhatsNewPagesModel(WelcomePagesModel): def initialize(self) -> None: self._pages = [] - self._pages.append({"id": "whats_new", - "page_url": self._getBuiltinWelcomePagePath("WhatsNewContent.qml"), - "next_page_button_text": self._catalog.i18nc("@action:button", "Skip"), - "next_page_id": "changelog" - }) - self._pages.append({"id": "changelog", - "page_url": self._getBuiltinWelcomePagePath("ChangelogContent.qml"), - "next_page_button_text": self._catalog.i18nc("@action:button", "Close"), - }) + try: + self._pages.append({"id": "whats_new", + "page_url": self._getBuiltinWelcomePagePath("WhatsNewContent.qml"), + "next_page_button_text": self._catalog.i18nc("@action:button", "Skip"), + "next_page_id": "changelog" + }) + except FileNotFoundError: + Logger.warning("Unable to find what's new page") + try: + self._pages.append({"id": "changelog", + "page_url": self._getBuiltinWelcomePagePath("ChangelogContent.qml"), + "next_page_button_text": self._catalog.i18nc("@action:button", "Close"), + }) + except FileNotFoundError: + Logger.warning("Unable to find changelog page") self.setItems(self._pages) images, max_image = WhatsNewPagesModel._collectOrdinalFiles(Resources.Images, WhatsNewPagesModel.image_formats) From 2f1325259c5044692172d23b75dc1eb75ebe1e8b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Sep 2022 14:47:32 +0200 Subject: [PATCH 65/70] Fix 3mf workspace reader crashing on certain invalid files CURA-4DP (Sentry crash) --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index c8f7bc8abd..86be2f0380 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -664,10 +664,22 @@ class ThreeMFWorkspaceReader(WorkspaceReader): cura_file_names = [name for name in archive.namelist() if name.startswith("Cura/")] - # Create a shadow copy of the preferences (we don't want all of the preferences, but we do want to re-use its + # Create a shadow copy of the preferences (We don't want all of the preferences, but we do want to re-use its # parsing code. temp_preferences = Preferences() - serialized = archive.open("Cura/preferences.cfg").read().decode("utf-8") + try: + serialized = archive.open("Cura/preferences.cfg").read().decode("utf-8") + except KeyError: + # If there is no preferences file, it's not a workspace, so notify user of failure. + Logger.log("w", "File %s is not a valid workspace.", file_name) + message = Message(i18n_catalog.i18nc("@info:error Don't translate the XML tags or !", + "Project file {0} is corrupt: {1}.", + file_name, str(e)), + title=i18n_catalog.i18nc("@info:title", "Can't Open Project File"), + message_type=Message.MessageType.ERROR) + message.show() + self.setWorkspaceName("") + return [], {} temp_preferences.deserialize(serialized) # Copy a number of settings from the temp preferences to the global From cc403a9a49f45cfee12243a4c66975c22076c7d2 Mon Sep 17 00:00:00 2001 From: jelle Spijker Date: Tue, 6 Sep 2022 15:38:31 +0200 Subject: [PATCH 66/70] Bump up patch version on release branch --- .github/workflows/conan-recipe-version.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index 3e86c880a6..701efcc658 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -157,8 +157,8 @@ jobs: channel_metadata = f"{channel}_{no_commits}" # FIXME: for when we create a new release branch if latest_branch_version.prerelease == "": - bump_up_minor = int(latest_branch_version.minor) + 1 - actual_version = f"{latest_branch_version.major}.{bump_up_minor}.{latest_branch_version.patch}-alpha+{buildmetadata}{channel_metadata}" + bump_up_patch = int(latest_branch_version.patch) + 1 + actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{bump_up_patch}-alpha+{buildmetadata}{channel_metadata}" else: actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.lower()}+{buildmetadata}{channel_metadata}" else: From 3aa2ae27bbed85a2abe309f8f862ba31674e0d98 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Sep 2022 16:20:31 +0200 Subject: [PATCH 67/70] Remove global settings from extruder profiles --- .../dagoma/dagoma_discoeasy200_bicolor_pla_fast.inst.cfg | 1 - .../dagoma/dagoma_discoeasy200_bicolor_pla_fine.inst.cfg | 1 - .../dagoma/dagoma_discoeasy200_bicolor_pla_standard.inst.cfg | 1 - resources/quality/dagoma/dagoma_discoeasy200_pla_fast.inst.cfg | 1 - resources/quality/dagoma/dagoma_discoeasy200_pla_fine.inst.cfg | 1 - .../quality/dagoma/dagoma_discoeasy200_pla_standard.inst.cfg | 1 - .../dagoma/dagoma_discoultimate_bicolor_pla_fast.inst.cfg | 1 - .../dagoma/dagoma_discoultimate_bicolor_pla_fine.inst.cfg | 1 - .../dagoma/dagoma_discoultimate_bicolor_pla_standard.inst.cfg | 1 - resources/quality/dagoma/dagoma_discoultimate_pla_fast.inst.cfg | 1 - resources/quality/dagoma/dagoma_discoultimate_pla_fine.inst.cfg | 1 - .../quality/dagoma/dagoma_discoultimate_pla_standard.inst.cfg | 1 - resources/quality/dagoma/dagoma_magis_pla_fast.inst.cfg | 1 - resources/quality/dagoma/dagoma_magis_pla_fine.inst.cfg | 1 - resources/quality/dagoma/dagoma_magis_pla_standard.inst.cfg | 1 - resources/quality/dagoma/dagoma_neva_pla_fast.inst.cfg | 1 - resources/quality/dagoma/dagoma_neva_pla_fine.inst.cfg | 1 - resources/quality/dagoma/dagoma_neva_pla_standard.inst.cfg | 1 - resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg | 2 -- resources/quality/fabtotum/fabtotum_abs_high.inst.cfg | 2 -- resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg | 2 -- resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg | 2 -- resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg | 2 -- resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg | 2 -- resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg | 2 -- resources/quality/fabtotum/fabtotum_pla_high.inst.cfg | 2 -- resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg | 2 -- resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg | 2 -- resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg | 2 -- resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg | 2 -- resources/quality/fabxpro/fabxpro_abs_draft.inst.cfg | 1 - 31 files changed, 43 deletions(-) diff --git a/resources/quality/dagoma/dagoma_discoeasy200_bicolor_pla_fast.inst.cfg b/resources/quality/dagoma/dagoma_discoeasy200_bicolor_pla_fast.inst.cfg index 63f9920bf3..1073729905 100644 --- a/resources/quality/dagoma/dagoma_discoeasy200_bicolor_pla_fast.inst.cfg +++ b/resources/quality/dagoma/dagoma_discoeasy200_bicolor_pla_fast.inst.cfg @@ -11,7 +11,6 @@ weight = -2 material = chromatik_pla [values] -layer_height = 0.2 line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 10 diff --git a/resources/quality/dagoma/dagoma_discoeasy200_bicolor_pla_fine.inst.cfg b/resources/quality/dagoma/dagoma_discoeasy200_bicolor_pla_fine.inst.cfg index c9828cca5a..e3a5c6eac9 100644 --- a/resources/quality/dagoma/dagoma_discoeasy200_bicolor_pla_fine.inst.cfg +++ b/resources/quality/dagoma/dagoma_discoeasy200_bicolor_pla_fine.inst.cfg @@ -11,7 +11,6 @@ weight = 0 material = chromatik_pla [values] -layer_height = 0.1 line_width = =machine_nozzle_size * 0.875 speed_print = 35 diff --git a/resources/quality/dagoma/dagoma_discoeasy200_bicolor_pla_standard.inst.cfg b/resources/quality/dagoma/dagoma_discoeasy200_bicolor_pla_standard.inst.cfg index 1ac89bfcb6..e1f8934019 100644 --- a/resources/quality/dagoma/dagoma_discoeasy200_bicolor_pla_standard.inst.cfg +++ b/resources/quality/dagoma/dagoma_discoeasy200_bicolor_pla_standard.inst.cfg @@ -11,7 +11,6 @@ weight = -1 material = chromatik_pla [values] -layer_height = 0.15 line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 5 diff --git a/resources/quality/dagoma/dagoma_discoeasy200_pla_fast.inst.cfg b/resources/quality/dagoma/dagoma_discoeasy200_pla_fast.inst.cfg index f739b02303..f8635d2cc7 100644 --- a/resources/quality/dagoma/dagoma_discoeasy200_pla_fast.inst.cfg +++ b/resources/quality/dagoma/dagoma_discoeasy200_pla_fast.inst.cfg @@ -11,7 +11,6 @@ weight = -2 material = chromatik_pla [values] -layer_height = 0.2 line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 10 diff --git a/resources/quality/dagoma/dagoma_discoeasy200_pla_fine.inst.cfg b/resources/quality/dagoma/dagoma_discoeasy200_pla_fine.inst.cfg index 3b25824cbc..6c0597409c 100644 --- a/resources/quality/dagoma/dagoma_discoeasy200_pla_fine.inst.cfg +++ b/resources/quality/dagoma/dagoma_discoeasy200_pla_fine.inst.cfg @@ -11,7 +11,6 @@ weight = 0 material = chromatik_pla [values] -layer_height = 0.1 line_width = =machine_nozzle_size * 0.875 speed_print = 35 diff --git a/resources/quality/dagoma/dagoma_discoeasy200_pla_standard.inst.cfg b/resources/quality/dagoma/dagoma_discoeasy200_pla_standard.inst.cfg index 913af36eb3..5254504da5 100644 --- a/resources/quality/dagoma/dagoma_discoeasy200_pla_standard.inst.cfg +++ b/resources/quality/dagoma/dagoma_discoeasy200_pla_standard.inst.cfg @@ -11,7 +11,6 @@ weight = -1 material = chromatik_pla [values] -layer_height = 0.15 line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 5 diff --git a/resources/quality/dagoma/dagoma_discoultimate_bicolor_pla_fast.inst.cfg b/resources/quality/dagoma/dagoma_discoultimate_bicolor_pla_fast.inst.cfg index 87c089438f..5e4467e5ed 100644 --- a/resources/quality/dagoma/dagoma_discoultimate_bicolor_pla_fast.inst.cfg +++ b/resources/quality/dagoma/dagoma_discoultimate_bicolor_pla_fast.inst.cfg @@ -11,7 +11,6 @@ weight = -2 material = chromatik_pla [values] -layer_height = 0.2 line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 10 diff --git a/resources/quality/dagoma/dagoma_discoultimate_bicolor_pla_fine.inst.cfg b/resources/quality/dagoma/dagoma_discoultimate_bicolor_pla_fine.inst.cfg index e927d2addf..d5d21af6e2 100644 --- a/resources/quality/dagoma/dagoma_discoultimate_bicolor_pla_fine.inst.cfg +++ b/resources/quality/dagoma/dagoma_discoultimate_bicolor_pla_fine.inst.cfg @@ -11,7 +11,6 @@ weight = 0 material = chromatik_pla [values] -layer_height = 0.1 line_width = =machine_nozzle_size * 0.875 speed_print = 35 diff --git a/resources/quality/dagoma/dagoma_discoultimate_bicolor_pla_standard.inst.cfg b/resources/quality/dagoma/dagoma_discoultimate_bicolor_pla_standard.inst.cfg index ccbaa8f506..4163399ccc 100644 --- a/resources/quality/dagoma/dagoma_discoultimate_bicolor_pla_standard.inst.cfg +++ b/resources/quality/dagoma/dagoma_discoultimate_bicolor_pla_standard.inst.cfg @@ -11,7 +11,6 @@ weight = -1 material = chromatik_pla [values] -layer_height = 0.15 line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 5 diff --git a/resources/quality/dagoma/dagoma_discoultimate_pla_fast.inst.cfg b/resources/quality/dagoma/dagoma_discoultimate_pla_fast.inst.cfg index 290d4be38d..90336926f8 100644 --- a/resources/quality/dagoma/dagoma_discoultimate_pla_fast.inst.cfg +++ b/resources/quality/dagoma/dagoma_discoultimate_pla_fast.inst.cfg @@ -11,7 +11,6 @@ weight = -2 material = chromatik_pla [values] -layer_height = 0.2 line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 10 diff --git a/resources/quality/dagoma/dagoma_discoultimate_pla_fine.inst.cfg b/resources/quality/dagoma/dagoma_discoultimate_pla_fine.inst.cfg index 3c0d4a70ca..4b70708d41 100644 --- a/resources/quality/dagoma/dagoma_discoultimate_pla_fine.inst.cfg +++ b/resources/quality/dagoma/dagoma_discoultimate_pla_fine.inst.cfg @@ -11,7 +11,6 @@ weight = 0 material = chromatik_pla [values] -layer_height = 0.1 line_width = =machine_nozzle_size * 0.875 speed_print = 35 diff --git a/resources/quality/dagoma/dagoma_discoultimate_pla_standard.inst.cfg b/resources/quality/dagoma/dagoma_discoultimate_pla_standard.inst.cfg index d7c8fa3360..61b8bb8d2d 100644 --- a/resources/quality/dagoma/dagoma_discoultimate_pla_standard.inst.cfg +++ b/resources/quality/dagoma/dagoma_discoultimate_pla_standard.inst.cfg @@ -11,7 +11,6 @@ weight = -1 material = chromatik_pla [values] -layer_height = 0.15 line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 5 diff --git a/resources/quality/dagoma/dagoma_magis_pla_fast.inst.cfg b/resources/quality/dagoma/dagoma_magis_pla_fast.inst.cfg index be852a2446..3fc2e53381 100644 --- a/resources/quality/dagoma/dagoma_magis_pla_fast.inst.cfg +++ b/resources/quality/dagoma/dagoma_magis_pla_fast.inst.cfg @@ -11,7 +11,6 @@ weight = -2 material = chromatik_pla [values] -layer_height = 0.2 line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 10 diff --git a/resources/quality/dagoma/dagoma_magis_pla_fine.inst.cfg b/resources/quality/dagoma/dagoma_magis_pla_fine.inst.cfg index cf7f6f6545..ee7fec9712 100644 --- a/resources/quality/dagoma/dagoma_magis_pla_fine.inst.cfg +++ b/resources/quality/dagoma/dagoma_magis_pla_fine.inst.cfg @@ -11,7 +11,6 @@ weight = 0 material = chromatik_pla [values] -layer_height = 0.1 line_width = =machine_nozzle_size * 0.875 speed_print = 30 diff --git a/resources/quality/dagoma/dagoma_magis_pla_standard.inst.cfg b/resources/quality/dagoma/dagoma_magis_pla_standard.inst.cfg index 0ad63679ec..6d5890a74c 100644 --- a/resources/quality/dagoma/dagoma_magis_pla_standard.inst.cfg +++ b/resources/quality/dagoma/dagoma_magis_pla_standard.inst.cfg @@ -11,7 +11,6 @@ weight = -1 material = chromatik_pla [values] -layer_height = 0.15 line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 5 diff --git a/resources/quality/dagoma/dagoma_neva_pla_fast.inst.cfg b/resources/quality/dagoma/dagoma_neva_pla_fast.inst.cfg index 6d08b2a27e..d1b723fe0a 100644 --- a/resources/quality/dagoma/dagoma_neva_pla_fast.inst.cfg +++ b/resources/quality/dagoma/dagoma_neva_pla_fast.inst.cfg @@ -11,7 +11,6 @@ weight = -2 material = chromatik_pla [values] -layer_height = 0.2 line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 10 diff --git a/resources/quality/dagoma/dagoma_neva_pla_fine.inst.cfg b/resources/quality/dagoma/dagoma_neva_pla_fine.inst.cfg index 96d0a51d95..a57a833f5c 100644 --- a/resources/quality/dagoma/dagoma_neva_pla_fine.inst.cfg +++ b/resources/quality/dagoma/dagoma_neva_pla_fine.inst.cfg @@ -11,7 +11,6 @@ weight = 0 material = chromatik_pla [values] -layer_height = 0.1 line_width = =machine_nozzle_size * 0.875 speed_print = 30 diff --git a/resources/quality/dagoma/dagoma_neva_pla_standard.inst.cfg b/resources/quality/dagoma/dagoma_neva_pla_standard.inst.cfg index f24ae61f71..c63ec93a63 100644 --- a/resources/quality/dagoma/dagoma_neva_pla_standard.inst.cfg +++ b/resources/quality/dagoma/dagoma_neva_pla_standard.inst.cfg @@ -11,7 +11,6 @@ weight = -1 material = chromatik_pla [values] -layer_height = 0.15 line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 5 diff --git a/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg index aa36a94cbd..641a52be30 100644 --- a/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg @@ -14,8 +14,6 @@ variant = Lite 0.4 mm [values] adhesion_type = raft speed_print = 80 -layer_height = 0.2 -layer_height_0 = 0.2 cool_fan_enabled = False cool_fan_full_at_height = 0.4 cool_fan_speed = 50 diff --git a/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg b/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg index 8afdd25424..a4e802f37a 100644 --- a/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg @@ -14,8 +14,6 @@ variant = Lite 0.4 mm [values] adhesion_type = raft speed_print = 45 -layer_height = 0.1 -layer_height_0 = 0.1 cool_fan_enabled = False cool_fan_full_at_height = 0.2 cool_fan_speed = 50 diff --git a/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg index 5b4501657f..99f8ec4e56 100644 --- a/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg @@ -14,8 +14,6 @@ variant = Lite 0.4 mm [values] adhesion_type = raft speed_print = 60 -layer_height = 0.15 -layer_height_0 = 0.15 cool_fan_enabled = False cool_fan_full_at_height = 0.3 cool_fan_speed = 50 diff --git a/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg index a2f97e6fdc..9a61677c9d 100644 --- a/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg @@ -23,8 +23,6 @@ cool_min_layer_time = 5 cool_min_speed = 0 infill_overlap = 15 infill_sparse_density = 24 -layer_height = 0.20 -layer_height_0 = 0.15 line_width = =machine_nozzle_size material_flow = 100 raft_airgap = 0.22 diff --git a/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg b/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg index 6d8ebac406..1d1eedf3f4 100644 --- a/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg @@ -23,8 +23,6 @@ cool_min_layer_time = 5 cool_min_speed = 0 infill_overlap = 15 infill_sparse_density = 24 -layer_height = 0.10 -layer_height_0 = 0.10 line_width = =machine_nozzle_size material_flow = 100 raft_airgap = 0.22 diff --git a/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg index b29dd370f5..4920f1750f 100644 --- a/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg @@ -23,8 +23,6 @@ cool_min_layer_time = 5 cool_min_speed = 0 infill_overlap = 15 infill_sparse_density = 24 -layer_height = 0.15 -layer_height_0 = 0.10 line_width = =machine_nozzle_size material_flow = 100 raft_airgap = 0.22 diff --git a/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg index 0df61d9b21..5247ca4719 100644 --- a/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg @@ -14,8 +14,6 @@ variant = Lite 0.4 mm [values] adhesion_type = skirt speed_print = 80 -layer_height = 0.2 -layer_height_0 = 0.2 cool_fan_enabled = True cool_fan_full_at_height = 0.4 cool_fan_speed = 100 diff --git a/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg b/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg index e20a86e503..20a2340870 100644 --- a/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg @@ -14,8 +14,6 @@ variant = Lite 0.4 mm [values] adhesion_type = skirt speed_print = 45 -layer_height = 0.1 -layer_height_0 = 0.1 cool_fan_enabled = True cool_fan_full_at_height = 0.2 cool_fan_speed = 100 diff --git a/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg index 70cb0d7f67..ea267e88ac 100644 --- a/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg @@ -14,8 +14,6 @@ variant = Lite 0.4 mm [values] adhesion_type = skirt speed_print = 60 -layer_height = 0.15 -layer_height_0 = 0.15 cool_fan_enabled = True cool_fan_full_at_height = 0.3 cool_fan_speed = 100 diff --git a/resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg index cdd814e02d..ddad87e2d1 100644 --- a/resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg @@ -14,8 +14,6 @@ weight = -1 [values] adhesion_type = skirt speed_print = 80 -layer_height = 0.2 -layer_height_0 = 0.2 cool_fan_enabled = True cool_fan_full_at_height = 0.4 cool_fan_speed = 100 diff --git a/resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg b/resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg index 1f287605ee..5db8f1172e 100644 --- a/resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg @@ -13,8 +13,6 @@ weight = 1 [values] adhesion_type = skirt -layer_height = 0.1 -layer_height_0 = 0.1 cool_fan_enabled = True cool_fan_full_at_height = 0.2 cool_fan_speed = 100 diff --git a/resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg index f146a41ef2..3f09c8ea16 100644 --- a/resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg @@ -14,8 +14,6 @@ weight = 0 [values] adhesion_type = skirt speed_print = 80 -layer_height = 0.15 -layer_height_0 = 0.15 cool_fan_enabled = True cool_fan_full_at_height = 0.3 cool_fan_speed = 100 diff --git a/resources/quality/fabxpro/fabxpro_abs_draft.inst.cfg b/resources/quality/fabxpro/fabxpro_abs_draft.inst.cfg index b944d37e6d..cf71e68d00 100644 --- a/resources/quality/fabxpro/fabxpro_abs_draft.inst.cfg +++ b/resources/quality/fabxpro/fabxpro_abs_draft.inst.cfg @@ -11,7 +11,6 @@ weight = -2 material = redd_abs global_quality = True - [values] layer_height = 0.3 layer_height_0 = 0.35 From 8f2dc5c6e064a9926d2afca1434e76744930d3b0 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Sep 2022 16:31:25 +0200 Subject: [PATCH 68/70] Fix mistake with abax printers They weren't using the machine specific settings. --- resources/definitions/abax_pri3.def.json | 1 + resources/definitions/abax_pri5.def.json | 1 + resources/quality/abax_pri3/apri3_pla_fast.inst.cfg | 1 - resources/quality/abax_pri3/apri3_pla_high.inst.cfg | 1 - resources/quality/abax_pri3/apri3_pla_normal.inst.cfg | 1 - resources/quality/abax_pri5/apri5_pla_fast.inst.cfg | 1 - resources/quality/abax_pri5/apri5_pla_high.inst.cfg | 1 - resources/quality/abax_pri5/apri5_pla_normal.inst.cfg | 1 - 8 files changed, 2 insertions(+), 6 deletions(-) diff --git a/resources/definitions/abax_pri3.def.json b/resources/definitions/abax_pri3.def.json index 914dc4d3e0..7f73bea678 100644 --- a/resources/definitions/abax_pri3.def.json +++ b/resources/definitions/abax_pri3.def.json @@ -7,6 +7,7 @@ "author": "Abax 3D Technologies", "manufacturer": "Abax 3D Technologies", "file_formats": "text/x-gcode", + "has_machine_quality": "true", "machine_extruder_trains": { "0": "abax_pri3_extruder_0" diff --git a/resources/definitions/abax_pri5.def.json b/resources/definitions/abax_pri5.def.json index cb6566e08c..e97994bd61 100644 --- a/resources/definitions/abax_pri5.def.json +++ b/resources/definitions/abax_pri5.def.json @@ -7,6 +7,7 @@ "author": "Abax 3D Technologies", "manufacturer": "Abax 3D Technologies", "file_formats": "text/x-gcode", + "has_machine_quality": "true", "machine_extruder_trains": { "0": "abax_pri5_extruder_0" diff --git a/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg b/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg index 58141d7ac9..3e8e09032d 100644 --- a/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg +++ b/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg @@ -11,7 +11,6 @@ weight = 0 material = generic_pla [values] -layer_height = 0.2 wall_thickness = 1.05 top_bottom_thickness = 0.8 infill_sparse_density = 20 diff --git a/resources/quality/abax_pri3/apri3_pla_high.inst.cfg b/resources/quality/abax_pri3/apri3_pla_high.inst.cfg index 4051885819..808ec25a37 100644 --- a/resources/quality/abax_pri3/apri3_pla_high.inst.cfg +++ b/resources/quality/abax_pri3/apri3_pla_high.inst.cfg @@ -11,7 +11,6 @@ weight = 1 material = generic_pla [values] -layer_height = 0.1 wall_thickness = 1.05 top_bottom_thickness = 0.8 infill_sparse_density = 20 diff --git a/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg b/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg index d76eac4014..526493b90b 100644 --- a/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg +++ b/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg @@ -11,7 +11,6 @@ weight = 0 material = generic_pla [values] -layer_height = 0.2 wall_thickness = 1.05 top_bottom_thickness = 0.8 infill_sparse_density = 20 diff --git a/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg b/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg index ef6ec00ede..f582449a8e 100644 --- a/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg +++ b/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg @@ -11,7 +11,6 @@ weight = 0 material = generic_pla [values] -layer_height = 0.2 wall_thickness = 1.05 top_bottom_thickness = 0.8 infill_sparse_density = 20 diff --git a/resources/quality/abax_pri5/apri5_pla_high.inst.cfg b/resources/quality/abax_pri5/apri5_pla_high.inst.cfg index 00c5a67cf9..08d86375c9 100644 --- a/resources/quality/abax_pri5/apri5_pla_high.inst.cfg +++ b/resources/quality/abax_pri5/apri5_pla_high.inst.cfg @@ -11,7 +11,6 @@ weight = 1 material = generic_pla [values] -layer_height = 0.1 wall_thickness = 1.05 top_bottom_thickness = 0.8 infill_sparse_density = 20 diff --git a/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg b/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg index 1934b4af25..6bb5667a30 100644 --- a/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg +++ b/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg @@ -11,7 +11,6 @@ weight = 0 material = generic_pla [values] -layer_height = 0.2 wall_thickness = 1.05 top_bottom_thickness = 0.8 infill_sparse_density = 20 From 5f2256f2d9ada56c8035684896ed5cdeee10308a Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Tue, 6 Sep 2022 17:33:09 +0200 Subject: [PATCH 69/70] allow conan 1.52.0 to be used --- .github/workflows/requirements-conan-package.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/requirements-conan-package.txt b/.github/workflows/requirements-conan-package.txt index bd19974dd9..fcc1379cfa 100644 --- a/.github/workflows/requirements-conan-package.txt +++ b/.github/workflows/requirements-conan-package.txt @@ -1,2 +1,2 @@ -conan!=1.51.0,!=1.51.1,!=1.51.2,!=1.51.3,!=1.52.0 +conan!=1.51.0,!=1.51.1,!=1.51.2,!=1.51.3 sip From 25aabfb031cfa3c3679f8c7663727a62762244e2 Mon Sep 17 00:00:00 2001 From: jelle Spijker Date: Wed, 7 Sep 2022 07:49:21 +0200 Subject: [PATCH 70/70] Allow specifying version with conan conf By setting the `user.cura:version` in the configuration of Conan that version string is used preferred over the actual version This should be usefully for releases Contributes to CURA-8831 --- conanfile.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/conanfile.py b/conanfile.py index c5f584ed16..17cd0260a6 100644 --- a/conanfile.py +++ b/conanfile.py @@ -149,9 +149,9 @@ class CuraConan(ConanFile): with open(Path(__file__).parent.joinpath("CuraVersion.py.jinja"), "r") as f: cura_version_py = Template(f.read()) - cura_version = self.version + cura_version = self.conf_info.get("user.cura:version", default = self.version, check_type = str) if self.options.internal: - version = Version(self.version) + version = Version(cura_version) cura_version = f"{version.major}.{version.minor}.{version.patch}-{version.prerelease.replace('+', '+internal_')}" with open(Path(location, "CuraVersion.py"), "w") as f: @@ -220,7 +220,8 @@ class CuraConan(ConanFile): with open(Path(__file__).parent.joinpath("Ultimaker-Cura.spec.jinja"), "r") as f: pyinstaller = Template(f.read()) - cura_version = Version(self.version) if self.version else Version("0.0.0") + version = self.conf_info.get("user.cura:version", default = self.version, check_type = str) + cura_version = Version(version) with open(Path(location, "Ultimaker-Cura.spec"), "w") as f: f.write(pyinstaller.render( @@ -239,7 +240,7 @@ class CuraConan(ConanFile): strip = False, # This should be possible on Linux and MacOS but, it can also cause issues on some distributions. Safest is to disable it for now target_arch = "'x86_64'" if self.settings.os == "Macos" else "None", # FIXME: Make this dependent on the settings.arch_target macos = self.settings.os == "Macos", - version = f"'{self.version}'", + version = f"'{version}'", short_version = f"'{cura_version.major}.{cura_version.minor}.{cura_version.patch}'", )) @@ -254,7 +255,8 @@ class CuraConan(ConanFile): self.options["cpython"].shared = True def validate(self): - if self.version and Version(self.version) <= Version("4"): + version = self.conf_info.get("user.cura:version", default = self.version, check_type = str) + if version and Version(version) <= Version("4"): raise ConanInvalidConfiguration("Only versions 5+ are support") def requirements(self): @@ -381,7 +383,8 @@ class CuraConan(ConanFile): self.copy("*.txt", src = self.cpp_info.resdirs[-1], dst = self._base_dir.joinpath("pip_requirements")) # Generate the GitHub Action version info Environment - cura_version = Version(self.version) + version = self.conf_info.get("user.cura:version", default = self.version, check_type = str) + cura_version = Version(version) env_prefix = "Env:" if self.settings.os == "Windows" else "" activate_github_actions_version_env = Template(r"""echo "CURA_VERSION_MAJOR={{ cura_version_major }}" >> ${{ env_prefix }}GITHUB_ENV echo "CURA_VERSION_MINOR={{ cura_version_minor }}" >> ${{ env_prefix }}GITHUB_ENV