From f282f874023a24bbbd10bcb34304cbb1665be306 Mon Sep 17 00:00:00 2001 From: CoreCode Date: Wed, 20 Nov 2024 14:22:16 +0100 Subject: [PATCH 01/27] Update UltiMaker-Cura.spec.jinja --- UltiMaker-Cura.spec.jinja | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UltiMaker-Cura.spec.jinja b/UltiMaker-Cura.spec.jinja index 2dce96282e..a24ce1558a 100644 --- a/UltiMaker-Cura.spec.jinja +++ b/UltiMaker-Cura.spec.jinja @@ -75,7 +75,7 @@ app = BUNDLE( coll, name='{{ display_name }}.app', icon={{ icon }}, - bundle_identifier={{ osx_bundle_identifier }} + "_" + '{{ display_name }}'.replace(" ", "_") + "_" {{ short_version }}, + bundle_identifier={{ osx_bundle_identifier }} + "_" + '{{ display_name }}'.replace(" ", "_"), version={{ version }}, info_plist={ 'CFBundleDisplayName': '{{ display_name }}', From 7b9c66278572ea49e4f5b21e3d23d443731ace74 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Sun, 1 Dec 2024 16:35:19 +0100 Subject: [PATCH 02/27] add resolveOrValue --- resources/definitions/sovol_base_bowden.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/sovol_base_bowden.def.json b/resources/definitions/sovol_base_bowden.def.json index 670b24fffc..0f389a25f8 100644 --- a/resources/definitions/sovol_base_bowden.def.json +++ b/resources/definitions/sovol_base_bowden.def.json @@ -10,6 +10,6 @@ "overrides": { "retraction_amount": { "default_value": 5 }, - "retraction_speed": { "value": "machine_max_feedrate_e" } + "retraction_speed": { "value": "resolveOrValue('machine_max_feedrate_e')" } } } \ No newline at end of file From ef8ddcfbe7bc5a72dd4598aa978a606352d16791 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Mon, 2 Dec 2024 08:59:00 +0100 Subject: [PATCH 03/27] bump version --- resources/definitions/sovol_base_bowden.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/sovol_base_bowden.def.json b/resources/definitions/sovol_base_bowden.def.json index 0f389a25f8..1f359c3dc0 100644 --- a/resources/definitions/sovol_base_bowden.def.json +++ b/resources/definitions/sovol_base_bowden.def.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "name": "Sovol Base Bowden Printer", "inherits": "sovol_base", "metadata": @@ -12,4 +12,4 @@ "retraction_amount": { "default_value": 5 }, "retraction_speed": { "value": "resolveOrValue('machine_max_feedrate_e')" } } -} \ No newline at end of file +} From 63f91fa56334426119d0bd1b61b6bf18acba666d Mon Sep 17 00:00:00 2001 From: HellAholic Date: Mon, 2 Dec 2024 08:00:18 +0000 Subject: [PATCH 04/27] Applied printer-linter format --- resources/definitions/sovol_base_bowden.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/sovol_base_bowden.def.json b/resources/definitions/sovol_base_bowden.def.json index 1f359c3dc0..ad03842a47 100644 --- a/resources/definitions/sovol_base_bowden.def.json +++ b/resources/definitions/sovol_base_bowden.def.json @@ -12,4 +12,4 @@ "retraction_amount": { "default_value": 5 }, "retraction_speed": { "value": "resolveOrValue('machine_max_feedrate_e')" } } -} +} \ No newline at end of file From 30205e1c784bb1a2654d674c810f6e5d9d55f95a Mon Sep 17 00:00:00 2001 From: HellAholic Date: Sat, 7 Dec 2024 16:10:42 +0100 Subject: [PATCH 05/27] Update description Add (restart required) --- resources/qml/Preferences/GeneralPage.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index a686fca8e5..62cab53a78 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -669,12 +669,12 @@ UM.PreferencesPage { width: childrenRect.width height: childrenRect.height - text: catalog.i18nc("@info:tooltip", "Should the Y axis of the translate toolhandle be flipped?") + text: catalog.i18nc("@info:tooltip", "Should the Y axis of the translate toolhandle be flipped? This will only affect model's Y coordinate, all other settings such as machine Printhead settings are unaffected and still behave as before.") UM.CheckBox { id: flipToolhandleYCheckbox - text: catalog.i18nc("@option:check", "Flip toolhandle Y axis") + text: catalog.i18nc("@option:check", "Flip model's toolhandle Y axis (restart required)") checked: boolCheck(UM.Preferences.getValue("tool/flip_y_axis_tool_handle")) onCheckedChanged: UM.Preferences.setValue("tool/flip_y_axis_tool_handle", checked) } From d8b3e773ab4cdae808352f5f3c734fefa297d6f2 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Mon, 9 Dec 2024 08:22:26 +0100 Subject: [PATCH 06/27] update label for clarity Greg's proposal: add details to clarify what the Y min & Y max refer to --- plugins/MachineSettingsAction/MachineSettingsPrinterTab.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/MachineSettingsAction/MachineSettingsPrinterTab.qml b/plugins/MachineSettingsAction/MachineSettingsPrinterTab.qml index c2238d2205..d40efbee8a 100644 --- a/plugins/MachineSettingsAction/MachineSettingsPrinterTab.qml +++ b/plugins/MachineSettingsAction/MachineSettingsPrinterTab.qml @@ -214,7 +214,7 @@ Item settingStoreIndex: propertyStoreIndex - labelText: catalog.i18nc("@label", "Y min") + labelText: catalog.i18nc("@label", "Y min ( '-' towards back)") labelFont: base.labelFont labelWidth: base.labelWidth controlWidth: base.controlWidth @@ -254,7 +254,7 @@ Item settingKey: "machine_head_with_fans_polygon" settingStoreIndex: propertyStoreIndex - labelText: catalog.i18nc("@label", "Y max") + labelText: catalog.i18nc("@label", "Y max ( '+' towards front)") labelFont: base.labelFont labelWidth: base.labelWidth controlWidth: base.controlWidth From 4c686afcb6acf1cd0e7dc3879f2027d2211dd1f0 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Mon, 9 Dec 2024 08:23:40 +0100 Subject: [PATCH 07/27] Update machine head & fan polygon description Greg's proposal: add details to clarify what the Y min & Y max refer to. Previous description was unclear and referred to front of print head as being a negative value which is not accurate. --- 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 c930a624d0..de47e3ff86 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -461,7 +461,7 @@ "machine_head_with_fans_polygon": { "label": "Machine Head & Fan Polygon", - "description": "The shape of the print head. These are coordinates relative to the position of the print head, which is usually the position of its first extruder. The dimensions left and in front of the print head must be negative coordinates.", + "description": "The dimensions of the print head used to determine 'Safe Model Distance' when printing 'One at a Time'. These numbers relate to the centerline of the first extruder nozzle. Left of the nozzle is 'X Min' and must be negative. Rear of the nozzle is 'Y Min' and must be negative. X Max (right) and Y Max (front) are positive numbers. Gantry height is the dimension from the build plate to the X gantry beam.", "type": "polygon", "default_value": [ [-20, 10], From d5cf5f66acc2e4d8cf56149f88913d862456f238 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Mon, 9 Dec 2024 07:25:19 +0000 Subject: [PATCH 08/27] Applied printer-linter format --- Cura-workflows | 1 + pydir.txt | 1 + 2 files changed, 2 insertions(+) create mode 160000 Cura-workflows create mode 100644 pydir.txt diff --git a/Cura-workflows b/Cura-workflows new file mode 160000 index 0000000000..a38e2d1e10 --- /dev/null +++ b/Cura-workflows @@ -0,0 +1 @@ +Subproject commit a38e2d1e1029e5a350f7ecbee037e7ccabb7044a diff --git a/pydir.txt b/pydir.txt new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/pydir.txt @@ -0,0 +1 @@ + From 2ad64e13db5807ee88f0517c54c3e99ca769ae8a Mon Sep 17 00:00:00 2001 From: Frederic Meeuwissen <13856291+Frederic98@users.noreply.github.com> Date: Wed, 18 Dec 2024 18:21:00 +0100 Subject: [PATCH 09/27] Introduce Cheetah flavor --- resources/definitions/fdmprinter.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index c930a624d0..8a933838da 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -384,6 +384,7 @@ "RepRap (RepRap)": "RepRap", "UltiGCode": "Ultimaker 2", "Griffin": "Griffin", + "Cheetah": "Griffin+Cheetah", "Makerbot": "Makerbot", "BFB": "Bits from Bytes", "MACH3": "Mach3", From 66402ff93c19d684d82c10a87b2a3a08f47b0630 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Thu, 9 Jan 2025 09:19:41 +0100 Subject: [PATCH 10/27] Use single extruder when exporting for Replicator+ CURA-12313 --- conandata.yml | 2 +- plugins/MakerbotWriter/MakerbotWriter.py | 9 +++++++++ plugins/MakerbotWriter/__init__.py | 6 ++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/conandata.yml b/conandata.yml index 6bec3ee231..36fd494356 100644 --- a/conandata.yml +++ b/conandata.yml @@ -5,7 +5,7 @@ requirements: - "curaengine/5.10.0-alpha.0@ultimaker/testing" - "cura_binary_data/5.10.0-alpha.0@ultimaker/testing" - "fdm_materials/5.10.0-alpha.0@ultimaker/testing" - - "dulcificum/0.2.1@ultimaker/stable" + - "dulcificum/0.3.0@ultimaker/cura_12313" - "pysavitar/5.4.0-alpha.0@ultimaker/stable" - "pynest2d/5.4.0-alpha.0@ultimaker/stable" requirements_internal: diff --git a/plugins/MakerbotWriter/MakerbotWriter.py b/plugins/MakerbotWriter/MakerbotWriter.py index 5c655dc8cc..f35b53a84d 100644 --- a/plugins/MakerbotWriter/MakerbotWriter.py +++ b/plugins/MakerbotWriter/MakerbotWriter.py @@ -46,6 +46,13 @@ class MakerbotWriter(MeshWriter): suffixes=["makerbot"] ) ) + MimeTypeDatabase.addMimeType( + MimeType( + name="application/x-makerbot-replicator_plus", + comment="Makerbot Toolpath Package", + suffixes=["makerbot"] + ) + ) _PNG_FORMAT = [ {"prefix": "isometric_thumbnail", "width": 120, "height": 120}, @@ -114,6 +121,8 @@ class MakerbotWriter(MeshWriter): filename, filedata = "print.gcode", gcode_text_io.getvalue() case "application/x-makerbot": filename, filedata = "print.jsontoolpath", du.gcode_2_miracle_jtp(gcode_text_io.getvalue()) + case "application/x-makerbot-replicator_plus": + filename, filedata = "print.jsontoolpath", du.gcode_2_miracle_jtp(gcode_text_io.getvalue(), nb_extruders=1) case _: raise Exception("Unsupported Mime type") diff --git a/plugins/MakerbotWriter/__init__.py b/plugins/MakerbotWriter/__init__.py index 60f232fbc0..bd766add8e 100644 --- a/plugins/MakerbotWriter/__init__.py +++ b/plugins/MakerbotWriter/__init__.py @@ -25,6 +25,12 @@ def getMetaData(): "description": catalog.i18nc("@item:inlistbox", "Makerbot Sketch Printfile"), "mime_type": "application/x-makerbot-sketch", "mode": MakerbotWriter.MakerbotWriter.OutputMode.BinaryMode, + }, + { + "extension": file_extension, + "description": catalog.i18nc("@item:inlistbox", "Makerbot Replicator+ Printfile"), + "mime_type": "application/x-makerbot-replicator_plus", + "mode": MakerbotWriter.MakerbotWriter.OutputMode.BinaryMode, } ] }, From 87072cc0fedaa9d593d73895d1b5fb1c1008f8de Mon Sep 17 00:00:00 2001 From: Alan Bjorklund Date: Thu, 9 Jan 2025 17:51:33 -0500 Subject: [PATCH 11/27] Add metallic PLA quality files for Sketch printers Previously we used the PLA quality files to print Metallic PLA. There were drastic differences in surface quality (matte vs shiny). The temperature increase to 230 addresses the surface differences. We reduced the print speed to stay within the max flowrate of 12 mm^3/s. Additionally, the infill rotation was enabled for Metallic PLA (Similar to Sketch PLA infill). Some other speed adjustments were made (walls, roof, support interface, support bottom). These were paths that got slowed down too much when adjusting the global print speed. These adjustments were made to make up some of the lost speed without sacrificing print quality. The previous support material flow value was set to 90%. We increased it by 2% to limit under-extrusion, which is more pronounced at the higher nozzle temperature. PP-552 --- .../definitions/ultimaker_sketch.def.json | 1 - .../ultimaker_sketch_sprint.def.json | 3 +- ...h_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg | 15 ++++++++++ ...e_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg | 15 ++++++++++ ...t_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg | 28 +++++++++++++++++++ 5 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 resources/quality/ultimaker_sketch/um_sketch_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_sketch_large/um_sketch_large_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg diff --git a/resources/definitions/ultimaker_sketch.def.json b/resources/definitions/ultimaker_sketch.def.json index 2f96b52397..1c31670968 100644 --- a/resources/definitions/ultimaker_sketch.def.json +++ b/resources/definitions/ultimaker_sketch.def.json @@ -52,7 +52,6 @@ "ultimaker_rapidrinse", "ultimaker_sr30", "ultimaker_petg", - "ultimaker_metallic_pla", "basf_", "jabil_", "polymaker_", diff --git a/resources/definitions/ultimaker_sketch_sprint.def.json b/resources/definitions/ultimaker_sketch_sprint.def.json index cde655e70f..354808c580 100644 --- a/resources/definitions/ultimaker_sketch_sprint.def.json +++ b/resources/definitions/ultimaker_sketch_sprint.def.json @@ -53,8 +53,7 @@ "ultimaker_pva", "ultimaker_rapidrinse", "ultimaker_sr30", - "ultimaker_petg", - "ultimaker_metallic_pla" + "ultimaker_petg" ], "has_machine_quality": true, "has_materials": true, diff --git a/resources/quality/ultimaker_sketch/um_sketch_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg b/resources/quality/ultimaker_sketch/um_sketch_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..7e3fa34166 --- /dev/null +++ b/resources/quality/ultimaker_sketch/um_sketch_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = ultimaker_sketch +name = Fast +version = 4 + +[metadata] +material = ultimaker_metallic_pla_175 +quality_type = draft +setting_version = 24 +type = quality +variant = 0.4mm +weight = -2 + +[values] + diff --git a/resources/quality/ultimaker_sketch_large/um_sketch_large_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg b/resources/quality/ultimaker_sketch_large/um_sketch_large_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..b9ea5d2aec --- /dev/null +++ b/resources/quality/ultimaker_sketch_large/um_sketch_large_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = ultimaker_sketch_large +name = Fast +version = 4 + +[metadata] +material = ultimaker_metallic_pla_175 +quality_type = draft +setting_version = 24 +type = quality +variant = 0.4mm +weight = -2 + +[values] + diff --git a/resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg b/resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..dd752baffa --- /dev/null +++ b/resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_sketch_sprint +name = Fast +version = 4 + +[metadata] +material = ultimaker_metallic_pla_175 +quality_type = draft +setting_version = 24 +type = quality +variant = 0.4mm +weight = -2 + +[values] +cool_min_temperature = 230 +infill_angles = [45,45,45,45,45,135,135,135,135,135] +material_final_print_temperature = 230 +material_initial_print_temperature = 230 +speed_print = 125 +speed_roofing = 100 +speed_support_bottom = 100 +speed_support_interface = 125 +speed_topbottom = 100 +speed_wall = 75 +speed_wall_x = 100 +support_material_flow = 92 +wall_overhang_speed_factor = 23 + From 5ecfa59c9491b9533ab807d86d85c7b97d3ab742 Mon Sep 17 00:00:00 2001 From: Alan Bjorklund Date: Fri, 10 Jan 2025 09:42:06 -0500 Subject: [PATCH 12/27] Removed metallic PLA from Sketch exclude list PP-552 --- resources/definitions/ultimaker_sketch.def.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/definitions/ultimaker_sketch.def.json b/resources/definitions/ultimaker_sketch.def.json index 1c31670968..f746417e70 100644 --- a/resources/definitions/ultimaker_sketch.def.json +++ b/resources/definitions/ultimaker_sketch.def.json @@ -58,8 +58,7 @@ "ultimaker_rapidrinse", "ultimaker_sr30", "ultimaker_petg", - "ultimaker_pva", - "ultimaker_metallic_pla" + "ultimaker_pva" ], "has_machine_quality": true, "has_materials": true, From 43b19c34457d3c861a7e9b0d9fd63475acdcf4ae Mon Sep 17 00:00:00 2001 From: Alan Bjorklund Date: Fri, 17 Jan 2025 17:57:58 -0500 Subject: [PATCH 13/27] PP-554 Kedge Visual Intents * The settings used in the Visual intent profile improve the roof quality * Settings include temp adjustments, line widths, small features, hole, roof accel & speed * These apply to PLA & TPLA * all of the visual intents are marked as experimental for Cura 5.10 PP-554 --- ...int_0.4mm_um-pla-175_0.2mm_visual.inst.cfg | 42 +++++++++++++++++++ ...4mm_um-tough-pla-175_0.2mm_visual.inst.cfg | 42 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 resources/intent/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.2mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-tough-pla-175_0.2mm_visual.inst.cfg diff --git a/resources/intent/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.2mm_visual.inst.cfg new file mode 100644 index 0000000000..6a81905545 --- /dev/null +++ b/resources/intent/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.2mm_visual.inst.cfg @@ -0,0 +1,42 @@ +[general] +definition = ultimaker_sketch_sprint +name = Visual +version = 4 + +[metadata] +intent_category = visual +is_experimental = True +material = ultimaker_pla_175 +quality_type = draft +setting_version = 24 +type = intent +variant = 0.4mm + +[values] +acceleration_roofing = 1500 +acceleration_wall_0_roofing = 1500 +acceleration_wall_x_roofing = 1500 +cool_min_temperature = 220.0 +hole_xy_offset = 0.2 +hole_xy_offset_max_diameter = 3 +inset_direction = inside_out +line_width = 0.4 +material_final_print_temperature = =material_print_temperature +material_initial_print_temperature = =material_print_temperature +material_print_temperature = 220 +min_bead_width = 0.34 +min_wall_line_width = 0.34 +roofing_line_width = 0.35 +roofing_monotonic = False +roofing_pattern = lines +skin_monotonic = False +skin_outline_count = 0 +skin_overlap = 25 +small_feature_max_length = 25 +small_feature_speed_factor = 40 +small_hole_max_size = 4.5 +small_skin_width = 4 +speed_roofing = 100 +wall_line_width_x = 0.4 +z_seam_type = back + diff --git a/resources/intent/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-tough-pla-175_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-tough-pla-175_0.2mm_visual.inst.cfg new file mode 100644 index 0000000000..1635985b89 --- /dev/null +++ b/resources/intent/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-tough-pla-175_0.2mm_visual.inst.cfg @@ -0,0 +1,42 @@ +[general] +definition = ultimaker_sketch_sprint +name = Visual +version = 4 + +[metadata] +intent_category = visual +is_experimental = True +material = ultimaker_tough_pla_175 +quality_type = draft +setting_version = 24 +type = intent +variant = 0.4mm + +[values] +acceleration_roofing = 1500 +acceleration_wall_0_roofing = 1500 +acceleration_wall_x_roofing = 1500 +cool_min_temperature = 220.0 +hole_xy_offset = 0.2 +hole_xy_offset_max_diameter = 3 +inset_direction = inside_out +line_width = 0.4 +material_final_print_temperature = =material_print_temperature +material_initial_print_temperature = =material_print_temperature +material_print_temperature = 220 +min_bead_width = 0.34 +min_wall_line_width = 0.34 +roofing_line_width = 0.35 +roofing_monotonic = False +roofing_pattern = lines +skin_monotonic = False +skin_outline_count = 0 +skin_overlap = 25 +small_feature_max_length = 25 +small_feature_speed_factor = 40 +small_hole_max_size = 4.5 +small_skin_width = 4 +speed_roofing = 100 +wall_line_width_x = 0.4 +z_seam_type = back + From 73519a3cdc6569c9e8e5bf011514bb0c1cb369d9 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Tue, 21 Jan 2025 10:08:01 +0100 Subject: [PATCH 14/27] Remove + character from bundle identifier CURA-12313 This character is not allowed and will make an invalid package, see https://developer.apple.com/documentation/bundleresources/information-property-list/cfbundleidentifier --- packaging/MacOS/build_macos.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/MacOS/build_macos.py b/packaging/MacOS/build_macos.py index a495a02769..a7063f688d 100644 --- a/packaging/MacOS/build_macos.py +++ b/packaging/MacOS/build_macos.py @@ -154,7 +154,7 @@ if __name__ == "__main__": parser.add_argument("--app_name", required = True, type = str, help = "Filename of the .app that will be contained within the dmg/pkg") args = parser.parse_args() - cura_version = args.cura_conan_version.split("/")[-1] + cura_version = args.cura_conan_version.replace("+","-") # + is not allowed for bundle identifier app_name = f"{args.app_name}.app" From a13726bba129afcb1f01eafdf2e2bcc9ba0b2521 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Wed, 22 Jan 2025 09:54:20 +0100 Subject: [PATCH 15/27] Move interlocking settings out of experimental CURA-12247 Also set interlocking_enable to basic settings because it is quite important and just enabling it doesn't require advanced knowledge/skills. --- resources/definitions/fdmprinter.def.json | 164 +++++++++++----------- resources/setting_visibility/advanced.cfg | 2 +- resources/setting_visibility/basic.cfg | 1 + resources/setting_visibility/expert.cfg | 12 +- 4 files changed, 90 insertions(+), 89 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 8471c59f82..9ce93cd4eb 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -7500,6 +7500,88 @@ "enabled": "retraction_enable and extruders_enabled_count > 1", "settable_per_mesh": false, "settable_per_extruder": true + }, + "interlocking_enable": + { + "label": "Generate Interlocking Structure", + "description": "At the locations where models touch, generate an interlocking beam structure. This improves the adhesion between models, especially models printed in different materials.", + "type": "bool", + "enabled": "extruders_enabled_count > 1", + "default_value": false, + "resolve": "(extruders_enabled_count > 1) and any(extruderValues('interlocking_enable'))", + "settable_per_mesh": false, + "settable_per_extruder": false + }, + "interlocking_beam_width": + { + "label": "Interlocking Beam Width", + "description": "The width of the interlocking structure beams.", + "type": "float", + "unit": "mm", + "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')", + "default_value": 0.8, + "value": "2 * wall_line_width_0", + "minimum_value": "min_odd_wall_line_width", + "maximum_value": "min(0.5 * machine_width, 0.5 * machine_depth)", + "maximum_value_warning": "max(extruderValues('wall_line_width_0')) * 6", + "settable_per_mesh": true, + "settable_per_extruder": true + }, + "interlocking_orientation": + { + "label": "Interlocking Structure Orientation", + "description": "The height of the beams of the interlocking structure, measured in number of layers. Less layers is stronger, but more prone to defects.", + "unit": "\u00b0", + "type": "float", + "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')", + "default_value": 22.5, + "minimum_value": "0", + "maximum_value": "360", + "resolve": "min(extruderValues('interlocking_orientation'))", + "settable_per_mesh": false, + "settable_per_extruder": false + }, + "interlocking_beam_layer_count": + { + "label": "Interlocking Beam Layer Count", + "description": "The height of the beams of the interlocking structure, measured in number of layers. Less layers is stronger, but more prone to defects.", + "type": "int", + "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')", + "default_value": 2, + "minimum_value": "1", + "maximum_value_warning": "50", + "resolve": "max(extruderValues('interlocking_beam_layer_count'))", + "settable_per_mesh": false, + "settable_per_extruder": false + }, + "interlocking_depth": + { + "label": "Interlocking Depth", + "description": "The distance from the boundary between models to generate interlocking structure, measured in cells. Too few cells will result in poor adhesion.", + "type": "int", + "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')", + "default_value": 2, + "minimum_value": "1", + "maximum_value": "10", + "maximum_value_warning": "5", + "resolve": "max(extruderValues('interlocking_depth'))", + "settable_per_mesh": false, + "settable_per_extruder": false + }, + "interlocking_boundary_avoidance": + { + "label": "Interlocking Boundary Avoidance", + "description": "The distance from the outside of a model where interlocking structures will not be generated, measured in cells.", + "type": "int", + "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')", + "default_value": 2, + "minimum_value": "0", + "minimum_value_warning": "resolveOrValue('interlocking_depth')", + "maximum_value": "10", + "maximum_value_warning": "5", + "resolve": "max(extruderValues('interlocking_boundary_avoidance'))", + "settable_per_mesh": false, + "settable_per_extruder": false } } }, @@ -7922,88 +8004,6 @@ "settable_per_mesh": true, "settable_per_extruder": false }, - "interlocking_enable": - { - "label": "Generate Interlocking Structure", - "description": "At the locations where models touch, generate an interlocking beam structure. This improves the adhesion between models, especially models printed in different materials.", - "type": "bool", - "enabled": "extruders_enabled_count > 1", - "default_value": false, - "resolve": "(extruders_enabled_count > 1) and any(extruderValues('interlocking_enable'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "interlocking_beam_width": - { - "label": "Interlocking Beam Width", - "description": "The width of the interlocking structure beams.", - "type": "float", - "unit": "mm", - "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')", - "default_value": 0.8, - "value": "2 * wall_line_width_0", - "minimum_value": "min_odd_wall_line_width", - "maximum_value": "min(0.5 * machine_width, 0.5 * machine_depth)", - "maximum_value_warning": "max(extruderValues('wall_line_width_0')) * 6", - "settable_per_mesh": true, - "settable_per_extruder": true - }, - "interlocking_orientation": - { - "label": "Interlocking Structure Orientation", - "description": "The height of the beams of the interlocking structure, measured in number of layers. Less layers is stronger, but more prone to defects.", - "unit": "\u00b0", - "type": "float", - "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')", - "default_value": 22.5, - "minimum_value": "0", - "maximum_value": "360", - "resolve": "min(extruderValues('interlocking_orientation'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "interlocking_beam_layer_count": - { - "label": "Interlocking Beam Layer Count", - "description": "The height of the beams of the interlocking structure, measured in number of layers. Less layers is stronger, but more prone to defects.", - "type": "int", - "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')", - "default_value": 2, - "minimum_value": "1", - "maximum_value_warning": "50", - "resolve": "max(extruderValues('interlocking_beam_layer_count'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "interlocking_depth": - { - "label": "Interlocking Depth", - "description": "The distance from the boundary between models to generate interlocking structure, measured in cells. Too few cells will result in poor adhesion.", - "type": "int", - "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')", - "default_value": 2, - "minimum_value": "1", - "maximum_value": "10", - "maximum_value_warning": "5", - "resolve": "max(extruderValues('interlocking_depth'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "interlocking_boundary_avoidance": - { - "label": "Interlocking Boundary Avoidance", - "description": "The distance from the outside of a model where interlocking structures will not be generated, measured in cells.", - "type": "int", - "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')", - "default_value": 2, - "minimum_value": "0", - "minimum_value_warning": "resolveOrValue('interlocking_depth')", - "maximum_value": "10", - "maximum_value_warning": "5", - "resolve": "max(extruderValues('interlocking_boundary_avoidance'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, "support_skip_some_zags": { "label": "Break Up Support In Chunks", diff --git a/resources/setting_visibility/advanced.cfg b/resources/setting_visibility/advanced.cfg index 93c3dc91ef..8585a05eec 100644 --- a/resources/setting_visibility/advanced.cfg +++ b/resources/setting_visibility/advanced.cfg @@ -133,6 +133,7 @@ prime_tower_mode prime_tower_position_x prime_tower_position_y prime_tower_brim_enable +interlocking_enable [meshfix] @@ -144,7 +145,6 @@ magic_spiralize smooth_spiralized_contours [experimental] -interlocking_enable conical_overhang_enabled support_conical_enabled adaptive_layer_height_enabled diff --git a/resources/setting_visibility/basic.cfg b/resources/setting_visibility/basic.cfg index 0193eb26ba..6c6124ab67 100644 --- a/resources/setting_visibility/basic.cfg +++ b/resources/setting_visibility/basic.cfg @@ -56,6 +56,7 @@ adhesion_extruder_nr prime_tower_enable prime_tower_position_x prime_tower_position_y +interlocking_enable [meshfix] diff --git a/resources/setting_visibility/expert.cfg b/resources/setting_visibility/expert.cfg index b13618e5c1..6c78e40503 100644 --- a/resources/setting_visibility/expert.cfg +++ b/resources/setting_visibility/expert.cfg @@ -378,6 +378,12 @@ prime_tower_min_shell_thickness ooze_shield_enabled ooze_shield_angle ooze_shield_dist +interlocking_enable +interlocking_beam_width +interlocking_orientation +interlocking_beam_layer_count +interlocking_dept +interlocking_boundary_avoidance [meshfix] meshfix_union_all @@ -428,12 +434,6 @@ roofing_monotonic roofing_angles infill_enable_travel_optimization material_flow_temp_graph -interlocking_enable -interlocking_beam_width -interlocking_orientation -interlocking_beam_layer_count -interlocking_dept -interlocking_boundary_avoidance support_skip_some_zags support_skip_zag_per_mm support_zag_skip_count From 038e8b77223fbe08d536681abcb7159c4c8f854e Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 22 Jan 2025 21:16:56 +0100 Subject: [PATCH 16/27] Warn for mismatched cores on multi-config printers. Similar to the warning we already had for missing materials. CURA-12368 --- .../Models/PrinterConfigurationModel.py | 14 +++- .../ConfigurationMenu/ConfigurationItem.qml | 70 +++++++++++++++---- 2 files changed, 68 insertions(+), 16 deletions(-) diff --git a/cura/PrinterOutput/Models/PrinterConfigurationModel.py b/cura/PrinterOutput/Models/PrinterConfigurationModel.py index 85c69abcd3..d42be47b41 100644 --- a/cura/PrinterOutput/Models/PrinterConfigurationModel.py +++ b/cura/PrinterOutput/Models/PrinterConfigurationModel.py @@ -1,9 +1,12 @@ -# Copyright (c) 2018 Ultimaker B.V. +# Copyright (c) 2025 UltiMaker # Cura is released under the terms of the LGPLv3 or higher. from PyQt6.QtCore import pyqtProperty, QObject, pyqtSignal from typing import List +from UM.Settings.ContainerRegistry import ContainerRegistry +from UM.Settings.DefinitionContainer import DefinitionContainer + MYPY = False if MYPY: from cura.PrinterOutput.Models.ExtruderConfigurationModel import ExtruderConfigurationModel @@ -68,6 +71,15 @@ class PrinterConfigurationModel(QObject): return True return False + @pyqtProperty("QStringList", constant=True) + def validCoresForPrinterType(self) -> List[str]: + printers = ContainerRegistry.getInstance().findContainersMetadata( + ignore_case=True, type="machine", name=self._printer_type, container_type=DefinitionContainer) + id = printers[0]["id"] if len(printers) > 0 and "id" in printers[0] else "" + definitions = ContainerRegistry.getInstance().findContainersMetadata( + ignore_case=True, type="variant", definition=id+"*") + return [x["name"] for x in definitions] + def __str__(self): message_chunks = [] message_chunks.append("Printer type: " + self._printer_type) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index bcbb6d7679..7b4479cdc3 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2018 Ultimaker B.V. +// Copyright (c) 2025 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 @@ -12,7 +12,7 @@ Button id: configurationItem property var configuration: null - hoverEnabled: isValidMaterial + hoverEnabled: isValidMaterial && isValidCore property bool isValidMaterial: { @@ -25,7 +25,6 @@ Button for (var index in extruderConfigurations) { var name = extruderConfigurations[index].material ? extruderConfigurations[index].material.name : "" - if (name == "" || name == "Unknown") { return false @@ -34,6 +33,25 @@ Button return true } + property bool isValidCore: + { + if (configuration === null) + { + return false + } + var extruderConfigurations = configuration.extruderConfigurations + var coresList = configuration.validCoresForPrinterType + for (var index in extruderConfigurations) + { + var name = extruderConfigurations[index].hotendID ? extruderConfigurations[index].hotendID : "" + if (name != "" && ! coresList.includes(name)) + { + return false + } + } + return true + } + background: Rectangle { color: parent.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") @@ -72,11 +90,11 @@ Button { width: Math.round(parent.width / (configuration !== null ? configuration.extruderConfigurations.length : 1)) printCoreConfiguration: modelData - visible: configurationItem.isValidMaterial + visible: configurationItem.isValidMaterial && configurationItem.isValidCore } } - // Unknown material + // Unknown material or core ('variant') Item { id: unknownMaterial @@ -86,7 +104,7 @@ Button anchors.top: parent.top anchors.topMargin: UM.Theme.getSize("thin_margin").width / 2 - visible: !configurationItem.isValidMaterial + visible: ! (configurationItem.isValidMaterial && configurationItem.isValidCore) UM.ColorImage { @@ -102,13 +120,9 @@ Button UM.Label { id: unknownMaterialMessage - text: - { - if (configuration === null) - { - return "" - } + function whenUnknownMaterial() + { var extruderConfigurations = configuration.extruderConfigurations var unknownMaterials = [] for (var index in extruderConfigurations) @@ -135,9 +149,35 @@ Button unknownMaterials = "" + unknownMaterials + "" var draftResult = catalog.i18nc("@label", "This configuration is not available because %1 is not recognized. Please visit %2 to download the correct material profile."); - var result = draftResult.arg(unknownMaterials).arg("" + catalog.i18nc("@label","Marketplace") + " ") + return draftResult.arg(unknownMaterials).arg("" + catalog.i18nc("@label","Marketplace") + " ") + } - return result + function whenMismatchedCore() + { + var extruderConfigurations = configuration.extruderConfigurations + var coresList = configuration.validCoresForPrinterType + var mismatchedCores = [] + for (var index in extruderConfigurations) + { + var name = extruderConfigurations[index].hotendID ? extruderConfigurations[index].hotendID : "" + if (name != "" && ! coresList.includes(name)) + { + mismatchedCores.push(name) + } + } + + mismatchedCores = "" + mismatchedCores + "" + var draftResult = catalog.i18nc("@label", "This configuration is not available because %1 is either mismatched, or unrecognized. Please visit %2 to check with cores this printer-type supports."); + return draftResult.arg(mismatchedCores).arg("" + catalog.i18nc("@label","WEBSITE") + " ") + } + + text: + { + if (configuration === null) + { + return "" + } + return isValidMaterial ? whenMismatchedCore() : whenUnknownMaterial() } width: extruderRow.width @@ -225,7 +265,7 @@ Button onClicked: { - if(isValidMaterial) + if (isValidMaterial && isValidCore) { toggleContent() Cura.MachineManager.applyRemoteConfiguration(configuration) From 4a30660a5cc78a131d3b4afbbee2c01ee545d85e Mon Sep 17 00:00:00 2001 From: HellAholic Date: Thu, 23 Jan 2025 10:19:57 +0100 Subject: [PATCH 17/27] Remove pydir and workflow folder --- Cura-workflows | 1 - pydir.txt | 1 - 2 files changed, 2 deletions(-) delete mode 160000 Cura-workflows delete mode 100644 pydir.txt diff --git a/Cura-workflows b/Cura-workflows deleted file mode 160000 index a38e2d1e10..0000000000 --- a/Cura-workflows +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a38e2d1e1029e5a350f7ecbee037e7ccabb7044a diff --git a/pydir.txt b/pydir.txt deleted file mode 100644 index 8b13789179..0000000000 --- a/pydir.txt +++ /dev/null @@ -1 +0,0 @@ - From 04a6ecf7ca8ba3d52a7a3873c637697c214fb1aa Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 27 Jan 2025 14:41:18 +0100 Subject: [PATCH 18/27] Add local setting to monitor use of USB writing CURA-12150 --- plugins/USBPrinting/USBPrinterOutputDevice.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/USBPrinting/USBPrinterOutputDevice.py b/plugins/USBPrinting/USBPrinterOutputDevice.py index 85b98e532b..18d9466eb5 100644 --- a/plugins/USBPrinting/USBPrinterOutputDevice.py +++ b/plugins/USBPrinting/USBPrinterOutputDevice.py @@ -97,6 +97,8 @@ class USBPrinterOutputDevice(PrinterOutputDevice): CuraApplication.getInstance().getOnExitCallbackManager().addCallback(self._checkActivePrintingUponAppExit) + CuraApplication.getInstance().getPreferences().addPreference("usb_printing/enabled", False) + # This is a callback function that checks if there is any printing in progress via USB when the application tries # to exit. If so, it will show a confirmation before def _checkActivePrintingUponAppExit(self) -> None: @@ -144,6 +146,8 @@ class USBPrinterOutputDevice(PrinterOutputDevice): CuraApplication.getInstance().getController().setActiveStage("MonitorStage") + CuraApplication.getInstance().getPreferences().setValue("usb_printing/enabled", True) + #Find the g-code to print. gcode_textio = StringIO() gcode_writer = cast(MeshWriter, PluginRegistry.getInstance().getPluginObject("GCodeWriter")) From 3b2d0fd8afe08c4e56d6d43e7b8b06984249241d Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 27 Jan 2025 15:23:55 +0100 Subject: [PATCH 19/27] Slightly reduce the width of setting fields CURA-12224 This gives more space for the text, which can sometimes be very long --- resources/themes/cura-light/theme.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 160799be6e..1ae316f96c 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -567,7 +567,7 @@ "section_icon_column": [2.5, 2.5], "setting": [25.0, 1.8], - "setting_control": [11.0, 2.0], + "setting_control": [9.0, 2.0], "setting_control_radius": [0.15, 0.15], "setting_control_depth_margin": [1.4, 0.0], "setting_unit_margin": [0.5, 0.5], From 2e59a0a00913da58b1238a122174bc6388883e0a Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 27 Jan 2025 15:24:42 +0100 Subject: [PATCH 20/27] Give more space to text when required CURA-12224 This way, multi-lines setting names can be properly displayed --- resources/qml/Settings/SettingItem.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index 1d8ad654e3..f46c59ff61 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -13,7 +13,7 @@ import "." Item { id: base - height: enabled ? UM.Theme.getSize("section").height + UM.Theme.getSize("narrow_margin").height : 0 + height: enabled ? Math.max(UM.Theme.getSize("section").height, label.height) + UM.Theme.getSize("narrow_margin").height : 0 anchors.left: parent.left anchors.right: parent.right From 669c28e61827a4c53b68a047b3215e792a7e383a Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 28 Jan 2025 09:20:47 +0100 Subject: [PATCH 21/27] Try to make unavailable configuration warnings less confusing. part of CURA-12368 --- .../ConfigurationMenu/ConfigurationItem.qml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 7b4479cdc3..48d3874985 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -167,7 +167,7 @@ Button } mismatchedCores = "" + mismatchedCores + "" - var draftResult = catalog.i18nc("@label", "This configuration is not available because %1 is either mismatched, or unrecognized. Please visit %2 to check with cores this printer-type supports."); + var draftResult = catalog.i18nc("@label", "This configuration is not available because there is a mismatch or other problem with core-type %1. Please visit %2 to check which cores this printer-type supports w.r.t. new slices."); return draftResult.arg(mismatchedCores).arg("" + catalog.i18nc("@label","WEBSITE") + " ") } @@ -177,7 +177,19 @@ Button { return "" } - return isValidMaterial ? whenMismatchedCore() : whenUnknownMaterial() + + var extruderConfigurations = configuration.extruderConfigurations + var perExtruder = [] + for (var index in extruderConfigurations) + { + var matName = extruderConfigurations[index].material ? extruderConfigurations[index].material.name : "" + var coreName = extruderConfigurations[index].hotendID ? extruderConfigurations[index].hotendID : "" + perExtruder.push(` [${coreName}/${matName}]`) + } + + var configsStr = "" + perExtruder + "" + var warnStr = isValidMaterial ? whenMismatchedCore() : whenUnknownMaterial() + return configsStr + "
" + warnStr } width: extruderRow.width From c369a405b35844a5de7bbd84df2bbc50056d3db9 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Tue, 28 Jan 2025 10:34:58 +0100 Subject: [PATCH 22/27] Set dynamic items size CURA-12368 --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 48d3874985..f76e1c6ef7 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -78,7 +78,7 @@ Button right: parent.right rightMargin: UM.Theme.getSize("wide_margin").width } - height: childrenRect.height + height: unknownMaterial.visible ? unknownMaterial.height : (repeater.count > 0 ? repeater.itemAt(0).height : 0) spacing: UM.Theme.getSize("default_margin").width Repeater @@ -98,11 +98,10 @@ Button Item { id: unknownMaterial - height: unknownMaterialMessage.height + UM.Theme.getSize("thin_margin").width / 2 + height: unknownMaterialMessage.height width: parent.width anchors.top: parent.top - anchors.topMargin: UM.Theme.getSize("thin_margin").width / 2 visible: ! (configurationItem.isValidMaterial && configurationItem.isValidCore) From eec90b5bdc10b88d2a5a3ac31c5483f21d29e74b Mon Sep 17 00:00:00 2001 From: Frederic Meeuwissen <13856291+Frederic98@users.noreply.github.com> Date: Wed, 29 Jan 2025 09:35:28 +0100 Subject: [PATCH 23/27] [PP-535] Add pressure advance setting --- resources/definitions/fdmprinter.def.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index c1392e57ba..e89595c1b1 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3232,6 +3232,19 @@ "minimum_value": 0.01, "settable_per_mesh": false, "settable_per_extruder": true + }, + "material_pressure_advance_factor": + { + "enabled": false, + "label": "Pressure advance factor", + "description": "Tuning factor for pressure advance, which is meant to synchronize extrusion with motion", + "default_value": 0.05, + "maximum_value_warning": 1.0, + "minimum_value": 0, + "type": "float", + "settable_per_mesh": false, + "settable_per_extruder": true, + "settable_per_meshgroup": false } } }, From 05f6afd93d89ec8f86f5e4f283b0c0e6d40c80e4 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 29 Jan 2025 13:20:01 +0100 Subject: [PATCH 24/27] Round layer height to two decimals for display (profile) purposes. CURA-12020 --- cura/Settings/MachineManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 82b52d3dde..4c16061074 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1678,7 +1678,7 @@ class MachineManager(QObject): intent_category = self.activeIntentCategory, intent_name = IntentCategoryModel.translation(self.activeIntentCategory, "name", self.activeIntentCategory.title()), custom_profile = self.activeQualityOrQualityChangesName if global_stack.qualityChanges is not empty_quality_changes_container else None, - layer_height = self.activeQualityLayerHeight if self.isActiveQualitySupported else None, + layer_height = float("{:.2f}".format(self.activeQualityLayerHeight)) if self.isActiveQualitySupported else None, is_experimental = self.isActiveQualityExperimental and self.isActiveQualitySupported ) From 0680a216703fc5a473567a9b87e4df19220c2481 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Wed, 29 Jan 2025 13:48:59 +0100 Subject: [PATCH 25/27] apply review comment --- resources/definitions/sovol_base_bowden.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/sovol_base_bowden.def.json b/resources/definitions/sovol_base_bowden.def.json index ad03842a47..48e905a9b6 100644 --- a/resources/definitions/sovol_base_bowden.def.json +++ b/resources/definitions/sovol_base_bowden.def.json @@ -1,5 +1,5 @@ { - "version": 3, + "version": 2, "name": "Sovol Base Bowden Printer", "inherits": "sovol_base", "metadata": @@ -12,4 +12,4 @@ "retraction_amount": { "default_value": 5 }, "retraction_speed": { "value": "resolveOrValue('machine_max_feedrate_e')" } } -} \ No newline at end of file +} From 40f738f15fd4d5e86a36464f5c6e8f3be8f7c407 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Wed, 29 Jan 2025 12:49:58 +0000 Subject: [PATCH 26/27] Applied printer-linter format --- resources/definitions/sovol_base_bowden.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/sovol_base_bowden.def.json b/resources/definitions/sovol_base_bowden.def.json index 48e905a9b6..0f389a25f8 100644 --- a/resources/definitions/sovol_base_bowden.def.json +++ b/resources/definitions/sovol_base_bowden.def.json @@ -12,4 +12,4 @@ "retraction_amount": { "default_value": 5 }, "retraction_speed": { "value": "resolveOrValue('machine_max_feedrate_e')" } } -} +} \ No newline at end of file From 150a267bb77c75af2de3526b07472671ec8d2d9b Mon Sep 17 00:00:00 2001 From: HellAholic Date: Wed, 29 Jan 2025 14:05:14 +0100 Subject: [PATCH 27/27] switch from branch to stable in conandata for dulcificum --- conandata.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conandata.yml b/conandata.yml index 36fd494356..de95766ed2 100644 --- a/conandata.yml +++ b/conandata.yml @@ -5,7 +5,7 @@ requirements: - "curaengine/5.10.0-alpha.0@ultimaker/testing" - "cura_binary_data/5.10.0-alpha.0@ultimaker/testing" - "fdm_materials/5.10.0-alpha.0@ultimaker/testing" - - "dulcificum/0.3.0@ultimaker/cura_12313" + - "dulcificum/0.3.0@ultimaker/stable" - "pysavitar/5.4.0-alpha.0@ultimaker/stable" - "pynest2d/5.4.0-alpha.0@ultimaker/stable" requirements_internal: