From 99d10e5227d7a43f5bcd383aa2119e1523e70e03 Mon Sep 17 00:00:00 2001 From: Shirley Du Date: Wed, 8 Jan 2025 15:31:32 -0500 Subject: [PATCH 1/7] Use some accel/jerk settings as Method Bead Mode values Populate Method series .makerbot files' meta.json with accel override settings, for the print globally and for 'bead modes' pertaining to specific features, per extruder. Currently, extruder-specific bead mode settings will only be added to the meta.json if the value is non-zero. Also disallow setting per mesh/extruder/meshgroup for accel/jerk _enabled, _print, _travel, _travel_enabled for method-based printers --- plugins/MakerbotWriter/MakerbotWriter.py | 69 ++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/plugins/MakerbotWriter/MakerbotWriter.py b/plugins/MakerbotWriter/MakerbotWriter.py index 5c655dc8cc..9012f48bc1 100644 --- a/plugins/MakerbotWriter/MakerbotWriter.py +++ b/plugins/MakerbotWriter/MakerbotWriter.py @@ -254,6 +254,75 @@ class MakerbotWriter(MeshWriter): "printMode": CuraApplication.getInstance().getIntentManager().currentIntentCategory, } + if file_format == "application/x-makerbot": + accel_overrides = meta["accel_overrides"] = {} + bead_mode_overrides = accel_overrides["bead_mode"] = {} + + if global_stack.getProperty('acceleration_enabled', 'value'): + global_accel_setting = global_stack.getProperty('acceleration_print', 'value') + accel_overrides["rate_mm_per_s_sq"] = { + "x": global_accel_setting, + "y": global_accel_setting + } + if global_stack.getProperty('acceleration_travel_enabled', 'value'): + travel_accel_setting = global_stack.getProperty('acceleration_travel', 'value') + bead_mode_overrides['Travel Move'] = { + "rate_mm_per_s_sq": { + "x": travel_accel_setting, + "y": travel_accel_setting + } + } + + if global_stack.getProperty('jerk_enabled', 'value'): + global_jerk_setting = global_stack.getProperty('jerk_print', 'value') + accel_overrides["max_speed_change_mm_per_s"] = { + "x": global_jerk_setting, + "y": global_jerk_setting + } + if global_stack.getProperty('jerk_travel_enabled', 'value'): + travel_jerk_setting = global_stack.getProperty('jerk_travel', 'value') + if 'Travel Move' not in bead_mode_overrides: + bead_mode_overrides['Travel Move' ] = {} + bead_mode_overrides['Travel Move'].update({ + "max_speed_change_mm_per_s": { + "x": travel_jerk_setting, + "y": travel_jerk_setting + } + }) + + + # Get bead mode settings per extruder + available_bead_modes = { + "infill": "FILL", + "prime_tower": "PRIME_TOWER", + "roofing": "TOP_SURFACE", + "support_infill": "SUPPORT", + "support_interface": "SUPPORT_INTERFACE", + "wall_0": "WALL_OUTER", + "wall_x": "WALL_INNER", + "skirt_brim": "SKIRT" + } + for idx, extruder in enumerate(extruders): + for bead_mode_setting, bead_mode_tag in available_bead_modes.items(): + if bead_mode_tag == "": + continue + ext_specific_tag = "%s_%s" % (bead_mode_tag, idx) + accel_val = extruder.getProperty('acceleration_%s' % bead_mode_setting, 'value') + jerk_val = extruder.getProperty('jerk_%s' % bead_mode_setting, 'value') + if accel_val != 0 or jerk_val != 0: + bead_mode_overrides[ext_specific_tag] = {} + + if accel_val != 0: + bead_mode_overrides[ext_specific_tag]["rate_mm_per_s_sq"] = { + "x": accel_val, + "y": accel_val + } + if jerk_val != 0: + bead_mode_overrides[ext_specific_tag][ "max_speed_change_mm_per_s"] = { + "x": jerk_val, + "y": jerk_val + } + meta["miracle_config"] = {"gaggles": {"instance0": {}}} version_info = dict() From e75c6968d98b8510f441d0caa553733c7acaa5ab Mon Sep 17 00:00:00 2001 From: Shirley Du Date: Tue, 14 Jan 2025 15:27:32 -0500 Subject: [PATCH 2/7] Missed a file Disallow setting by per mesh/extruder/meshgroup for accel/jerk _enabled, _print, _travel, _travel_enabled for method-based printers --- .../ultimaker_method_base.def.json | 42 +++++++++++++++---- 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/resources/definitions/ultimaker_method_base.def.json b/resources/definitions/ultimaker_method_base.def.json index 1e5eb952ed..09c026fe96 100644 --- a/resources/definitions/ultimaker_method_base.def.json +++ b/resources/definitions/ultimaker_method_base.def.json @@ -34,7 +34,10 @@ "acceleration_enabled": { "enabled": false, - "value": true + "value": true, + "settable_per_mesh": false, + "settable_per_extruder": false, + "settable_per_meshgroup": false }, "acceleration_infill": { @@ -54,7 +57,10 @@ "acceleration_print": { "enabled": false, - "value": 800 + "value": 800, + "settable_per_mesh": false, + "settable_per_extruder": false, + "settable_per_meshgroup": false }, "acceleration_print_layer_0": { @@ -99,12 +105,18 @@ "acceleration_travel": { "enabled": false, - "value": 5000 + "value": 5000, + "settable_per_mesh": false, + "settable_per_extruder": false, + "settable_per_meshgroup": false }, "acceleration_travel_enabled": { "enabled": false, - "value": true + "value": true, + "settable_per_mesh": false, + "settable_per_extruder": false, + "settable_per_meshgroup": false }, "acceleration_travel_layer_0": { @@ -204,7 +216,10 @@ "jerk_enabled": { "enabled": false, - "value": true + "value": true, + "settable_per_mesh": false, + "settable_per_extruder": false, + "settable_per_meshgroup": false }, "jerk_infill": { @@ -224,7 +239,10 @@ "jerk_print": { "enabled": false, - "value": 6.25 + "value": 6.25, + "settable_per_mesh": false, + "settable_per_extruder": false, + "settable_per_meshgroup": false }, "jerk_print_layer_0": { @@ -269,12 +287,18 @@ "jerk_travel": { "enabled": false, - "value": "jerk_print" + "value": "jerk_print", + "settable_per_mesh": false, + "settable_per_extruder": false, + "settable_per_meshgroup": false }, "jerk_travel_enabled": { "enabled": false, - "value": true + "value": true, + "settable_per_mesh": false, + "settable_per_extruder": false, + "settable_per_meshgroup": false }, "jerk_travel_layer_0": { @@ -601,4 +625,4 @@ "z_seam_type": { "value": "'sharpest_corner'" }, "zig_zaggify_infill": { "value": true } } -} \ No newline at end of file +} From 5b61a3e3b7e5ed7c3490ef2e5b0120a8db95de83 Mon Sep 17 00:00:00 2001 From: Shirley Du Date: Thu, 16 Jan 2025 11:11:15 -0500 Subject: [PATCH 3/7] Make acceleration/jerk_enabled control bead modes as well This fits more with the parenting structure --- plugins/MakerbotWriter/MakerbotWriter.py | 57 +++++++++++++----------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/plugins/MakerbotWriter/MakerbotWriter.py b/plugins/MakerbotWriter/MakerbotWriter.py index 9012f48bc1..b50adf450c 100644 --- a/plugins/MakerbotWriter/MakerbotWriter.py +++ b/plugins/MakerbotWriter/MakerbotWriter.py @@ -258,37 +258,42 @@ class MakerbotWriter(MeshWriter): accel_overrides = meta["accel_overrides"] = {} bead_mode_overrides = accel_overrides["bead_mode"] = {} - if global_stack.getProperty('acceleration_enabled', 'value'): + accel_enabled = global_stack.getProperty('acceleration_enabled', 'value') + + if accel_enabled: global_accel_setting = global_stack.getProperty('acceleration_print', 'value') accel_overrides["rate_mm_per_s_sq"] = { "x": global_accel_setting, "y": global_accel_setting } - if global_stack.getProperty('acceleration_travel_enabled', 'value'): - travel_accel_setting = global_stack.getProperty('acceleration_travel', 'value') - bead_mode_overrides['Travel Move'] = { - "rate_mm_per_s_sq": { - "x": travel_accel_setting, - "y": travel_accel_setting - } - } - if global_stack.getProperty('jerk_enabled', 'value'): + if global_stack.getProperty('acceleration_travel_enabled', 'value'): + travel_accel_setting = global_stack.getProperty('acceleration_travel', 'value') + bead_mode_overrides['Travel Move'] = { + "rate_mm_per_s_sq": { + "x": travel_accel_setting, + "y": travel_accel_setting + } + } + + jerk_enabled = global_stack.getProperty('jerk_enabled', 'value') + if jerk_enabled: global_jerk_setting = global_stack.getProperty('jerk_print', 'value') accel_overrides["max_speed_change_mm_per_s"] = { "x": global_jerk_setting, "y": global_jerk_setting } - if global_stack.getProperty('jerk_travel_enabled', 'value'): - travel_jerk_setting = global_stack.getProperty('jerk_travel', 'value') - if 'Travel Move' not in bead_mode_overrides: - bead_mode_overrides['Travel Move' ] = {} - bead_mode_overrides['Travel Move'].update({ - "max_speed_change_mm_per_s": { - "x": travel_jerk_setting, - "y": travel_jerk_setting - } - }) + + if global_stack.getProperty('jerk_travel_enabled', 'value'): + travel_jerk_setting = global_stack.getProperty('jerk_travel', 'value') + if 'Travel Move' not in bead_mode_overrides: + bead_mode_overrides['Travel Move' ] = {} + bead_mode_overrides['Travel Move'].update({ + "max_speed_change_mm_per_s": { + "x": travel_jerk_setting, + "y": travel_jerk_setting + } + }) # Get bead mode settings per extruder @@ -304,20 +309,18 @@ class MakerbotWriter(MeshWriter): } for idx, extruder in enumerate(extruders): for bead_mode_setting, bead_mode_tag in available_bead_modes.items(): - if bead_mode_tag == "": - continue ext_specific_tag = "%s_%s" % (bead_mode_tag, idx) - accel_val = extruder.getProperty('acceleration_%s' % bead_mode_setting, 'value') - jerk_val = extruder.getProperty('jerk_%s' % bead_mode_setting, 'value') - if accel_val != 0 or jerk_val != 0: + if accel_enabled or jerk_enabled: bead_mode_overrides[ext_specific_tag] = {} - if accel_val != 0: + if accel_enabled: + accel_val = extruder.getProperty('acceleration_%s' % bead_mode_setting, 'value') bead_mode_overrides[ext_specific_tag]["rate_mm_per_s_sq"] = { "x": accel_val, "y": accel_val } - if jerk_val != 0: + if jerk_enabled: + jerk_val = extruder.getProperty('jerk_%s' % bead_mode_setting, 'value') bead_mode_overrides[ext_specific_tag][ "max_speed_change_mm_per_s"] = { "x": jerk_val, "y": jerk_val From 4cb1c9e9acad33eef24cc1b56a346b18c2e468a0 Mon Sep 17 00:00:00 2001 From: shirleydu <2245546+shirleydu@users.noreply.github.com> Date: Thu, 16 Jan 2025 16:55:47 +0000 Subject: [PATCH 4/7] Apply printer-linter format --- .../ultimaker_method_base.def.json | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/resources/definitions/ultimaker_method_base.def.json b/resources/definitions/ultimaker_method_base.def.json index 09c026fe96..89fff957ff 100644 --- a/resources/definitions/ultimaker_method_base.def.json +++ b/resources/definitions/ultimaker_method_base.def.json @@ -34,10 +34,10 @@ "acceleration_enabled": { "enabled": false, - "value": true, - "settable_per_mesh": false, "settable_per_extruder": false, - "settable_per_meshgroup": false + "settable_per_mesh": false, + "settable_per_meshgroup": false, + "value": true }, "acceleration_infill": { @@ -57,10 +57,10 @@ "acceleration_print": { "enabled": false, - "value": 800, - "settable_per_mesh": false, "settable_per_extruder": false, - "settable_per_meshgroup": false + "settable_per_mesh": false, + "settable_per_meshgroup": false, + "value": 800 }, "acceleration_print_layer_0": { @@ -105,18 +105,18 @@ "acceleration_travel": { "enabled": false, - "value": 5000, - "settable_per_mesh": false, "settable_per_extruder": false, - "settable_per_meshgroup": false + "settable_per_mesh": false, + "settable_per_meshgroup": false, + "value": 5000 }, "acceleration_travel_enabled": { "enabled": false, - "value": true, - "settable_per_mesh": false, "settable_per_extruder": false, - "settable_per_meshgroup": false + "settable_per_mesh": false, + "settable_per_meshgroup": false, + "value": true }, "acceleration_travel_layer_0": { @@ -216,10 +216,10 @@ "jerk_enabled": { "enabled": false, - "value": true, - "settable_per_mesh": false, "settable_per_extruder": false, - "settable_per_meshgroup": false + "settable_per_mesh": false, + "settable_per_meshgroup": false, + "value": true }, "jerk_infill": { @@ -239,10 +239,10 @@ "jerk_print": { "enabled": false, - "value": 6.25, - "settable_per_mesh": false, "settable_per_extruder": false, - "settable_per_meshgroup": false + "settable_per_mesh": false, + "settable_per_meshgroup": false, + "value": 6.25 }, "jerk_print_layer_0": { @@ -287,18 +287,18 @@ "jerk_travel": { "enabled": false, - "value": "jerk_print", - "settable_per_mesh": false, "settable_per_extruder": false, - "settable_per_meshgroup": false + "settable_per_mesh": false, + "settable_per_meshgroup": false, + "value": "jerk_print" }, "jerk_travel_enabled": { "enabled": false, - "value": true, - "settable_per_mesh": false, "settable_per_extruder": false, - "settable_per_meshgroup": false + "settable_per_mesh": false, + "settable_per_meshgroup": false, + "value": true }, "jerk_travel_layer_0": { @@ -625,4 +625,4 @@ "z_seam_type": { "value": "'sharpest_corner'" }, "zig_zaggify_infill": { "value": true } } -} +} \ No newline at end of file From 868e74e84b5ef87b9e4ac6b44d0eaa9cb841146d Mon Sep 17 00:00:00 2001 From: Shirley Du Date: Tue, 28 Jan 2025 17:14:34 -0500 Subject: [PATCH 5/7] For Method, enable corner rounding/input shaping if using highspeed type intents --- plugins/MakerbotWriter/MakerbotWriter.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/MakerbotWriter/MakerbotWriter.py b/plugins/MakerbotWriter/MakerbotWriter.py index b50adf450c..2f77ffeda7 100644 --- a/plugins/MakerbotWriter/MakerbotWriter.py +++ b/plugins/MakerbotWriter/MakerbotWriter.py @@ -249,13 +249,17 @@ class MakerbotWriter(MeshWriter): meta["preferences"] = dict() bounds = application.getBuildVolume().getBoundingBox() + intent = CuraApplication.getInstance().getIntentManager().currentIntentCategory meta["preferences"]["instance0"] = { "machineBounds": [bounds.right, bounds.front, bounds.left, bounds.back] if bounds is not None else None, - "printMode": CuraApplication.getInstance().getIntentManager().currentIntentCategory, + "printMode": intent } if file_format == "application/x-makerbot": accel_overrides = meta["accel_overrides"] = {} + if intent in ['highspeed', 'highspeedsolid']: + accel_overrides['do_input_shaping'] = True + accel_overrides['do_corner_rounding'] = True bead_mode_overrides = accel_overrides["bead_mode"] = {} accel_enabled = global_stack.getProperty('acceleration_enabled', 'value') From f4ea52220eca6f87f02758669f2435634d3531ca Mon Sep 17 00:00:00 2001 From: Shirley Du Date: Tue, 28 Jan 2025 17:17:46 -0500 Subject: [PATCH 6/7] Revert "Missed a file" This reverts commit e75c6968d98b8510f441d0caa553733c7acaa5ab. --- .../ultimaker_method_base.def.json | 26 +------------------ 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/resources/definitions/ultimaker_method_base.def.json b/resources/definitions/ultimaker_method_base.def.json index 89fff957ff..dbdc03530b 100644 --- a/resources/definitions/ultimaker_method_base.def.json +++ b/resources/definitions/ultimaker_method_base.def.json @@ -34,9 +34,6 @@ "acceleration_enabled": { "enabled": false, - "settable_per_extruder": false, - "settable_per_mesh": false, - "settable_per_meshgroup": false, "value": true }, "acceleration_infill": @@ -57,9 +54,6 @@ "acceleration_print": { "enabled": false, - "settable_per_extruder": false, - "settable_per_mesh": false, - "settable_per_meshgroup": false, "value": 800 }, "acceleration_print_layer_0": @@ -105,17 +99,11 @@ "acceleration_travel": { "enabled": false, - "settable_per_extruder": false, - "settable_per_mesh": false, - "settable_per_meshgroup": false, "value": 5000 }, "acceleration_travel_enabled": { "enabled": false, - "settable_per_extruder": false, - "settable_per_mesh": false, - "settable_per_meshgroup": false, "value": true }, "acceleration_travel_layer_0": @@ -216,9 +204,6 @@ "jerk_enabled": { "enabled": false, - "settable_per_extruder": false, - "settable_per_mesh": false, - "settable_per_meshgroup": false, "value": true }, "jerk_infill": @@ -239,9 +224,6 @@ "jerk_print": { "enabled": false, - "settable_per_extruder": false, - "settable_per_mesh": false, - "settable_per_meshgroup": false, "value": 6.25 }, "jerk_print_layer_0": @@ -287,17 +269,11 @@ "jerk_travel": { "enabled": false, - "settable_per_extruder": false, - "settable_per_mesh": false, - "settable_per_meshgroup": false, "value": "jerk_print" }, "jerk_travel_enabled": { "enabled": false, - "settable_per_extruder": false, - "settable_per_mesh": false, - "settable_per_meshgroup": false, "value": true }, "jerk_travel_layer_0": @@ -625,4 +601,4 @@ "z_seam_type": { "value": "'sharpest_corner'" }, "zig_zaggify_infill": { "value": true } } -} \ No newline at end of file +} From c4fd72483fd6e4721c7c13b174de30d464191244 Mon Sep 17 00:00:00 2001 From: shirleydu <2245546+shirleydu@users.noreply.github.com> Date: Tue, 28 Jan 2025 22:19:09 +0000 Subject: [PATCH 7/7] Apply printer-linter format --- resources/definitions/ultimaker_method_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/ultimaker_method_base.def.json b/resources/definitions/ultimaker_method_base.def.json index dbdc03530b..1e5eb952ed 100644 --- a/resources/definitions/ultimaker_method_base.def.json +++ b/resources/definitions/ultimaker_method_base.def.json @@ -601,4 +601,4 @@ "z_seam_type": { "value": "'sharpest_corner'" }, "zig_zaggify_infill": { "value": true } } -} +} \ No newline at end of file