From eeb49e587c63aafc2e42f53c7706724b99b4d1a6 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Sat, 11 Jun 2022 17:20:55 +0200 Subject: [PATCH 001/269] Added parameters for optimized prime tower --- resources/definitions/fdmprinter.def.json | 52 ++++++++++++++++------- 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 9e12d7f7e1..ebbf9faac8 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -983,7 +983,7 @@ "description": "Width of a single prime tower line.", "type": "float", "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none'", "default_value": 0.4, "value": "line_width", "minimum_value": "0.001", @@ -3188,7 +3188,7 @@ "description": "The speed at which the prime tower is printed. Printing the prime tower slower can make it more stable when the adhesion between the different filaments is suboptimal.", "type": "float", "unit": "mm/s", - "enabled": "resolveOrValue('prime_tower_enable')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none'", "default_value": 60, "value": "speed_print", "minimum_value": "0.1", @@ -3525,7 +3525,7 @@ "maximum_value_warning": "10000", "default_value": 3000, "value": "acceleration_print", - "enabled": "resolveOrValue('prime_tower_enable') and resolveOrValue('acceleration_enabled')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none' and resolveOrValue('acceleration_enabled')", "settable_per_mesh": false } } @@ -3805,7 +3805,7 @@ "maximum_value_warning": "50", "default_value": 20, "value": "jerk_print", - "enabled": "resolveOrValue('prime_tower_enable') and resolveOrValue('jerk_enabled')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none' and resolveOrValue('jerk_enabled')", "settable_per_mesh": false } } @@ -6112,14 +6112,21 @@ "description": "Settings used for printing with multiple extruders.", "children": { - "prime_tower_enable": + "prime_tower_mode": { - "label": "Enable Prime Tower", + "label": "Prime Tower Mode", "description": "Print a tower next to the print which serves to prime the material after each nozzle switch.", - "type": "bool", + "type": "enum", + "options": + { + "none": "None", + "default": "Default", + "optimized": "Optimized", + "optimized_consistent": "Optimized consistent" + }, + "default_value": "default", "enabled": "extruders_enabled_count > 1", - "default_value": false, - "resolve": "(extruders_enabled_count > 1) and any(extruderValues('prime_tower_enable'))", + "resolve": "(extruders_enabled_count > 1) and any(extruderValues('prime_tower_mode'))", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -6129,7 +6136,7 @@ "description": "The width of the prime tower.", "type": "float", "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none'", "default_value": 20, "resolve": "max(extruderValues('prime_tower_size'))", "minimum_value": "0", @@ -6148,7 +6155,20 @@ "default_value": 6, "minimum_value": "0", "maximum_value_warning": "(resolveOrValue('prime_tower_size') * 0.5) ** 2 * 3.14159 * resolveOrValue('layer_height') - sum(extruderValues('prime_tower_min_volume')) + prime_tower_min_volume", - "enabled": "resolveOrValue('prime_tower_enable')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none'", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "prime_tower_max_bridging_distance": + { + "label": "Prime Tower Maximum Bridging Distance", + "description": "The maximum length of the branches which may be printed over the air.", + "unit": "mm", + "type": "float", + "default_value": 5, + "minimum_value": "line_width", + "maximum_value_warning": "10.0", + "enabled": "resolveOrValue('prime_tower_mode') == 'optimized' or resolveOrValue('prime_tower_mode') == 'optimized_consistent'", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -6158,7 +6178,7 @@ "description": "The x coordinate of the position of the prime tower.", "type": "float", "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none'", "default_value": 200, "value": "machine_width - max(extruderValue(skirt_brim_extruder_nr, 'brim_width') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' or (prime_tower_brim_enable and adhesion_type != 'raft') else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(skirt_brim_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0) - max(map(abs, extruderValues('machine_nozzle_offset_x'))) - 1", "maximum_value": "machine_width / 2 if machine_center_is_zero else machine_width", @@ -6172,7 +6192,7 @@ "description": "The y coordinate of the position of the prime tower.", "type": "float", "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none'", "default_value": 200, "value": "machine_depth - prime_tower_size - max(extruderValue(skirt_brim_extruder_nr, 'brim_width') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' or (prime_tower_brim_enable and adhesion_type != 'raft') else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(skirt_brim_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0) - max(map(abs, extruderValues('machine_nozzle_offset_y'))) - 3", "maximum_value": "machine_depth / 2 - resolveOrValue('prime_tower_size') if machine_center_is_zero else machine_depth - resolveOrValue('prime_tower_size')", @@ -6185,7 +6205,7 @@ "label": "Wipe Inactive Nozzle on Prime Tower", "description": "After printing the prime tower with one nozzle, wipe the oozed material from the other nozzle off on the prime tower.", "type": "bool", - "enabled": "resolveOrValue('prime_tower_enable')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none'", "default_value": true, "settable_per_mesh": false, "settable_per_extruder": true @@ -6195,8 +6215,8 @@ "label": "Prime Tower Brim", "description": "Prime-towers might need the extra adhesion afforded by a brim even if the model doesn't. Presently can't be used with the 'Raft' adhesion-type.", "type": "bool", - "enabled": "resolveOrValue('prime_tower_enable') and (resolveOrValue('adhesion_type') != 'raft')", - "resolve": "resolveOrValue('prime_tower_enable') and (resolveOrValue('adhesion_type') in ('none', 'skirt'))", + "enabled": "resolveOrValue('prime_tower_mode') != 'none' and (resolveOrValue('adhesion_type') != 'raft')", + "resolve": "resolveOrValue('prime_tower_mode') != 'none' and (resolveOrValue('adhesion_type') in ('none', 'skirt'))", "default_value": false, "settable_per_mesh": false, "settable_per_extruder": false From 6d7d1b838a48ee006c3b0ff34637837551435e18 Mon Sep 17 00:00:00 2001 From: wawanbreton Date: Sun, 26 Mar 2023 13:20:52 +0000 Subject: [PATCH 002/269] Applied printer-linter format --- resources/definitions/lnl3d_base.def.json | 28 +++++++++---------- resources/definitions/lnl3d_d3.def.json | 8 ++++-- .../definitions/lnl3d_d3_vulcan.def.json | 8 ++++-- .../extruders/lnl3d_extruder_left.def.json | 2 +- .../extruders/lnl3d_extruder_right.def.json | 2 +- ...lnl3d_base_0.2_generic_PETG_super.inst.cfg | 1 + ...lnl3d_base_0.2_generic_PETG_ultra.inst.cfg | 1 + .../lnl3d_base_0.2_generic_PLA_super.inst.cfg | 1 + .../lnl3d_base_0.2_generic_PLA_ultra.inst.cfg | 1 + ...3d_base_0.4_generic_PETG_adaptive.inst.cfg | 1 + .../lnl3d_base_0.4_generic_PETG_low.inst.cfg | 1 + ...3d_base_0.4_generic_PETG_standard.inst.cfg | 1 + ...lnl3d_base_0.4_generic_PETG_super.inst.cfg | 1 + ...l3d_base_0.4_generic_PLA_adaptive.inst.cfg | 1 + .../lnl3d_base_0.4_generic_PLA_low.inst.cfg | 1 + ...l3d_base_0.4_generic_PLA_standard.inst.cfg | 1 + .../lnl3d_base_0.4_generic_PLA_super.inst.cfg | 1 + ...l3d_base_0.4_generic_TPU_adaptive.inst.cfg | 1 + ...l3d_base_0.4_generic_TPU_standard.inst.cfg | 1 + .../lnl3d_base_0.4_generic_TPU_super.inst.cfg | 1 + ...3d_base_0.6_generic_PETG_standard.inst.cfg | 1 + .../lnl3d_base_0.6_generic_PLA_draft.inst.cfg | 1 + .../lnl3d_base_0.6_generic_PLA_low.inst.cfg | 1 + ...l3d_base_0.6_generic_PLA_standard.inst.cfg | 1 + ...l3d_base_0.6_generic_TPU_standard.inst.cfg | 1 + ...lnl3d_base_0.8_generic_PETG_draft.inst.cfg | 1 + .../lnl3d_base_0.8_generic_PLA_draft.inst.cfg | 1 + .../lnl3d_base_0.8_generic_TPU_draft.inst.cfg | 1 + .../lnl3d/lnl3d_base_global_adaptive.inst.cfg | 1 + .../lnl3d/lnl3d_base_global_draft.inst.cfg | 1 + .../lnl3d/lnl3d_base_global_low.inst.cfg | 1 + .../lnl3d/lnl3d_base_global_standard.inst.cfg | 1 + .../lnl3d/lnl3d_base_global_super.inst.cfg | 1 + .../lnl3d/lnl3d_base_global_ultra.inst.cfg | 1 + .../variants/lnl3d/lnl3d_d3_0.2.inst.cfg | 1 + .../variants/lnl3d/lnl3d_d3_0.4.inst.cfg | 1 + .../variants/lnl3d/lnl3d_d3_0.6.inst.cfg | 1 + .../variants/lnl3d/lnl3d_d3_0.8.inst.cfg | 1 + .../lnl3d/lnl3d_d3_vulcan_0.2.inst.cfg | 1 + .../lnl3d/lnl3d_d3_vulcan_0.4.inst.cfg | 1 + .../lnl3d/lnl3d_d3_vulcan_0.6.inst.cfg | 1 + .../lnl3d/lnl3d_d3_vulcan_0.8.inst.cfg | 1 + .../variants/lnl3d/lnl3d_d5_0.2.inst.cfg | 1 + .../variants/lnl3d/lnl3d_d5_0.4.inst.cfg | 1 + .../variants/lnl3d/lnl3d_d5_0.6.inst.cfg | 1 + .../variants/lnl3d/lnl3d_d5_0.8.inst.cfg | 1 + .../variants/lnl3d/lnl3d_d6_0.2.inst.cfg | 1 + .../variants/lnl3d/lnl3d_d6_0.4.inst.cfg | 1 + .../variants/lnl3d/lnl3d_d6_0.6.inst.cfg | 1 + .../variants/lnl3d/lnl3d_d6_0.8.inst.cfg | 1 + 50 files changed, 73 insertions(+), 20 deletions(-) diff --git a/resources/definitions/lnl3d_base.def.json b/resources/definitions/lnl3d_base.def.json index c181e80a8e..5ee0638002 100644 --- a/resources/definitions/lnl3d_base.def.json +++ b/resources/definitions/lnl3d_base.def.json @@ -7,7 +7,7 @@ "author": "LNL3D", "manufacturer": "LNL3D", "file_formats": "text/x-gcode", - "first_start_actions": ["MachineSettingsAction"], + "first_start_actions": [ "MachineSettingsAction" ], "has_machine_quality": true, "has_materials": true, "has_variants": true, @@ -51,13 +51,13 @@ "machine_max_acceleration_x": { "value": 500 }, "machine_max_acceleration_y": { "value": 500 }, "machine_max_acceleration_z": { "value": 100 }, - "machine_max_jerk_e": { "value": 5 }, - "machine_max_jerk_xy": { "value": 10 }, - "machine_max_jerk_z": { "value": 0.4 }, "machine_max_feedrate_e": { "value": 80 }, "machine_max_feedrate_x": { "value": 500 }, "machine_max_feedrate_y": { "value": 500 }, "machine_max_feedrate_z": { "value": 10 }, + "machine_max_jerk_e": { "value": 5 }, + "machine_max_jerk_xy": { "value": 10 }, + "machine_max_jerk_z": { "value": 0.4 }, "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\nG92 E0 ;reset extruder\nG1 E15 F1500 ;move extruder 15mm\nG1 Z15.0 F3000 ;move the header up 15mm\nM117 printing... ;LCD message" }, "material_diameter": { "default_value": 1.75 }, "material_final_print_temperature": { "value": "material_print_temperature" }, @@ -70,7 +70,7 @@ "prime_tower_brim_enable": { "default_value": true }, "prime_tower_wipe_enabled": { "default_value": false }, "raft_airgap": { "default_value": 0.2 }, - "raft_margin": {"default_value": 2 }, + "raft_margin": { "default_value": 2 }, "retraction_combing": { "value": "'off' if retraction_hop_enabled else 'noskin'" }, "retraction_count_max": { "value": 100 }, "retraction_extrusion_window": { "value": 4 }, @@ -79,18 +79,18 @@ "retraction_hop_enabled": { "value": "False" }, "retraction_prime_speed": { - "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')", - "maximum_value": 200 + "maximum_value": 200, + "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')" }, "retraction_retract_speed": { - "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')", - "maximum_value": 200 + "maximum_value": 200, + "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')" }, "retraction_speed": { - "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')", - "maximum_value": 200 + "maximum_value": 200, + "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')" }, "skin_overlap": { "value": 25 }, "skirt_line_count": { "value": 2 }, @@ -117,14 +117,14 @@ "support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height*2" }, "switch_extruder_retraction_amount": { "value": 8.0 }, "switch_extruder_retraction_speeds": { "default_value": 60.0 }, - "top_bottom_thickness": { "value": "layer_height_0 + layer_height * 4" }, + "top_bottom_thickness": { "value": "layer_height_0 + layer_height * 4" }, "travel_avoid_other_parts": { "value": false }, "travel_avoid_supports": { "value": true }, "travel_retract_before_outer_wall": { "value": true }, "wall_0_wipe_dist": { "value": 0.0 }, "wall_thickness": { "value": "line_width * 2" }, - "z_seam_type": { "value": "'back'" }, "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, + "z_seam_type": { "value": "'back'" }, "zig_zaggify_infill": { "value": true } } -} +} \ No newline at end of file diff --git a/resources/definitions/lnl3d_d3.def.json b/resources/definitions/lnl3d_d3.def.json index b12e13884b..52e8042306 100755 --- a/resources/definitions/lnl3d_d3.def.json +++ b/resources/definitions/lnl3d_d3.def.json @@ -6,7 +6,11 @@ { "visible": true, "platform": "lnl3d_d3.stl", - "platform_offset": [ 0, 0, 0 ] + "platform_offset": [ + 0, + 0, + 0 + ] }, "overrides": { @@ -17,4 +21,4 @@ "prime_tower_position_x": { "value": "155" }, "prime_tower_position_y": { "value": "155" } } -} +} \ No newline at end of file diff --git a/resources/definitions/lnl3d_d3_vulcan.def.json b/resources/definitions/lnl3d_d3_vulcan.def.json index 4b18ef4fc0..f81cae81c5 100755 --- a/resources/definitions/lnl3d_d3_vulcan.def.json +++ b/resources/definitions/lnl3d_d3_vulcan.def.json @@ -6,7 +6,11 @@ { "visible": true, "platform": "lnl3d_d3.stl", - "platform_offset": [ 0, 0, 0 ] + "platform_offset": [ + 0, + 0, + 0 + ] }, "overrides": { @@ -17,4 +21,4 @@ "prime_tower_position_x": { "value": "155" }, "prime_tower_position_y": { "value": "155" } } -} +} \ No newline at end of file diff --git a/resources/extruders/lnl3d_extruder_left.def.json b/resources/extruders/lnl3d_extruder_left.def.json index 03ed857f0e..7e5d2dfe98 100755 --- a/resources/extruders/lnl3d_extruder_left.def.json +++ b/resources/extruders/lnl3d_extruder_left.def.json @@ -26,4 +26,4 @@ "machine_nozzle_size": { "default_value": 0.4 }, "material_diameter": { "default_value": 1.75 } } -} +} \ No newline at end of file diff --git a/resources/extruders/lnl3d_extruder_right.def.json b/resources/extruders/lnl3d_extruder_right.def.json index 62e9cd230c..6b5e0993de 100755 --- a/resources/extruders/lnl3d_extruder_right.def.json +++ b/resources/extruders/lnl3d_extruder_right.def.json @@ -26,4 +26,4 @@ "machine_nozzle_size": { "default_value": 0.4 }, "material_diameter": { "default_value": 1.75 } } -} +} \ No newline at end of file diff --git a/resources/quality/lnl3d/lnl3d_base_0.2_generic_PETG_super.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.2_generic_PETG_super.inst.cfg index ca7c0e514a..9e1ed6b824 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.2_generic_PETG_super.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.2_generic_PETG_super.inst.cfg @@ -13,3 +13,4 @@ variant = 0.2mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*8 + diff --git a/resources/quality/lnl3d/lnl3d_base_0.2_generic_PETG_ultra.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.2_generic_PETG_ultra.inst.cfg index 4d8f10a604..f2d08c5351 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.2_generic_PETG_ultra.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.2_generic_PETG_ultra.inst.cfg @@ -13,3 +13,4 @@ variant = 0.2mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*8 + diff --git a/resources/quality/lnl3d/lnl3d_base_0.2_generic_PLA_super.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.2_generic_PLA_super.inst.cfg index ae4d279e17..a26d3eeb2e 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.2_generic_PLA_super.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.2_generic_PLA_super.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = 0.2mm Nozzle [values] + diff --git a/resources/quality/lnl3d/lnl3d_base_0.2_generic_PLA_ultra.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.2_generic_PLA_ultra.inst.cfg index 74616e862e..2086268efe 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.2_generic_PLA_ultra.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.2_generic_PLA_ultra.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = 0.2mm Nozzle [values] + diff --git a/resources/quality/lnl3d/lnl3d_base_0.4_generic_PETG_adaptive.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.4_generic_PETG_adaptive.inst.cfg index 4acfd83171..ea0e83055c 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.4_generic_PETG_adaptive.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.4_generic_PETG_adaptive.inst.cfg @@ -13,3 +13,4 @@ variant = 0.4mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/lnl3d/lnl3d_base_0.4_generic_PETG_low.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.4_generic_PETG_low.inst.cfg index bd30b8ed51..20575a94de 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.4_generic_PETG_low.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.4_generic_PETG_low.inst.cfg @@ -13,3 +13,4 @@ variant = 0.4mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/lnl3d/lnl3d_base_0.4_generic_PETG_standard.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.4_generic_PETG_standard.inst.cfg index 669ef07d98..f8af1bef08 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.4_generic_PETG_standard.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.4_generic_PETG_standard.inst.cfg @@ -13,3 +13,4 @@ variant = 0.4mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/lnl3d/lnl3d_base_0.4_generic_PETG_super.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.4_generic_PETG_super.inst.cfg index c70979a5cb..52dfb21b4c 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.4_generic_PETG_super.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.4_generic_PETG_super.inst.cfg @@ -13,3 +13,4 @@ variant = 0.4mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/lnl3d/lnl3d_base_0.4_generic_PLA_adaptive.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.4_generic_PLA_adaptive.inst.cfg index 4712e4c3ff..cf38d49ca7 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.4_generic_PLA_adaptive.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.4_generic_PLA_adaptive.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = 0.4mm Nozzle [values] + diff --git a/resources/quality/lnl3d/lnl3d_base_0.4_generic_PLA_low.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.4_generic_PLA_low.inst.cfg index 0dd25c760d..91318eb388 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.4_generic_PLA_low.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.4_generic_PLA_low.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = 0.4mm Nozzle [values] + diff --git a/resources/quality/lnl3d/lnl3d_base_0.4_generic_PLA_standard.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.4_generic_PLA_standard.inst.cfg index 4a537571d1..6566822054 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.4_generic_PLA_standard.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.4_generic_PLA_standard.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = 0.4mm Nozzle [values] + diff --git a/resources/quality/lnl3d/lnl3d_base_0.4_generic_PLA_super.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.4_generic_PLA_super.inst.cfg index f786275820..52448a3e17 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.4_generic_PLA_super.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.4_generic_PLA_super.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = 0.4mm Nozzle [values] + diff --git a/resources/quality/lnl3d/lnl3d_base_0.4_generic_TPU_adaptive.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.4_generic_TPU_adaptive.inst.cfg index 83603cffdf..ab1fb391e8 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.4_generic_TPU_adaptive.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.4_generic_TPU_adaptive.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = 0.4mm Nozzle [values] + diff --git a/resources/quality/lnl3d/lnl3d_base_0.4_generic_TPU_standard.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.4_generic_TPU_standard.inst.cfg index ab68f0dd73..b1212b7fb7 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.4_generic_TPU_standard.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.4_generic_TPU_standard.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = 0.4mm Nozzle [values] + diff --git a/resources/quality/lnl3d/lnl3d_base_0.4_generic_TPU_super.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.4_generic_TPU_super.inst.cfg index cac46549c1..5e0dd99521 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.4_generic_TPU_super.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.4_generic_TPU_super.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = 0.4mm Nozzle [values] + diff --git a/resources/quality/lnl3d/lnl3d_base_0.6_generic_PETG_standard.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.6_generic_PETG_standard.inst.cfg index f686201f7e..26ca469bf6 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.6_generic_PETG_standard.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.6_generic_PETG_standard.inst.cfg @@ -13,3 +13,4 @@ variant = 0.6mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*3 + diff --git a/resources/quality/lnl3d/lnl3d_base_0.6_generic_PLA_draft.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.6_generic_PLA_draft.inst.cfg index fd1b439885..3ca8badcf8 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.6_generic_PLA_draft.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.6_generic_PLA_draft.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = 0.6mm Nozzle [values] + diff --git a/resources/quality/lnl3d/lnl3d_base_0.6_generic_PLA_low.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.6_generic_PLA_low.inst.cfg index eb5732b8dc..8cd2acf117 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.6_generic_PLA_low.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.6_generic_PLA_low.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = 0.6mm Nozzle [values] + diff --git a/resources/quality/lnl3d/lnl3d_base_0.6_generic_PLA_standard.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.6_generic_PLA_standard.inst.cfg index 63a740e8ec..7297384566 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.6_generic_PLA_standard.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.6_generic_PLA_standard.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = 0.6mm Nozzle [values] + diff --git a/resources/quality/lnl3d/lnl3d_base_0.6_generic_TPU_standard.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.6_generic_TPU_standard.inst.cfg index 92f0fdfee0..9e59bbd349 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.6_generic_TPU_standard.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.6_generic_TPU_standard.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = 0.6mm Nozzle [values] + diff --git a/resources/quality/lnl3d/lnl3d_base_0.8_generic_PETG_draft.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.8_generic_PETG_draft.inst.cfg index 25dce4e37f..d645385468 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.8_generic_PETG_draft.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.8_generic_PETG_draft.inst.cfg @@ -13,3 +13,4 @@ variant = 0.8mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*3 + diff --git a/resources/quality/lnl3d/lnl3d_base_0.8_generic_PLA_draft.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.8_generic_PLA_draft.inst.cfg index 6668b1a129..1620bd79a8 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.8_generic_PLA_draft.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.8_generic_PLA_draft.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = 0.8mm Nozzle [values] + diff --git a/resources/quality/lnl3d/lnl3d_base_0.8_generic_TPU_draft.inst.cfg b/resources/quality/lnl3d/lnl3d_base_0.8_generic_TPU_draft.inst.cfg index 8a6512c09b..d466d9bd94 100644 --- a/resources/quality/lnl3d/lnl3d_base_0.8_generic_TPU_draft.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_0.8_generic_TPU_draft.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = 0.8mm Nozzle [values] + diff --git a/resources/quality/lnl3d/lnl3d_base_global_adaptive.inst.cfg b/resources/quality/lnl3d/lnl3d_base_global_adaptive.inst.cfg index 6e566239bf..569e8c5264 100644 --- a/resources/quality/lnl3d/lnl3d_base_global_adaptive.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_global_adaptive.inst.cfg @@ -17,3 +17,4 @@ layer_height_0 = 0.20 support_interface_height = =layer_height*6 top_bottom_thickness = =layer_height_0+layer_height*4 wall_thickness = =line_width*3 + diff --git a/resources/quality/lnl3d/lnl3d_base_global_draft.inst.cfg b/resources/quality/lnl3d/lnl3d_base_global_draft.inst.cfg index 34356067f2..b0d87d19bb 100644 --- a/resources/quality/lnl3d/lnl3d_base_global_draft.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_global_draft.inst.cfg @@ -16,3 +16,4 @@ layer_height_0 = 0.32 support_interface_height = =layer_height*4 top_bottom_thickness = =layer_height_0+layer_height*3 wall_thickness = =line_width*2 + diff --git a/resources/quality/lnl3d/lnl3d_base_global_low.inst.cfg b/resources/quality/lnl3d/lnl3d_base_global_low.inst.cfg index 000d7729d3..93d2f918ae 100644 --- a/resources/quality/lnl3d/lnl3d_base_global_low.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_global_low.inst.cfg @@ -16,3 +16,4 @@ layer_height_0 = 0.28 support_interface_height = =layer_height*4 top_bottom_thickness = =layer_height_0+layer_height*3 wall_thickness = =line_width*2 + diff --git a/resources/quality/lnl3d/lnl3d_base_global_standard.inst.cfg b/resources/quality/lnl3d/lnl3d_base_global_standard.inst.cfg index f96004b8d1..796a7ce1d0 100644 --- a/resources/quality/lnl3d/lnl3d_base_global_standard.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_global_standard.inst.cfg @@ -16,3 +16,4 @@ layer_height_0 = 0.2 support_interface_height = =layer_height*4 top_bottom_thickness = =layer_height_0+layer_height*3 wall_thickness = =line_width*2 + diff --git a/resources/quality/lnl3d/lnl3d_base_global_super.inst.cfg b/resources/quality/lnl3d/lnl3d_base_global_super.inst.cfg index f42fb2c6ac..f9cdb2dbf9 100644 --- a/resources/quality/lnl3d/lnl3d_base_global_super.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_global_super.inst.cfg @@ -16,3 +16,4 @@ layer_height_0 = 0.12 support_interface_height = =layer_height*8 top_bottom_thickness = =layer_height_0+layer_height*6 wall_thickness = =line_width*3 + diff --git a/resources/quality/lnl3d/lnl3d_base_global_ultra.inst.cfg b/resources/quality/lnl3d/lnl3d_base_global_ultra.inst.cfg index 2e97b1b620..a4dd6be3da 100644 --- a/resources/quality/lnl3d/lnl3d_base_global_ultra.inst.cfg +++ b/resources/quality/lnl3d/lnl3d_base_global_ultra.inst.cfg @@ -16,3 +16,4 @@ layer_height_0 = 0.12 support_interface_height = =layer_height*12 top_bottom_thickness = =layer_height_0+layer_height*10 wall_thickness = =line_width*3 + diff --git a/resources/variants/lnl3d/lnl3d_d3_0.2.inst.cfg b/resources/variants/lnl3d/lnl3d_d3_0.2.inst.cfg index 63a61e894f..7ae77ff476 100644 --- a/resources/variants/lnl3d/lnl3d_d3_0.2.inst.cfg +++ b/resources/variants/lnl3d/lnl3d_d3_0.2.inst.cfg @@ -10,3 +10,4 @@ type = variant [values] machine_nozzle_size = 0.2 + diff --git a/resources/variants/lnl3d/lnl3d_d3_0.4.inst.cfg b/resources/variants/lnl3d/lnl3d_d3_0.4.inst.cfg index 678e48f3b3..e8e0d15f7e 100644 --- a/resources/variants/lnl3d/lnl3d_d3_0.4.inst.cfg +++ b/resources/variants/lnl3d/lnl3d_d3_0.4.inst.cfg @@ -10,3 +10,4 @@ type = variant [values] machine_nozzle_size = 0.4 + diff --git a/resources/variants/lnl3d/lnl3d_d3_0.6.inst.cfg b/resources/variants/lnl3d/lnl3d_d3_0.6.inst.cfg index 7aeb9ef765..fa978ca8c8 100644 --- a/resources/variants/lnl3d/lnl3d_d3_0.6.inst.cfg +++ b/resources/variants/lnl3d/lnl3d_d3_0.6.inst.cfg @@ -10,3 +10,4 @@ type = variant [values] machine_nozzle_size = 0.6 + diff --git a/resources/variants/lnl3d/lnl3d_d3_0.8.inst.cfg b/resources/variants/lnl3d/lnl3d_d3_0.8.inst.cfg index 5052e08c25..05e72fe6a3 100644 --- a/resources/variants/lnl3d/lnl3d_d3_0.8.inst.cfg +++ b/resources/variants/lnl3d/lnl3d_d3_0.8.inst.cfg @@ -10,3 +10,4 @@ type = variant [values] machine_nozzle_size = 0.8 + diff --git a/resources/variants/lnl3d/lnl3d_d3_vulcan_0.2.inst.cfg b/resources/variants/lnl3d/lnl3d_d3_vulcan_0.2.inst.cfg index ac652dbedd..fee93aaef2 100644 --- a/resources/variants/lnl3d/lnl3d_d3_vulcan_0.2.inst.cfg +++ b/resources/variants/lnl3d/lnl3d_d3_vulcan_0.2.inst.cfg @@ -10,3 +10,4 @@ type = variant [values] machine_nozzle_size = 0.2 + diff --git a/resources/variants/lnl3d/lnl3d_d3_vulcan_0.4.inst.cfg b/resources/variants/lnl3d/lnl3d_d3_vulcan_0.4.inst.cfg index 3a7c5d26eb..a76a5aeb76 100644 --- a/resources/variants/lnl3d/lnl3d_d3_vulcan_0.4.inst.cfg +++ b/resources/variants/lnl3d/lnl3d_d3_vulcan_0.4.inst.cfg @@ -10,3 +10,4 @@ type = variant [values] machine_nozzle_size = 0.4 + diff --git a/resources/variants/lnl3d/lnl3d_d3_vulcan_0.6.inst.cfg b/resources/variants/lnl3d/lnl3d_d3_vulcan_0.6.inst.cfg index ab0e6a9e4d..71884bf1c9 100644 --- a/resources/variants/lnl3d/lnl3d_d3_vulcan_0.6.inst.cfg +++ b/resources/variants/lnl3d/lnl3d_d3_vulcan_0.6.inst.cfg @@ -10,3 +10,4 @@ type = variant [values] machine_nozzle_size = 0.6 + diff --git a/resources/variants/lnl3d/lnl3d_d3_vulcan_0.8.inst.cfg b/resources/variants/lnl3d/lnl3d_d3_vulcan_0.8.inst.cfg index 5a7e625a5e..0a1269d21e 100644 --- a/resources/variants/lnl3d/lnl3d_d3_vulcan_0.8.inst.cfg +++ b/resources/variants/lnl3d/lnl3d_d3_vulcan_0.8.inst.cfg @@ -10,3 +10,4 @@ type = variant [values] machine_nozzle_size = 0.8 + diff --git a/resources/variants/lnl3d/lnl3d_d5_0.2.inst.cfg b/resources/variants/lnl3d/lnl3d_d5_0.2.inst.cfg index b5410bc804..62dfd0b0d9 100644 --- a/resources/variants/lnl3d/lnl3d_d5_0.2.inst.cfg +++ b/resources/variants/lnl3d/lnl3d_d5_0.2.inst.cfg @@ -10,3 +10,4 @@ type = variant [values] machine_nozzle_size = 0.2 + diff --git a/resources/variants/lnl3d/lnl3d_d5_0.4.inst.cfg b/resources/variants/lnl3d/lnl3d_d5_0.4.inst.cfg index 4bbdd3af0f..088b18ed45 100644 --- a/resources/variants/lnl3d/lnl3d_d5_0.4.inst.cfg +++ b/resources/variants/lnl3d/lnl3d_d5_0.4.inst.cfg @@ -10,3 +10,4 @@ type = variant [values] machine_nozzle_size = 0.4 + diff --git a/resources/variants/lnl3d/lnl3d_d5_0.6.inst.cfg b/resources/variants/lnl3d/lnl3d_d5_0.6.inst.cfg index 985b141ee5..f4ecae1dad 100644 --- a/resources/variants/lnl3d/lnl3d_d5_0.6.inst.cfg +++ b/resources/variants/lnl3d/lnl3d_d5_0.6.inst.cfg @@ -10,3 +10,4 @@ type = variant [values] machine_nozzle_size = 0.6 + diff --git a/resources/variants/lnl3d/lnl3d_d5_0.8.inst.cfg b/resources/variants/lnl3d/lnl3d_d5_0.8.inst.cfg index 3951b27e5b..da10b5fa7e 100644 --- a/resources/variants/lnl3d/lnl3d_d5_0.8.inst.cfg +++ b/resources/variants/lnl3d/lnl3d_d5_0.8.inst.cfg @@ -10,3 +10,4 @@ type = variant [values] machine_nozzle_size = 0.8 + diff --git a/resources/variants/lnl3d/lnl3d_d6_0.2.inst.cfg b/resources/variants/lnl3d/lnl3d_d6_0.2.inst.cfg index 522868ce90..886a6bba65 100644 --- a/resources/variants/lnl3d/lnl3d_d6_0.2.inst.cfg +++ b/resources/variants/lnl3d/lnl3d_d6_0.2.inst.cfg @@ -10,3 +10,4 @@ type = variant [values] machine_nozzle_size = 0.2 + diff --git a/resources/variants/lnl3d/lnl3d_d6_0.4.inst.cfg b/resources/variants/lnl3d/lnl3d_d6_0.4.inst.cfg index 9414cd20be..f7a984cb72 100644 --- a/resources/variants/lnl3d/lnl3d_d6_0.4.inst.cfg +++ b/resources/variants/lnl3d/lnl3d_d6_0.4.inst.cfg @@ -10,3 +10,4 @@ type = variant [values] machine_nozzle_size = 0.4 + diff --git a/resources/variants/lnl3d/lnl3d_d6_0.6.inst.cfg b/resources/variants/lnl3d/lnl3d_d6_0.6.inst.cfg index 204bf57c3d..5c77bc2d3c 100644 --- a/resources/variants/lnl3d/lnl3d_d6_0.6.inst.cfg +++ b/resources/variants/lnl3d/lnl3d_d6_0.6.inst.cfg @@ -10,3 +10,4 @@ type = variant [values] machine_nozzle_size = 0.6 + diff --git a/resources/variants/lnl3d/lnl3d_d6_0.8.inst.cfg b/resources/variants/lnl3d/lnl3d_d6_0.8.inst.cfg index 0fcca7db18..f42592214e 100644 --- a/resources/variants/lnl3d/lnl3d_d6_0.8.inst.cfg +++ b/resources/variants/lnl3d/lnl3d_d6_0.8.inst.cfg @@ -10,3 +10,4 @@ type = variant [values] machine_nozzle_size = 0.8 + From b3087d1e6f425f6ade22048e490d36f949b98afb Mon Sep 17 00:00:00 2001 From: Jeremie Date: Fri, 26 May 2023 14:03:45 +0200 Subject: [PATCH 003/269] Definitions for FlashForge Adventure 3 & 4 family --- .../flashforge_adventurer3.def.json | 15 ++++++++ .../flashforge_adventurer3c.def.json | 24 +++++++++++++ .../flashforge_adventurer4.def.json | 25 ++++++++++++++ .../flashforge_adventurer4lite.def.json | 14 ++++++++ .../flashforge_adventurer_base.def.json | 34 +++++++++++++++++++ .../flashforge_adventurer_extruder_0.def.json | 16 +++++++++ .../flashforge_adventurer3_0.3.inst.cfg | 12 +++++++ .../flashforge_adventurer3_0.4.inst.cfg | 12 +++++++ .../flashforge_adventurer3_0.6.inst.cfg | 12 +++++++ .../flashforge_adventurer3c_0.3.inst.cfg | 12 +++++++ .../flashforge_adventurer3c_0.4.inst.cfg | 12 +++++++ .../flashforge_adventurer3c_0.6.inst.cfg | 12 +++++++ .../flashforge_adventurer4_0.3.inst.cfg | 12 +++++++ .../flashforge_adventurer4_0.4.inst.cfg | 12 +++++++ .../flashforge_adventurer4_0.6.inst.cfg | 12 +++++++ .../flashforge_adventurer4lite_0.3.inst.cfg | 12 +++++++ .../flashforge_adventurer4lite_0.4.inst.cfg | 12 +++++++ .../flashforge_adventurer4lite_0.6.inst.cfg | 12 +++++++ 18 files changed, 272 insertions(+) create mode 100644 resources/definitions/flashforge_adventurer3.def.json create mode 100644 resources/definitions/flashforge_adventurer3c.def.json create mode 100644 resources/definitions/flashforge_adventurer4.def.json create mode 100644 resources/definitions/flashforge_adventurer4lite.def.json create mode 100644 resources/definitions/flashforge_adventurer_base.def.json create mode 100644 resources/extruders/flashforge_adventurer_extruder_0.def.json create mode 100644 resources/variants/flashforge/flashforge_adventurer3_0.3.inst.cfg create mode 100644 resources/variants/flashforge/flashforge_adventurer3_0.4.inst.cfg create mode 100644 resources/variants/flashforge/flashforge_adventurer3_0.6.inst.cfg create mode 100644 resources/variants/flashforge/flashforge_adventurer3c_0.3.inst.cfg create mode 100644 resources/variants/flashforge/flashforge_adventurer3c_0.4.inst.cfg create mode 100644 resources/variants/flashforge/flashforge_adventurer3c_0.6.inst.cfg create mode 100644 resources/variants/flashforge/flashforge_adventurer4_0.3.inst.cfg create mode 100644 resources/variants/flashforge/flashforge_adventurer4_0.4.inst.cfg create mode 100644 resources/variants/flashforge/flashforge_adventurer4_0.6.inst.cfg create mode 100644 resources/variants/flashforge/flashforge_adventurer4lite_0.3.inst.cfg create mode 100644 resources/variants/flashforge/flashforge_adventurer4lite_0.4.inst.cfg create mode 100644 resources/variants/flashforge/flashforge_adventurer4lite_0.6.inst.cfg diff --git a/resources/definitions/flashforge_adventurer3.def.json b/resources/definitions/flashforge_adventurer3.def.json new file mode 100644 index 0000000000..5787958401 --- /dev/null +++ b/resources/definitions/flashforge_adventurer3.def.json @@ -0,0 +1,15 @@ +{ + "version": 2, + "name": "Adventurer 3", + "inherits": "flashforge_adventurer3c", + "metadata": + { + "author": "Jeremie-C", + "visible": true, + "supports_network_connection": true + }, + "overrides": + { + "machine_name": {"default_value": "Adventurer 3"} + } +} \ No newline at end of file diff --git a/resources/definitions/flashforge_adventurer3c.def.json b/resources/definitions/flashforge_adventurer3c.def.json new file mode 100644 index 0000000000..9321c2ca40 --- /dev/null +++ b/resources/definitions/flashforge_adventurer3c.def.json @@ -0,0 +1,24 @@ +{ + "version": 2, + "name": "Adventurer 3C", + "inherits": "flashforge_adventurer_base", + "metadata": { + "author": "Jeremie-C", + "visible": true, + "quality_definition": "flashforge_adventurer3" + }, + "overrides": + { + "default_material_bed_temperature": {"maximum_value_warning": "100"}, + "gantry_height": {"value": "150"}, + "machine_center_is_zero": {"default_value": true}, + "machine_depth": {"default_value": 150}, + "machine_end_gcode": {"default_value": ";end gcode\nM104 S0 T0\nM140 S0 T0\nG162 Z F1800\nG28 X Y\nM132 X Y A B\nM652\nG91\nM18"}, + "machine_head_with_fans_polygon": {"default_value": [[-20, 10], [-20, -10], [10, 10], [10, -10]]}, + "machine_height": {"default_value": 150}, + "machine_name": {"default_value": "Adventurer 3C"}, + "machine_start_gcode": {"default_value": ";Start Gcode\nG28\nM132 X Y Z A B\nG1 Z50.000 F420\nG161 X Y F3300\nM7 T0\nM6 T0\nM651 S255\n;End Start"}, + "machine_width": {"default_value": 150}, + "speed_print": {"maximum_value_warning": 100} + } +} \ No newline at end of file diff --git a/resources/definitions/flashforge_adventurer4.def.json b/resources/definitions/flashforge_adventurer4.def.json new file mode 100644 index 0000000000..d3b29c4f4a --- /dev/null +++ b/resources/definitions/flashforge_adventurer4.def.json @@ -0,0 +1,25 @@ +{ + "version": 2, + "name": "Adventurer 4", + "inherits": "flashforge_adventurer_base", + "metadata": + { + "author": "Jeremie-C", + "visible": true, + "quality_definition": "flashforge_adventurer4", + "supports_network_connection": true + }, + "overrides": + { + "default_material_bed_temperature": {"maximum_value_warning": "110"}, + "gantry_height": {"value": "250"}, + "machine_depth": {"default_value": 200}, + "machine_end_gcode": {"default_value": ";End Gcode\nM104 S0 T0\nM140 S0 T0\nG162 Z F1800\nG28 X Y\nM132 X Y A B\nM652\nG91\nM18"}, + "machine_head_with_fans_polygon": {"default_value": [[-20, 10], [-20, -10], [10, 10], [10, -10]]}, + "machine_height": {"default_value": 250}, + "machine_name": {"default_value": "Adventurer 4"}, + "machine_start_gcode": {"default_value": ";Start Gcode\nG28\nM132 X Y Z A B\nG1 Z50.000 F420\nG161 X Y F3300\nM7 T0\nM6 T0\nM651 S255\n;End Start"}, + "machine_use_extruder_offset_to_offset_coords": {"default_value": false}, + "machine_width": {"default_value": 220} + } +} \ No newline at end of file diff --git a/resources/definitions/flashforge_adventurer4lite.def.json b/resources/definitions/flashforge_adventurer4lite.def.json new file mode 100644 index 0000000000..05534793d8 --- /dev/null +++ b/resources/definitions/flashforge_adventurer4lite.def.json @@ -0,0 +1,14 @@ +{ + "version": 2, + "name": "Adventurer 4 Lite", + "inherits": "flashforge_adventurer4", + "metadata": + { + "author": "Jeremie-C", + "visible": true + }, + "overrides": + { + "machine_name": { "default_value": "Adventurer 4 Lite" } + } +} \ No newline at end of file diff --git a/resources/definitions/flashforge_adventurer_base.def.json b/resources/definitions/flashforge_adventurer_base.def.json new file mode 100644 index 0000000000..7a31d6400f --- /dev/null +++ b/resources/definitions/flashforge_adventurer_base.def.json @@ -0,0 +1,34 @@ +{ + "version": 2, + "name": "Flashforge Adventurer Base", + "inherits": "fdmprinter", + "metadata": + { + "author": "Jeremie-C", + "manufacturer": "Flashforge", + "visible": false, + "file_formats": "application/gx;text/x-gcode", + "first_start_actions": ["MachineSettingsAction"], + "has_machine_quality": true, + "has_materials": true, + "has_variants": true, + "machine_extruder_trains": {"0": "flashforge_adventurer_extruder_0"}, + "preferred_material": "generic_pla", + "preferred_quality_type": "normal", + "preferred_variant_name": "0.4mm Nozzle", + "variants_name": "Nozzle Size" + }, + "overrides": + { + "adhesion_type": {"default_value": "skirt"}, + "default_material_print_temperature": {"maximum_value_warning": "265"}, + "layer_height": + { + "minimum_value_warning": "0.1", + "maximum_value_warning": "0.4" + }, + "machine_center_is_zero": {"default_value": true}, + "machine_gcode_flavor": {"default_value": "RepRap (Marlin/Sprinter)"}, + "machine_heated_bed": {"default_value": true} + } +} \ No newline at end of file diff --git a/resources/extruders/flashforge_adventurer_extruder_0.def.json b/resources/extruders/flashforge_adventurer_extruder_0.def.json new file mode 100644 index 0000000000..d8b902a97b --- /dev/null +++ b/resources/extruders/flashforge_adventurer_extruder_0.def.json @@ -0,0 +1,16 @@ +{ + "version": 2, + "name": "Extruder", + "inherits": "fdmextruder", + "metadata": + { + "machine": "flashforge_adventurer_base", + "position": "0" + }, + "overrides": + { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + } +} \ No newline at end of file diff --git a/resources/variants/flashforge/flashforge_adventurer3_0.3.inst.cfg b/resources/variants/flashforge/flashforge_adventurer3_0.3.inst.cfg new file mode 100644 index 0000000000..98319a87a7 --- /dev/null +++ b/resources/variants/flashforge/flashforge_adventurer3_0.3.inst.cfg @@ -0,0 +1,12 @@ +[general] +definition = flashforge_adventurer3 +name = 0.3mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 21 +type = variant + +[values] +machine_nozzle_size = 0.3 diff --git a/resources/variants/flashforge/flashforge_adventurer3_0.4.inst.cfg b/resources/variants/flashforge/flashforge_adventurer3_0.4.inst.cfg new file mode 100644 index 0000000000..3357045ab6 --- /dev/null +++ b/resources/variants/flashforge/flashforge_adventurer3_0.4.inst.cfg @@ -0,0 +1,12 @@ +[general] +definition = flashforge_adventurer3 +name = 0.4mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 21 +type = variant + +[values] +machine_nozzle_size = 0.4 diff --git a/resources/variants/flashforge/flashforge_adventurer3_0.6.inst.cfg b/resources/variants/flashforge/flashforge_adventurer3_0.6.inst.cfg new file mode 100644 index 0000000000..aaf69b516d --- /dev/null +++ b/resources/variants/flashforge/flashforge_adventurer3_0.6.inst.cfg @@ -0,0 +1,12 @@ +[general] +definition = flashforge_adventurer3 +name = 0.6mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 21 +type = variant + +[values] +machine_nozzle_size = 0.6 diff --git a/resources/variants/flashforge/flashforge_adventurer3c_0.3.inst.cfg b/resources/variants/flashforge/flashforge_adventurer3c_0.3.inst.cfg new file mode 100644 index 0000000000..56f983be94 --- /dev/null +++ b/resources/variants/flashforge/flashforge_adventurer3c_0.3.inst.cfg @@ -0,0 +1,12 @@ +[general] +definition = flashforge_adventurer3c +name = 0.3mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 21 +type = variant + +[values] +machine_nozzle_size = 0.3 diff --git a/resources/variants/flashforge/flashforge_adventurer3c_0.4.inst.cfg b/resources/variants/flashforge/flashforge_adventurer3c_0.4.inst.cfg new file mode 100644 index 0000000000..c45a46dbc6 --- /dev/null +++ b/resources/variants/flashforge/flashforge_adventurer3c_0.4.inst.cfg @@ -0,0 +1,12 @@ +[general] +definition = flashforge_adventurer3c +name = 0.4mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 21 +type = variant + +[values] +machine_nozzle_size = 0.4 diff --git a/resources/variants/flashforge/flashforge_adventurer3c_0.6.inst.cfg b/resources/variants/flashforge/flashforge_adventurer3c_0.6.inst.cfg new file mode 100644 index 0000000000..15bfd3f8be --- /dev/null +++ b/resources/variants/flashforge/flashforge_adventurer3c_0.6.inst.cfg @@ -0,0 +1,12 @@ +[general] +definition = flashforge_adventurer3c +name = 0.6mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 21 +type = variant + +[values] +machine_nozzle_size = 0.6 diff --git a/resources/variants/flashforge/flashforge_adventurer4_0.3.inst.cfg b/resources/variants/flashforge/flashforge_adventurer4_0.3.inst.cfg new file mode 100644 index 0000000000..57a9dab4b1 --- /dev/null +++ b/resources/variants/flashforge/flashforge_adventurer4_0.3.inst.cfg @@ -0,0 +1,12 @@ +[general] +definition = flashforge_adventurer4 +name = 0.3mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 21 +type = variant + +[values] +machine_nozzle_size = 0.3 diff --git a/resources/variants/flashforge/flashforge_adventurer4_0.4.inst.cfg b/resources/variants/flashforge/flashforge_adventurer4_0.4.inst.cfg new file mode 100644 index 0000000000..b451d4e681 --- /dev/null +++ b/resources/variants/flashforge/flashforge_adventurer4_0.4.inst.cfg @@ -0,0 +1,12 @@ +[general] +definition = flashforge_adventurer4 +name = 0.4mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 21 +type = variant + +[values] +machine_nozzle_size = 0.4 diff --git a/resources/variants/flashforge/flashforge_adventurer4_0.6.inst.cfg b/resources/variants/flashforge/flashforge_adventurer4_0.6.inst.cfg new file mode 100644 index 0000000000..2f9568d49c --- /dev/null +++ b/resources/variants/flashforge/flashforge_adventurer4_0.6.inst.cfg @@ -0,0 +1,12 @@ +[general] +definition = flashforge_adventurer4 +name = 0.6mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 21 +type = variant + +[values] +machine_nozzle_size = 0.6 diff --git a/resources/variants/flashforge/flashforge_adventurer4lite_0.3.inst.cfg b/resources/variants/flashforge/flashforge_adventurer4lite_0.3.inst.cfg new file mode 100644 index 0000000000..bc12e7191d --- /dev/null +++ b/resources/variants/flashforge/flashforge_adventurer4lite_0.3.inst.cfg @@ -0,0 +1,12 @@ +[general] +definition = flashforge_adventurer4lite +name = 0.3mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 21 +type = variant + +[values] +machine_nozzle_size = 0.3 diff --git a/resources/variants/flashforge/flashforge_adventurer4lite_0.4.inst.cfg b/resources/variants/flashforge/flashforge_adventurer4lite_0.4.inst.cfg new file mode 100644 index 0000000000..2fc42fbb12 --- /dev/null +++ b/resources/variants/flashforge/flashforge_adventurer4lite_0.4.inst.cfg @@ -0,0 +1,12 @@ +[general] +definition = flashforge_adventurer4lite +name = 0.4mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 21 +type = variant + +[values] +machine_nozzle_size = 0.4 diff --git a/resources/variants/flashforge/flashforge_adventurer4lite_0.6.inst.cfg b/resources/variants/flashforge/flashforge_adventurer4lite_0.6.inst.cfg new file mode 100644 index 0000000000..8da55dd9d1 --- /dev/null +++ b/resources/variants/flashforge/flashforge_adventurer4lite_0.6.inst.cfg @@ -0,0 +1,12 @@ +[general] +definition = flashforge_adventurer4lite +name = 0.6mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 21 +type = variant + +[values] +machine_nozzle_size = 0.6 From 80ab3d22bbba7eea2fc63e1396e90063cb768e5c Mon Sep 17 00:00:00 2001 From: Jeremie Date: Fri, 26 May 2023 14:06:19 +0200 Subject: [PATCH 004/269] Quality for FlashForge Adventure 3 & 4 family --- ...ashforge_adventurer3_abs_0.3_fine.inst.cfg | 16 +++++++++++++++ ...shforge_adventurer3_abs_0.3_vfine.inst.cfg | 16 +++++++++++++++ ...shforge_adventurer3_abs_0.4_draft.inst.cfg | 16 +++++++++++++++ ...ashforge_adventurer3_abs_0.4_fast.inst.cfg | 16 +++++++++++++++ ...ashforge_adventurer3_abs_0.4_fine.inst.cfg | 16 +++++++++++++++ ...hforge_adventurer3_abs_0.4_normal.inst.cfg | 16 +++++++++++++++ ...shforge_adventurer3_abs_0.4_vfast.inst.cfg | 16 +++++++++++++++ ...shforge_adventurer3_abs_0.4_vfine.inst.cfg | 16 +++++++++++++++ ...shforge_adventurer3_abs_0.6_draft.inst.cfg | 16 +++++++++++++++ ...ashforge_adventurer3_abs_0.6_fast.inst.cfg | 16 +++++++++++++++ ...shforge_adventurer3_abs_0.6_vfast.inst.cfg | 16 +++++++++++++++ ...ashforge_adventurer4_abs_0.3_fine.inst.cfg | 18 +++++++++++++++++ ...shforge_adventurer4_abs_0.3_vfine.inst.cfg | 18 +++++++++++++++++ ...shforge_adventurer4_abs_0.4_draft.inst.cfg | 18 +++++++++++++++++ ...ashforge_adventurer4_abs_0.4_fast.inst.cfg | 18 +++++++++++++++++ ...ashforge_adventurer4_abs_0.4_fine.inst.cfg | 18 +++++++++++++++++ ...hforge_adventurer4_abs_0.4_normal.inst.cfg | 18 +++++++++++++++++ ...shforge_adventurer4_abs_0.4_vfast.inst.cfg | 18 +++++++++++++++++ ...shforge_adventurer4_abs_0.4_vfine.inst.cfg | 18 +++++++++++++++++ ...shforge_adventurer4_abs_0.6_draft.inst.cfg | 18 +++++++++++++++++ ...ashforge_adventurer4_abs_0.6_fast.inst.cfg | 18 +++++++++++++++++ ...shforge_adventurer4_abs_0.6_vfast.inst.cfg | 18 +++++++++++++++++ ...ashforge_adventurer4_asa_0.4_fast.inst.cfg | 18 +++++++++++++++++ ...ashforge_adventurer4_asa_0.4_fine.inst.cfg | 18 +++++++++++++++++ ...hforge_adventurer4_asa_0.4_normal.inst.cfg | 18 +++++++++++++++++ .../flashforge_adventurer3_draft.inst.cfg | 20 +++++++++++++++++++ .../flashforge_adventurer3_fast.inst.cfg | 20 +++++++++++++++++++ .../flashforge_adventurer3_fine.inst.cfg | 20 +++++++++++++++++++ .../flashforge_adventurer3_normal.inst.cfg | 20 +++++++++++++++++++ .../flashforge_adventurer3_vfast.inst.cfg | 20 +++++++++++++++++++ .../flashforge_adventurer3_vfine.inst.cfg | 20 +++++++++++++++++++ .../flashforge_adventurer4_draft.inst.cfg | 18 +++++++++++++++++ .../flashforge_adventurer4_fast.inst.cfg | 18 +++++++++++++++++ .../flashforge_adventurer4_fine.inst.cfg | 18 +++++++++++++++++ .../flashforge_adventurer4_normal.inst.cfg | 18 +++++++++++++++++ .../flashforge_adventurer4_vfast.inst.cfg | 18 +++++++++++++++++ .../flashforge_adventurer4_vfine.inst.cfg | 18 +++++++++++++++++ ...ashforge_adventurer3_pc_0.4_draft.inst.cfg | 16 +++++++++++++++ ...lashforge_adventurer3_pc_0.4_fast.inst.cfg | 16 +++++++++++++++ ...shforge_adventurer3_pc_0.4_normal.inst.cfg | 16 +++++++++++++++ ...ashforge_adventurer3_pc_0.4_vfast.inst.cfg | 16 +++++++++++++++ ...ashforge_adventurer3_pc_0.6_draft.inst.cfg | 16 +++++++++++++++ ...lashforge_adventurer3_pc_0.6_fast.inst.cfg | 16 +++++++++++++++ ...ashforge_adventurer3_pc_0.6_vfast.inst.cfg | 16 +++++++++++++++ ...ashforge_adventurer4_pc_0.4_draft.inst.cfg | 18 +++++++++++++++++ ...lashforge_adventurer4_pc_0.4_fast.inst.cfg | 18 +++++++++++++++++ ...shforge_adventurer4_pc_0.4_normal.inst.cfg | 18 +++++++++++++++++ ...ashforge_adventurer4_pc_0.4_vfast.inst.cfg | 18 +++++++++++++++++ ...ashforge_adventurer4_pc_0.6_draft.inst.cfg | 18 +++++++++++++++++ ...lashforge_adventurer4_pc_0.6_fast.inst.cfg | 18 +++++++++++++++++ ...ashforge_adventurer4_pc_0.6_vfast.inst.cfg | 18 +++++++++++++++++ ...shforge_adventurer3_petg_0.3_fine.inst.cfg | 16 +++++++++++++++ ...hforge_adventurer3_petg_0.3_vfine.inst.cfg | 16 +++++++++++++++ ...hforge_adventurer3_petg_0.4_draft.inst.cfg | 16 +++++++++++++++ ...shforge_adventurer3_petg_0.4_fast.inst.cfg | 16 +++++++++++++++ ...shforge_adventurer3_petg_0.4_fine.inst.cfg | 16 +++++++++++++++ ...forge_adventurer3_petg_0.4_normal.inst.cfg | 16 +++++++++++++++ ...hforge_adventurer3_petg_0.4_vfast.inst.cfg | 16 +++++++++++++++ ...hforge_adventurer3_petg_0.4_vfine.inst.cfg | 16 +++++++++++++++ ...hforge_adventurer3_petg_0.6_draft.inst.cfg | 16 +++++++++++++++ ...shforge_adventurer3_petg_0.6_fast.inst.cfg | 16 +++++++++++++++ ...hforge_adventurer3_petg_0.6_vfast.inst.cfg | 16 +++++++++++++++ ...shforge_adventurer4_petg_0.3_fine.inst.cfg | 18 +++++++++++++++++ ...hforge_adventurer4_petg_0.3_vfine.inst.cfg | 18 +++++++++++++++++ ...hforge_adventurer4_petg_0.4_draft.inst.cfg | 18 +++++++++++++++++ ...shforge_adventurer4_petg_0.4_fast.inst.cfg | 18 +++++++++++++++++ ...shforge_adventurer4_petg_0.4_fine.inst.cfg | 18 +++++++++++++++++ ...forge_adventurer4_petg_0.4_normal.inst.cfg | 18 +++++++++++++++++ ...hforge_adventurer4_petg_0.4_vfast.inst.cfg | 18 +++++++++++++++++ ...hforge_adventurer4_petg_0.4_vfine.inst.cfg | 18 +++++++++++++++++ ...hforge_adventurer4_petg_0.6_draft.inst.cfg | 18 +++++++++++++++++ ...shforge_adventurer4_petg_0.6_fast.inst.cfg | 18 +++++++++++++++++ ...hforge_adventurer4_petg_0.6_vfast.inst.cfg | 18 +++++++++++++++++ ...ashforge_adventurer3_pla_0.3_fine.inst.cfg | 16 +++++++++++++++ ...shforge_adventurer3_pla_0.3_vfine.inst.cfg | 16 +++++++++++++++ ...shforge_adventurer3_pla_0.4_draft.inst.cfg | 16 +++++++++++++++ ...ashforge_adventurer3_pla_0.4_fast.inst.cfg | 16 +++++++++++++++ ...ashforge_adventurer3_pla_0.4_fine.inst.cfg | 16 +++++++++++++++ ...hforge_adventurer3_pla_0.4_normal.inst.cfg | 16 +++++++++++++++ ...shforge_adventurer3_pla_0.4_vfast.inst.cfg | 16 +++++++++++++++ ...shforge_adventurer3_pla_0.4_vfine.inst.cfg | 16 +++++++++++++++ ...shforge_adventurer3_pla_0.6_draft.inst.cfg | 16 +++++++++++++++ ...ashforge_adventurer3_pla_0.6_fast.inst.cfg | 16 +++++++++++++++ ...shforge_adventurer3_pla_0.6_vfast.inst.cfg | 16 +++++++++++++++ ...ashforge_adventurer4_pla_0.3_fine.inst.cfg | 18 +++++++++++++++++ ...shforge_adventurer4_pla_0.3_vfine.inst.cfg | 18 +++++++++++++++++ ...shforge_adventurer4_pla_0.4_draft.inst.cfg | 18 +++++++++++++++++ ...ashforge_adventurer4_pla_0.4_fast.inst.cfg | 18 +++++++++++++++++ ...ashforge_adventurer4_pla_0.4_fine.inst.cfg | 18 +++++++++++++++++ ...hforge_adventurer4_pla_0.4_normal.inst.cfg | 18 +++++++++++++++++ ...shforge_adventurer4_pla_0.4_vfast.inst.cfg | 18 +++++++++++++++++ ...shforge_adventurer4_pla_0.4_vfine.inst.cfg | 18 +++++++++++++++++ ...shforge_adventurer4_pla_0.6_draft.inst.cfg | 18 +++++++++++++++++ ...ashforge_adventurer4_pla_0.6_fast.inst.cfg | 18 +++++++++++++++++ ...shforge_adventurer4_pla_0.6_vfast.inst.cfg | 18 +++++++++++++++++ 95 files changed, 1642 insertions(+) create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_fine.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_vfine.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_draft.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fast.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fine.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_normal.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfast.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfine.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_draft.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_fast.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_vfast.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_fine.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_vfine.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_draft.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fast.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fine.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_normal.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfast.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfine.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_draft.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_fast.inst.cfg create mode 100644 resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_vfast.inst.cfg create mode 100644 resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fast.inst.cfg create mode 100644 resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fine.inst.cfg create mode 100644 resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_normal.inst.cfg create mode 100644 resources/quality/flashforge/flashforge_adventurer3_draft.inst.cfg create mode 100644 resources/quality/flashforge/flashforge_adventurer3_fast.inst.cfg create mode 100644 resources/quality/flashforge/flashforge_adventurer3_fine.inst.cfg create mode 100644 resources/quality/flashforge/flashforge_adventurer3_normal.inst.cfg create mode 100644 resources/quality/flashforge/flashforge_adventurer3_vfast.inst.cfg create mode 100644 resources/quality/flashforge/flashforge_adventurer3_vfine.inst.cfg create mode 100644 resources/quality/flashforge/flashforge_adventurer4_draft.inst.cfg create mode 100644 resources/quality/flashforge/flashforge_adventurer4_fast.inst.cfg create mode 100644 resources/quality/flashforge/flashforge_adventurer4_fine.inst.cfg create mode 100644 resources/quality/flashforge/flashforge_adventurer4_normal.inst.cfg create mode 100644 resources/quality/flashforge/flashforge_adventurer4_vfast.inst.cfg create mode 100644 resources/quality/flashforge/flashforge_adventurer4_vfine.inst.cfg create mode 100644 resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_draft.inst.cfg create mode 100644 resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_fast.inst.cfg create mode 100644 resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_normal.inst.cfg create mode 100644 resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_vfast.inst.cfg create mode 100644 resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_draft.inst.cfg create mode 100644 resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_fast.inst.cfg create mode 100644 resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_vfast.inst.cfg create mode 100644 resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_draft.inst.cfg create mode 100644 resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_fast.inst.cfg create mode 100644 resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_normal.inst.cfg create mode 100644 resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_vfast.inst.cfg create mode 100644 resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_draft.inst.cfg create mode 100644 resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_fast.inst.cfg create mode 100644 resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_vfast.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_fine.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_vfine.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_draft.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fast.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fine.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_normal.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfast.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfine.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_draft.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_fast.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_vfast.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_fine.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_vfine.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_draft.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fast.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fine.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_normal.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfast.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfine.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_draft.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_fast.inst.cfg create mode 100644 resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_vfast.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_fine.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_vfine.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_draft.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fast.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fine.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_normal.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfast.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfine.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_draft.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_fast.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_vfast.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_fine.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_vfine.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_draft.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fast.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fine.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_normal.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfast.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfine.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_draft.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_fast.inst.cfg create mode 100644 resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_vfast.inst.cfg diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_fine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_fine.inst.cfg new file mode 100644 index 0000000000..17d9129838 --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_fine.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = fine +setting_version = 21 +type = quality +variant = 0.3mm Nozzle +weight = 1 + +[values] +speed_print = 50 +speed_travel = 100 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_vfine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_vfine.inst.cfg new file mode 100644 index 0000000000..d081363cde --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_vfine.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Very Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = veryfine +setting_version = 21 +type = quality +variant = 0.3mm Nozzle +weight = 2 + +[values] +speed_print = 45 +speed_travel = 100 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_draft.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_draft.inst.cfg new file mode 100644 index 0000000000..f392ad07fa --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_draft.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Draft +version = 4 + +[metadata] +material = generic_abs +quality_type = draft +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -3 + +[values] +speed_print = 70 +speed_travel = 90 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fast.inst.cfg new file mode 100644 index 0000000000..4bba44bee9 --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fast.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = fast +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +speed_print = 60 +speed_travel = 80 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fine.inst.cfg new file mode 100644 index 0000000000..7e46e9dd35 --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fine.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = fine +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 1 + +[values] +speed_print = 40 +speed_travel = 70 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_normal.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_normal.inst.cfg new file mode 100644 index 0000000000..23b4fd2cb3 --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_normal.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Standard +version = 4 + +[metadata] +material = generic_abs +quality_type = normal +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 0 + +[values] +speed_print = 60 +speed_travel = 80 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfast.inst.cfg new file mode 100644 index 0000000000..9370e5d647 --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfast.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = veryfast +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -2 + +[values] +speed_print = 60 +speed_travel = 90 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfine.inst.cfg new file mode 100644 index 0000000000..158014be49 --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfine.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Very Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = veryfine +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 2 + +[values] +speed_print = 35 +speed_travel = 70 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_draft.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_draft.inst.cfg new file mode 100644 index 0000000000..29bff5b090 --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_draft.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Draft +version = 4 + +[metadata] +material = generic_abs +quality_type = draft +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -3 + +[values] +speed_print = 55 +speed_travel = 100 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_fast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_fast.inst.cfg new file mode 100644 index 0000000000..30d4ee5af8 --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_fast.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = fast +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -1 + +[values] +speed_print = 50 +speed_travel = 100 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_vfast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_vfast.inst.cfg new file mode 100644 index 0000000000..468aeb2244 --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_vfast.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = veryfast +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +speed_print = 50 +speed_travel = 100 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_fine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_fine.inst.cfg new file mode 100644 index 0000000000..977fd8a7b4 --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_fine.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = fine +setting_version = 21 +type = quality +variant = 0.3mm Nozzle +weight = 1 + +[values] +speed_print = 50 +speed_travel = 100 +retraction_amount = 5 +retraction_speed = 30 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_vfine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_vfine.inst.cfg new file mode 100644 index 0000000000..880009f3da --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_vfine.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Very Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = veryfine +setting_version = 21 +type = quality +variant = 0.3mm Nozzle +weight = 2 + +[values] +speed_print = 45 +speed_travel = 100 +retraction_amount = 5 +retraction_speed = 30 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_draft.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_draft.inst.cfg new file mode 100644 index 0000000000..2a8c1c2f6c --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_draft.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Draft +version = 4 + +[metadata] +material = generic_abs +quality_type = draft +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -3 + +[values] +speed_print = 70 +speed_travel = 90 +retraction_amount = 5 +retraction_speed = 30 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fast.inst.cfg new file mode 100644 index 0000000000..873d134ee3 --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = fast +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +speed_print = 60 +speed_travel = 80 +retraction_amount = 5 +retraction_speed = 30 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fine.inst.cfg new file mode 100644 index 0000000000..36f408498c --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fine.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer3 +name = Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = fine +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 1 + +[values] +speed_print = 40 +speed_travel = 70 +retraction_amount = 5 +retraction_speed = 30 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_normal.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_normal.inst.cfg new file mode 100644 index 0000000000..f027fa295f --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_normal.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Standard +version = 4 + +[metadata] +material = generic_abs +quality_type = normal +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 0 + +[values] +speed_print = 60 +speed_travel = 80 +retraction_amount = 5 +retraction_speed = 30 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfast.inst.cfg new file mode 100644 index 0000000000..4ed26f1ded --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Very Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = veryfast +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -2 + +[values] +speed_print = 60 +speed_travel = 90 +retraction_amount = 5 +retraction_speed = 30 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfine.inst.cfg new file mode 100644 index 0000000000..5bb99865c8 --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfine.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Very Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = veryfine +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 2 + +[values] +speed_print = 35 +speed_travel = 70 +retraction_amount = 5 +retraction_speed = 30 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_draft.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_draft.inst.cfg new file mode 100644 index 0000000000..29ee87d4ab --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_draft.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Draft +version = 4 + +[metadata] +material = generic_abs +quality_type = draft +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -3 + +[values] +speed_print = 55 +speed_travel = 100 +retraction_amount = 6 +retraction_speed = 30 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_fast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_fast.inst.cfg new file mode 100644 index 0000000000..37d421bcb0 --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_fast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = fast +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -1 + +[values] +speed_print = 50 +speed_travel = 100 +retraction_amount = 6 +retraction_speed = 30 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_vfast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_vfast.inst.cfg new file mode 100644 index 0000000000..ede2b19a6d --- /dev/null +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_vfast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = veryfast +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +speed_print = 50 +speed_travel = 100 +retraction_amount = 6 +retraction_speed = 30 diff --git a/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fast.inst.cfg b/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fast.inst.cfg new file mode 100644 index 0000000000..498ec3781b --- /dev/null +++ b/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Fast +version = 4 + +[metadata] +material = generic_asa +quality_type = fast +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +speed_print = 45 +speed_travel = 100 +retraction_amount = 4.5 +retraction_speed = 30 diff --git a/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fine.inst.cfg b/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fine.inst.cfg new file mode 100644 index 0000000000..5ad56f447c --- /dev/null +++ b/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fine.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Fine +version = 4 + +[metadata] +material = generic_asa +quality_type = fine +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +speed_print = 35 +speed_travel = 100 +retraction_amount = 4.5 +retraction_speed = 30 diff --git a/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_normal.inst.cfg b/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_normal.inst.cfg new file mode 100644 index 0000000000..210c3e6d6d --- /dev/null +++ b/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_normal.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Standard +version = 4 + +[metadata] +material = generic_asa +quality_type = normal +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 0 + +[values] +speed_print = 40 +speed_travel = 100 +retraction_amount = 4.5 +retraction_speed = 30 diff --git a/resources/quality/flashforge/flashforge_adventurer3_draft.inst.cfg b/resources/quality/flashforge/flashforge_adventurer3_draft.inst.cfg new file mode 100644 index 0000000000..21033c046b --- /dev/null +++ b/resources/quality/flashforge/flashforge_adventurer3_draft.inst.cfg @@ -0,0 +1,20 @@ +[general] +definition = flashforge_adventurer3 +name = Draft +version = 4 + +[metadata] +global_quality = True +quality_type = draft +setting_version = 21 +type = quality +weight = -3 + +[values] +layer_height = 0.4 +layer_height_0 = 0.4 +retraction_amount = 5 +retraction_speed = 25 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) diff --git a/resources/quality/flashforge/flashforge_adventurer3_fast.inst.cfg b/resources/quality/flashforge/flashforge_adventurer3_fast.inst.cfg new file mode 100644 index 0000000000..cad53fac1d --- /dev/null +++ b/resources/quality/flashforge/flashforge_adventurer3_fast.inst.cfg @@ -0,0 +1,20 @@ +[general] +definition = flashforge_adventurer3 +name = Fast +version = 4 + +[metadata] +global_quality = True +quality_type = fast +setting_version = 21 +type = quality +weight = -1 + +[values] +layer_height = 0.25 +layer_height_0 = 0.3 +retraction_amount = 5 +retraction_speed = 25 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) diff --git a/resources/quality/flashforge/flashforge_adventurer3_fine.inst.cfg b/resources/quality/flashforge/flashforge_adventurer3_fine.inst.cfg new file mode 100644 index 0000000000..0380146a38 --- /dev/null +++ b/resources/quality/flashforge/flashforge_adventurer3_fine.inst.cfg @@ -0,0 +1,20 @@ +[general] +definition = flashforge_adventurer3 +name = Fine +version = 4 + +[metadata] +global_quality = True +quality_type = fine +setting_version = 21 +type = quality +weight = 1 + +[values] +layer_height = 0.15 +layer_height_0 = 0.23 +retraction_amount = 5 +retraction_speed = 25 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) diff --git a/resources/quality/flashforge/flashforge_adventurer3_normal.inst.cfg b/resources/quality/flashforge/flashforge_adventurer3_normal.inst.cfg new file mode 100644 index 0000000000..4caa292116 --- /dev/null +++ b/resources/quality/flashforge/flashforge_adventurer3_normal.inst.cfg @@ -0,0 +1,20 @@ +[general] +definition = flashforge_adventurer3 +name = Standard +version = 4 + +[metadata] +global_quality = True +quality_type = normal +setting_version = 21 +type = quality +weight = 0 + +[values] +layer_height = 0.2 +layer_height_0 = 0.3 +retraction_amount = 5 +retraction_speed = 25 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) diff --git a/resources/quality/flashforge/flashforge_adventurer3_vfast.inst.cfg b/resources/quality/flashforge/flashforge_adventurer3_vfast.inst.cfg new file mode 100644 index 0000000000..1b229b4a99 --- /dev/null +++ b/resources/quality/flashforge/flashforge_adventurer3_vfast.inst.cfg @@ -0,0 +1,20 @@ +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +global_quality = True +quality_type = veryfast +setting_version = 21 +type = quality +weight = -2 + +[values] +layer_height = 0.3 +layer_height_0 = 0.3 +retraction_amount = 5 +retraction_speed = 25 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) diff --git a/resources/quality/flashforge/flashforge_adventurer3_vfine.inst.cfg b/resources/quality/flashforge/flashforge_adventurer3_vfine.inst.cfg new file mode 100644 index 0000000000..f379409c4d --- /dev/null +++ b/resources/quality/flashforge/flashforge_adventurer3_vfine.inst.cfg @@ -0,0 +1,20 @@ +[general] +definition = flashforge_adventurer3 +name = Very Fine +version = 4 + +[metadata] +global_quality = True +quality_type = veryfine +setting_version = 21 +type = quality +weight = 2 + +[values] +layer_height = 0.1 +layer_height_0 = 0.18 +retraction_amount = 5 +retraction_speed = 25 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) diff --git a/resources/quality/flashforge/flashforge_adventurer4_draft.inst.cfg b/resources/quality/flashforge/flashforge_adventurer4_draft.inst.cfg new file mode 100644 index 0000000000..4e03ee768d --- /dev/null +++ b/resources/quality/flashforge/flashforge_adventurer4_draft.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Draft +version = 4 + +[metadata] +global_quality = True +quality_type = draft +setting_version = 21 +type = quality +weight = -3 + +[values] +layer_height = 0.4 +layer_height_0 = 0.4 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) diff --git a/resources/quality/flashforge/flashforge_adventurer4_fast.inst.cfg b/resources/quality/flashforge/flashforge_adventurer4_fast.inst.cfg new file mode 100644 index 0000000000..6a55f7c1e9 --- /dev/null +++ b/resources/quality/flashforge/flashforge_adventurer4_fast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Fast +version = 4 + +[metadata] +global_quality = True +quality_type = fast +setting_version = 21 +type = quality +weight = -1 + +[values] +layer_height = 0.25 +layer_height_0 = 0.3 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) diff --git a/resources/quality/flashforge/flashforge_adventurer4_fine.inst.cfg b/resources/quality/flashforge/flashforge_adventurer4_fine.inst.cfg new file mode 100644 index 0000000000..e6d44d631e --- /dev/null +++ b/resources/quality/flashforge/flashforge_adventurer4_fine.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Fine +version = 4 + +[metadata] +global_quality = True +quality_type = fine +setting_version = 21 +type = quality +weight = 1 + +[values] +layer_height = 0.15 +layer_height_0 = 0.23 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) diff --git a/resources/quality/flashforge/flashforge_adventurer4_normal.inst.cfg b/resources/quality/flashforge/flashforge_adventurer4_normal.inst.cfg new file mode 100644 index 0000000000..0b0e69f8c6 --- /dev/null +++ b/resources/quality/flashforge/flashforge_adventurer4_normal.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Standard +version = 4 + +[metadata] +global_quality = True +quality_type = normal +setting_version = 21 +type = quality +weight = 0 + +[values] +layer_height = 0.2 +layer_height_0 = 0.3 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) diff --git a/resources/quality/flashforge/flashforge_adventurer4_vfast.inst.cfg b/resources/quality/flashforge/flashforge_adventurer4_vfast.inst.cfg new file mode 100644 index 0000000000..a38f55477b --- /dev/null +++ b/resources/quality/flashforge/flashforge_adventurer4_vfast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Very Fast +version = 4 + +[metadata] +global_quality = True +quality_type = veryfast +setting_version = 21 +type = quality +weight = -2 + +[values] +layer_height = 0.3 +layer_height_0 = 0.3 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) diff --git a/resources/quality/flashforge/flashforge_adventurer4_vfine.inst.cfg b/resources/quality/flashforge/flashforge_adventurer4_vfine.inst.cfg new file mode 100644 index 0000000000..9ffcb1e44b --- /dev/null +++ b/resources/quality/flashforge/flashforge_adventurer4_vfine.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Very Fine +version = 4 + +[metadata] +global_quality = True +quality_type = veryfine +setting_version = 21 +type = quality +weight = 2 + +[values] +layer_height = 0.1 +layer_height_0 = 0.18 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_draft.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_draft.inst.cfg new file mode 100644 index 0000000000..7a33b8e486 --- /dev/null +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_draft.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Draft +version = 4 + +[metadata] +material = generic_pc +quality_type = draft +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -3 + +[values] +speed_print = 50 +speed_travel = 90 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_fast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_fast.inst.cfg new file mode 100644 index 0000000000..d6ff4cac8e --- /dev/null +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_fast.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Fast +version = 4 + +[metadata] +material = generic_pc +quality_type = fast +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +speed_print = 40 +speed_travel = 80 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_normal.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_normal.inst.cfg new file mode 100644 index 0000000000..6b44a5dfc3 --- /dev/null +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_normal.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Standard +version = 4 + +[metadata] +material = generic_pc +quality_type = normal +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 0 + +[values] +speed_print = 40 +speed_travel = 80 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_vfast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_vfast.inst.cfg new file mode 100644 index 0000000000..0e7691a28d --- /dev/null +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_vfast.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +material = generic_pc +quality_type = veryfast +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -2 + +[values] +speed_print = 50 +speed_travel = 90 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_draft.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_draft.inst.cfg new file mode 100644 index 0000000000..d7afbddbcd --- /dev/null +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_draft.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Draft +version = 4 + +[metadata] +material = generic_pc +quality_type = draft +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -3 + +[values] +speed_print = 60 +speed_travel = 100 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_fast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_fast.inst.cfg new file mode 100644 index 0000000000..9267502a89 --- /dev/null +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_fast.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Fast +version = 4 + +[metadata] +material = generic_pc +quality_type = fast +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +speed_print = 50 +speed_travel = 100 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_vfast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_vfast.inst.cfg new file mode 100644 index 0000000000..41fbacd635 --- /dev/null +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_vfast.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +material = generic_pc +quality_type = veryfast +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +speed_print = 50 +speed_travel = 100 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_draft.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_draft.inst.cfg new file mode 100644 index 0000000000..b2927df668 --- /dev/null +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_draft.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Draft +version = 4 + +[metadata] +material = generic_pc +quality_type = draft +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -3 + +[values] +speed_print = 50 +speed_travel = 90 +retraction_amount = 6 +retraction_speed = 30 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_fast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_fast.inst.cfg new file mode 100644 index 0000000000..f341d7724f --- /dev/null +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_fast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Fast +version = 4 + +[metadata] +material = generic_pc +quality_type = fast +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +speed_print = 40 +speed_travel = 80 +retraction_amount = 6 +retraction_speed = 30 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_normal.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_normal.inst.cfg new file mode 100644 index 0000000000..1e88648444 --- /dev/null +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_normal.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Standard +version = 4 + +[metadata] +material = generic_pc +quality_type = normal +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 0 + +[values] +speed_print = 40 +speed_travel = 80 +retraction_amount = 6 +retraction_speed = 30 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_vfast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_vfast.inst.cfg new file mode 100644 index 0000000000..2b3e88cdd7 --- /dev/null +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_vfast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Very Fast +version = 4 + +[metadata] +material = generic_pc +quality_type = veryfast +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -2 + +[values] +speed_print = 50 +speed_travel = 90 +retraction_amount = 6 +retraction_speed = 30 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_draft.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_draft.inst.cfg new file mode 100644 index 0000000000..3f6716dcff --- /dev/null +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_draft.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Draft +version = 4 + +[metadata] +material = generic_pc +quality_type = draft +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -3 + +[values] +speed_print = 60 +speed_travel = 100 +retraction_amount = 6 +retraction_speed = 30 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_fast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_fast.inst.cfg new file mode 100644 index 0000000000..1b712bfa46 --- /dev/null +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_fast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Fast +version = 4 + +[metadata] +material = generic_pc +quality_type = fast +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +speed_print = 50 +speed_travel = 100 +retraction_amount = 6 +retraction_speed = 30 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_vfast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_vfast.inst.cfg new file mode 100644 index 0000000000..a39d97af60 --- /dev/null +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_vfast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Very Fast +version = 4 + +[metadata] +material = generic_pc +quality_type = veryfast +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +speed_print = 50 +speed_travel = 100 +retraction_amount = 6 +retraction_speed = 30 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_fine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_fine.inst.cfg new file mode 100644 index 0000000000..3214b1e65f --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_fine.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = fine +setting_version = 21 +type = quality +variant = 0.3mm Nozzle +weight = 1 + +[values] +speed_print = 50 +speed_travel = 80 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_vfine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_vfine.inst.cfg new file mode 100644 index 0000000000..d47b336d62 --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_vfine.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Very Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = veryfine +setting_version = 21 +type = quality +variant = 0.3mm Nozzle +weight = 2 + +[values] +speed_print = 50 +speed_travel = 80 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_draft.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_draft.inst.cfg new file mode 100644 index 0000000000..ac52407992 --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_draft.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Draft +version = 4 + +[metadata] +material = generic_petg +quality_type = draft +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -3 + +[values] +speed_print = 65 +speed_travel = 100 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fast.inst.cfg new file mode 100644 index 0000000000..3650f3e826 --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fast.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = fast +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +speed_print = 55 +speed_travel = 85 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fine.inst.cfg new file mode 100644 index 0000000000..ac4fc97e2e --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fine.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = fine +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 1 + +[values] +speed_print = 40 +speed_travel = 80 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_normal.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_normal.inst.cfg new file mode 100644 index 0000000000..7008a176b1 --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_normal.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Standard +version = 4 + +[metadata] +material = generic_petg +quality_type = normal +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 0 + +[values] +speed_print = 50 +speed_travel = 80 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfast.inst.cfg new file mode 100644 index 0000000000..5a694d0804 --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfast.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = veryfast +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -2 + +[values] +speed_print = 60 +speed_travel = 90 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfine.inst.cfg new file mode 100644 index 0000000000..1677dbd0be --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfine.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Very Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = veryfine +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 2 + +[values] +speed_print = 40 +speed_travel = 80 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_draft.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_draft.inst.cfg new file mode 100644 index 0000000000..70fad425e8 --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_draft.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Draft +version = 4 + +[metadata] +material = generic_petg +quality_type = draft +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -3 + +[values] +speed_print = 65 +speed_travel = 100 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_fast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_fast.inst.cfg new file mode 100644 index 0000000000..d13a93b251 --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_fast.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = fast +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -1 + +[values] +speed_print = 50 +speed_travel = 100 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_vfast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_vfast.inst.cfg new file mode 100644 index 0000000000..5bbfb6e05e --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_vfast.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = veryfast +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +speed_print = 50 +speed_travel = 100 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_fine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_fine.inst.cfg new file mode 100644 index 0000000000..434fc74717 --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_fine.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = fine +setting_version = 21 +type = quality +variant = 0.3mm Nozzle +weight = 1 + +[values] +speed_print = 50 +speed_travel = 80 +retraction_amount = 5 +retraction_speed = 25 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_vfine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_vfine.inst.cfg new file mode 100644 index 0000000000..e89b76891d --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_vfine.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Very Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = veryfine +setting_version = 21 +type = quality +variant = 0.3mm Nozzle +weight = 2 + +[values] +speed_print = 50 +speed_travel = 80 +retraction_amount = 5 +retraction_speed = 25 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_draft.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_draft.inst.cfg new file mode 100644 index 0000000000..44444a4b1f --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_draft.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Draft +version = 4 + +[metadata] +material = generic_petg +quality_type = draft +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -3 + +[values] +speed_print = 65 +speed_travel = 100 +retraction_amount = 5 +retraction_speed = 25 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fast.inst.cfg new file mode 100644 index 0000000000..6e5b64cd29 --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = fast +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +speed_print = 55 +speed_travel = 85 +retraction_amount = 5 +retraction_speed = 25 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fine.inst.cfg new file mode 100644 index 0000000000..d3fb722875 --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fine.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = fine +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 1 + +[values] +speed_print = 40 +speed_travel = 80 +retraction_amount = 5 +retraction_speed = 25 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_normal.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_normal.inst.cfg new file mode 100644 index 0000000000..8ebb7e12b2 --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_normal.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Standard +version = 4 + +[metadata] +material = generic_petg +quality_type = normal +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 0 + +[values] +speed_print = 50 +speed_travel = 80 +retraction_amount = 5 +retraction_speed = 25 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfast.inst.cfg new file mode 100644 index 0000000000..4bf1f7d3a0 --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Very Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = veryfast +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -2 + +[values] +speed_print = 60 +speed_travel = 90 +retraction_amount = 5 +retraction_speed = 25 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfine.inst.cfg new file mode 100644 index 0000000000..17f75527f2 --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfine.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Very Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = veryfine +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 2 + +[values] +speed_print = 40 +speed_travel = 80 +retraction_amount = 5 +retraction_speed = 25 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_draft.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_draft.inst.cfg new file mode 100644 index 0000000000..1d7a88a4df --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_draft.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Draft +version = 4 + +[metadata] +material = generic_petg +quality_type = draft +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -3 + +[values] +speed_print = 65 +speed_travel = 100 +retraction_amount = 5 +retraction_speed = 20 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_fast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_fast.inst.cfg new file mode 100644 index 0000000000..428c853bab --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_fast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = fast +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -1 + +[values] +speed_print = 50 +speed_travel = 100 +retraction_amount = 5 +retraction_speed = 20 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_vfast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_vfast.inst.cfg new file mode 100644 index 0000000000..54fd9c2d6a --- /dev/null +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_vfast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Very Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = veryfast +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +speed_print = 50 +speed_travel = 100 +retraction_amount = 5 +retraction_speed = 20 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_fine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_fine.inst.cfg new file mode 100644 index 0000000000..1816945692 --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_fine.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = fine +setting_version = 21 +type = quality +variant = 0.3mm Nozzle +weight = 1 + +[values] +speed_print = 50 +speed_travel = 100 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_vfine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_vfine.inst.cfg new file mode 100644 index 0000000000..803616ac35 --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_vfine.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Very Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = veryfine +setting_version = 21 +type = quality +variant = 0.3mm Nozzle +weight = 2 + +[values] +speed_print = 45 +speed_travel = 100 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_draft.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_draft.inst.cfg new file mode 100644 index 0000000000..ea4e0e7e9a --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_draft.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Draft +version = 4 + +[metadata] +material = generic_pla +quality_type = draft +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -3 + +[values] +speed_print = 75 +speed_travel = 100 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fast.inst.cfg new file mode 100644 index 0000000000..54d7d5e4e5 --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fast.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Fast +version = 4 + +[metadata] +material = generic_pla +quality_type = fast +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +speed_print = 65 +speed_travel = 100 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fine.inst.cfg new file mode 100644 index 0000000000..c8fcf7f463 --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fine.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = fine +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 1 + +[values] +speed_print = 50 +speed_travel = 80 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_normal.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_normal.inst.cfg new file mode 100644 index 0000000000..f3c48970d8 --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_normal.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Standard +version = 4 + +[metadata] +material = generic_pla +quality_type = normal +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 0 + +[values] +speed_print = 60 +speed_travel = 80 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfast.inst.cfg new file mode 100644 index 0000000000..101d2f5382 --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfast.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +material = generic_pla +quality_type = veryfast +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -2 + +[values] +speed_print = 70 +speed_travel = 100 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfine.inst.cfg new file mode 100644 index 0000000000..bd044f5c75 --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfine.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Very Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = veryfine +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 2 + +[values] +speed_print = 40 +speed_travel = 70 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_draft.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_draft.inst.cfg new file mode 100644 index 0000000000..893f27f740 --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_draft.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Draft +version = 4 + +[metadata] +material = generic_pla +quality_type = draft +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +speed_print = 60 +speed_travel = 100 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_fast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_fast.inst.cfg new file mode 100644 index 0000000000..dc1dbb3290 --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_fast.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Fast +version = 4 + +[metadata] +material = generic_pla +quality_type = fast +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -1 + +[values] +speed_print = 50 +speed_travel = 100 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_vfast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_vfast.inst.cfg new file mode 100644 index 0000000000..d125db24b2 --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_vfast.inst.cfg @@ -0,0 +1,16 @@ +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +material = generic_pla +quality_type = veryfast +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +speed_print = 55 +speed_travel = 100 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_fine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_fine.inst.cfg new file mode 100644 index 0000000000..73c214ba7b --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_fine.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = fine +setting_version = 21 +type = quality +variant = 0.3mm Nozzle +weight = 1 + +[values] +speed_print = 50 +speed_travel = 100 +retraction_amount = 5 +retraction_speed = 30 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_vfine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_vfine.inst.cfg new file mode 100644 index 0000000000..67674a8090 --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_vfine.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Very Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = veryfine +setting_version = 21 +type = quality +variant = 0.3mm Nozzle +weight = 2 + +[values] +speed_print = 45 +speed_travel = 100 +retraction_amount = 5 +retraction_speed = 30 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_draft.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_draft.inst.cfg new file mode 100644 index 0000000000..38a42fd174 --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_draft.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Draft +version = 4 + +[metadata] +material = generic_pla +quality_type = draft +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -2 + +[values] +speed_print = 65 +speed_travel = 100 +retraction_amount = 5.5 +retraction_speed = 25 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fast.inst.cfg new file mode 100644 index 0000000000..4f4fc97a51 --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = fine +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +speed_print = 55 +speed_travel = 100 +retraction_amount = 5.5 +retraction_speed = 25 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fine.inst.cfg new file mode 100644 index 0000000000..e2923e6248 --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fine.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = fine +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 1 + +[values] +speed_print = 45 +speed_travel = 90 +retraction_amount = 5.5 +retraction_speed = 25 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_normal.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_normal.inst.cfg new file mode 100644 index 0000000000..3c7d6d77ff --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_normal.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Standard +version = 4 + +[metadata] +material = generic_pla +quality_type = normal +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 0 + +[values] +speed_print = 50 +speed_travel = 100 +retraction_amount = 5.5 +retraction_speed = 25 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfast.inst.cfg new file mode 100644 index 0000000000..3ec1e8214a --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Very Fast +version = 4 + +[metadata] +material = generic_pla +quality_type = veryfast +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = -2 + +[values] +speed_print = 60 +speed_travel = 100 +retraction_amount = 5.5 +retraction_speed = 25 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfine.inst.cfg new file mode 100644 index 0000000000..51a47cb739 --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfine.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Very Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = veryfine +setting_version = 21 +type = quality +variant = 0.4mm Nozzle +weight = 2 + +[values] +speed_print = 40 +speed_travel = 80 +retraction_amount = 5.5 +retraction_speed = 25 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_draft.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_draft.inst.cfg new file mode 100644 index 0000000000..9ef5c56434 --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_draft.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Draft +version = 4 + +[metadata] +material = generic_pla +quality_type = draft +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +speed_print = 65 +speed_travel = 100 +retraction_amount = 6 +retraction_speed = 30 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_fast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_fast.inst.cfg new file mode 100644 index 0000000000..86790e1c93 --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_fast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Fast +version = 4 + +[metadata] +material = generic_pla +quality_type = fast +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -1 + +[values] +speed_print = 60 +speed_travel = 100 +retraction_amount = 6 +retraction_speed = 30 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_vfast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_vfast.inst.cfg new file mode 100644 index 0000000000..a29696a8ff --- /dev/null +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_vfast.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = flashforge_adventurer4 +name = Very Fast +version = 4 + +[metadata] +material = generic_pla +quality_type = veryfast +setting_version = 21 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +speed_print = 60 +speed_travel = 100 +retraction_amount = 6 +retraction_speed = 30 From dedfdb1d88b718c8cc92cf83338c53de7cd6e279 Mon Sep 17 00:00:00 2001 From: Jeremie Date: Fri, 26 May 2023 14:34:29 +0200 Subject: [PATCH 005/269] Variants to setting_version 22 --- .../variants/flashforge/flashforge_adventurer3_0.3.inst.cfg | 2 +- .../variants/flashforge/flashforge_adventurer3_0.4.inst.cfg | 2 +- .../variants/flashforge/flashforge_adventurer3_0.6.inst.cfg | 2 +- .../variants/flashforge/flashforge_adventurer3c_0.3.inst.cfg | 2 +- .../variants/flashforge/flashforge_adventurer3c_0.4.inst.cfg | 2 +- .../variants/flashforge/flashforge_adventurer3c_0.6.inst.cfg | 2 +- .../variants/flashforge/flashforge_adventurer4_0.3.inst.cfg | 2 +- .../variants/flashforge/flashforge_adventurer4_0.4.inst.cfg | 2 +- .../variants/flashforge/flashforge_adventurer4_0.6.inst.cfg | 2 +- .../variants/flashforge/flashforge_adventurer4lite_0.3.inst.cfg | 2 +- .../variants/flashforge/flashforge_adventurer4lite_0.4.inst.cfg | 2 +- .../variants/flashforge/flashforge_adventurer4lite_0.6.inst.cfg | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/resources/variants/flashforge/flashforge_adventurer3_0.3.inst.cfg b/resources/variants/flashforge/flashforge_adventurer3_0.3.inst.cfg index 98319a87a7..9233d066d2 100644 --- a/resources/variants/flashforge/flashforge_adventurer3_0.3.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer3_0.3.inst.cfg @@ -5,7 +5,7 @@ version = 4 [metadata] hardware_type = nozzle -setting_version = 21 +setting_version = 22 type = variant [values] diff --git a/resources/variants/flashforge/flashforge_adventurer3_0.4.inst.cfg b/resources/variants/flashforge/flashforge_adventurer3_0.4.inst.cfg index 3357045ab6..9217a0a518 100644 --- a/resources/variants/flashforge/flashforge_adventurer3_0.4.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer3_0.4.inst.cfg @@ -5,7 +5,7 @@ version = 4 [metadata] hardware_type = nozzle -setting_version = 21 +setting_version = 22 type = variant [values] diff --git a/resources/variants/flashforge/flashforge_adventurer3_0.6.inst.cfg b/resources/variants/flashforge/flashforge_adventurer3_0.6.inst.cfg index aaf69b516d..5e712bb0f5 100644 --- a/resources/variants/flashforge/flashforge_adventurer3_0.6.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer3_0.6.inst.cfg @@ -5,7 +5,7 @@ version = 4 [metadata] hardware_type = nozzle -setting_version = 21 +setting_version = 22 type = variant [values] diff --git a/resources/variants/flashforge/flashforge_adventurer3c_0.3.inst.cfg b/resources/variants/flashforge/flashforge_adventurer3c_0.3.inst.cfg index 56f983be94..c7162ed63b 100644 --- a/resources/variants/flashforge/flashforge_adventurer3c_0.3.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer3c_0.3.inst.cfg @@ -5,7 +5,7 @@ version = 4 [metadata] hardware_type = nozzle -setting_version = 21 +setting_version = 22 type = variant [values] diff --git a/resources/variants/flashforge/flashforge_adventurer3c_0.4.inst.cfg b/resources/variants/flashforge/flashforge_adventurer3c_0.4.inst.cfg index c45a46dbc6..75b8cf227d 100644 --- a/resources/variants/flashforge/flashforge_adventurer3c_0.4.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer3c_0.4.inst.cfg @@ -5,7 +5,7 @@ version = 4 [metadata] hardware_type = nozzle -setting_version = 21 +setting_version = 22 type = variant [values] diff --git a/resources/variants/flashforge/flashforge_adventurer3c_0.6.inst.cfg b/resources/variants/flashforge/flashforge_adventurer3c_0.6.inst.cfg index 15bfd3f8be..07898deed7 100644 --- a/resources/variants/flashforge/flashforge_adventurer3c_0.6.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer3c_0.6.inst.cfg @@ -5,7 +5,7 @@ version = 4 [metadata] hardware_type = nozzle -setting_version = 21 +setting_version = 22 type = variant [values] diff --git a/resources/variants/flashforge/flashforge_adventurer4_0.3.inst.cfg b/resources/variants/flashforge/flashforge_adventurer4_0.3.inst.cfg index 57a9dab4b1..36902259f1 100644 --- a/resources/variants/flashforge/flashforge_adventurer4_0.3.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer4_0.3.inst.cfg @@ -5,7 +5,7 @@ version = 4 [metadata] hardware_type = nozzle -setting_version = 21 +setting_version = 22 type = variant [values] diff --git a/resources/variants/flashforge/flashforge_adventurer4_0.4.inst.cfg b/resources/variants/flashforge/flashforge_adventurer4_0.4.inst.cfg index b451d4e681..8433cc42d8 100644 --- a/resources/variants/flashforge/flashforge_adventurer4_0.4.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer4_0.4.inst.cfg @@ -5,7 +5,7 @@ version = 4 [metadata] hardware_type = nozzle -setting_version = 21 +setting_version = 22 type = variant [values] diff --git a/resources/variants/flashforge/flashforge_adventurer4_0.6.inst.cfg b/resources/variants/flashforge/flashforge_adventurer4_0.6.inst.cfg index 2f9568d49c..39604fef55 100644 --- a/resources/variants/flashforge/flashforge_adventurer4_0.6.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer4_0.6.inst.cfg @@ -5,7 +5,7 @@ version = 4 [metadata] hardware_type = nozzle -setting_version = 21 +setting_version = 22 type = variant [values] diff --git a/resources/variants/flashforge/flashforge_adventurer4lite_0.3.inst.cfg b/resources/variants/flashforge/flashforge_adventurer4lite_0.3.inst.cfg index bc12e7191d..8c1a1d6e2f 100644 --- a/resources/variants/flashforge/flashforge_adventurer4lite_0.3.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer4lite_0.3.inst.cfg @@ -5,7 +5,7 @@ version = 4 [metadata] hardware_type = nozzle -setting_version = 21 +setting_version = 22 type = variant [values] diff --git a/resources/variants/flashforge/flashforge_adventurer4lite_0.4.inst.cfg b/resources/variants/flashforge/flashforge_adventurer4lite_0.4.inst.cfg index 2fc42fbb12..16d8876485 100644 --- a/resources/variants/flashforge/flashforge_adventurer4lite_0.4.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer4lite_0.4.inst.cfg @@ -5,7 +5,7 @@ version = 4 [metadata] hardware_type = nozzle -setting_version = 21 +setting_version = 22 type = variant [values] diff --git a/resources/variants/flashforge/flashforge_adventurer4lite_0.6.inst.cfg b/resources/variants/flashforge/flashforge_adventurer4lite_0.6.inst.cfg index 8da55dd9d1..b9832c7d84 100644 --- a/resources/variants/flashforge/flashforge_adventurer4lite_0.6.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer4lite_0.6.inst.cfg @@ -5,7 +5,7 @@ version = 4 [metadata] hardware_type = nozzle -setting_version = 21 +setting_version = 22 type = variant [values] From fb5da34a71ca9164ad5685f91092fa00bc3fe84a Mon Sep 17 00:00:00 2001 From: Jeremie Date: Fri, 26 May 2023 14:36:19 +0200 Subject: [PATCH 006/269] Quality to setting_version 22 --- .../flashforge/abs/flashforge_adventurer3_abs_0.3_fine.inst.cfg | 2 +- .../abs/flashforge_adventurer3_abs_0.3_vfine.inst.cfg | 2 +- .../abs/flashforge_adventurer3_abs_0.4_draft.inst.cfg | 2 +- .../flashforge/abs/flashforge_adventurer3_abs_0.4_fast.inst.cfg | 2 +- .../flashforge/abs/flashforge_adventurer3_abs_0.4_fine.inst.cfg | 2 +- .../abs/flashforge_adventurer3_abs_0.4_normal.inst.cfg | 2 +- .../abs/flashforge_adventurer3_abs_0.4_vfast.inst.cfg | 2 +- .../abs/flashforge_adventurer3_abs_0.4_vfine.inst.cfg | 2 +- .../abs/flashforge_adventurer3_abs_0.6_draft.inst.cfg | 2 +- .../flashforge/abs/flashforge_adventurer3_abs_0.6_fast.inst.cfg | 2 +- .../abs/flashforge_adventurer3_abs_0.6_vfast.inst.cfg | 2 +- .../flashforge/abs/flashforge_adventurer4_abs_0.3_fine.inst.cfg | 2 +- .../abs/flashforge_adventurer4_abs_0.3_vfine.inst.cfg | 2 +- .../abs/flashforge_adventurer4_abs_0.4_draft.inst.cfg | 2 +- .../flashforge/abs/flashforge_adventurer4_abs_0.4_fast.inst.cfg | 2 +- .../flashforge/abs/flashforge_adventurer4_abs_0.4_fine.inst.cfg | 2 +- .../abs/flashforge_adventurer4_abs_0.4_normal.inst.cfg | 2 +- .../abs/flashforge_adventurer4_abs_0.4_vfast.inst.cfg | 2 +- .../abs/flashforge_adventurer4_abs_0.4_vfine.inst.cfg | 2 +- .../abs/flashforge_adventurer4_abs_0.6_draft.inst.cfg | 2 +- .../flashforge/abs/flashforge_adventurer4_abs_0.6_fast.inst.cfg | 2 +- .../abs/flashforge_adventurer4_abs_0.6_vfast.inst.cfg | 2 +- .../flashforge/asa/flashforge_adventurer4_asa_0.4_fast.inst.cfg | 2 +- .../flashforge/asa/flashforge_adventurer4_asa_0.4_fine.inst.cfg | 2 +- .../asa/flashforge_adventurer4_asa_0.4_normal.inst.cfg | 2 +- .../quality/flashforge/flashforge_adventurer3_draft.inst.cfg | 2 +- .../quality/flashforge/flashforge_adventurer3_fast.inst.cfg | 2 +- .../quality/flashforge/flashforge_adventurer3_fine.inst.cfg | 2 +- .../quality/flashforge/flashforge_adventurer3_normal.inst.cfg | 2 +- .../quality/flashforge/flashforge_adventurer3_vfast.inst.cfg | 2 +- .../quality/flashforge/flashforge_adventurer3_vfine.inst.cfg | 2 +- .../quality/flashforge/flashforge_adventurer4_draft.inst.cfg | 2 +- .../quality/flashforge/flashforge_adventurer4_fast.inst.cfg | 2 +- .../quality/flashforge/flashforge_adventurer4_fine.inst.cfg | 2 +- .../quality/flashforge/flashforge_adventurer4_normal.inst.cfg | 2 +- .../quality/flashforge/flashforge_adventurer4_vfast.inst.cfg | 2 +- .../quality/flashforge/flashforge_adventurer4_vfine.inst.cfg | 2 +- .../flashforge/pc/flashforge_adventurer3_pc_0.4_draft.inst.cfg | 2 +- .../flashforge/pc/flashforge_adventurer3_pc_0.4_fast.inst.cfg | 2 +- .../flashforge/pc/flashforge_adventurer3_pc_0.4_normal.inst.cfg | 2 +- .../flashforge/pc/flashforge_adventurer3_pc_0.4_vfast.inst.cfg | 2 +- .../flashforge/pc/flashforge_adventurer3_pc_0.6_draft.inst.cfg | 2 +- .../flashforge/pc/flashforge_adventurer3_pc_0.6_fast.inst.cfg | 2 +- .../flashforge/pc/flashforge_adventurer3_pc_0.6_vfast.inst.cfg | 2 +- .../flashforge/pc/flashforge_adventurer4_pc_0.4_draft.inst.cfg | 2 +- .../flashforge/pc/flashforge_adventurer4_pc_0.4_fast.inst.cfg | 2 +- .../flashforge/pc/flashforge_adventurer4_pc_0.4_normal.inst.cfg | 2 +- .../flashforge/pc/flashforge_adventurer4_pc_0.4_vfast.inst.cfg | 2 +- .../flashforge/pc/flashforge_adventurer4_pc_0.6_draft.inst.cfg | 2 +- .../flashforge/pc/flashforge_adventurer4_pc_0.6_fast.inst.cfg | 2 +- .../flashforge/pc/flashforge_adventurer4_pc_0.6_vfast.inst.cfg | 2 +- .../petg/flashforge_adventurer3_petg_0.3_fine.inst.cfg | 2 +- .../petg/flashforge_adventurer3_petg_0.3_vfine.inst.cfg | 2 +- .../petg/flashforge_adventurer3_petg_0.4_draft.inst.cfg | 2 +- .../petg/flashforge_adventurer3_petg_0.4_fast.inst.cfg | 2 +- .../petg/flashforge_adventurer3_petg_0.4_fine.inst.cfg | 2 +- .../petg/flashforge_adventurer3_petg_0.4_normal.inst.cfg | 2 +- .../petg/flashforge_adventurer3_petg_0.4_vfast.inst.cfg | 2 +- .../petg/flashforge_adventurer3_petg_0.4_vfine.inst.cfg | 2 +- .../petg/flashforge_adventurer3_petg_0.6_draft.inst.cfg | 2 +- .../petg/flashforge_adventurer3_petg_0.6_fast.inst.cfg | 2 +- .../petg/flashforge_adventurer3_petg_0.6_vfast.inst.cfg | 2 +- .../petg/flashforge_adventurer4_petg_0.3_fine.inst.cfg | 2 +- .../petg/flashforge_adventurer4_petg_0.3_vfine.inst.cfg | 2 +- .../petg/flashforge_adventurer4_petg_0.4_draft.inst.cfg | 2 +- .../petg/flashforge_adventurer4_petg_0.4_fast.inst.cfg | 2 +- .../petg/flashforge_adventurer4_petg_0.4_fine.inst.cfg | 2 +- .../petg/flashforge_adventurer4_petg_0.4_normal.inst.cfg | 2 +- .../petg/flashforge_adventurer4_petg_0.4_vfast.inst.cfg | 2 +- .../petg/flashforge_adventurer4_petg_0.4_vfine.inst.cfg | 2 +- .../petg/flashforge_adventurer4_petg_0.6_draft.inst.cfg | 2 +- .../petg/flashforge_adventurer4_petg_0.6_fast.inst.cfg | 2 +- .../petg/flashforge_adventurer4_petg_0.6_vfast.inst.cfg | 2 +- .../flashforge/pla/flashforge_adventurer3_pla_0.3_fine.inst.cfg | 2 +- .../pla/flashforge_adventurer3_pla_0.3_vfine.inst.cfg | 2 +- .../pla/flashforge_adventurer3_pla_0.4_draft.inst.cfg | 2 +- .../flashforge/pla/flashforge_adventurer3_pla_0.4_fast.inst.cfg | 2 +- .../flashforge/pla/flashforge_adventurer3_pla_0.4_fine.inst.cfg | 2 +- .../pla/flashforge_adventurer3_pla_0.4_normal.inst.cfg | 2 +- .../pla/flashforge_adventurer3_pla_0.4_vfast.inst.cfg | 2 +- .../pla/flashforge_adventurer3_pla_0.4_vfine.inst.cfg | 2 +- .../pla/flashforge_adventurer3_pla_0.6_draft.inst.cfg | 2 +- .../flashforge/pla/flashforge_adventurer3_pla_0.6_fast.inst.cfg | 2 +- .../pla/flashforge_adventurer3_pla_0.6_vfast.inst.cfg | 2 +- .../flashforge/pla/flashforge_adventurer4_pla_0.3_fine.inst.cfg | 2 +- .../pla/flashforge_adventurer4_pla_0.3_vfine.inst.cfg | 2 +- .../pla/flashforge_adventurer4_pla_0.4_draft.inst.cfg | 2 +- .../flashforge/pla/flashforge_adventurer4_pla_0.4_fast.inst.cfg | 2 +- .../flashforge/pla/flashforge_adventurer4_pla_0.4_fine.inst.cfg | 2 +- .../pla/flashforge_adventurer4_pla_0.4_normal.inst.cfg | 2 +- .../pla/flashforge_adventurer4_pla_0.4_vfast.inst.cfg | 2 +- .../pla/flashforge_adventurer4_pla_0.4_vfine.inst.cfg | 2 +- .../pla/flashforge_adventurer4_pla_0.6_draft.inst.cfg | 2 +- .../flashforge/pla/flashforge_adventurer4_pla_0.6_fast.inst.cfg | 2 +- .../pla/flashforge_adventurer4_pla_0.6_vfast.inst.cfg | 2 +- 95 files changed, 95 insertions(+), 95 deletions(-) diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_fine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_fine.inst.cfg index 17d9129838..63488b25cf 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_fine.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = fine -setting_version = 21 +setting_version = 22 type = quality variant = 0.3mm Nozzle weight = 1 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_vfine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_vfine.inst.cfg index d081363cde..466e76686a 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_vfine.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_vfine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = veryfine -setting_version = 21 +setting_version = 22 type = quality variant = 0.3mm Nozzle weight = 2 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_draft.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_draft.inst.cfg index f392ad07fa..678ab9d371 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_draft.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_draft.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = draft -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -3 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fast.inst.cfg index 4bba44bee9..0b2e235d92 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fast.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = fast -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -1 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fine.inst.cfg index 7e46e9dd35..b71dc27d96 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fine.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = fine -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 1 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_normal.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_normal.inst.cfg index 23b4fd2cb3..9641fb7bef 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_normal.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = normal -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 0 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfast.inst.cfg index 9370e5d647..5c1c0138e8 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfast.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = veryfast -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfine.inst.cfg index 158014be49..465ee99c88 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfine.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = veryfine -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 2 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_draft.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_draft.inst.cfg index 29bff5b090..7fae92a487 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_draft.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_draft.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = draft -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -3 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_fast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_fast.inst.cfg index 30d4ee5af8..7f99640845 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_fast.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = fast -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -1 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_vfast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_vfast.inst.cfg index 468aeb2244..c0212259a1 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_vfast.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_vfast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = veryfast -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_fine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_fine.inst.cfg index 977fd8a7b4..ac6dfe5a33 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_fine.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = fine -setting_version = 21 +setting_version = 22 type = quality variant = 0.3mm Nozzle weight = 1 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_vfine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_vfine.inst.cfg index 880009f3da..4c4a0873d3 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_vfine.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_vfine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = veryfine -setting_version = 21 +setting_version = 22 type = quality variant = 0.3mm Nozzle weight = 2 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_draft.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_draft.inst.cfg index 2a8c1c2f6c..62ad84398c 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_draft.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_draft.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = draft -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -3 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fast.inst.cfg index 873d134ee3..b15ad40f22 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fast.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = fast -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -1 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fine.inst.cfg index 36f408498c..1d325765ff 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fine.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = fine -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 1 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_normal.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_normal.inst.cfg index f027fa295f..c4e43d5eac 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_normal.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = normal -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 0 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfast.inst.cfg index 4ed26f1ded..f3f8ada9d9 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfast.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = veryfast -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfine.inst.cfg index 5bb99865c8..5eefe21407 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfine.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = veryfine -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 2 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_draft.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_draft.inst.cfg index 29ee87d4ab..bf7f894937 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_draft.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_draft.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = draft -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -3 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_fast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_fast.inst.cfg index 37d421bcb0..e97b00157b 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_fast.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = fast -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -1 diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_vfast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_vfast.inst.cfg index ede2b19a6d..4ccdd81053 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_vfast.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_vfast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_abs quality_type = veryfast -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fast.inst.cfg b/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fast.inst.cfg index 498ec3781b..5677c663f1 100644 --- a/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fast.inst.cfg +++ b/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = fast -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -1 diff --git a/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fine.inst.cfg b/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fine.inst.cfg index 5ad56f447c..f9f6c6287d 100644 --- a/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fine.inst.cfg +++ b/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = fine -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -1 diff --git a/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_normal.inst.cfg b/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_normal.inst.cfg index 210c3e6d6d..ba9bb86f37 100644 --- a/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_normal.inst.cfg +++ b/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = normal -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 0 diff --git a/resources/quality/flashforge/flashforge_adventurer3_draft.inst.cfg b/resources/quality/flashforge/flashforge_adventurer3_draft.inst.cfg index 21033c046b..61123554fb 100644 --- a/resources/quality/flashforge/flashforge_adventurer3_draft.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer3_draft.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] global_quality = True quality_type = draft -setting_version = 21 +setting_version = 22 type = quality weight = -3 diff --git a/resources/quality/flashforge/flashforge_adventurer3_fast.inst.cfg b/resources/quality/flashforge/flashforge_adventurer3_fast.inst.cfg index cad53fac1d..f9d1cda998 100644 --- a/resources/quality/flashforge/flashforge_adventurer3_fast.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer3_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] global_quality = True quality_type = fast -setting_version = 21 +setting_version = 22 type = quality weight = -1 diff --git a/resources/quality/flashforge/flashforge_adventurer3_fine.inst.cfg b/resources/quality/flashforge/flashforge_adventurer3_fine.inst.cfg index 0380146a38..2d0d2d5b81 100644 --- a/resources/quality/flashforge/flashforge_adventurer3_fine.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer3_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] global_quality = True quality_type = fine -setting_version = 21 +setting_version = 22 type = quality weight = 1 diff --git a/resources/quality/flashforge/flashforge_adventurer3_normal.inst.cfg b/resources/quality/flashforge/flashforge_adventurer3_normal.inst.cfg index 4caa292116..b70f28c86f 100644 --- a/resources/quality/flashforge/flashforge_adventurer3_normal.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer3_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] global_quality = True quality_type = normal -setting_version = 21 +setting_version = 22 type = quality weight = 0 diff --git a/resources/quality/flashforge/flashforge_adventurer3_vfast.inst.cfg b/resources/quality/flashforge/flashforge_adventurer3_vfast.inst.cfg index 1b229b4a99..3f6379a6f5 100644 --- a/resources/quality/flashforge/flashforge_adventurer3_vfast.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer3_vfast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] global_quality = True quality_type = veryfast -setting_version = 21 +setting_version = 22 type = quality weight = -2 diff --git a/resources/quality/flashforge/flashforge_adventurer3_vfine.inst.cfg b/resources/quality/flashforge/flashforge_adventurer3_vfine.inst.cfg index f379409c4d..b2015d40ea 100644 --- a/resources/quality/flashforge/flashforge_adventurer3_vfine.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer3_vfine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] global_quality = True quality_type = veryfine -setting_version = 21 +setting_version = 22 type = quality weight = 2 diff --git a/resources/quality/flashforge/flashforge_adventurer4_draft.inst.cfg b/resources/quality/flashforge/flashforge_adventurer4_draft.inst.cfg index 4e03ee768d..b2f6dc976c 100644 --- a/resources/quality/flashforge/flashforge_adventurer4_draft.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer4_draft.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] global_quality = True quality_type = draft -setting_version = 21 +setting_version = 22 type = quality weight = -3 diff --git a/resources/quality/flashforge/flashforge_adventurer4_fast.inst.cfg b/resources/quality/flashforge/flashforge_adventurer4_fast.inst.cfg index 6a55f7c1e9..a0a38c3655 100644 --- a/resources/quality/flashforge/flashforge_adventurer4_fast.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer4_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] global_quality = True quality_type = fast -setting_version = 21 +setting_version = 22 type = quality weight = -1 diff --git a/resources/quality/flashforge/flashforge_adventurer4_fine.inst.cfg b/resources/quality/flashforge/flashforge_adventurer4_fine.inst.cfg index e6d44d631e..8a5615287b 100644 --- a/resources/quality/flashforge/flashforge_adventurer4_fine.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer4_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] global_quality = True quality_type = fine -setting_version = 21 +setting_version = 22 type = quality weight = 1 diff --git a/resources/quality/flashforge/flashforge_adventurer4_normal.inst.cfg b/resources/quality/flashforge/flashforge_adventurer4_normal.inst.cfg index 0b0e69f8c6..64d0df68fc 100644 --- a/resources/quality/flashforge/flashforge_adventurer4_normal.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer4_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] global_quality = True quality_type = normal -setting_version = 21 +setting_version = 22 type = quality weight = 0 diff --git a/resources/quality/flashforge/flashforge_adventurer4_vfast.inst.cfg b/resources/quality/flashforge/flashforge_adventurer4_vfast.inst.cfg index a38f55477b..0b78e0e23e 100644 --- a/resources/quality/flashforge/flashforge_adventurer4_vfast.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer4_vfast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] global_quality = True quality_type = veryfast -setting_version = 21 +setting_version = 22 type = quality weight = -2 diff --git a/resources/quality/flashforge/flashforge_adventurer4_vfine.inst.cfg b/resources/quality/flashforge/flashforge_adventurer4_vfine.inst.cfg index 9ffcb1e44b..d3012d5975 100644 --- a/resources/quality/flashforge/flashforge_adventurer4_vfine.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer4_vfine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] global_quality = True quality_type = veryfine -setting_version = 21 +setting_version = 22 type = quality weight = 2 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_draft.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_draft.inst.cfg index 7a33b8e486..92467d9d57 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_draft.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_draft.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pc quality_type = draft -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -3 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_fast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_fast.inst.cfg index d6ff4cac8e..85811430f4 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_fast.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pc quality_type = fast -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -1 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_normal.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_normal.inst.cfg index 6b44a5dfc3..53431e511b 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_normal.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pc quality_type = normal -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 0 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_vfast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_vfast.inst.cfg index 0e7691a28d..6d35450f90 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_vfast.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_vfast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pc quality_type = veryfast -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_draft.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_draft.inst.cfg index d7afbddbcd..bf0c0cce2d 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_draft.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_draft.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pc quality_type = draft -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -3 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_fast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_fast.inst.cfg index 9267502a89..c7599784fa 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_fast.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pc quality_type = fast -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_vfast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_vfast.inst.cfg index 41fbacd635..7efde414c2 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_vfast.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_vfast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pc quality_type = veryfast -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_draft.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_draft.inst.cfg index b2927df668..a593db1ef2 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_draft.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_draft.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pc quality_type = draft -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -3 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_fast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_fast.inst.cfg index f341d7724f..7d7e937726 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_fast.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pc quality_type = fast -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -1 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_normal.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_normal.inst.cfg index 1e88648444..0806db424e 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_normal.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pc quality_type = normal -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 0 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_vfast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_vfast.inst.cfg index 2b3e88cdd7..3556c8bf06 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_vfast.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_vfast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pc quality_type = veryfast -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_draft.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_draft.inst.cfg index 3f6716dcff..4cd2861cbe 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_draft.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_draft.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pc quality_type = draft -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -3 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_fast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_fast.inst.cfg index 1b712bfa46..14e162a1fc 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_fast.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pc quality_type = fast -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_vfast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_vfast.inst.cfg index a39d97af60..f5a918d859 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_vfast.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_vfast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pc quality_type = veryfast -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_fine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_fine.inst.cfg index 3214b1e65f..e640d316fe 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_fine.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = fine -setting_version = 21 +setting_version = 22 type = quality variant = 0.3mm Nozzle weight = 1 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_vfine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_vfine.inst.cfg index d47b336d62..7ef3d79fe8 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_vfine.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_vfine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = veryfine -setting_version = 21 +setting_version = 22 type = quality variant = 0.3mm Nozzle weight = 2 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_draft.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_draft.inst.cfg index ac52407992..c51711ca2d 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_draft.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_draft.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = draft -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -3 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fast.inst.cfg index 3650f3e826..abc16dfcb7 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fast.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = fast -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -1 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fine.inst.cfg index ac4fc97e2e..6c39de897c 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fine.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = fine -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 1 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_normal.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_normal.inst.cfg index 7008a176b1..be51926c7a 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_normal.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = normal -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 0 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfast.inst.cfg index 5a694d0804..1d8286d204 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfast.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = veryfast -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfine.inst.cfg index 1677dbd0be..d06baed13c 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfine.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = veryfine -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 2 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_draft.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_draft.inst.cfg index 70fad425e8..2f54c96ea4 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_draft.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_draft.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = draft -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -3 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_fast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_fast.inst.cfg index d13a93b251..aa55c43ad7 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_fast.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = fast -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -1 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_vfast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_vfast.inst.cfg index 5bbfb6e05e..cb226be3c4 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_vfast.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_vfast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = veryfast -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_fine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_fine.inst.cfg index 434fc74717..a17c8d9648 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_fine.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = fine -setting_version = 21 +setting_version = 22 type = quality variant = 0.3mm Nozzle weight = 1 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_vfine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_vfine.inst.cfg index e89b76891d..5091364e72 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_vfine.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_vfine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = veryfine -setting_version = 21 +setting_version = 22 type = quality variant = 0.3mm Nozzle weight = 2 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_draft.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_draft.inst.cfg index 44444a4b1f..3a14489559 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_draft.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_draft.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = draft -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -3 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fast.inst.cfg index 6e5b64cd29..b573bf5ea6 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fast.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = fast -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -1 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fine.inst.cfg index d3fb722875..e00ff6968a 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fine.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = fine -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 1 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_normal.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_normal.inst.cfg index 8ebb7e12b2..56df96187f 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_normal.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = normal -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 0 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfast.inst.cfg index 4bf1f7d3a0..7001124129 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfast.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = veryfast -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfine.inst.cfg index 17f75527f2..a624956934 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfine.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = veryfine -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 2 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_draft.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_draft.inst.cfg index 1d7a88a4df..5976fdf225 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_draft.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_draft.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = draft -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -3 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_fast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_fast.inst.cfg index 428c853bab..39d500ea83 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_fast.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = fast -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -1 diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_vfast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_vfast.inst.cfg index 54fd9c2d6a..0d7f397d7e 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_vfast.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_vfast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_petg quality_type = veryfast -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_fine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_fine.inst.cfg index 1816945692..ee221f5814 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_fine.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = fine -setting_version = 21 +setting_version = 22 type = quality variant = 0.3mm Nozzle weight = 1 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_vfine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_vfine.inst.cfg index 803616ac35..10861d3ac8 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_vfine.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_vfine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = veryfine -setting_version = 21 +setting_version = 22 type = quality variant = 0.3mm Nozzle weight = 2 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_draft.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_draft.inst.cfg index ea4e0e7e9a..b31667ce5f 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_draft.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_draft.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = draft -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -3 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fast.inst.cfg index 54d7d5e4e5..1517fb9086 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fast.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = fast -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -1 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fine.inst.cfg index c8fcf7f463..b92f15246c 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fine.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = fine -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 1 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_normal.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_normal.inst.cfg index f3c48970d8..cb7476638b 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_normal.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = normal -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 0 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfast.inst.cfg index 101d2f5382..970670b211 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfast.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = veryfast -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfine.inst.cfg index bd044f5c75..a38658883b 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfine.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = veryfine -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 2 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_draft.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_draft.inst.cfg index 893f27f740..620302a481 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_draft.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_draft.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = draft -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_fast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_fast.inst.cfg index dc1dbb3290..e2f91de812 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_fast.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = fast -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -1 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_vfast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_vfast.inst.cfg index d125db24b2..b9f6ae4e88 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_vfast.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_vfast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = veryfast -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_fine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_fine.inst.cfg index 73c214ba7b..3ef15e1736 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_fine.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = fine -setting_version = 21 +setting_version = 22 type = quality variant = 0.3mm Nozzle weight = 1 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_vfine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_vfine.inst.cfg index 67674a8090..cdd22c946f 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_vfine.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_vfine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = veryfine -setting_version = 21 +setting_version = 22 type = quality variant = 0.3mm Nozzle weight = 2 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_draft.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_draft.inst.cfg index 38a42fd174..993064a6df 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_draft.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_draft.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = draft -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fast.inst.cfg index 4f4fc97a51..2d4aff0fe6 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fast.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = fine -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -1 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fine.inst.cfg index e2923e6248..37e0731f50 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fine.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = fine -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 1 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_normal.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_normal.inst.cfg index 3c7d6d77ff..8e2fe1b043 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_normal.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = normal -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 0 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfast.inst.cfg index 3ec1e8214a..dc887117c0 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfast.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = veryfast -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfine.inst.cfg index 51a47cb739..cdd5aae558 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfine.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = veryfine -setting_version = 21 +setting_version = 22 type = quality variant = 0.4mm Nozzle weight = 2 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_draft.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_draft.inst.cfg index 9ef5c56434..ac4966df73 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_draft.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_draft.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = draft -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -2 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_fast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_fast.inst.cfg index 86790e1c93..77538fb95e 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_fast.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = fast -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -1 diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_vfast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_vfast.inst.cfg index a29696a8ff..923d526e69 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_vfast.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_vfast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pla quality_type = veryfast -setting_version = 21 +setting_version = 22 type = quality variant = 0.6mm Nozzle weight = -2 From 1bdd4a67bdad5d54ff5d260b8c16a6ab149ecd39 Mon Sep 17 00:00:00 2001 From: wawanbreton Date: Tue, 5 Sep 2023 11:20:34 +0000 Subject: [PATCH 007/269] Applied printer-linter format --- 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 ba47c4977d..67e203abcf 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -8198,4 +8198,4 @@ } } } -} +} \ No newline at end of file From dc6edffea4da01e0d58ba4e6e95a74f5d35b8cb7 Mon Sep 17 00:00:00 2001 From: Fredrik Ehnbom Date: Sat, 21 Oct 2023 12:18:00 +0200 Subject: [PATCH 008/269] Add navigation style option --- cura/CuraApplication.py | 1 + resources/qml/Preferences/GeneralPage.qml | 50 +++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index e075fe92f5..ca10a12833 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -589,6 +589,7 @@ class CuraApplication(QtApplication): preferences.addPreference("view/invert_zoom", False) preferences.addPreference("view/filter_current_build_plate", False) + preferences.addPreference("view/navigation_style", "cura") preferences.addPreference("cura/sidebar_collapsed", False) preferences.addPreference("cura/favorite_materials", "") diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index 32bbcd5053..839dc59f29 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -101,6 +101,7 @@ UM.PreferencesPage centerOnSelectCheckbox.checked = boolCheck(UM.Preferences.getValue("view/center_on_select")) UM.Preferences.resetPreference("view/invert_zoom"); invertZoomCheckbox.checked = boolCheck(UM.Preferences.getValue("view/invert_zoom")) + UM.Preferences.resetPreference("view/navigation_style"); UM.Preferences.resetPreference("view/zoom_to_mouse"); zoomToMouseCheckbox.checked = boolCheck(UM.Preferences.getValue("view/zoom_to_mouse")) //UM.Preferences.resetPreference("view/top_layer_count"); @@ -604,6 +605,55 @@ UM.PreferencesPage } } + UM.TooltipArea + { + width: childrenRect.width + height: childrenRect.height + text: catalog.i18nc("@info:tooltip", "What type of camera navigation should be used?") + Column + { + spacing: UM.Theme.getSize("narrow_margin").height + + UM.Label + { + text: catalog.i18nc("@window:text", "Camera navigation:") + } + ListModel + { + id: navigationStylesList + Component.onCompleted: + { + append({ text: catalog.i18n("Cura"), code: "cura" }) + append({ text: catalog.i18n("FreeCAD trackpad"), code: "freecad_trackpad" }) + } + } + + Cura.ComboBox + { + id: cameraNavigationComboBox + + model: navigationStylesList + textRole: "text" + width: UM.Theme.getSize("combobox").width + height: UM.Theme.getSize("combobox").height + + currentIndex: + { + var code = UM.Preferences.getValue("view/navigation_style"); + for(var i = 0; i < comboBoxList.count; ++i) + { + if(model.get(i).code == code) + { + return i + } + } + return 0 + } + onActivated: UM.Preferences.setValue("view/navigation_style", model.get(index).code) + } + } + } + Item { //: Spacer From 39db261b4b6eadb2f3e95cbfc055b61c7b9f8bde Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 3 Nov 2023 13:13:27 +0100 Subject: [PATCH 009/269] Integrate prime tower mode setting --- cura/BuildVolume.py | 4 ++-- plugins/SliceInfoPlugin/SliceInfo.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index 2bfa654d4f..39cd356d3e 100755 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -854,7 +854,7 @@ class BuildVolume(SceneNode): result[extruder.getId()] = [] # Currently, the only normally printed object is the prime tower. - if self._global_container_stack.getProperty("prime_tower_enable", "value"): + if self._global_container_stack.getProperty("prime_tower_mode", "value") != 'none': prime_tower_size = self._global_container_stack.getProperty("prime_tower_size", "value") machine_width = self._global_container_stack.getProperty("machine_width", "value") machine_depth = self._global_container_stack.getProperty("machine_depth", "value") @@ -1182,7 +1182,7 @@ class BuildVolume(SceneNode): _raft_settings = ["adhesion_type", "raft_base_thickness", "raft_interface_layers", "raft_interface_thickness", "raft_surface_layers", "raft_surface_thickness", "raft_airgap", "layer_0_z_overlap"] _extra_z_settings = ["retraction_hop_enabled", "retraction_hop"] _prime_settings = ["extruder_prime_pos_x", "extruder_prime_pos_y", "prime_blob_enable"] - _tower_settings = ["prime_tower_enable", "prime_tower_size", "prime_tower_position_x", "prime_tower_position_y", "prime_tower_brim_enable", "prime_tower_base_size", "prime_tower_base_height"] + _tower_settings = ["prime_tower_mode", "prime_tower_size", "prime_tower_position_x", "prime_tower_position_y", "prime_tower_brim_enable", "prime_tower_base_size", "prime_tower_base_height"] _ooze_shield_settings = ["ooze_shield_enabled", "ooze_shield_dist"] _distance_settings = ["infill_wipe_dist", "travel_avoid_distance", "support_offset", "support_enable", "travel_avoid_other_parts", "travel_avoid_supports", "wall_line_count", "wall_line_width_0", "wall_line_width_x"] _extruder_settings = ["support_enable", "support_bottom_enable", "support_roof_enable", "support_infill_extruder_nr", "support_extruder_nr_layer_0", "support_bottom_extruder_nr", "support_roof_extruder_nr", "brim_line_count", "skirt_brim_extruder_nr", "raft_base_extruder_nr", "raft_interface_extruder_nr", "raft_surface_extruder_nr", "adhesion_type"] #Settings that can affect which extruders are used. diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index 7e7a132c98..04e083520b 100755 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -263,7 +263,7 @@ class SliceInfo(QObject, Extension): print_settings["retraction_enable"] = global_stack.getProperty("retraction_enable", "value") # Prime tower settings - print_settings["prime_tower_enable"] = global_stack.getProperty("prime_tower_enable", "value") + print_settings["prime_tower_mode"] = global_stack.getProperty("prime_tower_mode", "value") # Infill settings print_settings["infill_sparse_density"] = global_stack.getProperty("infill_sparse_density", "value") From 3bf84c88389a8c9cfb801d1fa8b94e6b2e645a93 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 24 Nov 2023 14:32:56 +0100 Subject: [PATCH 010/269] Terminology and descriptions refinement --- resources/definitions/fdmprinter.def.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 6ee61ab9a8..af08b23cb2 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6595,15 +6595,15 @@ { "prime_tower_mode": { - "label": "Prime Tower Mode", - "description": "Print a tower next to the print which serves to prime the material after each nozzle switch.", + "label": "Prime Tower", + "description": "Print a tower next to the model, which serves to prime the material after each nozzle switch.
  • None: do not generate a prime tower
  • Bucket: generate a solid prime bucket in which secondary materials are primed
  • Sparse bucket: generate a prime bucket while trying to waste as less material as possible
  • Sparse: generate a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other.
", "type": "enum", "options": { "none": "None", - "default": "Default", - "optimized": "Optimized", - "optimized_consistent": "Optimized consistent" + "default": "Bucket", + "optimized_consistent": "Sparse bucket", + "optimized": "Sparse" }, "default_value": "default", "enabled": "extruders_enabled_count > 1", From 794023711fc4adb530c0277e46fd24d0cfa8a91c Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Wed, 29 Nov 2023 14:06:39 +0100 Subject: [PATCH 011/269] WIP prime tower mode refinement --- resources/definitions/fdmprinter.def.json | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index af08b23cb2..5ab88de33f 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6596,18 +6596,17 @@ "prime_tower_mode": { "label": "Prime Tower", - "description": "Print a tower next to the model, which serves to prime the material after each nozzle switch.
  • None: do not generate a prime tower
  • Bucket: generate a solid prime bucket in which secondary materials are primed
  • Sparse bucket: generate a prime bucket while trying to waste as less material as possible
  • Sparse: generate a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other.
", + "description": "Print a tower next to the model, which serves to prime the material after each nozzle switch.
  • None: do not generate a prime tower
  • Bucket: generate a bucket in which secondary materials are primed
  • Sparse: generate a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other.
", "type": "enum", + "value": "'optimized' if all(material_type == extruderValues('material_type')[0] for material_type in extruderValues('material_type')) else 'optimized_consistent'", "options": { "none": "None", - "default": "Bucket", - "optimized_consistent": "Sparse bucket", + "optimized_consistent": "Bucket", "optimized": "Sparse" }, - "default_value": "default", + "default_value": "none", "enabled": "extruders_enabled_count > 1", - "resolve": "(extruders_enabled_count > 1) and any(extruderValues('prime_tower_mode'))", "settable_per_mesh": false, "settable_per_extruder": false }, From 3c86bf140ceba3e6830b0d483fdba5d17857e852 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 4 Dec 2023 19:47:07 +0100 Subject: [PATCH 012/269] Add support for OAuth2 client secret --- cura/OAuth2/AuthorizationHelpers.py | 2 ++ cura/OAuth2/Models.py | 1 + 2 files changed, 3 insertions(+) diff --git a/cura/OAuth2/AuthorizationHelpers.py b/cura/OAuth2/AuthorizationHelpers.py index a654ee4bdb..569ba80659 100644 --- a/cura/OAuth2/AuthorizationHelpers.py +++ b/cura/OAuth2/AuthorizationHelpers.py @@ -40,6 +40,7 @@ class AuthorizationHelpers: """ data = { "client_id": self._settings.CLIENT_ID if self._settings.CLIENT_ID is not None else "", + "client_secret": self._settings.CLIENT_SECRET if self._settings.CLIENT_SECRET is not None else "", "redirect_uri": self._settings.CALLBACK_URL if self._settings.CALLBACK_URL is not None else "", "grant_type": "authorization_code", "code": authorization_code, @@ -64,6 +65,7 @@ class AuthorizationHelpers: Logger.log("d", "Refreshing the access token for [%s]", self._settings.OAUTH_SERVER_URL) data = { "client_id": self._settings.CLIENT_ID if self._settings.CLIENT_ID is not None else "", + "client_secret": self._settings.CLIENT_SECRET if self._settings.CLIENT_SECRET is not None else "", "redirect_uri": self._settings.CALLBACK_URL if self._settings.CALLBACK_URL is not None else "", "grant_type": "refresh_token", "refresh_token": refresh_token, diff --git a/cura/OAuth2/Models.py b/cura/OAuth2/Models.py index 4c84872a09..3427f1cc3d 100644 --- a/cura/OAuth2/Models.py +++ b/cura/OAuth2/Models.py @@ -16,6 +16,7 @@ class OAuth2Settings(BaseModel): CALLBACK_PORT = None # type: Optional[int] OAUTH_SERVER_URL = None # type: Optional[str] CLIENT_ID = None # type: Optional[str] + CLIENT_SECRET = None # type: Optional[str] CLIENT_SCOPES = None # type: Optional[str] CALLBACK_URL = None # type: Optional[str] AUTH_DATA_PREFERENCE_KEY = "" # type: str From aac9af577bf6895665eb34dcae4e7fc5967caeff Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 4 Dec 2023 20:09:36 +0100 Subject: [PATCH 013/269] Fix AuthorizationService signals --- cura/OAuth2/AuthorizationService.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/cura/OAuth2/AuthorizationService.py b/cura/OAuth2/AuthorizationService.py index 62bf31982a..cac9c0df38 100644 --- a/cura/OAuth2/AuthorizationService.py +++ b/cura/OAuth2/AuthorizationService.py @@ -31,15 +31,15 @@ class AuthorizationService: account information. """ - # Emit signal when authentication is completed. - onAuthStateChanged = Signal() - - # Emit signal when authentication failed. - onAuthenticationError = Signal() - - accessTokenChanged = Signal() - def __init__(self, settings: "OAuth2Settings", preferences: Optional["Preferences"] = None) -> None: + # Emit signal when authentication is completed. + self.onAuthStateChanged = Signal() + + # Emit signal when authentication failed. + self.onAuthenticationError = Signal() + + self.accessTokenChanged = Signal() + self._settings = settings self._auth_helpers = AuthorizationHelpers(settings) self._auth_url = "{}/authorize".format(self._settings.OAUTH_SERVER_URL) From b794989468653d04c3e0e24044cb8ea61ce29dff Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 4 Dec 2023 20:58:11 +0100 Subject: [PATCH 014/269] Allow for OAuth service to stop after token has been retrieved --- cura/OAuth2/AuthorizationService.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cura/OAuth2/AuthorizationService.py b/cura/OAuth2/AuthorizationService.py index cac9c0df38..06478e911b 100644 --- a/cura/OAuth2/AuthorizationService.py +++ b/cura/OAuth2/AuthorizationService.py @@ -31,7 +31,10 @@ class AuthorizationService: account information. """ - def __init__(self, settings: "OAuth2Settings", preferences: Optional["Preferences"] = None) -> None: + def __init__(self, + settings: "OAuth2Settings", + preferences: Optional["Preferences"] = None, + get_user_profile: bool = True) -> None: # Emit signal when authentication is completed. self.onAuthStateChanged = Signal() @@ -45,6 +48,7 @@ class AuthorizationService: self._auth_url = "{}/authorize".format(self._settings.OAUTH_SERVER_URL) self._auth_data: Optional[AuthenticationResponse] = None self._user_profile: Optional["UserProfile"] = None + self._get_user_profile: bool = get_user_profile self._preferences = preferences self._server = LocalAuthorizationServer(self._auth_helpers, self._onAuthStateChanged, daemon=True) self._currently_refreshing_token = False # Whether we are currently in the process of refreshing auth. Don't make new requests while busy. @@ -294,7 +298,8 @@ class AuthorizationService: self._auth_data = auth_data self._currently_refreshing_token = False if auth_data: - self.getUserProfile() + if self._get_user_profile: + self.getUserProfile() self._preferences.setValue(self._settings.AUTH_DATA_PREFERENCE_KEY, json.dumps(auth_data.dump())) else: Logger.log("d", "Clearing the user profile") From 16715e6a3baac8d9e214096895648c935407b262 Mon Sep 17 00:00:00 2001 From: Christopher Peredy <16451370+mastercaution@users.noreply.github.com> Date: Sat, 9 Dec 2023 16:55:36 +0100 Subject: [PATCH 015/269] EN4 update Neptune 4 (Pro) definition Update same acceleration and start G-code settings according to Elegoo Cura v4.8.0_20231208. --- .../definitions/elegoo_neptune_4.def.json | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/resources/definitions/elegoo_neptune_4.def.json b/resources/definitions/elegoo_neptune_4.def.json index 21fd28f6f7..ed4856f540 100644 --- a/resources/definitions/elegoo_neptune_4.def.json +++ b/resources/definitions/elegoo_neptune_4.def.json @@ -9,16 +9,21 @@ }, "overrides": { - "acceleration_layer_0": { "value": 3000 }, - "acceleration_print": { "value": 3000 }, - "acceleration_travel": { "value": 5000 }, + "acceleration_print": + { + "default_value": 10000, + "maximum_value_warning": "20000", + "value": 10000 + }, + "acceleration_wall": { "value": "acceleration_print/2" }, "cool_fan_full_layer": { "value": 2 }, "infill_line_width": { "value": "line_width + 0.05" }, "infill_overlap": { "value": "0 if infill_sparse_density < 40.01 and infill_pattern != 'concentric' else -5" }, + "infill_pattern": { "value": "'lines' if infill_sparse_density > 35 else 'grid'" }, "initial_layer_line_width_factor": { "value": "100.0 if resolveOrValue('adhesion_type') == 'raft' else 125 if line_width < 0.5 else 110" }, - "machine_acceleration": { "value": 3000 }, + "machine_acceleration": { "value": 5000 }, "machine_depth": { "default_value": 230 }, - "machine_end_gcode": { "default_value": "G91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z2 ;Raise Z more\nG90 ;Absolute positionning\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z" }, + "machine_end_gcode": { "default_value": "G91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z2 ;Raise Z more\nG90 ;Absolute positionning\nG1 X0 Y{machine_depth - 5} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z" }, "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, "machine_head_with_fans_polygon": { @@ -32,12 +37,12 @@ "machine_heated_bed": { "default_value": true }, "machine_height": { "default_value": 270 }, "machine_max_acceleration_e": { "value": 5000 }, - "machine_max_acceleration_x": { "value": 5000 }, - "machine_max_acceleration_y": { "value": 5000 }, + "machine_max_acceleration_x": { "value": 20000 }, + "machine_max_acceleration_y": { "value": 20000 }, "machine_name": { "default_value": "ELEGOO NEPTUNE 4" }, "machine_nozzle_cool_down_speed": { "value": 0.75 }, "machine_nozzle_heat_up_speed": { "value": 1.6 }, - "machine_start_gcode": { "default_value": "G28 ;home\nG92 E0 ;Reset Extruder\nG1 Z4.0 F3000 ;Move Z Axis up\nG92 E0 ;Reset Extruder\nG1 X1.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X1.1 Y80.0 Z0.28 F1500.0 E10 ;Draw the first line\nG1 X1.4 Y80.0 Z0.28 F5000.0 ;Move to side a little\nG1 X1.4 Y20 Z0.28 F1500.0 E20 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up" }, + "machine_start_gcode": { "default_value": ";ELEGOO NEPTUNE 4 / 4 PRO\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140 ;Start heating extruder\nM190 S{material_bed_temperature_layer_0} ;Wait for the bed to reach print temp\nG90\nG28 ;home\nG1 Z10 F300\nG1 X67.5 Y0 F6000\nG1 Z0 F300\nM109 S{material_print_temperature_layer_0} ;Wait for extruder to reach print temp\nG92 E0 ;Reset Extruder\nG1 X67.5 Y0 Z0.4 F300 ;Move to start position\nG1 X167.5 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X162.5 F3000\nG92 E0 ;Reset Extruder" }, "machine_width": { "default_value": 235 }, "retraction_amount": { "default_value": 0.5 }, "retraction_count_max": { "value": 80 }, From 94f14b53f89f1e5c61a18aa22002af22d7a773b5 Mon Sep 17 00:00:00 2001 From: Christopher Peredy <16451370+mastercaution@users.noreply.github.com> Date: Sat, 9 Dec 2023 16:58:24 +0100 Subject: [PATCH 016/269] EN4 add Neptune 4 Plus and Max variants --- .../definitions/elegoo_neptune_4max.def.json | 57 +++++++++++++++++++ .../definitions/elegoo_neptune_4plus.def.json | 57 +++++++++++++++++++ .../elegoo_neptune_4max_0.20.inst.cfg | 13 +++++ .../elegoo_neptune_4max_0.40.inst.cfg | 13 +++++ .../elegoo_neptune_4max_0.60.inst.cfg | 13 +++++ .../elegoo_neptune_4max_0.80.inst.cfg | 13 +++++ .../elegoo_neptune_4plus_0.20.inst.cfg | 13 +++++ .../elegoo_neptune_4plus_0.40.inst.cfg | 13 +++++ .../elegoo_neptune_4plus_0.60.inst.cfg | 13 +++++ .../elegoo_neptune_4plus_0.80.inst.cfg | 13 +++++ 10 files changed, 218 insertions(+) create mode 100644 resources/definitions/elegoo_neptune_4max.def.json create mode 100644 resources/definitions/elegoo_neptune_4plus.def.json create mode 100644 resources/variants/elegoo/elegoo_neptune_4max/elegoo_neptune_4max_0.20.inst.cfg create mode 100644 resources/variants/elegoo/elegoo_neptune_4max/elegoo_neptune_4max_0.40.inst.cfg create mode 100644 resources/variants/elegoo/elegoo_neptune_4max/elegoo_neptune_4max_0.60.inst.cfg create mode 100644 resources/variants/elegoo/elegoo_neptune_4max/elegoo_neptune_4max_0.80.inst.cfg create mode 100644 resources/variants/elegoo/elegoo_neptune_4plus/elegoo_neptune_4plus_0.20.inst.cfg create mode 100644 resources/variants/elegoo/elegoo_neptune_4plus/elegoo_neptune_4plus_0.40.inst.cfg create mode 100644 resources/variants/elegoo/elegoo_neptune_4plus/elegoo_neptune_4plus_0.60.inst.cfg create mode 100644 resources/variants/elegoo/elegoo_neptune_4plus/elegoo_neptune_4plus_0.80.inst.cfg diff --git a/resources/definitions/elegoo_neptune_4max.def.json b/resources/definitions/elegoo_neptune_4max.def.json new file mode 100644 index 0000000000..c2240594b0 --- /dev/null +++ b/resources/definitions/elegoo_neptune_4max.def.json @@ -0,0 +1,57 @@ +{ + "version": 2, + "name": "ELEGOO NEPTUNE 4 Max", + "inherits": "elegoo_neptune_4", + "metadata": + { + "visible": true, + "author": "mastercaution", + "quality_definition": "elegoo_neptune_4" + }, + "overrides": + { + "acceleration_print": + { + "default_value": 2500, + "maximum_value_warning": "15000", + "value": 2500 + }, + "machine_depth": { "default_value": 430 }, + "machine_height": { "default_value": 482 }, + "machine_max_acceleration_e": { "value": 5000 }, + "machine_max_acceleration_x": { "value": 15000 }, + "machine_max_acceleration_y": { "value": 15000 }, + "machine_name": { "default_value": "ELEGOO NEPTUNE 4 Max" }, + "machine_start_gcode": { "default_value": ";ELEGOO NEPTUNE 4 MAX\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140 ;Start heating extruder\nM190 S{material_bed_temperature_layer_0} ;Wait for the bed to reach print temp\nG90\nG28 ;home\nG1 Z10 F300\nG1 X165 Y0 F6000\nG1 Z0 F300\nM109 S{material_print_temperature_layer_0} ;Wait for extruder to reach print temp\nG92 E0 ;Reset Extruder\nG1 X165 Y0 Z0.4 F300 ;Move to start position\nG1 X265 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X260 F3000\nG92 E0 ;Reset Extruder" }, + "machine_width": { "default_value": 430 }, + "nozzle_disallowed_areas": + { + "default_value": [ + [ + [-165, -165], + [-165, 165], + [-161, 165], + [-161, -165] + ], + [ + [165, 165], + [165, -165], + [161, -165], + [161, 165] + ], + [ + [-165, -165], + [165, -165], + [-165, -161], + [165, -161] + ], + [ + [-165, 165], + [165, 165], + [-165, 161], + [165, 161] + ] + ] + } + } +} \ No newline at end of file diff --git a/resources/definitions/elegoo_neptune_4plus.def.json b/resources/definitions/elegoo_neptune_4plus.def.json new file mode 100644 index 0000000000..703db64634 --- /dev/null +++ b/resources/definitions/elegoo_neptune_4plus.def.json @@ -0,0 +1,57 @@ +{ + "version": 2, + "name": "ELEGOO NEPTUNE 4 Plus", + "inherits": "elegoo_neptune_4", + "metadata": + { + "visible": true, + "author": "mastercaution", + "quality_definition": "elegoo_neptune_4" + }, + "overrides": + { + "acceleration_print": + { + "default_value": 4000, + "value": 4000 + }, + "machine_acceleration": { "value": 4000 }, + "machine_depth": { "default_value": 330 }, + "machine_height": { "default_value": 387 }, + "machine_max_acceleration_e": { "value": 5000 }, + "machine_max_acceleration_x": { "value": 20000 }, + "machine_max_acceleration_y": { "value": 20000 }, + "machine_name": { "default_value": "ELEGOO NEPTUNE 4 Plus" }, + "machine_start_gcode": { "default_value": ";ELEGOO NEPTUNE 4 PLUS\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140 ;Start heating extruder\nM190 S{material_bed_temperature_layer_0} ;Wait for the bed to reach print temp\nG90\nG28 ;home\nG1 Z10 F300\nG1 X115 Y0 F6000\nG1 Z0 F300\nM109 S{material_print_temperature_layer_0} ;Wait for extruder to reach print temp\nG92 E0 ;Reset Extruder\nG1 X115 Y0 Z0.4 F300 ;Move to start position\nG1 X215 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X210 F3000\nG92 E0 ;Reset Extruder" }, + "machine_width": { "default_value": 330 }, + "nozzle_disallowed_areas": + { + "default_value": [ + [ + [-165, -165], + [-165, 165], + [-161, 165], + [-161, -165] + ], + [ + [165, 165], + [165, -165], + [161, -165], + [161, 165] + ], + [ + [-165, -165], + [165, -165], + [-165, -161], + [165, -161] + ], + [ + [-165, 165], + [165, 165], + [-165, 161], + [165, 161] + ] + ] + } + } +} \ No newline at end of file diff --git a/resources/variants/elegoo/elegoo_neptune_4max/elegoo_neptune_4max_0.20.inst.cfg b/resources/variants/elegoo/elegoo_neptune_4max/elegoo_neptune_4max_0.20.inst.cfg new file mode 100644 index 0000000000..5dea2c50ce --- /dev/null +++ b/resources/variants/elegoo/elegoo_neptune_4max/elegoo_neptune_4max_0.20.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = elegoo_neptune_4max +name = 0.20mm_Elegoo_Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.2 + diff --git a/resources/variants/elegoo/elegoo_neptune_4max/elegoo_neptune_4max_0.40.inst.cfg b/resources/variants/elegoo/elegoo_neptune_4max/elegoo_neptune_4max_0.40.inst.cfg new file mode 100644 index 0000000000..a7d62bdcff --- /dev/null +++ b/resources/variants/elegoo/elegoo_neptune_4max/elegoo_neptune_4max_0.40.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = elegoo_neptune_4max +name = 0.40mm_Elegoo_Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/elegoo/elegoo_neptune_4max/elegoo_neptune_4max_0.60.inst.cfg b/resources/variants/elegoo/elegoo_neptune_4max/elegoo_neptune_4max_0.60.inst.cfg new file mode 100644 index 0000000000..018d6d4881 --- /dev/null +++ b/resources/variants/elegoo/elegoo_neptune_4max/elegoo_neptune_4max_0.60.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = elegoo_neptune_4max +name = 0.60mm_Elegoo_Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.6 + diff --git a/resources/variants/elegoo/elegoo_neptune_4max/elegoo_neptune_4max_0.80.inst.cfg b/resources/variants/elegoo/elegoo_neptune_4max/elegoo_neptune_4max_0.80.inst.cfg new file mode 100644 index 0000000000..fc7177d14c --- /dev/null +++ b/resources/variants/elegoo/elegoo_neptune_4max/elegoo_neptune_4max_0.80.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = elegoo_neptune_4max +name = 0.80mm_Elegoo_Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.8 + diff --git a/resources/variants/elegoo/elegoo_neptune_4plus/elegoo_neptune_4plus_0.20.inst.cfg b/resources/variants/elegoo/elegoo_neptune_4plus/elegoo_neptune_4plus_0.20.inst.cfg new file mode 100644 index 0000000000..16ac330f8a --- /dev/null +++ b/resources/variants/elegoo/elegoo_neptune_4plus/elegoo_neptune_4plus_0.20.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = elegoo_neptune_4plus +name = 0.20mm_Elegoo_Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.2 + diff --git a/resources/variants/elegoo/elegoo_neptune_4plus/elegoo_neptune_4plus_0.40.inst.cfg b/resources/variants/elegoo/elegoo_neptune_4plus/elegoo_neptune_4plus_0.40.inst.cfg new file mode 100644 index 0000000000..2d0237ff34 --- /dev/null +++ b/resources/variants/elegoo/elegoo_neptune_4plus/elegoo_neptune_4plus_0.40.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = elegoo_neptune_4plus +name = 0.40mm_Elegoo_Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/elegoo/elegoo_neptune_4plus/elegoo_neptune_4plus_0.60.inst.cfg b/resources/variants/elegoo/elegoo_neptune_4plus/elegoo_neptune_4plus_0.60.inst.cfg new file mode 100644 index 0000000000..bd960d80e1 --- /dev/null +++ b/resources/variants/elegoo/elegoo_neptune_4plus/elegoo_neptune_4plus_0.60.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = elegoo_neptune_4plus +name = 0.60mm_Elegoo_Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.6 + diff --git a/resources/variants/elegoo/elegoo_neptune_4plus/elegoo_neptune_4plus_0.80.inst.cfg b/resources/variants/elegoo/elegoo_neptune_4plus/elegoo_neptune_4plus_0.80.inst.cfg new file mode 100644 index 0000000000..32d3860498 --- /dev/null +++ b/resources/variants/elegoo/elegoo_neptune_4plus/elegoo_neptune_4plus_0.80.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = elegoo_neptune_4plus +name = 0.80mm_Elegoo_Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.8 + From 8116df6c2162a1877a169d3949e15e377faac30a Mon Sep 17 00:00:00 2001 From: Dmitry Gribenchuk Date: Wed, 13 Dec 2023 20:10:28 +0200 Subject: [PATCH 017/269] cleanup unused import and fix comment space --- plugins/3MFWriter/ThreeMFWriter.py | 3 --- plugins/DigitalLibrary/__init__.py | 1 - .../DigitalLibrary/src/DigitalFactoryApiClient.py | 1 - .../src/DigitalFactoryProjectModel.py | 1 - plugins/GCodeGzWriter/__init__.py | 1 - plugins/GCodeWriter/GCodeWriter.py | 1 - plugins/Marketplace/MissingPackageList.py | 2 -- plugins/Marketplace/PackageModel.py | 2 -- .../PerObjectSettingVisibilityHandler.py | 2 +- plugins/PostProcessingPlugin/scripts/ColorMix.py | 2 +- .../scripts/DisplayFilenameAndLayerOnLCD.py | 1 - .../scripts/DisplayInfoOnLCD.py | 3 --- .../scripts/DisplayProgressOnLCD.py | 2 -- .../PostProcessingPlugin/scripts/FilamentChange.py | 2 +- .../PostProcessingPlugin/scripts/PauseAtHeight.py | 2 +- .../scripts/SearchAndReplace.py | 2 +- .../RemovableDriveOutputDevice.py | 2 +- plugins/SimulationView/SimulationViewProxy.py | 1 - plugins/SliceInfoPlugin/SliceInfo.py | 2 +- plugins/SolidView/SolidView.py | 2 -- plugins/UFPWriter/UFPWriter.py | 1 - plugins/UFPWriter/__init__.py | 4 ++-- plugins/USBPrinting/AutoDetectBaudJob.py | 3 --- plugins/USBPrinting/USBPrinterOutputDevice.py | 8 ++++---- .../VersionUpgrade21to22/MachineInstance.py | 14 +++++++------- .../VersionUpgrade21to22/Preferences.py | 6 +++--- .../VersionUpgrade/VersionUpgrade21to22/Profile.py | 4 ++-- plugins/XRayView/XRayView.py | 1 - plugins/XmlMaterialProfile/XmlMaterialProfile.py | 6 +++--- scripts/fix_translation_memory.py | 3 +-- scripts/lionbridge_import.py | 6 +++--- 31 files changed, 32 insertions(+), 59 deletions(-) diff --git a/plugins/3MFWriter/ThreeMFWriter.py b/plugins/3MFWriter/ThreeMFWriter.py index ad4b0d8dad..0a939e5b8a 100644 --- a/plugins/3MFWriter/ThreeMFWriter.py +++ b/plugins/3MFWriter/ThreeMFWriter.py @@ -10,11 +10,8 @@ from UM.Math.Vector import Vector from UM.Logger import Logger from UM.Math.Matrix import Matrix from UM.Application import Application -from UM.Message import Message -from UM.Resources import Resources from UM.Scene.SceneNode import SceneNode from UM.Settings.ContainerRegistry import ContainerRegistry -from UM.Settings.EmptyInstanceContainer import EmptyInstanceContainer from cura.CuraApplication import CuraApplication from cura.CuraPackageManager import CuraPackageManager diff --git a/plugins/DigitalLibrary/__init__.py b/plugins/DigitalLibrary/__init__.py index 968aef66ee..fc27f873c8 100644 --- a/plugins/DigitalLibrary/__init__.py +++ b/plugins/DigitalLibrary/__init__.py @@ -1,7 +1,6 @@ # Copyright (c) 2021 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -from UM.MimeTypeDatabase import MimeType, MimeTypeDatabase from .src import DigitalFactoryFileProvider, DigitalFactoryOutputDevicePlugin, DigitalFactoryController diff --git a/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py b/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py index 1168928588..c0ce594ecf 100644 --- a/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py +++ b/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py @@ -3,7 +3,6 @@ import json from json import JSONDecodeError -import re from time import time from typing import List, Any, Optional, Union, Type, Tuple, Dict, cast, TypeVar, Callable diff --git a/plugins/DigitalLibrary/src/DigitalFactoryProjectModel.py b/plugins/DigitalLibrary/src/DigitalFactoryProjectModel.py index 92aa92ef4c..bd12a4ca12 100644 --- a/plugins/DigitalLibrary/src/DigitalFactoryProjectModel.py +++ b/plugins/DigitalLibrary/src/DigitalFactoryProjectModel.py @@ -4,7 +4,6 @@ from typing import List, Optional from PyQt6.QtCore import Qt, pyqtSignal -from UM.Logger import Logger from UM.Qt.ListModel import ListModel from .DigitalFactoryProjectResponse import DigitalFactoryProjectResponse diff --git a/plugins/GCodeGzWriter/__init__.py b/plugins/GCodeGzWriter/__init__.py index 95949eee74..1f350d686c 100644 --- a/plugins/GCodeGzWriter/__init__.py +++ b/plugins/GCodeGzWriter/__init__.py @@ -2,7 +2,6 @@ # Cura is released under the terms of the LGPLv3 or higher. from UM.i18n import i18nCatalog -from UM.Platform import Platform from . import GCodeGzWriter diff --git a/plugins/GCodeWriter/GCodeWriter.py b/plugins/GCodeWriter/GCodeWriter.py index 667e064d90..9fa4f88614 100644 --- a/plugins/GCodeWriter/GCodeWriter.py +++ b/plugins/GCodeWriter/GCodeWriter.py @@ -11,7 +11,6 @@ from UM.Settings.InstanceContainer import InstanceContainer from cura.Machines.ContainerTree import ContainerTree from UM.i18n import i18nCatalog -from cura.Settings.CuraStackBuilder import CuraStackBuilder catalog = i18nCatalog("cura") diff --git a/plugins/Marketplace/MissingPackageList.py b/plugins/Marketplace/MissingPackageList.py index 018e977823..38d7718dc0 100644 --- a/plugins/Marketplace/MissingPackageList.py +++ b/plugins/Marketplace/MissingPackageList.py @@ -3,12 +3,10 @@ from typing import Optional, TYPE_CHECKING, Dict, List -from .Constants import PACKAGES_URL from .PackageModel import PackageModel from .RemotePackageList import RemotePackageList from PyQt6.QtCore import pyqtSignal, QObject, pyqtProperty, QCoreApplication -from UM.TaskManagement.HttpRequestManager import HttpRequestManager # To request the package list from the API. from UM.i18n import i18nCatalog if TYPE_CHECKING: diff --git a/plugins/Marketplace/PackageModel.py b/plugins/Marketplace/PackageModel.py index afc6e0ce73..ddd8f9b531 100644 --- a/plugins/Marketplace/PackageModel.py +++ b/plugins/Marketplace/PackageModel.py @@ -2,7 +2,6 @@ # Cura is released under the terms of the LGPLv3 or higher. import re -from enum import Enum from typing import Any, cast, Dict, List, Optional from PyQt6.QtCore import pyqtProperty, QObject, pyqtSignal, pyqtSlot @@ -12,7 +11,6 @@ from cura.CuraApplication import CuraApplication from cura.CuraPackageManager import CuraPackageManager from cura.Settings.CuraContainerRegistry import CuraContainerRegistry # To get names of materials we're compatible with. from UM.i18n import i18nCatalog # To translate placeholder names if data is not present. -from UM.Logger import Logger from UM.PluginRegistry import PluginRegistry catalog = i18nCatalog("cura") diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py index 15f37e499d..d6b433a0c2 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py @@ -11,7 +11,7 @@ from UM.Settings.SettingInstance import SettingInstance from UM.Logger import Logger import UM.Settings.Models.SettingVisibilityHandler -from cura.Settings.ExtruderManager import ExtruderManager #To get global-inherits-stack setting values from different extruders. +from cura.Settings.ExtruderManager import ExtruderManager # To get global-inherits-stack setting values from different extruders. from cura.Settings.SettingOverrideDecorator import SettingOverrideDecorator diff --git a/plugins/PostProcessingPlugin/scripts/ColorMix.py b/plugins/PostProcessingPlugin/scripts/ColorMix.py index 534c0208cf..000661b46b 100644 --- a/plugins/PostProcessingPlugin/scripts/ColorMix.py +++ b/plugins/PostProcessingPlugin/scripts/ColorMix.py @@ -21,7 +21,7 @@ # M163 - Set Mix Factor # M164 - Save Mix - saves to T2 as a unique mix -import re #To perform the search and replace. +import re # To perform the search and replace. from ..Script import Script class ColorMix(Script): diff --git a/plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD.py index bfe04b2bea..a5edb78d35 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD.py @@ -6,7 +6,6 @@ # Description: This plugin is now an option in 'Display Info on LCD' from ..Script import Script -from UM.Application import Application from UM.Message import Message class DisplayFilenameAndLayerOnLCD(Script): diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index 784a18b2e5..63c1c8c788 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -30,9 +30,6 @@ from ..Script import Script from UM.Application import Application from UM.Qt.Duration import DurationFormat -import UM.Util -import configparser -from UM.Preferences import Preferences import time import datetime import math diff --git a/plugins/PostProcessingPlugin/scripts/DisplayProgressOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayProgressOnLCD.py index 4d24aedac0..03cb375514 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayProgressOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayProgressOnLCD.py @@ -7,8 +7,6 @@ from ..Script import Script -import re -import datetime from UM.Message import Message class DisplayProgressOnLCD(Script): diff --git a/plugins/PostProcessingPlugin/scripts/FilamentChange.py b/plugins/PostProcessingPlugin/scripts/FilamentChange.py index 93941c0992..6fe28ef2f2 100644 --- a/plugins/PostProcessingPlugin/scripts/FilamentChange.py +++ b/plugins/PostProcessingPlugin/scripts/FilamentChange.py @@ -7,7 +7,7 @@ from typing import List from ..Script import Script -from UM.Application import Application #To get the current printer's settings. +from UM.Application import Application # To get the current printer's settings. class FilamentChange(Script): diff --git a/plugins/PostProcessingPlugin/scripts/PauseAtHeight.py b/plugins/PostProcessingPlugin/scripts/PauseAtHeight.py index 3d85740bd4..f502678317 100644 --- a/plugins/PostProcessingPlugin/scripts/PauseAtHeight.py +++ b/plugins/PostProcessingPlugin/scripts/PauseAtHeight.py @@ -7,7 +7,7 @@ from ..Script import Script import re -from UM.Application import Application #To get the current printer's settings. +from UM.Application import Application # To get the current printer's settings. from UM.Logger import Logger from typing import List, Tuple diff --git a/plugins/PostProcessingPlugin/scripts/SearchAndReplace.py b/plugins/PostProcessingPlugin/scripts/SearchAndReplace.py index 7a12c229cc..dabc6b725a 100644 --- a/plugins/PostProcessingPlugin/scripts/SearchAndReplace.py +++ b/plugins/PostProcessingPlugin/scripts/SearchAndReplace.py @@ -1,7 +1,7 @@ # Copyright (c) 2017 Ghostkeeper # The PostProcessingPlugin is released under the terms of the LGPLv3 or higher. -import re #To perform the search and replace. +import re # To perform the search and replace. from ..Script import Script diff --git a/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py b/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py index 8c0c50d0b4..a9a0666d9c 100644 --- a/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py +++ b/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py @@ -8,7 +8,7 @@ from UM.Application import Application from UM.Logger import Logger from UM.Message import Message from UM.FileHandler.WriteFileJob import WriteFileJob -from UM.FileHandler.FileWriter import FileWriter #To check against the write modes (text vs. binary). +from UM.FileHandler.FileWriter import FileWriter # To check against the write modes (text vs. binary). from UM.Scene.Iterator.BreadthFirstIterator import BreadthFirstIterator from UM.OutputDevice.OutputDevice import OutputDevice from UM.OutputDevice import OutputDeviceError diff --git a/plugins/SimulationView/SimulationViewProxy.py b/plugins/SimulationView/SimulationViewProxy.py index 576281874c..3bf2ed6f49 100644 --- a/plugins/SimulationView/SimulationViewProxy.py +++ b/plugins/SimulationView/SimulationViewProxy.py @@ -2,7 +2,6 @@ # Cura is released under the terms of the LGPLv3 or higher. from typing import TYPE_CHECKING -import numpy from PyQt6.QtCore import QObject, pyqtSignal, pyqtProperty from UM.FlameProfiler import pyqtSlot from UM.Application import Application diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index 7e7a132c98..be021251da 100755 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -5,7 +5,7 @@ import json import os import platform import time -from typing import cast, Optional, Set, TYPE_CHECKING +from typing import Optional, Set, TYPE_CHECKING from PyQt6.QtCore import pyqtSlot, QObject from PyQt6.QtNetwork import QNetworkRequest diff --git a/plugins/SolidView/SolidView.py b/plugins/SolidView/SolidView.py index b7aeb90da4..7f32b0df7f 100644 --- a/plugins/SolidView/SolidView.py +++ b/plugins/SolidView/SolidView.py @@ -16,8 +16,6 @@ from UM.Application import Application from UM.Logger import Logger from UM.Message import Message from UM.Math.Color import Color -from UM.PluginRegistry import PluginRegistry -from UM.Platform import Platform from UM.Event import Event from UM.View.RenderBatch import RenderBatch diff --git a/plugins/UFPWriter/UFPWriter.py b/plugins/UFPWriter/UFPWriter.py index c8064ac37f..475e5fc01a 100644 --- a/plugins/UFPWriter/UFPWriter.py +++ b/plugins/UFPWriter/UFPWriter.py @@ -22,7 +22,6 @@ from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator from UM.Scene.SceneNode import SceneNode from UM.Settings.InstanceContainer import InstanceContainer from cura.CuraApplication import CuraApplication -from cura.Settings.CuraStackBuilder import CuraStackBuilder from cura.Settings.GlobalStack import GlobalStack from cura.Utils.Threading import call_on_qt_thread diff --git a/plugins/UFPWriter/__init__.py b/plugins/UFPWriter/__init__.py index ae51f78e95..8561454856 100644 --- a/plugins/UFPWriter/__init__.py +++ b/plugins/UFPWriter/__init__.py @@ -9,8 +9,8 @@ try: except ImportError: Logger.log("w", "Could not import UFPWriter; libCharon may be missing") -from UM.i18n import i18nCatalog #To translate the file format description. -from UM.Mesh.MeshWriter import MeshWriter #For the binary mode flag. +from UM.i18n import i18nCatalog # To translate the file format description. +from UM.Mesh.MeshWriter import MeshWriter # For the binary mode flag. i18n_catalog = i18nCatalog("cura") diff --git a/plugins/USBPrinting/AutoDetectBaudJob.py b/plugins/USBPrinting/AutoDetectBaudJob.py index 5a8e455720..c26e5e8824 100644 --- a/plugins/USBPrinting/AutoDetectBaudJob.py +++ b/plugins/USBPrinting/AutoDetectBaudJob.py @@ -4,9 +4,6 @@ from UM.Job import Job from UM.Logger import Logger -from .avr_isp import ispBase -from .avr_isp.stk500v2 import Stk500v2 - from time import time, sleep from serial import Serial, SerialException diff --git a/plugins/USBPrinting/USBPrinterOutputDevice.py b/plugins/USBPrinting/USBPrinterOutputDevice.py index 1155420b60..85b98e532b 100644 --- a/plugins/USBPrinting/USBPrinterOutputDevice.py +++ b/plugins/USBPrinting/USBPrinterOutputDevice.py @@ -5,9 +5,9 @@ import os from UM.i18n import i18nCatalog from UM.Logger import Logger -from UM.Mesh.MeshWriter import MeshWriter #To get the g-code output. -from UM.Message import Message #Show an error when already printing. -from UM.PluginRegistry import PluginRegistry #To get the g-code output. +from UM.Mesh.MeshWriter import MeshWriter # To get the g-code output. +from UM.Message import Message # Show an error when already printing. +from UM.PluginRegistry import PluginRegistry # To get the g-code output. from UM.Qt.Duration import DurationFormat from cura.CuraApplication import CuraApplication @@ -19,7 +19,7 @@ from cura.PrinterOutput.GenericOutputController import GenericOutputController from .AutoDetectBaudJob import AutoDetectBaudJob from .AvrFirmwareUpdater import AvrFirmwareUpdater -from io import StringIO #To write the g-code output. +from io import StringIO # To write the g-code output. from queue import Queue from serial import Serial, SerialException, SerialTimeoutException from threading import Thread, Event diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py index ff5c33517d..be6002e269 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py @@ -1,16 +1,16 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -import configparser #To read config files. -import io #To write config files to strings as if they were files. -import os.path #To get the path to write new user profiles to. +import configparser # To read config files. +import io # To write config files to strings as if they were files. +import os.path # To get the path to write new user profiles to. from typing import Dict, List, Optional, Set, Tuple -import urllib #To serialise the user container file name properly. +import urllib # To serialise the user container file name properly. import urllib.parse -import UM.VersionUpgrade #To indicate that a file is of incorrect format. -import UM.VersionUpgradeManager #To schedule more files to be upgraded. -from UM.Resources import Resources #To get the config storage path. +import UM.VersionUpgrade # To indicate that a file is of incorrect format. +import UM.VersionUpgradeManager # To schedule more files to be upgraded. +from UM.Resources import Resources # To get the config storage path. ## Creates a new machine instance instance by parsing a serialised machine # instance in version 1 of the file format. diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py b/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py index 953837b863..906f868af9 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py @@ -1,11 +1,11 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -import configparser #To read config files. -import io #To output config files to string. +import configparser # To read config files. +import io # To output config files to string. from typing import List, Optional, Tuple -import UM.VersionUpgrade #To indicate that a file is of the wrong format. +import UM.VersionUpgrade # To indicate that a file is of the wrong format. ## Creates a new preferences instance by parsing a serialised preferences file # in version 1 of the file format. diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py index 8419b3beeb..7e5f330a36 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py @@ -1,8 +1,8 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -import configparser #To read config files. -import io #To write config files to strings as if they were files. +import configparser # To read config files. +import io # To write config files to strings as if they were files. from typing import Dict, List, Optional, Tuple import UM.VersionUpgrade diff --git a/plugins/XRayView/XRayView.py b/plugins/XRayView/XRayView.py index 5af7b17652..b27e615e56 100644 --- a/plugins/XRayView/XRayView.py +++ b/plugins/XRayView/XRayView.py @@ -7,7 +7,6 @@ from PyQt6.QtGui import QOpenGLContext, QImage from UM.Application import Application from UM.Logger import Logger from UM.Math.Color import Color -from UM.PluginRegistry import PluginRegistry from UM.Resources import Resources from UM.Platform import Platform from UM.Event import Event diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 490d704d19..5d4efd7cab 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -3,9 +3,9 @@ import copy import io -import json #To parse the product-to-id mapping file. -import os.path #To find the product-to-id mapping. -from typing import Any, Dict, List, Optional, Tuple, cast, Set, Union +import json # To parse the product-to-id mapping file. +import os.path #T o find the product-to-id mapping. +from typing import Any, Dict, List, Optional, Tuple, cast, Set import xml.etree.ElementTree as ET from UM.PluginRegistry import PluginRegistry diff --git a/scripts/fix_translation_memory.py b/scripts/fix_translation_memory.py index 610fb93ac6..979cc92eb7 100644 --- a/scripts/fix_translation_memory.py +++ b/scripts/fix_translation_memory.py @@ -5,9 +5,8 @@ import re import argparse from pathlib import Path from fuzzywuzzy import fuzz -from fuzzywuzzy import process import xml.etree.ElementTree as ET -from xml.sax.saxutils import unescape, escape, quoteattr +from xml.sax.saxutils import unescape def load_existing_xmtm(path: Path) -> ET.Element: diff --git a/scripts/lionbridge_import.py b/scripts/lionbridge_import.py index 65b07183a3..c73361a912 100644 --- a/scripts/lionbridge_import.py +++ b/scripts/lionbridge_import.py @@ -1,10 +1,10 @@ # Copyright (c) 2021 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -import argparse #To get the source directory from command line arguments. +import argparse # To get the source directory from command line arguments. import io # To fix encoding issues in Windows -import os #To find files from the source. -import os.path #To find files from the source and the destination path. +import os # To find files from the source. +import os.path # To find files from the source and the destination path. cura_files = {"cura", "fdmprinter.def.json", "fdmextruder.def.json"} uranium_files = {"uranium"} From aff37dae3fc4057f356d6d420ecbc1337ffdee88 Mon Sep 17 00:00:00 2001 From: Dmitry Gribenchuk Date: Thu, 14 Dec 2023 11:00:06 +0200 Subject: [PATCH 018/269] fix comment space --- plugins/XmlMaterialProfile/XmlMaterialProfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 5d4efd7cab..41beb88419 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -4,7 +4,7 @@ import copy import io import json # To parse the product-to-id mapping file. -import os.path #T o find the product-to-id mapping. +import os.path # To find the product-to-id mapping. from typing import Any, Dict, List, Optional, Tuple, cast, Set import xml.etree.ElementTree as ET From 1941fbe90be65ea6fab393bdfeed6a8bf30dbab8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Thu, 14 Dec 2023 12:52:26 +0100 Subject: [PATCH 019/269] Avoid "KeyError: material_name" crash in Fedora Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/UM/Qt/ListModel.py", line 54, in data return self._items[index.row()][self._role_names[role].decode("utf-8")] ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ KeyError: 'material_name' Downstream report: https://bugzilla.redhat.com/show_bug.cgi?id=2252195 Community: https://community.ultimaker.com/topic/44538-cura-53-crashs-at-startup/ For reasons unknown, this crash does not happen with the AppImage. Nevertheless, in 2baada8a70b15dd87948a25855e17d15b0ece58c material_name was added as a role, not material_label. Reaming the field in the sentinel extruder makes the crash go away. --- cura/Machines/Models/ExtrudersModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Machines/Models/ExtrudersModel.py b/cura/Machines/Models/ExtrudersModel.py index 2677894bff..f31f7c8717 100644 --- a/cura/Machines/Models/ExtrudersModel.py +++ b/cura/Machines/Models/ExtrudersModel.py @@ -227,7 +227,7 @@ class ExtrudersModel(ListModel): "material_brand": "", "color_name": "", "material_type": "", - "material_label": "" + "material_name": "" } items.append(item) if self._items != items: From 380f0ed27032c8e4e860f343590bf7d36ea85f9b Mon Sep 17 00:00:00 2001 From: Christopher Peredy <16451370+mastercaution@users.noreply.github.com> Date: Tue, 19 Dec 2023 19:48:16 +0100 Subject: [PATCH 020/269] EN4 fix `nozzle_disallowed_areas` for N4 Max --- .../definitions/elegoo_neptune_4max.def.json | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/resources/definitions/elegoo_neptune_4max.def.json b/resources/definitions/elegoo_neptune_4max.def.json index c2240594b0..9ea53650cb 100644 --- a/resources/definitions/elegoo_neptune_4max.def.json +++ b/resources/definitions/elegoo_neptune_4max.def.json @@ -28,28 +28,28 @@ { "default_value": [ [ - [-165, -165], - [-165, 165], - [-161, 165], - [-161, -165] + [-215, -215], + [-215, 215], + [-211, 215], + [-211, -215] ], [ - [165, 165], - [165, -165], - [161, -165], - [161, 165] + [215, 215], + [215, -215], + [211, -215], + [211, 215] ], [ - [-165, -165], - [165, -165], - [-165, -161], - [165, -161] + [-215, -215], + [215, -215], + [-215, -211], + [215, -211] ], [ - [-165, 165], - [165, 165], - [-165, 161], - [165, 161] + [-215, 215], + [215, 215], + [-215, 211], + [215, 211] ] ] } From 8e0831a1e7910a66e46c9191bb816bdcb9ee48ae Mon Sep 17 00:00:00 2001 From: Christopher Peredy <16451370+mastercaution@users.noreply.github.com> Date: Tue, 19 Dec 2023 20:06:36 +0100 Subject: [PATCH 021/269] EN4 Plus/Max fix platform mesh --- resources/definitions/elegoo_neptune_4max.def.json | 6 ++++++ resources/definitions/elegoo_neptune_4plus.def.json | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/resources/definitions/elegoo_neptune_4max.def.json b/resources/definitions/elegoo_neptune_4max.def.json index 9ea53650cb..c2f6aa708c 100644 --- a/resources/definitions/elegoo_neptune_4max.def.json +++ b/resources/definitions/elegoo_neptune_4max.def.json @@ -6,6 +6,12 @@ { "visible": true, "author": "mastercaution", + "platform": "elegoo_platform_max.3mf", + "platform_offset": [ + -2.1, + -0.2, + 0 + ], "quality_definition": "elegoo_neptune_4" }, "overrides": diff --git a/resources/definitions/elegoo_neptune_4plus.def.json b/resources/definitions/elegoo_neptune_4plus.def.json index 703db64634..0038e49641 100644 --- a/resources/definitions/elegoo_neptune_4plus.def.json +++ b/resources/definitions/elegoo_neptune_4plus.def.json @@ -6,6 +6,12 @@ { "visible": true, "author": "mastercaution", + "platform": "elegoo_platform_max.3mf", + "platform_offset": [ + -2.1, + -0.2, + 0 + ], "quality_definition": "elegoo_neptune_4" }, "overrides": From 20ef47284526b155f5c47f1463479e4fe81949fc Mon Sep 17 00:00:00 2001 From: zhogov Date: Tue, 26 Dec 2023 05:19:12 -0500 Subject: [PATCH 022/269] Fix Ender 3 V3 SE start g-code 1. Replace square brackets with curly ones 2. Add bed heating command so Cura won't have to implicitly generate it itself --- resources/definitions/creality_ender3v3se.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/creality_ender3v3se.def.json b/resources/definitions/creality_ender3v3se.def.json index 5769e3e493..dc3e7bb70d 100644 --- a/resources/definitions/creality_ender3v3se.def.json +++ b/resources/definitions/creality_ender3v3se.def.json @@ -45,11 +45,11 @@ "machine_max_feedrate_y": { "value": 500 }, "machine_max_feedrate_z": { "value": 30 }, "machine_name": { "default_value": "Creality Ender-3 V3 SE" }, - "machine_start_gcode": { "default_value": "M220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\n\nM420 S1; Enable mesh leveling\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\nM109 S[material_print_temperature_layer_0]\nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y145.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 E-1.0000 F1800 ;Retract a bit\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 E0.0000 F1800 \n" }, + "machine_start_gcode": { "default_value": "M220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\n\nM420 S1; Use saved mesh leveling data\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\nM190 S{material_bed_temperature_layer_0} ; set bed temperature and wait\nM109 S{material_print_temperature_layer_0} ; set hotend temperature and wait\nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y145.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 E-1.0000 F1800 ;Retract a bit\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 E0.0000 F1800 \n" }, "machine_width": { "default_value": 220 }, "retraction_amount": { "value": 0.8 }, "retraction_speed": { "default_value": 40 }, "speed_layer_0": { "value": 30 }, "speed_print": { "value": 180 } } -} \ No newline at end of file +} From da58c63db6716a9f20de03b86f86dcfe0f39b53e Mon Sep 17 00:00:00 2001 From: zhogov Date: Tue, 26 Dec 2023 05:26:56 -0500 Subject: [PATCH 023/269] Upper case --- resources/definitions/creality_ender3v3se.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/creality_ender3v3se.def.json b/resources/definitions/creality_ender3v3se.def.json index dc3e7bb70d..8e32a44eb9 100644 --- a/resources/definitions/creality_ender3v3se.def.json +++ b/resources/definitions/creality_ender3v3se.def.json @@ -45,7 +45,7 @@ "machine_max_feedrate_y": { "value": 500 }, "machine_max_feedrate_z": { "value": 30 }, "machine_name": { "default_value": "Creality Ender-3 V3 SE" }, - "machine_start_gcode": { "default_value": "M220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\n\nM420 S1; Use saved mesh leveling data\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\nM190 S{material_bed_temperature_layer_0} ; set bed temperature and wait\nM109 S{material_print_temperature_layer_0} ; set hotend temperature and wait\nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y145.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 E-1.0000 F1800 ;Retract a bit\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 E0.0000 F1800 \n" }, + "machine_start_gcode": { "default_value": "M220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\n\nM420 S1; Use saved mesh leveling data\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\nM190 S{material_bed_temperature_layer_0} ; Set bed temperature and wait\nM109 S{material_print_temperature_layer_0} ; Set hotend temperature and wait\nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y145.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 E-1.0000 F1800 ;Retract a bit\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 E0.0000 F1800 \n" }, "machine_width": { "default_value": 220 }, "retraction_amount": { "value": 0.8 }, "retraction_speed": { "default_value": 40 }, From 96aba0a8df8ad20441c0c23c5b56cf0d98398181 Mon Sep 17 00:00:00 2001 From: Christopher Peredy <16451370+mastercaution@users.noreply.github.com> Date: Thu, 28 Dec 2023 23:12:35 +0100 Subject: [PATCH 024/269] EN4 add 0.2mm engineering profile --- ...oo_n4_aa0.4_pla_0.2mm_engineering.inst.cfg | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 resources/intent/elegoo_neptune_4/PLA/elegoo_n4_aa0.4_pla_0.2mm_engineering.inst.cfg diff --git a/resources/intent/elegoo_neptune_4/PLA/elegoo_n4_aa0.4_pla_0.2mm_engineering.inst.cfg b/resources/intent/elegoo_neptune_4/PLA/elegoo_n4_aa0.4_pla_0.2mm_engineering.inst.cfg new file mode 100644 index 0000000000..1e9703215d --- /dev/null +++ b/resources/intent/elegoo_neptune_4/PLA/elegoo_n4_aa0.4_pla_0.2mm_engineering.inst.cfg @@ -0,0 +1,25 @@ +[general] +definition = elegoo_neptune_4 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +is_experimental = True +material = generic_pla +quality_type = Elegoo_layer_020 +setting_version = 22 +type = intent +variant = 0.40mm_Elegoo_Nozzle + +[values] +speed_infill = =speed_print +speed_print = 150 +speed_topbottom = =speed_print * 2 / 3 +speed_travel = =min(speed_print * 4 / 3, 250) if speed_print <= 250 else speed_print +speed_wall = =speed_print * 2 / 3 +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + From ff65f79a728e033bd7258b57c697b867ba187c2d Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Sat, 30 Dec 2023 09:58:58 -0500 Subject: [PATCH 025/269] Fixed default gcode flavor for Voron --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 1e76380b69..8fc882d59e 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -55,7 +55,7 @@ "machine_endstop_positive_direction_y": { "default_value": true }, "machine_endstop_positive_direction_z": { "default_value": false }, "machine_feeder_wheel_diameter": { "default_value": 7.5 }, - "machine_gcode_flavor": { "default_value": "RepRap (RepRap)" }, + "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, "machine_head_with_fans_polygon": { "default_value": [ From b51ea6970b507344963abcfddb69bd3f33e37a83 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Sat, 30 Dec 2023 09:59:25 -0500 Subject: [PATCH 026/269] Updated print_start gcode for Voron printers --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 8fc882d59e..a3eb099d49 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -76,7 +76,7 @@ "machine_max_jerk_xy": { "default_value": 20 }, "machine_max_jerk_z": { "default_value": 1 }, "machine_name": { "default_value": "VORON2" }, - "machine_start_gcode": { "default_value": "print_start" }, + "machine_start_gcode": { "default_value": "print_start EXTRUDER={material_print_temperature_layer_0} BED={material_bed_temperature_layer_0} CHAMBER={build_volume_temperature}" }, "machine_steps_per_mm_x": { "default_value": 80 }, "machine_steps_per_mm_y": { "default_value": 80 }, "machine_steps_per_mm_z": { "default_value": 400 }, From 6bb1dba3e092fa55169b7767dd05cb03787e2db8 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Sat, 30 Dec 2023 10:10:46 -0500 Subject: [PATCH 027/269] Add metadata to Voron start gcode Adding extra metadata for Moonraker as described in the Klipper Preprocessor docs --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index a3eb099d49..dc6cd255bb 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -76,7 +76,7 @@ "machine_max_jerk_xy": { "default_value": 20 }, "machine_max_jerk_z": { "default_value": 1 }, "machine_name": { "default_value": "VORON2" }, - "machine_start_gcode": { "default_value": "print_start EXTRUDER={material_print_temperature_layer_0} BED={material_bed_temperature_layer_0} CHAMBER={build_volume_temperature}" }, + "machine_start_gcode": { "default_value": ";Nozzle diameter = {machine_nozzle_size}\n;Filament type = {material_type}\n;Filament name = {material_name}\n;Filament weight = {filament_weight}\n; M190 S{material_bed_temperature_layer_0}\n; M109 S{material_print_temperature_layer_0}\nprint_start EXTRUDER={material_print_temperature_layer_0} BED={material_bed_temperature_layer_0} CHAMBER={build_volume_temperature}" }, "machine_steps_per_mm_x": { "default_value": 80 }, "machine_steps_per_mm_y": { "default_value": 80 }, "machine_steps_per_mm_z": { "default_value": 400 }, From e66314b2dd35bb6f87f1f3804a38311e5fc535f4 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Tue, 2 Jan 2024 10:48:40 +0100 Subject: [PATCH 028/269] ppr setting was added when it should be excluded CURA-11480 --- resources/qml/Preferences/SettingVisibilityPage.qml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/qml/Preferences/SettingVisibilityPage.qml b/resources/qml/Preferences/SettingVisibilityPage.qml index 476ba999cf..8743999fe2 100644 --- a/resources/qml/Preferences/SettingVisibilityPage.qml +++ b/resources/qml/Preferences/SettingVisibilityPage.qml @@ -123,7 +123,7 @@ UM.PreferencesPage var idx = -1; for(var i = 0; i < settingVisibilityPresetsModel.items.length; ++i) { - if(settingVisibilityPresetsModel.items[i].presetId == settingVisibilityPresetsModel.activePreset) + if(settingVisibilityPresetsModel.items[i].presetId === settingVisibilityPresetsModel.activePreset) { idx = i; break; @@ -159,7 +159,7 @@ UM.PreferencesPage id: definitionsModel containerId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: "" showAll: true - exclude: ["machine_settings", "command_line_settings"] + exclude: ["machine_settings", "command_line_settings", "ppr"] showAncestors: true expanded: ["*"] visibilityHandler: UM.SettingPreferenceVisibilityHandler {} @@ -173,13 +173,13 @@ UM.PreferencesPage id: loader width: settingsListView.width - scrollBar.width - height: model.type != undefined ? UM.Theme.getSize("section").height : 0 + height: model.type !== undefined ? UM.Theme.getSize("section").height : 0 property var definition: model property var settingDefinitionsModel: definitionsModel asynchronous: true - active: model.type != undefined + active: model.type !== undefined sourceComponent: { switch (model.type) From 0bb1f0b7c3ff87edbecca432e017c6423ad03eed Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Tue, 2 Jan 2024 12:05:55 +0100 Subject: [PATCH 029/269] Case of simulation with multiple extruders CURA-7647 --- plugins/SimulationView/SimulationPass.py | 22 +++++++++++----------- plugins/SimulationView/SimulationView.py | 7 +++++-- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/plugins/SimulationView/SimulationPass.py b/plugins/SimulationView/SimulationPass.py index dd94d678ae..cdeb9da29f 100644 --- a/plugins/SimulationView/SimulationPass.py +++ b/plugins/SimulationView/SimulationPass.py @@ -1,5 +1,6 @@ # Copyright (c) 2021 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +import math from UM.Math.Color import Color from UM.Math.Vector import Vector @@ -148,24 +149,23 @@ class SimulationPass(RenderPass): if layer == self._layer_view._current_layer_num: # We look for the position of the head, searching the point of the current path index = int(self._layer_view.getCurrentPath()) - offset = 0 for polygon in layer_data.getLayer(layer).polygons: # The size indicates all values in the two-dimension array, and the second dimension is # always size 3 because we have 3D points. - if index >= polygon.data.size // 3 - offset: - index -= polygon.data.size // 3 - offset - offset = 1 # This is to avoid the first point when there is more than one polygon, since has the same value as the last point in the previous polygon + if index >= polygon.data.size // 3 : + index -= polygon.data.size // 3 continue # The head position is calculated and translated - ratio = self._layer_view.getCurrentPath() - index - pos_a = Vector(polygon.data[index + offset][0], polygon.data[index + offset][1], - polygon.data[index + offset][2]) - if ratio <= 0.0001 or index + offset < len(polygon.data): + ratio = self._layer_view.getCurrentPath() - math.floor(self._layer_view.getCurrentPath()) + pos_a = Vector(polygon.data[index][0], polygon.data[index + offset][1], + polygon.data[index][2]) + if ratio <= 0.0001 or index + 1 == len(polygon.data): + # in case there multiple polygons and polygon changes, the first point has the same value as the last point in the previous polygon head_position = pos_a + node.getWorldPosition() else: - pos_b = Vector(polygon.data[index + offset + 1][0], - polygon.data[index + offset + 1][1], - polygon.data[index + offset + 1][2]) + pos_b = Vector(polygon.data[index + 1][0], + polygon.data[index + 1][1], + polygon.data[index + 1][2]) vec = pos_a * (1.0 - ratio) + pos_b * ratio head_position = vec + node.getWorldPosition() break diff --git a/plugins/SimulationView/SimulationView.py b/plugins/SimulationView/SimulationView.py index 337879475b..92a6a9e853 100644 --- a/plugins/SimulationView/SimulationView.py +++ b/plugins/SimulationView/SimulationView.py @@ -57,7 +57,7 @@ class SimulationView(CuraView): LAYER_VIEW_TYPE_LINE_TYPE = 1 LAYER_VIEW_TYPE_FEEDRATE = 2 LAYER_VIEW_TYPE_THICKNESS = 3 - SIMULATION_FACTOR = 3 + SIMULATION_FACTOR = 2 _no_layers_warning_preference = "view/no_layers_warning" @@ -211,7 +211,8 @@ class SimulationView(CuraView): left_value = cumulative_line_duration[i - 1] if i > 0 else 0.0 right_value = cumulative_line_duration[i] - assert (left_value <= self._current_time <= right_value) + if not (left_value <= self._current_time <= right_value): + Logger.debug(f"At index {i}: left value {left_value} right value {right_value} and current time is {self._current_time}") fractional_value = (self._current_time - left_value) / (right_value - left_value) @@ -255,6 +256,8 @@ class SimulationView(CuraView): for line_duration in list((polyline.lineLengths / polyline.lineFeedrates)[0]): total_duration += line_duration / SimulationView.SIMULATION_FACTOR self._cumulative_line_duration[self.getCurrentLayer()].append(total_duration) + # for tool change we add an extra tool path + self._cumulative_line_duration[self.getCurrentLayer()].append(total_duration) return self._cumulative_line_duration[self.getCurrentLayer()] From ee7ecc1acc76f8d5504251dba9b4627bbb3b5ca5 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Wed, 3 Jan 2024 09:16:04 +0100 Subject: [PATCH 030/269] offset removed CURA-7647 --- plugins/SimulationView/SimulationPass.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/SimulationView/SimulationPass.py b/plugins/SimulationView/SimulationPass.py index cdeb9da29f..2099f6c21d 100644 --- a/plugins/SimulationView/SimulationPass.py +++ b/plugins/SimulationView/SimulationPass.py @@ -157,7 +157,7 @@ class SimulationPass(RenderPass): continue # The head position is calculated and translated ratio = self._layer_view.getCurrentPath() - math.floor(self._layer_view.getCurrentPath()) - pos_a = Vector(polygon.data[index][0], polygon.data[index + offset][1], + pos_a = Vector(polygon.data[index][0], polygon.data[index][1], polygon.data[index][2]) if ratio <= 0.0001 or index + 1 == len(polygon.data): # in case there multiple polygons and polygon changes, the first point has the same value as the last point in the previous polygon From 2fbdb633e16857a58e883f0ecf2bfdcc308d36bb Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Wed, 3 Jan 2024 12:23:40 +0100 Subject: [PATCH 031/269] qt6.6 scroll issues CURA-11468 --- conanfile.py | 1 + cura_app.py | 1 + packaging/AppImage-builder/AppImageBuilder.yml.jinja | 1 + packaging/AppImage/AppRun | 1 + 4 files changed, 4 insertions(+) diff --git a/conanfile.py b/conanfile.py index a3ca8f1c89..5ebcf5a4c4 100644 --- a/conanfile.py +++ b/conanfile.py @@ -71,6 +71,7 @@ class CuraConan(ConanFile): self._cura_env = Environment() self._cura_env.define("QML2_IMPORT_PATH", str(self._site_packages.joinpath("PyQt6", "Qt6", "qml"))) self._cura_env.define("QT_PLUGIN_PATH", str(self._site_packages.joinpath("PyQt6", "Qt6", "plugins"))) + self._cura_env.define("QT_QUICK_FLICKABLE_WHEEL_DECELERATION", "5000") if not self.in_local_cache: self._cura_env.define("CURA_DATA_ROOT", str(self._share_dir.joinpath("cura"))) diff --git a/cura_app.py b/cura_app.py index 905d8f4ee0..17321b8042 100755 --- a/cura_app.py +++ b/cura_app.py @@ -17,6 +17,7 @@ import faulthandler import os if sys.platform != "linux": # Turns out the Linux build _does_ use this, but we're not making an Enterprise release for that system anyway. os.environ["QT_PLUGIN_PATH"] = "" # Security workaround: Don't need it, and introduces an attack vector, so set to nul. + os.environ["QT_QUICK_FLICKABLE_WHEEL_DECELERATION"] = "" # Security workaround: Don't need it, and introduces an attack vector, so set to nul. os.environ["QML2_IMPORT_PATH"] = "" # Security workaround: Don't need it, and introduces an attack vector, so set to nul. os.environ["QT_OPENGL_DLL"] = "" # Security workaround: Don't need it, and introduces an attack vector, so set to nul. diff --git a/packaging/AppImage-builder/AppImageBuilder.yml.jinja b/packaging/AppImage-builder/AppImageBuilder.yml.jinja index 9090a5f209..ae6cabcaa1 100644 --- a/packaging/AppImage-builder/AppImageBuilder.yml.jinja +++ b/packaging/AppImage-builder/AppImageBuilder.yml.jinja @@ -45,6 +45,7 @@ AppDir: LD_LIBRARY_PATH: "$APPDIR:$APPDIR/runtime/compat/:$APPDIR/usr/lib/x86_64-linux-gnu:$APPDIR/lib/x86_64-linux-gnu:$APPDIR/usr/lib:$APPDIR/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders" PYTHONPATH: "$APPDIR" QT_PLUGIN_PATH: "$APPDIR/qt/plugins" + QT_QUICK_FLICKABLE_WHEEL_DECELERATION: "5000" QML2_IMPORT_PATH: "$APPDIR/qt/qml" QT_QPA_PLATFORMTHEME: xdgdesktopportal GDK_PIXBUF_MODULEDIR: $APPDIR/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders diff --git a/packaging/AppImage/AppRun b/packaging/AppImage/AppRun index 369ce54c6c..9926df1878 100644 --- a/packaging/AppImage/AppRun +++ b/packaging/AppImage/AppRun @@ -5,6 +5,7 @@ scriptdir=$(dirname $0) export PYTHONPATH="$scriptdir/lib/python3.10" export LD_LIBRARY_PATH=$scriptdir export QT_PLUGIN_PATH="$scriptdir/qt/plugins" +export QT_QUICK_FLICKABLE_WHEEL_DECELERATION="5000" export QML2_IMPORT_PATH="$scriptdir/qt/qml" export QT_QPA_FONTDIR=/usr/share/fonts export QT_QPA_PLATFORMTHEME=xdgdesktopportal From 1e230ffef1962faeae7068caf4ad3f91f6a35b06 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Wed, 3 Jan 2024 14:19:22 +0100 Subject: [PATCH 032/269] Printer name changed to printer type printer names can be different for same type of printer. Also, printer type is coming from cloud here so the type search is changed accordingly CURA-11432 --- plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py index 9a11bb886c..b2541f6f82 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py @@ -331,7 +331,7 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): return False [printer, *_] = self._printers - return printer.name in ("ultimaker_methodx", "ultimaker_methodxl") + return printer.type in ("MakerBot Method X", "MakerBot Method XL") @pyqtProperty(bool, notify=_cloudClusterPrintersChanged) def supportsPrintJobActions(self) -> bool: From df589cfe95a3da7b407ee0b4b2f268ba0544a492 Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Wed, 3 Jan 2024 15:38:53 +0100 Subject: [PATCH 033/269] Fan speeds are in 0..1 range and not in 0..255 range for the Method machines. This needs to be corrected in the switch over routine formula's. PP-417 --- resources/extruders/ultimaker_methodx_extruder_left.def.json | 4 ++-- resources/extruders/ultimaker_methodx_extruder_right.def.json | 4 ++-- resources/extruders/ultimaker_methodxl_extruder_left.def.json | 4 ++-- .../extruders/ultimaker_methodxl_extruder_right.def.json | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/resources/extruders/ultimaker_methodx_extruder_left.def.json b/resources/extruders/ultimaker_methodx_extruder_left.def.json index 97e8a1f2c3..273a2c922e 100644 --- a/resources/extruders/ultimaker_methodx_extruder_left.def.json +++ b/resources/extruders/ultimaker_methodx_extruder_left.def.json @@ -14,8 +14,8 @@ "default_value": 0, "maximum_value": "1" }, - "machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S255\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" }, - "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM109 S{material_final_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed*255/100}" }, + "machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S1.0\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" }, + "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM109 S{material_initial_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed/100}" }, "machine_nozzle_offset_x": { "default_value": 0 }, "machine_nozzle_offset_y": { "default_value": 0 }, "machine_nozzle_size": { "default_value": 0.4 }, diff --git a/resources/extruders/ultimaker_methodx_extruder_right.def.json b/resources/extruders/ultimaker_methodx_extruder_right.def.json index 8a4ef33404..bb8f1d89c2 100644 --- a/resources/extruders/ultimaker_methodx_extruder_right.def.json +++ b/resources/extruders/ultimaker_methodx_extruder_right.def.json @@ -14,8 +14,8 @@ "default_value": 1, "maximum_value": "1" }, - "machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S255\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" }, - "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM109 S{material_final_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed*255/100}" }, + "machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S1.0\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" }, + "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM109 S{material_initial_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed/100}" }, "machine_nozzle_offset_x": { "default_value": 0 }, "machine_nozzle_offset_y": { "default_value": 0 }, "machine_nozzle_size": { "default_value": 0.4 }, diff --git a/resources/extruders/ultimaker_methodxl_extruder_left.def.json b/resources/extruders/ultimaker_methodxl_extruder_left.def.json index 2bedf9a62c..ba4a3f0157 100644 --- a/resources/extruders/ultimaker_methodxl_extruder_left.def.json +++ b/resources/extruders/ultimaker_methodxl_extruder_left.def.json @@ -14,8 +14,8 @@ "default_value": 0, "maximum_value": "1" }, - "machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S255\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" }, - "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM109 S{material_final_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed*255/100}" }, + "machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S1.0\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" }, + "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM109 S{material_initial_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed/100}" }, "machine_nozzle_offset_x": { "default_value": 0 }, "machine_nozzle_offset_y": { "default_value": 0 }, "machine_nozzle_size": { "default_value": 0.4 }, diff --git a/resources/extruders/ultimaker_methodxl_extruder_right.def.json b/resources/extruders/ultimaker_methodxl_extruder_right.def.json index 2fd5b37663..32fbf1dd08 100644 --- a/resources/extruders/ultimaker_methodxl_extruder_right.def.json +++ b/resources/extruders/ultimaker_methodxl_extruder_right.def.json @@ -14,8 +14,8 @@ "default_value": 1, "maximum_value": "1" }, - "machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S255\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" }, - "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM109 S{material_final_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed*255/100}" }, + "machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S1.0\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" }, + "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM109 S{material_initial_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed/100}" }, "machine_nozzle_offset_x": { "default_value": 0 }, "machine_nozzle_offset_y": { "default_value": 0 }, "machine_nozzle_size": { "default_value": 0.4 }, From 44441dfe5b119e66d7e671f780f3dffe3a66f7aa Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Wed, 3 Jan 2024 15:54:24 +0100 Subject: [PATCH 034/269] Improve the time estimates for the Method machines be increasing the acceleration and reducing the jerk. For dual extrusion a rough switch over time estimate is taken into account. PP-377 --- resources/definitions/ultimaker_method_base.def.json | 6 +++--- .../extruders/ultimaker_methodx_extruder_left.def.json | 1 + .../extruders/ultimaker_methodx_extruder_right.def.json | 1 + .../extruders/ultimaker_methodxl_extruder_left.def.json | 1 + .../extruders/ultimaker_methodxl_extruder_right.def.json | 1 + 5 files changed, 7 insertions(+), 3 deletions(-) diff --git a/resources/definitions/ultimaker_method_base.def.json b/resources/definitions/ultimaker_method_base.def.json index 4f03a8dbe1..972d69e0d3 100644 --- a/resources/definitions/ultimaker_method_base.def.json +++ b/resources/definitions/ultimaker_method_base.def.json @@ -99,7 +99,7 @@ "acceleration_print": { "enabled": false, - "value": 300 + "value": 800 }, "acceleration_print_layer_0": { @@ -234,7 +234,7 @@ "jerk_print": { "enabled": false, - "value": 12.5 + "value": 6.25 }, "jerk_print_layer_0": { @@ -279,7 +279,7 @@ "jerk_travel": { "enabled": false, - "value": 12.5 + "value": "jerk_print" }, "jerk_travel_enabled": { diff --git a/resources/extruders/ultimaker_methodx_extruder_left.def.json b/resources/extruders/ultimaker_methodx_extruder_left.def.json index 97e8a1f2c3..7051f056f3 100644 --- a/resources/extruders/ultimaker_methodx_extruder_left.def.json +++ b/resources/extruders/ultimaker_methodx_extruder_left.def.json @@ -16,6 +16,7 @@ }, "machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S255\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" }, "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM109 S{material_final_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed*255/100}" }, + "machine_extruder_start_code_duration": { "default_value": 8 }, "machine_nozzle_offset_x": { "default_value": 0 }, "machine_nozzle_offset_y": { "default_value": 0 }, "machine_nozzle_size": { "default_value": 0.4 }, diff --git a/resources/extruders/ultimaker_methodx_extruder_right.def.json b/resources/extruders/ultimaker_methodx_extruder_right.def.json index 8a4ef33404..1fea854877 100644 --- a/resources/extruders/ultimaker_methodx_extruder_right.def.json +++ b/resources/extruders/ultimaker_methodx_extruder_right.def.json @@ -16,6 +16,7 @@ }, "machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S255\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" }, "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM109 S{material_final_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed*255/100}" }, + "machine_extruder_start_code_duration": { "default_value": 8 }, "machine_nozzle_offset_x": { "default_value": 0 }, "machine_nozzle_offset_y": { "default_value": 0 }, "machine_nozzle_size": { "default_value": 0.4 }, diff --git a/resources/extruders/ultimaker_methodxl_extruder_left.def.json b/resources/extruders/ultimaker_methodxl_extruder_left.def.json index 2bedf9a62c..66670fe994 100644 --- a/resources/extruders/ultimaker_methodxl_extruder_left.def.json +++ b/resources/extruders/ultimaker_methodxl_extruder_left.def.json @@ -16,6 +16,7 @@ }, "machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S255\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" }, "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM109 S{material_final_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed*255/100}" }, + "machine_extruder_start_code_duration": { "default_value": 10 }, "machine_nozzle_offset_x": { "default_value": 0 }, "machine_nozzle_offset_y": { "default_value": 0 }, "machine_nozzle_size": { "default_value": 0.4 }, diff --git a/resources/extruders/ultimaker_methodxl_extruder_right.def.json b/resources/extruders/ultimaker_methodxl_extruder_right.def.json index 2fd5b37663..9f483e39bc 100644 --- a/resources/extruders/ultimaker_methodxl_extruder_right.def.json +++ b/resources/extruders/ultimaker_methodxl_extruder_right.def.json @@ -16,6 +16,7 @@ }, "machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S255\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" }, "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM109 S{material_final_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed*255/100}" }, + "machine_extruder_start_code_duration": { "default_value": 10 }, "machine_nozzle_offset_x": { "default_value": 0 }, "machine_nozzle_offset_y": { "default_value": 0 }, "machine_nozzle_size": { "default_value": 0.4 }, From 2e197f72ee3b5abfd18941fa1969d31e5ae3dcc0 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Wed, 3 Jan 2024 17:37:54 +0100 Subject: [PATCH 035/269] Add missing `default_value` for `roofing_monotonic --- resources/definitions/fdmprinter.def.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 62143cf8f8..2a35a5faab 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1478,6 +1478,7 @@ "description": "Print top surface lines in an ordering that causes them to always overlap with adjacent lines in a single direction. This takes slightly more time to print, but makes flat surfaces look more consistent.", "type": "bool", "value": true, + "default_value": true, "enabled": "roofing_layer_count > 0 and top_layers > 0 and roofing_pattern != 'concentric'", "limit_to_extruder": "roofing_extruder_nr", "settable_per_mesh": true @@ -8438,4 +8439,4 @@ } } } -} \ No newline at end of file +} From 4a8e00fcc6b43f04ca87a08abe8ce2a6e7739ed8 Mon Sep 17 00:00:00 2001 From: jellespijker Date: Wed, 3 Jan 2024 16:38:51 +0000 Subject: [PATCH 036/269] Applied printer-linter format --- 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 2a35a5faab..7796b04751 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -8439,4 +8439,4 @@ } } } -} +} \ No newline at end of file From 7d040a0b026c2d77ea7e9733fef334c6eccef062 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Wed, 3 Jan 2024 18:03:37 +0100 Subject: [PATCH 037/269] Fixed multiple `default_value` definitions default_value should be an actual value --- resources/definitions/fdmprinter.def.json | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 7796b04751..cf2b7a57af 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4579,6 +4579,7 @@ "unit": "\u00b0C", "type": "float", "value": "material_print_temperature", + "default_value": 0, "enabled": "cool_min_layer_time > 0", "minimum_value_warning": "max(material_final_print_temperature, material_initial_print_temperature)", "maximum_value_warning": "material_print_temperature", @@ -6690,7 +6691,7 @@ "type": "float", "unit": "mm", "enabled": "resolveOrValue('prime_tower_enable') and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", - "default_value": "resolveOrValue('brim_width')", + "default_value": 1.2, "minimum_value": "0", "maximum_value": "min(0.5 * machine_width, 0.5 * machine_depth)", "settable_per_mesh": false, @@ -8330,7 +8331,7 @@ { "label": "Flow Warning", "description": "Limit on the flow warning for detection.", - "default_value": "15.0", + "default_value": 15.0, "enabled": "ppr_enable", "unit": "%", "type": "float", @@ -8340,7 +8341,7 @@ { "label": "Flow Limit", "description": "Limit on flow anomaly for detection.", - "default_value": "25.0", + "default_value": 25.0, "enabled": "ppr_enable", "unit": "%", "type": "float", @@ -8352,7 +8353,7 @@ "description": "Limit on Print temperature warning for detection.", "unit": "\u00b0C", "type": "float", - "default_value": "3.0", + "default_value": 3.0, "enabled": "ppr_enable", "settable_per_extruder": true }, @@ -8362,7 +8363,7 @@ "description": "Limit on Print Temperature anomaly for detection.", "unit": "\u00b0C", "type": "float", - "default_value": "7.0", + "default_value": 7.0, "enabled": "ppr_enable", "settable_per_extruder": true }, @@ -8372,7 +8373,7 @@ "description": "Limit on Build Volume Temperature warning for detection.", "unit": "\u00b0C", "type": "float", - "default_value": "7.5", + "default_value": 7.5, "enabled": "ppr_enable", "settable_per_extruder": false }, @@ -8382,7 +8383,7 @@ "description": "Limit on Build Volume temperature Anomaly for detection.", "unit": "\u00b0C", "type": "float", - "default_value": "10.0", + "default_value": 10.0, "enabled": "ppr_enable", "settable_per_extruder": false } From 2b05a370ca7afca70276b28958ac87a60f3d149a Mon Sep 17 00:00:00 2001 From: alexandr-vladimirov Date: Thu, 4 Jan 2024 06:30:23 +0300 Subject: [PATCH 038/269] Allow to set print sequence manually --- conandata.yml | 8 + cura/CuraApplication.py | 26 ++- cura/HitChecker.py | 88 ++++++++++ cura/OneAtATimeIterator.py | 113 ++++--------- cura/PrintOrderManager.py | 171 +++++++++++++++++++ cura/Scene/CuraSceneNode.py | 12 ++ cura/UI/ObjectsModel.py | 19 ++- plugins/3MFReader/ThreeMFReader.py | 3 + plugins/3MFWriter/ThreeMFWriter.py | 4 + resources/definitions/fdmprinter.def.json | 10 ++ resources/i18n/cs_CZ/cura.po | 8 + resources/i18n/cs_CZ/fdmprinter.def.json.po | 8 + resources/i18n/cura.pot | 8 + resources/i18n/de_DE/cura.po | 8 + resources/i18n/de_DE/fdmprinter.def.json.po | 8 + resources/i18n/es_ES/cura.po | 8 + resources/i18n/es_ES/fdmprinter.def.json.po | 8 + resources/i18n/fdmprinter.def.json.pot | 8 + resources/i18n/fi_FI/cura.po | 8 + resources/i18n/fi_FI/fdmprinter.def.json.po | 8 + resources/i18n/fr_FR/cura.po | 8 + resources/i18n/fr_FR/fdmprinter.def.json.po | 8 + resources/i18n/hu_HU/cura.po | 8 + resources/i18n/hu_HU/fdmprinter.def.json.po | 8 + resources/i18n/it_IT/cura.po | 8 + resources/i18n/it_IT/fdmprinter.def.json.po | 8 + resources/i18n/ja_JP/cura.po | 8 + resources/i18n/ja_JP/fdmprinter.def.json.po | 8 + resources/i18n/ko_KR/cura.po | 8 + resources/i18n/ko_KR/fdmprinter.def.json.po | 8 + resources/i18n/nl_NL/cura.po | 8 + resources/i18n/nl_NL/fdmprinter.def.json.po | 8 + resources/i18n/pl_PL/cura.po | 8 + resources/i18n/pl_PL/fdmprinter.def.json.po | 8 + resources/i18n/pt_BR/cura.po | 8 + resources/i18n/pt_BR/fdmprinter.def.json.po | 8 + resources/i18n/pt_PT/cura.po | 8 + resources/i18n/pt_PT/fdmprinter.def.json.po | 8 + resources/i18n/ru_RU/cura.po | 8 + resources/i18n/ru_RU/fdmprinter.def.json.po | 8 + resources/i18n/tr_TR/cura.po | 8 + resources/i18n/tr_TR/fdmprinter.def.json.po | 8 + resources/i18n/zh_CN/cura.po | 8 + resources/i18n/zh_CN/fdmprinter.def.json.po | 8 + resources/i18n/zh_TW/cura.po | 8 + resources/i18n/zh_TW/fdmprinter.def.json.po | 8 + resources/qml/Actions.qml | 23 +++ resources/qml/Menus/ContextMenu.qml | 13 ++ resources/qml/Menus/EditMenu.qml | 13 ++ resources/setting_visibility/advanced.cfg | 1 + resources/setting_visibility/expert.cfg | 1 + tests/TestHitChecker.py | 141 ++++++++++++++++ tests/TestPrintOrderManager.py | 175 ++++++++++++++++++++ 53 files changed, 1021 insertions(+), 88 deletions(-) create mode 100644 cura/HitChecker.py create mode 100644 cura/PrintOrderManager.py create mode 100644 tests/TestHitChecker.py create mode 100644 tests/TestPrintOrderManager.py diff --git a/conandata.yml b/conandata.yml index a0a5a204ca..c1dad5057d 100644 --- a/conandata.yml +++ b/conandata.yml @@ -161,6 +161,10 @@ pycharm_targets: module_name: Cura name: pytest in TestGCodeListDecorator.py script_name: tests/TestGCodeListDecorator.py + - jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja + module_name: Cura + name: pytest in TestHitChecker.py + script_name: tests/TestHitChecker.py - jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja module_name: Cura name: pytest in TestIntentManager.py @@ -189,6 +193,10 @@ pycharm_targets: module_name: Cura name: pytest in TestPrintInformation.py script_name: tests/TestPrintInformation.py + - jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja + module_name: Cura + name: pytest in TestPrintOrderManager.py + script_name: tests/TestPrintOrderManager.py - jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja module_name: Cura name: pytest in TestProfileRequirements.py diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 1ef2f63a9e..387adda5cb 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -125,6 +125,7 @@ from .Machines.Models.CompatibleMachineModel import CompatibleMachineModel from .Machines.Models.MachineListModel import MachineListModel from .Machines.Models.ActiveIntentQualitiesModel import ActiveIntentQualitiesModel from .Machines.Models.IntentSelectionModel import IntentSelectionModel +from .PrintOrderManager import PrintOrderManager from .SingleInstance import SingleInstance if TYPE_CHECKING: @@ -202,6 +203,7 @@ class CuraApplication(QtApplication): self._container_manager = None self._object_manager = None + self._print_order_manager = None self._extruders_model = None self._extruders_model_with_optional = None self._build_plate_model = None @@ -899,6 +901,7 @@ class CuraApplication(QtApplication): # initialize info objects self._print_information = PrintInformation.PrintInformation(self) self._cura_actions = CuraActions.CuraActions(self) + self._print_order_manager = PrintOrderManager(self.getObjectsModel().getNodes) self.processEvents() # Initialize setting visibility presets model. self._setting_visibility_presets_model = SettingVisibilityPresetsModel(self.getPreferences(), parent = self) @@ -979,6 +982,7 @@ class CuraApplication(QtApplication): t.setEnabledAxis([ToolHandle.XAxis, ToolHandle.YAxis, ToolHandle.ZAxis]) Selection.selectionChanged.connect(self.onSelectionChanged) + self._print_order_manager.printOrderChanged.connect(self._onPrintOrderChanged) # Set default background color for scene self.getRenderer().setBackgroundColor(QColor(245, 245, 245)) @@ -1218,6 +1222,7 @@ class CuraApplication(QtApplication): self.processEvents() engine.rootContext().setContextProperty("Printer", self) engine.rootContext().setContextProperty("CuraApplication", self) + engine.rootContext().setContextProperty("PrintOrderManager", self._print_order_manager) engine.rootContext().setContextProperty("PrintInformation", self._print_information) engine.rootContext().setContextProperty("CuraActions", self._cura_actions) engine.rootContext().setContextProperty("CuraSDKVersion", ApplicationMetadata.CuraSDKVersion) @@ -1715,8 +1720,12 @@ class CuraApplication(QtApplication): Selection.remove(node) Selection.add(group_node) + all_nodes = self.getObjectsModel().getNodes() + PrintOrderManager.updatePrintOrdersAfterGroupOperation(all_nodes, group_node, selected_nodes) + @pyqtSlot() def ungroupSelected(self) -> None: + all_nodes = self.getObjectsModel().getNodes() selected_objects = Selection.getAllSelectedObjects().copy() for node in selected_objects: if node.callDecoration("isGroup"): @@ -1724,21 +1733,30 @@ class CuraApplication(QtApplication): group_parent = node.getParent() children = node.getChildren().copy() - for child in children: - # Ungroup only 1 level deep - if child.getParent() != node: - continue + # Ungroup only 1 level deep + children_to_ungroup = list(filter(lambda child: child.getParent() == node, children)) + for child in children_to_ungroup: # Set the parent of the children to the parent of the group-node op.addOperation(SetParentOperation(child, group_parent)) # Add all individual nodes to the selection Selection.add(child) + PrintOrderManager.updatePrintOrdersAfterUngroupOperation(all_nodes, node, children_to_ungroup) op.push() # Note: The group removes itself from the scene once all its children have left it, # see GroupDecorator._onChildrenChanged + def _onPrintOrderChanged(self) -> None: + # update object list + scene = self.getController().getScene() + scene.sceneChanged.emit(scene.getRoot()) + + # reset if already was sliced + Application.getInstance().getBackend().needsSlicing() + Application.getInstance().getBackend().tickle() + def _createSplashScreen(self) -> Optional[CuraSplashScreen.CuraSplashScreen]: if self._is_headless: return None diff --git a/cura/HitChecker.py b/cura/HitChecker.py new file mode 100644 index 0000000000..4b229e6b9b --- /dev/null +++ b/cura/HitChecker.py @@ -0,0 +1,88 @@ +from typing import List, Dict +from cura.Scene.CuraSceneNode import CuraSceneNode + + +class HitChecker: + """Checks if nodes can be printed without causing any collisions and interference""" + + def __init__(self, nodes: List[CuraSceneNode]) -> None: + self._hit_map = self._buildHitMap(nodes) + + def anyTwoNodesBlockEachOther(self, nodes: List[CuraSceneNode]) -> bool: + """Returns True if any 2 nodes block each other""" + for a in nodes: + for b in nodes: + if self._hit_map[a][b] and self._hit_map[b][a]: + return True + return False + + def canPrintBefore(self, node: CuraSceneNode, other_nodes: List[CuraSceneNode]) -> bool: + """Returns True if node doesn't block other_nodes and can be printed before them""" + no_hits = all(not self._hit_map[node][other_node] for other_node in other_nodes) + return no_hits + + def canPrintAfter(self, node: CuraSceneNode, other_nodes: List[CuraSceneNode]) -> bool: + """Returns True if node doesn't hit other nodes and can be printed after them""" + no_hits = all(not self._hit_map[other_node][node] for other_node in other_nodes) + return no_hits + + def calculateScore(self, a: CuraSceneNode, b: CuraSceneNode) -> int: + """Calculate score simply sums the number of other objects it 'blocks' + + :param a: node + :param b: node + :return: sum of the number of other objects + """ + + score_a = sum(self._hit_map[a].values()) + score_b = sum(self._hit_map[b].values()) + return score_a - score_b + + def canPrintNodesInProvidedOrder(self, ordered_nodes: List[CuraSceneNode]) -> bool: + """Returns True If nodes don't have any hits in provided order""" + for node_index, node in enumerate(ordered_nodes): + nodes_before = ordered_nodes[:node_index - 1] if node_index - 1 >= 0 else [] + nodes_after = ordered_nodes[node_index + 1:] if node_index + 1 < len(ordered_nodes) else [] + if not self.canPrintBefore(node, nodes_after) or not self.canPrintAfter(node, nodes_before): + return False + return True + + @staticmethod + def _buildHitMap(nodes: List[CuraSceneNode]) -> Dict[CuraSceneNode, CuraSceneNode]: + """Pre-computes all hits between all objects + + :nodes: nodes that need to be checked for collisions + :return: dictionary where hit_map[node1][node2] is False if there node1 can be printed before node2 + """ + hit_map = {j: {i: HitChecker._checkHit(j, i) for i in nodes} for j in nodes} + return hit_map + + @staticmethod + def _checkHit(a: CuraSceneNode, b: CuraSceneNode) -> bool: + """Checks if a can be printed before b + + :param a: node + :param b: node + :return: False if a can be printed before b + """ + + if a == b: + return False + + a_hit_hull = a.callDecoration("getConvexHullBoundary") + b_hit_hull = b.callDecoration("getConvexHullHeadFull") + overlap = a_hit_hull.intersectsPolygon(b_hit_hull) + + if overlap: + return True + + # Adhesion areas must never overlap, regardless of printing order + # This would cause over-extrusion + a_hit_hull = a.callDecoration("getAdhesionArea") + b_hit_hull = b.callDecoration("getAdhesionArea") + overlap = a_hit_hull.intersectsPolygon(b_hit_hull) + + if overlap: + return True + else: + return False diff --git a/cura/OneAtATimeIterator.py b/cura/OneAtATimeIterator.py index 8bdddba554..f92da3ec14 100644 --- a/cura/OneAtATimeIterator.py +++ b/cura/OneAtATimeIterator.py @@ -7,6 +7,11 @@ from UM.Scene.Iterator import Iterator from UM.Scene.SceneNode import SceneNode from functools import cmp_to_key +from cura.HitChecker import HitChecker +from cura.PrintOrderManager import PrintOrderManager +from cura.Scene.CuraSceneNode import CuraSceneNode + + class OneAtATimeIterator(Iterator.Iterator): """Iterator that returns a list of nodes in the order that they need to be printed @@ -16,8 +21,6 @@ class OneAtATimeIterator(Iterator.Iterator): def __init__(self, scene_node) -> None: super().__init__(scene_node) # Call super to make multiple inheritance work. - self._hit_map = [[]] # type: List[List[bool]] # For each node, which other nodes this hits. A grid of booleans on which nodes hit which. - self._original_node_list = [] # type: List[SceneNode] # The nodes that need to be checked for collisions. def _fillStack(self) -> None: """Fills the ``_node_stack`` with a list of scene nodes that need to be printed in order. """ @@ -38,104 +41,50 @@ class OneAtATimeIterator(Iterator.Iterator): self._node_stack = node_list[:] return - # Copy the list - self._original_node_list = node_list[:] + hit_checker = HitChecker(node_list) - # Initialise the hit map (pre-compute all hits between all objects) - self._hit_map = [[self._checkHit(i, j) for i in node_list] for j in node_list] + if PrintOrderManager.isUserDefinedPrintOrderEnabled(): + self._node_stack = self._getNodesOrderedByUser(hit_checker, node_list) + else: + self._node_stack = self._getNodesOrderedAutomatically(hit_checker, node_list) - # Check if we have to files that block each other. If this is the case, there is no solution! - for a in range(0, len(node_list)): - for b in range(0, len(node_list)): - if a != b and self._hit_map[a][b] and self._hit_map[b][a]: - return + # update print orders so that user can try to arrange the nodes automatically first + # and if result is not satisfactory he/she can switch to manual mode and change it + for index, node in enumerate(self._node_stack): + node.printOrder = index + 1 + + @staticmethod + def _getNodesOrderedByUser(hit_checker: HitChecker, node_list: List[CuraSceneNode]) -> List[CuraSceneNode]: + nodes_ordered_by_user = sorted(node_list, key=lambda n: n.printOrder) + if hit_checker.canPrintNodesInProvidedOrder(nodes_ordered_by_user): + return nodes_ordered_by_user + return [] # No solution + + @staticmethod + def _getNodesOrderedAutomatically(hit_checker: HitChecker, node_list: List[CuraSceneNode]) -> List[CuraSceneNode]: + # Check if we have two files that block each other. If this is the case, there is no solution! + if hit_checker.anyTwoNodesBlockEachOther(node_list): + return [] # No solution # Sort the original list so that items that block the most other objects are at the beginning. # This does not decrease the worst case running time, but should improve it in most cases. - sorted(node_list, key = cmp_to_key(self._calculateScore)) + sorted(node_list, key = cmp_to_key(hit_checker.calculateScore)) todo_node_list = [_ObjectOrder([], node_list)] while len(todo_node_list) > 0: current = todo_node_list.pop() for node in current.todo: # Check if the object can be placed with what we have and still allows for a solution in the future - if not self._checkHitMultiple(node, current.order) and not self._checkBlockMultiple(node, current.todo): + if hit_checker.canPrintAfter(node, current.order) and hit_checker.canPrintBefore(node, current.todo): # We found a possible result. Create new todo & order list. new_todo_list = current.todo[:] new_todo_list.remove(node) new_order = current.order[:] + [node] if len(new_todo_list) == 0: # We have no more nodes to check, so quit looking. - self._node_stack = new_order - return + return new_order # Solution found! todo_node_list.append(_ObjectOrder(new_order, new_todo_list)) - self._node_stack = [] #No result found! - - - # Check if first object can be printed before the provided list (using the hit map) - def _checkHitMultiple(self, node: SceneNode, other_nodes: List[SceneNode]) -> bool: - node_index = self._original_node_list.index(node) - for other_node in other_nodes: - other_node_index = self._original_node_list.index(other_node) - if self._hit_map[node_index][other_node_index]: - return True - return False - - def _checkBlockMultiple(self, node: SceneNode, other_nodes: List[SceneNode]) -> bool: - """Check for a node whether it hits any of the other nodes. - - :param node: The node to check whether it collides with the other nodes. - :param other_nodes: The nodes to check for collisions. - :return: returns collision between nodes - """ - - node_index = self._original_node_list.index(node) - for other_node in other_nodes: - other_node_index = self._original_node_list.index(other_node) - if self._hit_map[other_node_index][node_index] and node_index != other_node_index: - return True - return False - - def _calculateScore(self, a: SceneNode, b: SceneNode) -> int: - """Calculate score simply sums the number of other objects it 'blocks' - - :param a: node - :param b: node - :return: sum of the number of other objects - """ - - score_a = sum(self._hit_map[self._original_node_list.index(a)]) - score_b = sum(self._hit_map[self._original_node_list.index(b)]) - return score_a - score_b - - def _checkHit(self, a: SceneNode, b: SceneNode) -> bool: - """Checks if a can be printed before b - - :param a: node - :param b: node - :return: true if a can be printed before b - """ - - if a == b: - return False - - a_hit_hull = a.callDecoration("getConvexHullBoundary") - b_hit_hull = b.callDecoration("getConvexHullHeadFull") - overlap = a_hit_hull.intersectsPolygon(b_hit_hull) - - if overlap: - return True - - # Adhesion areas must never overlap, regardless of printing order - # This would cause over-extrusion - a_hit_hull = a.callDecoration("getAdhesionArea") - b_hit_hull = b.callDecoration("getAdhesionArea") - overlap = a_hit_hull.intersectsPolygon(b_hit_hull) - - if overlap: - return True - else: - return False + return [] # No result found! class _ObjectOrder: diff --git a/cura/PrintOrderManager.py b/cura/PrintOrderManager.py new file mode 100644 index 0000000000..abfa5442a2 --- /dev/null +++ b/cura/PrintOrderManager.py @@ -0,0 +1,171 @@ +from typing import List, Callable, Optional, Any + +from PyQt6.QtCore import pyqtProperty, pyqtSignal, QObject, pyqtSlot +from UM.Application import Application +from UM.Scene.Selection import Selection + +from cura.Scene.CuraSceneNode import CuraSceneNode + + +class PrintOrderManager(QObject): + """Allows to order the object list to set the print sequence manually""" + + def __init__(self, get_nodes: Callable[[], List[CuraSceneNode]]) -> None: + super().__init__() + self._get_nodes = get_nodes + self._configureEvents() + + _settingsChanged = pyqtSignal() + _uiActionsOutdated = pyqtSignal() + printOrderChanged = pyqtSignal() + + @pyqtSlot() + def swapSelectedAndPreviousNodes(self) -> None: + selected_node, previous_node, next_node = self._getSelectedAndNeighborNodes() + self._swapPrintOrders(selected_node, previous_node) + + @pyqtSlot() + def swapSelectedAndNextNodes(self) -> None: + selected_node, previous_node, next_node = self._getSelectedAndNeighborNodes() + self._swapPrintOrders(selected_node, next_node) + + @pyqtProperty(str, notify=_uiActionsOutdated) + def previousNodeName(self) -> str: + selected_node, previous_node, next_node = self._getSelectedAndNeighborNodes() + return self._getNodeName(previous_node) + + @pyqtProperty(str, notify=_uiActionsOutdated) + def nextNodeName(self) -> str: + selected_node, previous_node, next_node = self._getSelectedAndNeighborNodes() + return self._getNodeName(next_node) + + @pyqtProperty(bool, notify=_uiActionsOutdated) + def shouldEnablePrintBeforeAction(self) -> bool: + selected_node, previous_node, next_node = self._getSelectedAndNeighborNodes() + can_swap_with_previous_node = selected_node is not None and previous_node is not None + return can_swap_with_previous_node + + @pyqtProperty(bool, notify=_uiActionsOutdated) + def shouldEnablePrintAfterAction(self) -> bool: + selected_node, previous_node, next_node = self._getSelectedAndNeighborNodes() + can_swap_with_next_node = selected_node is not None and next_node is not None + return can_swap_with_next_node + + @pyqtProperty(bool, notify=_settingsChanged) + def shouldShowEditPrintOrderActions(self) -> bool: + return PrintOrderManager.isUserDefinedPrintOrderEnabled() + + @staticmethod + def isUserDefinedPrintOrderEnabled() -> bool: + stack = Application.getInstance().getGlobalContainerStack() + is_enabled = stack and \ + stack.getProperty("print_sequence", "value") == "one_at_a_time" and \ + stack.getProperty("user_defined_print_order_enabled", "value") + return is_enabled + + @staticmethod + def initializePrintOrders(nodes: List[CuraSceneNode]) -> None: + """Just created (loaded from file) nodes have print order 0. + + This method initializes print orders with max value to put nodes at the end of object list""" + max_print_order = max(map(lambda n: n.printOrder, nodes), default=0) + for node in nodes: + if node.printOrder == 0: + max_print_order += 1 + node.printOrder = max_print_order + + @staticmethod + def updatePrintOrdersAfterGroupOperation( + all_nodes: List[CuraSceneNode], + group_node: CuraSceneNode, + grouped_nodes: List[CuraSceneNode] + ) -> None: + group_node.printOrder = min(map(lambda n: n.printOrder, grouped_nodes)) + + all_nodes.append(group_node) + for node in grouped_nodes: + all_nodes.remove(node) + + # reassign print orders so there won't be gaps like 1 2 5 6 7 + sorted_nodes = sorted(all_nodes, key=lambda n: n.printOrder) + for i, node in enumerate(sorted_nodes): + node.printOrder = i + 1 + + @staticmethod + def updatePrintOrdersAfterUngroupOperation( + all_nodes: List[CuraSceneNode], + group_node: CuraSceneNode, + ungrouped_nodes: List[CuraSceneNode] + ) -> None: + all_nodes.remove(group_node) + nodes_to_update_print_order = filter(lambda n: n.printOrder > group_node.printOrder, all_nodes) + for node in nodes_to_update_print_order: + node.printOrder += len(ungrouped_nodes) - 1 + + for i, child in enumerate(ungrouped_nodes): + child.printOrder = group_node.printOrder + i + all_nodes.append(child) + + def _swapPrintOrders(self, node1: CuraSceneNode, node2: CuraSceneNode) -> None: + if node1 and node2: + node1.printOrder, node2.printOrder = node2.printOrder, node1.printOrder # swap print orders + self.printOrderChanged.emit() # update object list first + self._uiActionsOutdated.emit() # then update UI actions + + def _getSelectedAndNeighborNodes(self + ) -> (Optional[CuraSceneNode], Optional[CuraSceneNode], Optional[CuraSceneNode]): + nodes = self._get_nodes() + ordered_nodes = sorted(nodes, key=lambda n: n.printOrder) + selected_node = PrintOrderManager._getSingleSelectedNode() + if selected_node and selected_node in ordered_nodes: + selected_node_index = ordered_nodes.index(selected_node) + else: + selected_node_index = None + + if selected_node_index is not None and selected_node_index - 1 >= 0: + previous_node = ordered_nodes[selected_node_index - 1] + else: + previous_node = None + + if selected_node_index is not None and selected_node_index + 1 < len(ordered_nodes): + next_node = ordered_nodes[selected_node_index + 1] + else: + next_node = None + + return selected_node, previous_node, next_node + + @staticmethod + def _getNodeName(node: CuraSceneNode, max_length: int = 30) -> str: + node_name = node.getName() if node else "" + truncated_node_name = node_name[:max_length] + return truncated_node_name + + @staticmethod + def _getSingleSelectedNode() -> Optional[CuraSceneNode]: + if len(Selection.getAllSelectedObjects()) == 1: + selected_node = Selection.getSelectedObject(0) + return selected_node + return None + + def _configureEvents(self) -> None: + Selection.selectionChanged.connect(self._onSelectionChanged) + self._global_stack = None + Application.getInstance().globalContainerStackChanged.connect(self._onGlobalStackChanged) + self._onGlobalStackChanged() + + def _onGlobalStackChanged(self) -> None: + if self._global_stack: + self._global_stack.propertyChanged.disconnect(self._onSettingsChanged) + self._global_stack.containersChanged.disconnect(self._onSettingsChanged) + + self._global_stack = Application.getInstance().getGlobalContainerStack() + + if self._global_stack: + self._global_stack.propertyChanged.connect(self._onSettingsChanged) + self._global_stack.containersChanged.connect(self._onSettingsChanged) + + def _onSettingsChanged(self, *args: Any) -> None: + self._settingsChanged.emit() + + def _onSelectionChanged(self) -> None: + self._uiActionsOutdated.emit() diff --git a/cura/Scene/CuraSceneNode.py b/cura/Scene/CuraSceneNode.py index 5fbaded650..9b412c7d4f 100644 --- a/cura/Scene/CuraSceneNode.py +++ b/cura/Scene/CuraSceneNode.py @@ -25,10 +25,19 @@ class CuraSceneNode(SceneNode): if not no_setting_override: self.addDecorator(SettingOverrideDecorator()) # Now we always have a getActiveExtruderPosition, unless explicitly disabled self._outside_buildarea = False + self._print_order = 0 def setOutsideBuildArea(self, new_value: bool) -> None: self._outside_buildarea = new_value + @property + def printOrder(self): + return self._print_order + + @printOrder.setter + def printOrder(self, new_value): + self._print_order = new_value + def isOutsideBuildArea(self) -> bool: return self._outside_buildarea or self.callDecoration("getBuildPlateNumber") < 0 @@ -157,3 +166,6 @@ class CuraSceneNode(SceneNode): def transformChanged(self) -> None: self._transformChanged() + + def __repr__(self) -> str: + return "{print_order}. {name}".format(print_order = self._print_order, name = self.getName()) diff --git a/cura/UI/ObjectsModel.py b/cura/UI/ObjectsModel.py index 4f64270247..4d5a4dfc81 100644 --- a/cura/UI/ObjectsModel.py +++ b/cura/UI/ObjectsModel.py @@ -14,6 +14,9 @@ from UM.Scene.SceneNode import SceneNode from UM.Scene.Selection import Selection from UM.i18n import i18nCatalog +from cura.PrintOrderManager import PrintOrderManager +from cura.Scene.CuraSceneNode import CuraSceneNode + catalog = i18nCatalog("cura") @@ -76,6 +79,9 @@ class ObjectsModel(ListModel): self._build_plate_number = nr self._update() + def getNodes(self) -> List[CuraSceneNode]: + return list(map(lambda n: n["node"], self.items)) + def _updateSceneDelayed(self, source) -> None: if not isinstance(source, Camera): self._update_timer.start() @@ -175,6 +181,10 @@ class ObjectsModel(ListModel): all_nodes = self._renameNodes(name_to_node_info_dict) + user_defined_print_order_enabled = PrintOrderManager.isUserDefinedPrintOrderEnabled() + if user_defined_print_order_enabled: + PrintOrderManager.initializePrintOrders(all_nodes) + for node in all_nodes: if hasattr(node, "isOutsideBuildArea"): is_outside_build_area = node.isOutsideBuildArea() # type: ignore @@ -223,8 +233,13 @@ class ObjectsModel(ListModel): # for anti overhang meshes and groups the extruder nr is irrelevant extruder_number = -1 + if not user_defined_print_order_enabled: + name = node.getName() + else: + name = "{print_order}. {name}".format(print_order = node.printOrder, name = node.getName()) + nodes.append({ - "name": node.getName(), + "name": name, "selected": Selection.isSelected(node), "outside_build_area": is_outside_build_area, "buildplate_number": node_build_plate_number, @@ -234,5 +249,5 @@ class ObjectsModel(ListModel): "node": node }) - nodes = sorted(nodes, key=lambda n: n["name"]) + nodes = sorted(nodes, key=lambda n: n["name"] if not user_defined_print_order_enabled else n["node"].printOrder) self.setItems(nodes) diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index 13a97d5a89..85bdbfa551 100755 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -177,6 +177,9 @@ class ThreeMFReader(MeshReader): else: Logger.log("w", "Unable to find extruder in position %s", setting_value) continue + if key == "print_order": + um_node.printOrder = int(setting_value) + continue if key in known_setting_keys: setting_container.setProperty(key, "value", setting_value) else: diff --git a/plugins/3MFWriter/ThreeMFWriter.py b/plugins/3MFWriter/ThreeMFWriter.py index ad4b0d8dad..5ffd99a1c4 100644 --- a/plugins/3MFWriter/ThreeMFWriter.py +++ b/plugins/3MFWriter/ThreeMFWriter.py @@ -20,6 +20,7 @@ from cura.CuraApplication import CuraApplication from cura.CuraPackageManager import CuraPackageManager from cura.Settings import CuraContainerStack from cura.Utils.Threading import call_on_qt_thread +from cura.Scene.CuraSceneNode import CuraSceneNode from cura.Snapshot import Snapshot from PyQt6.QtCore import QBuffer @@ -137,6 +138,9 @@ class ThreeMFWriter(MeshWriter): for key in changed_setting_keys: savitar_node.setSetting("cura:" + key, str(stack.getProperty(key, "value"))) + if isinstance(um_node, CuraSceneNode): + savitar_node.setSetting("cura:print_order", str(um_node.printOrder)) + # Store the metadata. for key, value in um_node.metadata.items(): savitar_node.setSetting(key, value) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 62143cf8f8..160c1d905d 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -7060,6 +7060,16 @@ "settable_per_extruder": false, "settable_per_meshgroup": false }, + "user_defined_print_order_enabled": + { + "label": "Set Print Sequence Manually", + "description": "Allows to order the object list to set the print sequence manually. First object from the list will be printed first.", + "type": "bool", + "default_value": false, + "settable_per_mesh": false, + "settable_per_extruder": false, + "enabled": "print_sequence == 'one_at_a_time'" + }, "infill_mesh": { "label": "Infill Mesh", diff --git a/resources/i18n/cs_CZ/cura.po b/resources/i18n/cs_CZ/cura.po index 715af3ea84..3267139490 100644 --- a/resources/i18n/cs_CZ/cura.po +++ b/resources/i18n/cs_CZ/cura.po @@ -4946,6 +4946,14 @@ msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" msgstr "Rozdělit modely" +msgctxt "@action:inmenu menubar:edit" +msgid "Print Before" +msgstr "Tisknout před" + +msgctxt "@action:inmenu menubar:edit" +msgid "Print After" +msgstr "Tisknout po" + msgctxt "@button" msgid "Uninstall" msgstr "Odinstalovat" diff --git a/resources/i18n/cs_CZ/fdmprinter.def.json.po b/resources/i18n/cs_CZ/fdmprinter.def.json.po index 7588e81c52..4b697c9cea 100644 --- a/resources/i18n/cs_CZ/fdmprinter.def.json.po +++ b/resources/i18n/cs_CZ/fdmprinter.def.json.po @@ -2583,6 +2583,14 @@ msgctxt "print_sequence label" msgid "Print Sequence" msgstr "Tisková sekvence" +msgctxt "user_defined_print_order_enabled label" +msgid "Set Print Sequence Manually" +msgstr "Nastavit tiskovou sekvenci ručně" + +msgctxt "user_defined_print_order_enabled description" +msgid "Allows to order the object list to set the print sequence manually. First object from the list will be printed first." +msgstr "Umožňuje řadit seznam objektů pro ruční nastavení tiskové sekvence. První objekt ze seznamu bude vytisknut jako první." + msgctxt "speed_print label" msgid "Print Speed" msgstr "Rychlost tisku" diff --git a/resources/i18n/cura.pot b/resources/i18n/cura.pot index 7d5b5f94d6..2fabd97f7e 100644 --- a/resources/i18n/cura.pot +++ b/resources/i18n/cura.pot @@ -4565,6 +4565,14 @@ msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" msgstr "" +msgctxt "@action:inmenu menubar:edit" +msgid "Print Before" +msgstr "" + +msgctxt "@action:inmenu menubar:edit" +msgid "Print After" +msgstr "" + msgctxt "@button" msgid "Uninstall" msgstr "" diff --git a/resources/i18n/de_DE/cura.po b/resources/i18n/de_DE/cura.po index f006c75fb6..8ca4de67b4 100644 --- a/resources/i18n/de_DE/cura.po +++ b/resources/i18n/de_DE/cura.po @@ -4930,6 +4930,14 @@ msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" msgstr "Gruppierung für Modelle aufheben" +msgctxt "@action:inmenu menubar:edit" +msgid "Print Before" +msgstr "Vor dem Drucken" + +msgctxt "@action:inmenu menubar:edit" +msgid "Print After" +msgstr "Nach dem Drucken" + msgctxt "@button" msgid "Uninstall" msgstr "Deinstallieren" diff --git a/resources/i18n/de_DE/fdmprinter.def.json.po b/resources/i18n/de_DE/fdmprinter.def.json.po index ca893ad149..ff44a4837d 100644 --- a/resources/i18n/de_DE/fdmprinter.def.json.po +++ b/resources/i18n/de_DE/fdmprinter.def.json.po @@ -2580,6 +2580,14 @@ msgctxt "print_sequence label" msgid "Print Sequence" msgstr "Druckreihenfolge" +msgctxt "user_defined_print_order_enabled label" +msgid "Set Print Sequence Manually" +msgstr "Druckreihenfolge manuell einstellen" + +msgctxt "user_defined_print_order_enabled description" +msgid "Allows to order the object list to set the print sequence manually. First object from the list will be printed first." +msgstr "Ermöglicht das Ordnen der Objektliste, um die Druckreihenfolge manuell festzulegen. Das erste Objekt aus der Liste wird zuerst gedruckt." + msgctxt "speed_print label" msgid "Print Speed" msgstr "Druckgeschwindigkeit" diff --git a/resources/i18n/es_ES/cura.po b/resources/i18n/es_ES/cura.po index 07d4ad2d79..aa4c727441 100644 --- a/resources/i18n/es_ES/cura.po +++ b/resources/i18n/es_ES/cura.po @@ -4931,6 +4931,14 @@ msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" msgstr "Desagrupar modelos" +msgctxt "@action:inmenu menubar:edit" +msgid "Print Before" +msgstr "Imprimir antes" + +msgctxt "@action:inmenu menubar:edit" +msgid "Print After" +msgstr "Imprimir después" + msgctxt "@button" msgid "Uninstall" msgstr "Desinstalar" diff --git a/resources/i18n/es_ES/fdmprinter.def.json.po b/resources/i18n/es_ES/fdmprinter.def.json.po index 4b797652ed..6811ca05a8 100644 --- a/resources/i18n/es_ES/fdmprinter.def.json.po +++ b/resources/i18n/es_ES/fdmprinter.def.json.po @@ -2580,6 +2580,14 @@ msgctxt "print_sequence label" msgid "Print Sequence" msgstr "Secuencia de impresión" +msgctxt "user_defined_print_order_enabled label" +msgid "Set Print Sequence Manually" +msgstr "Establecer secuencia de impresión manualmente" + +msgctxt "user_defined_print_order_enabled description" +msgid "Allows to order the object list to set the print sequence manually. First object from the list will be printed first." +msgstr "Permite ordenar la lista de objetos para establecer la secuencia de impresión manualmente. El primer objeto de la lista se imprimirá primero." + msgctxt "speed_print label" msgid "Print Speed" msgstr "Velocidad de impresión" diff --git a/resources/i18n/fdmprinter.def.json.pot b/resources/i18n/fdmprinter.def.json.pot index 6b61ec3173..ab5a717643 100644 --- a/resources/i18n/fdmprinter.def.json.pot +++ b/resources/i18n/fdmprinter.def.json.pot @@ -4596,6 +4596,14 @@ msgctxt "print_sequence option one_at_a_time" msgid "One at a Time" msgstr "" +msgctxt "user_defined_print_order_enabled label" +msgid "Set Print Sequence Manually" +msgstr "" + +msgctxt "user_defined_print_order_enabled description" +msgid "Allows to order the object list to set the print sequence manually. First object from the list will be printed first." +msgstr "" + msgctxt "infill_mesh label" msgid "Infill Mesh" msgstr "" diff --git a/resources/i18n/fi_FI/cura.po b/resources/i18n/fi_FI/cura.po index c3f331c1ef..55a60d50ae 100644 --- a/resources/i18n/fi_FI/cura.po +++ b/resources/i18n/fi_FI/cura.po @@ -4899,6 +4899,14 @@ msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" msgstr "Poista mallien ryhmitys" +msgctxt "@action:inmenu menubar:edit" +msgid "Print Before" +msgstr "Tulosta ennen" + +msgctxt "@action:inmenu menubar:edit" +msgid "Print After" +msgstr "Tulosta jälkeen" + msgctxt "@button" msgid "Uninstall" msgstr "" diff --git a/resources/i18n/fi_FI/fdmprinter.def.json.po b/resources/i18n/fi_FI/fdmprinter.def.json.po index 19a83d2f6a..a1e4ab420e 100644 --- a/resources/i18n/fi_FI/fdmprinter.def.json.po +++ b/resources/i18n/fi_FI/fdmprinter.def.json.po @@ -2578,6 +2578,14 @@ msgctxt "print_sequence label" msgid "Print Sequence" msgstr "Tulostusjärjestys" +msgctxt "user_defined_print_order_enabled label" +msgid "Set Print Sequence Manually" +msgstr "Aseta tulostusjärjestys manuaalisesti" + +msgctxt "user_defined_print_order_enabled description" +msgid "Allows to order the object list to set the print sequence manually. First object from the list will be printed first." +msgstr "Mahdollistaa kohteiden järjestämisen tulostusjärjestyksen manuaaliseen asettamiseen. Listan ensimmäinen kohde tulostetaan ensin." + msgctxt "speed_print label" msgid "Print Speed" msgstr "Tulostusnopeus" diff --git a/resources/i18n/fr_FR/cura.po b/resources/i18n/fr_FR/cura.po index b597b2d540..af46346d63 100644 --- a/resources/i18n/fr_FR/cura.po +++ b/resources/i18n/fr_FR/cura.po @@ -4928,6 +4928,14 @@ msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" msgstr "Dégrouper les modèles" +msgctxt "@action:inmenu menubar:edit" +msgid "Print Before" +msgstr "Imprimer avant" + +msgctxt "@action:inmenu menubar:edit" +msgid "Print After" +msgstr "Imprimer après" + msgctxt "@button" msgid "Uninstall" msgstr "Désinstaller" diff --git a/resources/i18n/fr_FR/fdmprinter.def.json.po b/resources/i18n/fr_FR/fdmprinter.def.json.po index e4018d33e5..2376820b7c 100644 --- a/resources/i18n/fr_FR/fdmprinter.def.json.po +++ b/resources/i18n/fr_FR/fdmprinter.def.json.po @@ -2580,6 +2580,14 @@ msgctxt "print_sequence label" msgid "Print Sequence" msgstr "Séquence d'impression" +msgctxt "user_defined_print_order_enabled label" +msgid "Set Print Sequence Manually" +msgstr "Définir la séquence d'impression manuellement" + +msgctxt "user_defined_print_order_enabled description" +msgid "Allows to order the object list to set the print sequence manually. First object from the list will be printed first." +msgstr "Permet de classer la liste des objets pour définir manuellement la séquence d'impression. Le premier objet de la liste sera imprimé en premier." + msgctxt "speed_print label" msgid "Print Speed" msgstr "Vitesse d’impression" diff --git a/resources/i18n/hu_HU/cura.po b/resources/i18n/hu_HU/cura.po index 9a502fbdf6..d5f06599a1 100644 --- a/resources/i18n/hu_HU/cura.po +++ b/resources/i18n/hu_HU/cura.po @@ -4913,6 +4913,14 @@ msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" msgstr "Csoport bontása" +msgctxt "@action:inmenu menubar:edit" +msgid "Print Before" +msgstr "Nyomtatás előtt" + +msgctxt "@action:inmenu menubar:edit" +msgid "Print After" +msgstr "Nyomtatás után" + msgctxt "@button" msgid "Uninstall" msgstr "" diff --git a/resources/i18n/hu_HU/fdmprinter.def.json.po b/resources/i18n/hu_HU/fdmprinter.def.json.po index 789454be37..27eabd4bbc 100644 --- a/resources/i18n/hu_HU/fdmprinter.def.json.po +++ b/resources/i18n/hu_HU/fdmprinter.def.json.po @@ -2585,6 +2585,14 @@ msgctxt "print_sequence label" msgid "Print Sequence" msgstr "Nyomtatási sorrend" +msgctxt "user_defined_print_order_enabled label" +msgid "Set Print Sequence Manually" +msgstr "Nyomtatási sorrend kézi beállítása" + +msgctxt "user_defined_print_order_enabled description" +msgid "Allows to order the object list to set the print sequence manually. First object from the list will be printed first." +msgstr "Lehetővé teszi az objektumlista rendezését a nyomtatási sorrend kézi beállításához. A lista első objektuma lesz először nyomtatva." + msgctxt "speed_print label" msgid "Print Speed" msgstr "Nyomtatási sebesség" diff --git a/resources/i18n/it_IT/cura.po b/resources/i18n/it_IT/cura.po index 1a131973bf..48918d3883 100644 --- a/resources/i18n/it_IT/cura.po +++ b/resources/i18n/it_IT/cura.po @@ -4931,6 +4931,14 @@ msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" msgstr "Separa modelli" +msgctxt "@action:inmenu menubar:edit" +msgid "Print Before" +msgstr "Stampa prima" + +msgctxt "@action:inmenu menubar:edit" +msgid "Print After" +msgstr "Stampa dopo" + msgctxt "@button" msgid "Uninstall" msgstr "Disinstalla" diff --git a/resources/i18n/it_IT/fdmprinter.def.json.po b/resources/i18n/it_IT/fdmprinter.def.json.po index 4565e30aa9..e9fc77ca3c 100644 --- a/resources/i18n/it_IT/fdmprinter.def.json.po +++ b/resources/i18n/it_IT/fdmprinter.def.json.po @@ -2580,6 +2580,14 @@ msgctxt "print_sequence label" msgid "Print Sequence" msgstr "Sequenza di stampa" +msgctxt "user_defined_print_order_enabled label" +msgid "Set Print Sequence Manually" +msgstr "Imposta manualmente la sequenza di stampa" + +msgctxt "user_defined_print_order_enabled description" +msgid "Allows to order the object list to set the print sequence manually. First object from the list will be printed first." +msgstr "Consente di ordinare l'elenco degli oggetti per impostare manualmente la sequenza di stampa. Il primo oggetto dell'elenco sarà stampato per primo." + msgctxt "speed_print label" msgid "Print Speed" msgstr "Velocità di stampa" diff --git a/resources/i18n/ja_JP/cura.po b/resources/i18n/ja_JP/cura.po index 7826e4df9e..bc2f27e825 100644 --- a/resources/i18n/ja_JP/cura.po +++ b/resources/i18n/ja_JP/cura.po @@ -4914,6 +4914,14 @@ msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" msgstr "モデルを非グループ化" +msgctxt "@action:inmenu menubar:edit" +msgid "Print Before" +msgstr "印刷前" + +msgctxt "@action:inmenu menubar:edit" +msgid "Print After" +msgstr "印刷後" + msgctxt "@button" msgid "Uninstall" msgstr "アンインストール" diff --git a/resources/i18n/ja_JP/fdmprinter.def.json.po b/resources/i18n/ja_JP/fdmprinter.def.json.po index 8e473e72ae..a4311a63bd 100644 --- a/resources/i18n/ja_JP/fdmprinter.def.json.po +++ b/resources/i18n/ja_JP/fdmprinter.def.json.po @@ -2580,6 +2580,14 @@ msgctxt "print_sequence label" msgid "Print Sequence" msgstr "印刷頻度" +msgctxt "user_defined_print_order_enabled label" +msgid "Set Print Sequence Manually" +msgstr "手動で印刷順序を設定する" + +msgctxt "user_defined_print_order_enabled description" +msgid "Allows to order the object list to set the print sequence manually. First object from the list will be printed first." +msgstr "オブジェクトリストを並べ替えて、手動で印刷順序を設定することができます。リストの最初のオブジェクトが最初に印刷されます。" + msgctxt "speed_print label" msgid "Print Speed" msgstr "印刷速度" diff --git a/resources/i18n/ko_KR/cura.po b/resources/i18n/ko_KR/cura.po index 5926b7c442..6bfbd1bae7 100644 --- a/resources/i18n/ko_KR/cura.po +++ b/resources/i18n/ko_KR/cura.po @@ -4917,6 +4917,14 @@ msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" msgstr "모델 그룹 해제" +msgctxt "@action:inmenu menubar:edit" +msgid "Print Before" +msgstr "인쇄 전" + +msgctxt "@action:inmenu menubar:edit" +msgid "Print After" +msgstr "인쇄 후" + msgctxt "@button" msgid "Uninstall" msgstr "설치 제거" diff --git a/resources/i18n/ko_KR/fdmprinter.def.json.po b/resources/i18n/ko_KR/fdmprinter.def.json.po index 7e2974dd37..0cf075c854 100644 --- a/resources/i18n/ko_KR/fdmprinter.def.json.po +++ b/resources/i18n/ko_KR/fdmprinter.def.json.po @@ -2580,6 +2580,14 @@ msgctxt "print_sequence label" msgid "Print Sequence" msgstr "프린팅 순서" +msgctxt "user_defined_print_order_enabled label" +msgid "Set Print Sequence Manually" +msgstr "수동으로 인쇄 순서 설정" + +msgctxt "user_defined_print_order_enabled description" +msgid "Allows to order the object list to set the print sequence manually. First object from the list will be printed first." +msgstr "객체 목록을 정렬하여 수동으로 인쇄 순서를 설정할 수 있습니다. 목록의 첫 번째 객체가 먼저 인쇄됩니다." + msgctxt "speed_print label" msgid "Print Speed" msgstr "프린팅 속도" diff --git a/resources/i18n/nl_NL/cura.po b/resources/i18n/nl_NL/cura.po index f831c7989f..43ca87b01e 100644 --- a/resources/i18n/nl_NL/cura.po +++ b/resources/i18n/nl_NL/cura.po @@ -4925,6 +4925,14 @@ msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" msgstr "Groeperen van Modellen Opheffen" +msgctxt "@action:inmenu menubar:edit" +msgid "Print Before" +msgstr "Afdrukken voor" + +msgctxt "@action:inmenu menubar:edit" +msgid "Print After" +msgstr "Afdrukken na" + msgctxt "@button" msgid "Uninstall" msgstr "De-installeren" diff --git a/resources/i18n/nl_NL/fdmprinter.def.json.po b/resources/i18n/nl_NL/fdmprinter.def.json.po index 7d6b32e0ac..8c4ef463a8 100644 --- a/resources/i18n/nl_NL/fdmprinter.def.json.po +++ b/resources/i18n/nl_NL/fdmprinter.def.json.po @@ -2580,6 +2580,14 @@ msgctxt "print_sequence label" msgid "Print Sequence" msgstr "Printvolgorde" +msgctxt "user_defined_print_order_enabled label" +msgid "Set Print Sequence Manually" +msgstr "Handmatig afdrukvolgorde instellen" + +msgctxt "user_defined_print_order_enabled description" +msgid "Allows to order the object list to set the print sequence manually. First object from the list will be printed first." +msgstr "Maakt het mogelijk de objectlijst te ordenen om de afdrukvolgorde handmatig in te stellen. Het eerste object van de lijst wordt als eerste afgedrukt." + msgctxt "speed_print label" msgid "Print Speed" msgstr "Printsnelheid" diff --git a/resources/i18n/pl_PL/cura.po b/resources/i18n/pl_PL/cura.po index ed823e183c..fe9f606141 100644 --- a/resources/i18n/pl_PL/cura.po +++ b/resources/i18n/pl_PL/cura.po @@ -4916,6 +4916,14 @@ msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" msgstr "Rozgrupuj modele" +msgctxt "@action:inmenu menubar:edit" +msgid "Print Before" +msgstr "Drukuj przed" + +msgctxt "@action:inmenu menubar:edit" +msgid "Print After" +msgstr "Drukuj po" + msgctxt "@button" msgid "Uninstall" msgstr "" diff --git a/resources/i18n/pl_PL/fdmprinter.def.json.po b/resources/i18n/pl_PL/fdmprinter.def.json.po index b772775d09..7f093c859c 100644 --- a/resources/i18n/pl_PL/fdmprinter.def.json.po +++ b/resources/i18n/pl_PL/fdmprinter.def.json.po @@ -2584,6 +2584,14 @@ msgctxt "print_sequence label" msgid "Print Sequence" msgstr "Sekwencja Wydruku" +msgctxt "user_defined_print_order_enabled label" +msgid "Set Print Sequence Manually" +msgstr "Ręczne ustawienie kolejności drukowania" + +msgctxt "user_defined_print_order_enabled description" +msgid "Allows to order the object list to set the print sequence manually. First object from the list will be printed first." +msgstr "Umożliwia ręczne ustawienie kolejności drukowania na liście obiektów. Pierwszy obiekt z listy zostanie wydrukowany jako pierwszy." + msgctxt "speed_print label" msgid "Print Speed" msgstr "Prędkość Druku" diff --git a/resources/i18n/pt_BR/cura.po b/resources/i18n/pt_BR/cura.po index 1c4590a016..0ae0a56cfd 100644 --- a/resources/i18n/pt_BR/cura.po +++ b/resources/i18n/pt_BR/cura.po @@ -4942,6 +4942,14 @@ msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" msgstr "Desagrupar Modelos" +msgctxt "@action:inmenu menubar:edit" +msgid "Print Before" +msgstr "Imprimir antes" + +msgctxt "@action:inmenu menubar:edit" +msgid "Print After" +msgstr "Imprimir depois" + msgctxt "@button" msgid "Uninstall" msgstr "Desinstalar" diff --git a/resources/i18n/pt_BR/fdmprinter.def.json.po b/resources/i18n/pt_BR/fdmprinter.def.json.po index 651837f458..412a020a7e 100644 --- a/resources/i18n/pt_BR/fdmprinter.def.json.po +++ b/resources/i18n/pt_BR/fdmprinter.def.json.po @@ -2585,6 +2585,14 @@ msgctxt "print_sequence label" msgid "Print Sequence" msgstr "Sequência de Impressão" +msgctxt "user_defined_print_order_enabled label" +msgid "Set Print Sequence Manually" +msgstr "Definir sequência de impressão manualmente" + +msgctxt "user_defined_print_order_enabled description" +msgid "Allows to order the object list to set the print sequence manually. First object from the list will be printed first." +msgstr "Permite ordenar a lista de objetos para definir a sequência de impressão manualmente. O primeiro objeto da lista será impresso primeiro." + msgctxt "speed_print label" msgid "Print Speed" msgstr "Velocidade de Impressão" diff --git a/resources/i18n/pt_PT/cura.po b/resources/i18n/pt_PT/cura.po index 48ea1e7c2c..d6e19b222d 100644 --- a/resources/i18n/pt_PT/cura.po +++ b/resources/i18n/pt_PT/cura.po @@ -4932,6 +4932,14 @@ msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" msgstr "Desagrupar Modelos" +msgctxt "@action:inmenu menubar:edit" +msgid "Print Before" +msgstr "Imprimir antes" + +msgctxt "@action:inmenu menubar:edit" +msgid "Print After" +msgstr "Imprimir depois" + msgctxt "@button" msgid "Uninstall" msgstr "Desinstalar" diff --git a/resources/i18n/pt_PT/fdmprinter.def.json.po b/resources/i18n/pt_PT/fdmprinter.def.json.po index dea593ffe4..36283bc9de 100644 --- a/resources/i18n/pt_PT/fdmprinter.def.json.po +++ b/resources/i18n/pt_PT/fdmprinter.def.json.po @@ -2580,6 +2580,14 @@ msgctxt "print_sequence label" msgid "Print Sequence" msgstr "Sequência de impressão" +msgctxt "user_defined_print_order_enabled label" +msgid "Set Print Sequence Manually" +msgstr "Definir sequência de impressão manualmente" + +msgctxt "user_defined_print_order_enabled description" +msgid "Allows to order the object list to set the print sequence manually. First object from the list will be printed first." +msgstr "Permite ordenar a lista de objetos para definir a sequência de impressão manualmente. O primeiro objeto da lista será impresso primeiro." + msgctxt "speed_print label" msgid "Print Speed" msgstr "Velocidade de Impressão" diff --git a/resources/i18n/ru_RU/cura.po b/resources/i18n/ru_RU/cura.po index 6494d6b5d2..2960193d7e 100644 --- a/resources/i18n/ru_RU/cura.po +++ b/resources/i18n/ru_RU/cura.po @@ -4955,6 +4955,14 @@ msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" msgstr "Разгруппировать модели" +msgctxt "@action:inmenu menubar:edit" +msgid "Print Before" +msgstr "Печатать до" + +msgctxt "@action:inmenu menubar:edit" +msgid "Print After" +msgstr "Печатать после" + msgctxt "@button" msgid "Uninstall" msgstr "Удалить" diff --git a/resources/i18n/ru_RU/fdmprinter.def.json.po b/resources/i18n/ru_RU/fdmprinter.def.json.po index 99036d4865..bba90e21ef 100644 --- a/resources/i18n/ru_RU/fdmprinter.def.json.po +++ b/resources/i18n/ru_RU/fdmprinter.def.json.po @@ -2580,6 +2580,14 @@ msgctxt "print_sequence label" msgid "Print Sequence" msgstr "Последовательная печать" +msgctxt "user_defined_print_order_enabled label" +msgid "Set Print Sequence Manually" +msgstr "Установить последовательность печати вручную" + +msgctxt "user_defined_print_order_enabled description" +msgid "Allows to order the object list to set the print sequence manually. First object from the list will be printed first." +msgstr "Позволяет упорядочить список объектов для ручной настройки последовательности печати. Первый объект из списка будет напечатан первым." + msgctxt "speed_print label" msgid "Print Speed" msgstr "Скорость печати" diff --git a/resources/i18n/tr_TR/cura.po b/resources/i18n/tr_TR/cura.po index d98ff91e72..c3afd0c7c1 100644 --- a/resources/i18n/tr_TR/cura.po +++ b/resources/i18n/tr_TR/cura.po @@ -4931,6 +4931,14 @@ msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" msgstr "Model Grubunu Çöz" +msgctxt "@action:inmenu menubar:edit" +msgid "Print Before" +msgstr "Önce Yazdır" + +msgctxt "@action:inmenu menubar:edit" +msgid "Print After" +msgstr "Sonra Yazdır" + msgctxt "@button" msgid "Uninstall" msgstr "Kaldır" diff --git a/resources/i18n/tr_TR/fdmprinter.def.json.po b/resources/i18n/tr_TR/fdmprinter.def.json.po index b57a0cd0bb..0e11895512 100644 --- a/resources/i18n/tr_TR/fdmprinter.def.json.po +++ b/resources/i18n/tr_TR/fdmprinter.def.json.po @@ -2580,6 +2580,14 @@ msgctxt "print_sequence label" msgid "Print Sequence" msgstr "Yazdırma Dizisi" +msgctxt "user_defined_print_order_enabled label" +msgid "Set Print Sequence Manually" +msgstr "Baskı Sırasını Manuel Olarak Ayarla" + +msgctxt "user_defined_print_order_enabled description" +msgid "Allows to order the object list to set the print sequence manually. First object from the list will be printed first." +msgstr "Nesne listesini sıralayarak baskı sırasını manuel olarak ayarlamayı sağlar. Listeden ilk nesne ilk olarak basılacak." + msgctxt "speed_print label" msgid "Print Speed" msgstr "Yazdırma Hızı" diff --git a/resources/i18n/zh_CN/cura.po b/resources/i18n/zh_CN/cura.po index 34b4f1d4dc..cf2ed81f9b 100644 --- a/resources/i18n/zh_CN/cura.po +++ b/resources/i18n/zh_CN/cura.po @@ -4919,6 +4919,14 @@ msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" msgstr "拆分模型" +msgctxt "@action:inmenu menubar:edit" +msgid "Print Before" +msgstr "打印前" + +msgctxt "@action:inmenu menubar:edit" +msgid "Print After" +msgstr "打印后" + msgctxt "@button" msgid "Uninstall" msgstr "卸载" diff --git a/resources/i18n/zh_CN/fdmprinter.def.json.po b/resources/i18n/zh_CN/fdmprinter.def.json.po index 1042199d5b..4696832051 100644 --- a/resources/i18n/zh_CN/fdmprinter.def.json.po +++ b/resources/i18n/zh_CN/fdmprinter.def.json.po @@ -2580,6 +2580,14 @@ msgctxt "print_sequence label" msgid "Print Sequence" msgstr "打印序列" +msgctxt "user_defined_print_order_enabled label" +msgid "Set Print Sequence Manually" +msgstr "手动设置打印顺序" + +msgctxt "user_defined_print_order_enabled description" +msgid "Allows to order the object list to set the print sequence manually. First object from the list will be printed first." +msgstr "允许对对象列表进行排序,以手动设置打印顺序。列表中的第一个对象将首先被打印。" + msgctxt "speed_print label" msgid "Print Speed" msgstr "打印速度" diff --git a/resources/i18n/zh_TW/cura.po b/resources/i18n/zh_TW/cura.po index a461fd1fa3..741bde1d14 100644 --- a/resources/i18n/zh_TW/cura.po +++ b/resources/i18n/zh_TW/cura.po @@ -4911,6 +4911,14 @@ msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" msgstr "取消模型群組" +msgctxt "@action:inmenu menubar:edit" +msgid "Print Before" +msgstr "列印前" + +msgctxt "@action:inmenu menubar:edit" +msgid "Print After" +msgstr "列印後" + msgctxt "@button" msgid "Uninstall" msgstr "" diff --git a/resources/i18n/zh_TW/fdmprinter.def.json.po b/resources/i18n/zh_TW/fdmprinter.def.json.po index c92a7f861a..aa02299fc1 100644 --- a/resources/i18n/zh_TW/fdmprinter.def.json.po +++ b/resources/i18n/zh_TW/fdmprinter.def.json.po @@ -2585,6 +2585,14 @@ msgctxt "print_sequence label" msgid "Print Sequence" msgstr "列印順序" +msgctxt "user_defined_print_order_enabled label" +msgid "Set Print Sequence Manually" +msgstr "手動設置列印順序" + +msgctxt "user_defined_print_order_enabled description" +msgid "Allows to order the object list to set the print sequence manually. First object from the list will be printed first." +msgstr "允許手動設置物件列表以設定列印順序。列表中的第一個物件將首先被列印。" + msgctxt "speed_print label" msgid "Print Speed" msgstr "列印速度" diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index 458d7fcaae..4cc504166b 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -35,6 +35,9 @@ Item property alias mergeObjects: mergeObjectsAction //property alias unMergeObjects: unMergeObjectsAction + property alias printObjectBeforePrevious: printObjectBeforePreviousAction + property alias printObjectAfterNext: printObjectAfterNextAction + property alias multiplyObject: multiplyObjectAction property alias selectAll: selectAllAction @@ -406,6 +409,26 @@ Item onTriggered: CuraApplication.ungroupSelected() } + Action + { + id: printObjectBeforePreviousAction + text: catalog.i18nc("@action:inmenu menubar:edit","Print Before") + " " + PrintOrderManager.previousNodeName + enabled: PrintOrderManager.shouldEnablePrintBeforeAction + icon.name: "print-before" + shortcut: "PgUp" + onTriggered: PrintOrderManager.swapSelectedAndPreviousNodes() + } + + Action + { + id: printObjectAfterNextAction + text: catalog.i18nc("@action:inmenu menubar:edit","Print After") + " " + PrintOrderManager.nextNodeName + enabled: PrintOrderManager.shouldEnablePrintAfterAction + icon.name: "print-after" + shortcut: "PgDown" + onTriggered: PrintOrderManager.swapSelectedAndNextNodes() + } + Action { id: mergeObjectsAction diff --git a/resources/qml/Menus/ContextMenu.qml b/resources/qml/Menus/ContextMenu.qml index 2de2795a74..1b32c24254 100644 --- a/resources/qml/Menus/ContextMenu.qml +++ b/resources/qml/Menus/ContextMenu.qml @@ -78,6 +78,19 @@ Cura.Menu Cura.MenuItem { action: Cura.Actions.mergeObjects } Cura.MenuItem { action: Cura.Actions.unGroupObjects } + // Edit print sequence actions + Cura.MenuSeparator { visible: PrintOrderManager.shouldShowEditPrintOrderActions } + Cura.MenuItem + { + action: Cura.Actions.printObjectBeforePrevious + visible: PrintOrderManager.shouldShowEditPrintOrderActions + } + Cura.MenuItem + { + action: Cura.Actions.printObjectAfterNext + visible: PrintOrderManager.shouldShowEditPrintOrderActions + } + Connections { target: UM.Controller diff --git a/resources/qml/Menus/EditMenu.qml b/resources/qml/Menus/EditMenu.qml index 522c6b27d1..728b3b212b 100644 --- a/resources/qml/Menus/EditMenu.qml +++ b/resources/qml/Menus/EditMenu.qml @@ -25,4 +25,17 @@ Cura.Menu Cura.MenuItem { action: Cura.Actions.groupObjects } Cura.MenuItem { action: Cura.Actions.mergeObjects } Cura.MenuItem { action: Cura.Actions.unGroupObjects } + + // Edit print sequence actions + Cura.MenuSeparator { visible: PrintOrderManager.shouldShowEditPrintOrderActions } + Cura.MenuItem + { + action: Cura.Actions.printObjectBeforePrevious + visible: PrintOrderManager.shouldShowEditPrintOrderActions + } + Cura.MenuItem + { + action: Cura.Actions.printObjectAfterNext + visible: PrintOrderManager.shouldShowEditPrintOrderActions + } } \ No newline at end of file diff --git a/resources/setting_visibility/advanced.cfg b/resources/setting_visibility/advanced.cfg index c3451d2c98..cd501267d0 100644 --- a/resources/setting_visibility/advanced.cfg +++ b/resources/setting_visibility/advanced.cfg @@ -136,6 +136,7 @@ prime_tower_brim_enable [blackmagic] print_sequence +user_defined_print_order_enabled magic_mesh_surface_mode magic_spiralize smooth_spiralized_contours diff --git a/resources/setting_visibility/expert.cfg b/resources/setting_visibility/expert.cfg index 2f2dd7671d..06ffead8a5 100644 --- a/resources/setting_visibility/expert.cfg +++ b/resources/setting_visibility/expert.cfg @@ -386,6 +386,7 @@ meshfix_fluid_motion_angle [blackmagic] print_sequence +user_defined_print_order_enabled infill_mesh infill_mesh_order cutting_mesh diff --git a/tests/TestHitChecker.py b/tests/TestHitChecker.py new file mode 100644 index 0000000000..59ee1d8162 --- /dev/null +++ b/tests/TestHitChecker.py @@ -0,0 +1,141 @@ +from unittest.mock import patch + +from cura.HitChecker import HitChecker +from cura.OneAtATimeIterator import OneAtATimeIterator +from cura.Scene.CuraSceneNode import CuraSceneNode + + +def test_anyTwoNodesBlockEachOther_True(): + node1 = CuraSceneNode(no_setting_override=True) + node2 = CuraSceneNode(no_setting_override=True) + # node1 and node2 block each other + hit_map = { + node1: {node1: 0, node2: 1}, + node2: {node1: 1, node2: 0} + } + + with patch.object(HitChecker, "_buildHitMap", return_value=hit_map): + hit_checker = HitChecker([node1, node2]) + assert hit_checker.anyTwoNodesBlockEachOther([node1, node2]) + assert hit_checker.anyTwoNodesBlockEachOther([node2, node1]) + + +def test_anyTwoNodesBlockEachOther_False(): + node1 = CuraSceneNode(no_setting_override=True) + node2 = CuraSceneNode(no_setting_override=True) + # node1 blocks node2, but node2 doesn't block node1 + hit_map = { + node1: {node1: 0, node2: 1}, + node2: {node1: 0, node2: 0} + } + + with patch.object(HitChecker, "_buildHitMap", return_value=hit_map): + hit_checker = HitChecker([node1, node2]) + assert not hit_checker.anyTwoNodesBlockEachOther([node1, node2]) + assert not hit_checker.anyTwoNodesBlockEachOther([node2, node1]) + + +def test_canPrintBefore(): + node1 = CuraSceneNode(no_setting_override=True) + node2 = CuraSceneNode(no_setting_override=True) + node3 = CuraSceneNode(no_setting_override=True) + # nodes can be printed only in order node1 -> node2 -> node3 + hit_map = { + node1: {node1: 0, node2: 0, node3: 0}, + node2: {node1: 1, node2: 0, node3: 0}, + node3: {node1: 1, node2: 1, node3: 0}, + } + + with patch.object(HitChecker, "_buildHitMap", return_value=hit_map): + hit_checker = HitChecker([node1, node2, node3]) + + assert hit_checker.canPrintBefore(node1, [node2]) + assert hit_checker.canPrintBefore(node1, [node3]) + assert hit_checker.canPrintBefore(node1, [node2, node3]) + assert hit_checker.canPrintBefore(node1, [node3, node2]) + + assert hit_checker.canPrintBefore(node2, [node3]) + assert not hit_checker.canPrintBefore(node2, [node1]) + assert not hit_checker.canPrintBefore(node2, [node1, node3]) + assert not hit_checker.canPrintBefore(node2, [node3, node1]) + + assert not hit_checker.canPrintBefore(node3, [node1]) + assert not hit_checker.canPrintBefore(node3, [node2]) + assert not hit_checker.canPrintBefore(node3, [node1, node2]) + assert not hit_checker.canPrintBefore(node3, [node2, node1]) + + +def test_canPrintAfter(): + node1 = CuraSceneNode(no_setting_override=True) + node2 = CuraSceneNode(no_setting_override=True) + node3 = CuraSceneNode(no_setting_override=True) + + # nodes can be printed only in order node1 -> node2 -> node3 + hit_map = { + node1: {node1: 0, node2: 0, node3: 0}, + node2: {node1: 1, node2: 0, node3: 0}, + node3: {node1: 1, node2: 1, node3: 0}, + } + + with patch.object(HitChecker, "_buildHitMap", return_value=hit_map): + hit_checker = HitChecker([node1, node2, node3]) + + assert not hit_checker.canPrintAfter(node1, [node2]) + assert not hit_checker.canPrintAfter(node1, [node3]) + assert not hit_checker.canPrintAfter(node1, [node2, node3]) + assert not hit_checker.canPrintAfter(node1, [node3, node2]) + + assert hit_checker.canPrintAfter(node2, [node1]) + assert not hit_checker.canPrintAfter(node2, [node3]) + assert not hit_checker.canPrintAfter(node2, [node1, node3]) + assert not hit_checker.canPrintAfter(node2, [node3, node1]) + + assert hit_checker.canPrintAfter(node3, [node1]) + assert hit_checker.canPrintAfter(node3, [node2]) + assert hit_checker.canPrintAfter(node3, [node1, node2]) + assert hit_checker.canPrintAfter(node3, [node2, node1]) + + +def test_calculateScore(): + node1 = CuraSceneNode(no_setting_override=True) + node2 = CuraSceneNode(no_setting_override=True) + node3 = CuraSceneNode(no_setting_override=True) + + hit_map = { + node1: {node1: 0, node2: 0, node3: 0}, # sum is 0 + node2: {node1: 1, node2: 0, node3: 0}, # sum is 1 + node3: {node1: 1, node2: 1, node3: 0}, # sum is 2 + } + + with patch.object(HitChecker, "_buildHitMap", return_value=hit_map): + hit_checker = HitChecker([node1, node2, node3]) + + # score is a diff between sums + assert hit_checker.calculateScore(node1, node2) == -1 + assert hit_checker.calculateScore(node2, node1) == 1 + assert hit_checker.calculateScore(node1, node3) == -2 + assert hit_checker.calculateScore(node3, node1) == 2 + assert hit_checker.calculateScore(node2, node3) == -1 + assert hit_checker.calculateScore(node3, node2) == 1 + + +def test_canPrintNodesInProvidedOrder(): + node1 = CuraSceneNode(no_setting_override=True) + node2 = CuraSceneNode(no_setting_override=True) + node3 = CuraSceneNode(no_setting_override=True) + + # nodes can be printed only in order node1 -> node2 -> node3 + hit_map = { + node1: {node1: 0, node2: 0, node3: 0}, # 0 + node2: {node1: 1, node2: 0, node3: 0}, # 1 + node3: {node1: 1, node2: 1, node3: 0}, # 2 + } + + with patch.object(HitChecker, "_buildHitMap", return_value=hit_map): + hit_checker = HitChecker([node1, node2, node3]) + assert hit_checker.canPrintNodesInProvidedOrder([node1, node2, node3]) + assert not hit_checker.canPrintNodesInProvidedOrder([node1, node3, node2]) + assert not hit_checker.canPrintNodesInProvidedOrder([node2, node1, node3]) + assert not hit_checker.canPrintNodesInProvidedOrder([node2, node3, node1]) + assert not hit_checker.canPrintNodesInProvidedOrder([node3, node1, node2]) + assert not hit_checker.canPrintNodesInProvidedOrder([node3, node2, node1]) \ No newline at end of file diff --git a/tests/TestPrintOrderManager.py b/tests/TestPrintOrderManager.py new file mode 100644 index 0000000000..8b2c0475b2 --- /dev/null +++ b/tests/TestPrintOrderManager.py @@ -0,0 +1,175 @@ +from unittest.mock import patch, MagicMock + +from cura.PrintOrderManager import PrintOrderManager +from cura.Scene.CuraSceneNode import CuraSceneNode + + +def test_getNodeName(): + node1 = CuraSceneNode(name="cat", no_setting_override=True) + node2 = CuraSceneNode(name="dog", no_setting_override=True) + assert PrintOrderManager._getNodeName(node1) == "cat" + assert PrintOrderManager._getNodeName(node2) == "dog" + assert PrintOrderManager._getNodeName(None) == "" + + +def test_getNodeName_truncatesLongName(): + node = CuraSceneNode(name="some_name_longer_than_30_characters", no_setting_override=True) + assert PrintOrderManager._getNodeName(node) == "some_name_longer_than_30_chara" + assert PrintOrderManager._getNodeName(node, max_length=10) == "some_name_" + + +def test_getSingleSelectedNode(): + node1 = CuraSceneNode(no_setting_override=True) + with patch("UM.Scene.Selection.Selection.getAllSelectedObjects", MagicMock(return_value=[node1])): + with patch("UM.Scene.Selection.Selection.getSelectedObject", MagicMock(return_value=node1)): + assert PrintOrderManager._getSingleSelectedNode() == node1 + + +def test_getSingleSelectedNode_returnsNoneIfNothingSelected(): + with patch("UM.Scene.Selection.Selection.getAllSelectedObjects", MagicMock(return_value=[])): + assert PrintOrderManager._getSingleSelectedNode() is None + + +def test_getSingleSelectedNode_returnsNoneIfMultipleObjectsSelected(): + node1 = CuraSceneNode(no_setting_override=True) + node2 = CuraSceneNode(no_setting_override=True) + with patch("UM.Scene.Selection.Selection.getAllSelectedObjects", MagicMock(return_value=[node1, node2])): + assert PrintOrderManager._getSingleSelectedNode() is None + + +def test_neighborNodeNamesCorrect_WhenSomeNodeSelected(): + node1 = CuraSceneNode(no_setting_override=True, name="node1") + node2 = CuraSceneNode(no_setting_override=True, name="node2") + node3 = CuraSceneNode(no_setting_override=True, name="node3") + node1.printOrder = 1 + node2.printOrder = 2 + node3.printOrder = 3 + with patch.object(PrintOrderManager, "_configureEvents", return_value=None): + with patch.object(PrintOrderManager, "_getSingleSelectedNode", return_value=node1): + print_order_manager = PrintOrderManager(get_nodes=lambda: [node1, node2, node3]) + + assert print_order_manager.previousNodeName == "" + assert print_order_manager.nextNodeName == "node2" + assert not print_order_manager.shouldEnablePrintBeforeAction + assert print_order_manager.shouldEnablePrintAfterAction + + print_order_manager.swapSelectedAndNextNodes() # swaps node1 with node2, result: [node2, node1, node3] + assert print_order_manager.previousNodeName == "node2" + assert print_order_manager.nextNodeName == "node3" + assert print_order_manager.shouldEnablePrintBeforeAction + assert print_order_manager.shouldEnablePrintAfterAction + + print_order_manager.swapSelectedAndNextNodes() # swaps node1 with node3, result: [node2, node3, node1] + assert print_order_manager.previousNodeName == "node3" + assert print_order_manager.nextNodeName == "" + assert print_order_manager.shouldEnablePrintBeforeAction + assert not print_order_manager.shouldEnablePrintAfterAction + + print_order_manager.swapSelectedAndPreviousNodes() # swaps node1 with node3, result: [node2, node1, node3] + assert print_order_manager.previousNodeName == "node2" + assert print_order_manager.nextNodeName == "node3" + assert print_order_manager.shouldEnablePrintBeforeAction + assert print_order_manager.shouldEnablePrintAfterAction + + print_order_manager.swapSelectedAndPreviousNodes() # swaps node1 with node2, result: [node1, node2, node3] + assert print_order_manager.previousNodeName == "" + assert print_order_manager.nextNodeName == "node2" + assert not print_order_manager.shouldEnablePrintBeforeAction + assert print_order_manager.shouldEnablePrintAfterAction + + +def test_neighborNodeNamesEmpty_WhenNothingSelected(): + node1 = CuraSceneNode(no_setting_override=True, name="node1") + node2 = CuraSceneNode(no_setting_override=True, name="node2") + node3 = CuraSceneNode(no_setting_override=True, name="node3") + node1.printOrder = 1 + node2.printOrder = 2 + node3.printOrder = 3 + with patch.object(PrintOrderManager, "_configureEvents", return_value=None): + with patch.object(PrintOrderManager, "_getSingleSelectedNode", return_value=None): + print_order_manager = PrintOrderManager(get_nodes=lambda: [node1, node2, node3]) + assert print_order_manager.previousNodeName == "" + assert print_order_manager.nextNodeName == "" + assert not print_order_manager.shouldEnablePrintBeforeAction + assert not print_order_manager.shouldEnablePrintAfterAction + + +def test_initializePrintOrders(): + node1 = CuraSceneNode(no_setting_override=True) + node2 = CuraSceneNode(no_setting_override=True) + + # assume print orders are 0 + assert node1.printOrder == 0 + assert node2.printOrder == 0 + + PrintOrderManager.initializePrintOrders([node1, node2]) + + # assert print orders initialized + assert node1.printOrder == 1 + assert node2.printOrder == 2 + + node3 = CuraSceneNode(no_setting_override=True) + node4 = CuraSceneNode(no_setting_override=True) + # assume print orders are 0 + assert node3.printOrder == 0 + assert node4.printOrder == 0 + + PrintOrderManager.initializePrintOrders([node2, node1, node3, node4]) + + # assert print orders not changed for node1 and node2 and initialized for node3 and node4 + assert node1.printOrder == 1 + assert node2.printOrder == 2 + assert node3.printOrder == 3 + assert node4.printOrder == 4 + + +def test_updatePrintOrdersAfterGroupOperation(): + node1 = CuraSceneNode(no_setting_override=True) + node2 = CuraSceneNode(no_setting_override=True) + node3 = CuraSceneNode(no_setting_override=True) + node4 = CuraSceneNode(no_setting_override=True) + node5 = CuraSceneNode(no_setting_override=True) + node1.printOrder = 1 + node2.printOrder = 2 + node3.printOrder = 3 + node4.printOrder = 4 + node5.printOrder = 5 + + all_nodes = [node1, node2, node3, node4, node5] + grouped_nodes = [node2, node4] + group_node = CuraSceneNode(no_setting_override=True) + + PrintOrderManager.updatePrintOrdersAfterGroupOperation(all_nodes, group_node, grouped_nodes) + + assert node1.printOrder == 1 + assert group_node.printOrder == 2 + assert node3.printOrder == 3 + assert node5.printOrder == 4 + + +def test_updatePrintOrdersAfterUngroupOperation(): + node1 = CuraSceneNode(no_setting_override=True) + node2 = CuraSceneNode(no_setting_override=True) + node3 = CuraSceneNode(no_setting_override=True) + node1.printOrder = 1 + node2.printOrder = 2 + node3.printOrder = 3 + + all_nodes = [node1, node2, node3] + node4 = CuraSceneNode(no_setting_override=True) + node5 = CuraSceneNode(no_setting_override=True) + + group_node = node2 + ungrouped_nodes = [node4, node5] + PrintOrderManager.updatePrintOrdersAfterUngroupOperation(all_nodes, group_node, ungrouped_nodes) + + assert node1.printOrder == 1 + assert node4.printOrder == 2 + assert node5.printOrder == 3 + assert node3.printOrder == 4 + + assert node1 in all_nodes + assert node2 not in all_nodes + assert node3 in all_nodes + assert node4 in all_nodes + assert node5 in all_nodes From 1747bbb0cbc28e7eef2736af9cb75a58af67a776 Mon Sep 17 00:00:00 2001 From: Saumya Jain <70144862+saumyaj3@users.noreply.github.com> Date: Thu, 4 Jan 2024 14:18:57 +0100 Subject: [PATCH 039/269] Update cura_app.py sanitization of environment variable Co-authored-by: Casper Lamboo --- cura_app.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cura_app.py b/cura_app.py index 17321b8042..7e80bbac79 100755 --- a/cura_app.py +++ b/cura_app.py @@ -17,7 +17,11 @@ import faulthandler import os if sys.platform != "linux": # Turns out the Linux build _does_ use this, but we're not making an Enterprise release for that system anyway. os.environ["QT_PLUGIN_PATH"] = "" # Security workaround: Don't need it, and introduces an attack vector, so set to nul. - os.environ["QT_QUICK_FLICKABLE_WHEEL_DECELERATION"] = "" # Security workaround: Don't need it, and introduces an attack vector, so set to nul. + try: + # try converting to integer + os.environ["QT_QUICK_FLICKABLE_WHEEL_DECELERATION"] = str(int(os.environ["QT_QUICK_FLICKABLE_WHEEL_DECELERATION"])) + except ValueError: + os.environ["QT_QUICK_FLICKABLE_WHEEL_DECELERATION"] = "5000" os.environ["QML2_IMPORT_PATH"] = "" # Security workaround: Don't need it, and introduces an attack vector, so set to nul. os.environ["QT_OPENGL_DLL"] = "" # Security workaround: Don't need it, and introduces an attack vector, so set to nul. From f6cc7993e1a1e1b79ed7c6df57295ecc75e8b54a Mon Sep 17 00:00:00 2001 From: Nikita Chernukhin Date: Sat, 23 Dec 2023 18:11:27 +0100 Subject: [PATCH 040/269] Add RatRig printers configurations Added configurations for the following RatRig printers: * RatRig V-Core 3 (200mm, 300mm, 400mm and 500mm versions) * RatRig V-Minion V-Core 3.1 modification is also supported. Bed meshes are taken from https://github.com/slic3r/slic3r-profiles with kind permission of the author @HelgeKeck --- resources/definitions/ratrig_base.def.json | 19 +++ .../definitions/ratrig_vcore3_200.def.json | 23 ++++ .../definitions/ratrig_vcore3_300.def.json | 23 ++++ .../definitions/ratrig_vcore3_400.def.json | 23 ++++ .../definitions/ratrig_vcore3_500.def.json | 23 ++++ .../definitions/ratrig_vcore3_base.def.json | 117 ++++++++++++++++ resources/definitions/ratrig_vminion.def.json | 128 ++++++++++++++++++ .../extruders/ratrig_base_extruder_0.def.json | 15 ++ resources/meshes/ratrig_vcore3_200.stl | Bin 0 -> 290784 bytes resources/meshes/ratrig_vcore3_300.stl | Bin 0 -> 250084 bytes resources/meshes/ratrig_vcore3_400.stl | Bin 0 -> 250084 bytes resources/meshes/ratrig_vcore3_500.stl | Bin 0 -> 250084 bytes resources/meshes/ratrig_vminion.stl | Bin 0 -> 45784 bytes .../ratrig_base_0.2_Nylon_super.inst.cfg | 15 ++ .../ratrig_base_0.2_Nylon_ultra.inst.cfg | 15 ++ .../ratrig_base_0.3_Nylon_adaptive.inst.cfg | 15 ++ .../nylon/ratrig_base_0.3_Nylon_low.inst.cfg | 15 ++ .../ratrig_base_0.3_Nylon_standard.inst.cfg | 15 ++ .../ratrig_base_0.3_Nylon_super.inst.cfg | 15 ++ .../ratrig_base_0.4_Nylon_adaptive.inst.cfg | 18 +++ .../nylon/ratrig_base_0.4_Nylon_low.inst.cfg | 18 +++ .../ratrig_base_0.4_Nylon_standard.inst.cfg | 18 +++ .../ratrig_base_0.4_Nylon_super.inst.cfg | 18 +++ .../ratrig_base_0.5_Nylon_adaptive.inst.cfg | 15 ++ .../nylon/ratrig_base_0.5_Nylon_low.inst.cfg | 15 ++ .../ratrig_base_0.5_Nylon_standard.inst.cfg | 15 ++ .../ratrig_base_0.5_Nylon_super.inst.cfg | 15 ++ .../ratrig_base_0.6_Nylon_standard.inst.cfg | 15 ++ .../ratrig_base_0.8_Nylon_draft.inst.cfg | 16 +++ .../ratrig_base_1.0_Nylon_draft.inst.cfg | 15 ++ .../petg/ratrig_base_0.2_PETG_super.inst.cfg | 15 ++ .../petg/ratrig_base_0.2_PETG_ultra.inst.cfg | 15 ++ .../ratrig_base_0.3_PETG_adaptive.inst.cfg | 15 ++ .../petg/ratrig_base_0.3_PETG_low.inst.cfg | 15 ++ .../ratrig_base_0.3_PETG_standard.inst.cfg | 15 ++ .../petg/ratrig_base_0.3_PETG_super.inst.cfg | 15 ++ .../ratrig_base_0.4_PETG_adaptive.inst.cfg | 18 +++ .../petg/ratrig_base_0.4_PETG_low.inst.cfg | 18 +++ .../ratrig_base_0.4_PETG_standard.inst.cfg | 18 +++ .../petg/ratrig_base_0.4_PETG_super.inst.cfg | 18 +++ .../ratrig_base_0.5_PETG_adaptive.inst.cfg | 15 ++ .../petg/ratrig_base_0.5_PETG_low.inst.cfg | 15 ++ .../ratrig_base_0.5_PETG_standard.inst.cfg | 15 ++ .../petg/ratrig_base_0.5_PETG_super.inst.cfg | 15 ++ .../ratrig_base_0.6_PETG_standard.inst.cfg | 15 ++ .../petg/ratrig_base_0.8_PETG_draft.inst.cfg | 16 +++ .../petg/ratrig_base_1.0_PETG_draft.inst.cfg | 15 ++ .../pla/ratrig_base_0.2_PLA_super.inst.cfg | 13 ++ .../pla/ratrig_base_0.2_PLA_ultra.inst.cfg | 13 ++ .../pla/ratrig_base_0.3_PLA_adaptive.inst.cfg | 13 ++ .../pla/ratrig_base_0.3_PLA_low.inst.cfg | 13 ++ .../pla/ratrig_base_0.3_PLA_standard.inst.cfg | 13 ++ .../pla/ratrig_base_0.3_PLA_super.inst.cfg | 13 ++ .../pla/ratrig_base_0.4_PLA_adaptive.inst.cfg | 13 ++ .../pla/ratrig_base_0.4_PLA_low.inst.cfg | 13 ++ .../pla/ratrig_base_0.4_PLA_standard.inst.cfg | 13 ++ .../pla/ratrig_base_0.4_PLA_super.inst.cfg | 13 ++ .../pla/ratrig_base_0.5_PLA_adaptive.inst.cfg | 13 ++ .../pla/ratrig_base_0.5_PLA_low.inst.cfg | 13 ++ .../pla/ratrig_base_0.5_PLA_standard.inst.cfg | 13 ++ .../pla/ratrig_base_0.5_PLA_super.inst.cfg | 13 ++ .../pla/ratrig_base_0.6_PLA_draft.inst.cfg | 13 ++ .../pla/ratrig_base_0.6_PLA_low.inst.cfg | 13 ++ .../pla/ratrig_base_0.6_PLA_standard.inst.cfg | 13 ++ .../pla/ratrig_base_0.8_PLA_draft.inst.cfg | 13 ++ .../pla/ratrig_base_1.0_PLA_draft.inst.cfg | 13 ++ .../ratrig_base_global_adaptive.inst.cfg | 19 +++ .../ratrig_base_global_draft.inst.cfg | 18 +++ .../ratrig_base_global_low.inst.cfg | 18 +++ .../ratrig_base_global_standard.inst.cfg | 18 +++ .../ratrig_base_global_super.inst.cfg | 18 +++ .../ratrig_base_global_ultra.inst.cfg | 18 +++ .../tpu/ratrig_base_0.3_TPU_adaptive.inst.cfg | 13 ++ .../tpu/ratrig_base_0.3_TPU_standard.inst.cfg | 13 ++ .../tpu/ratrig_base_0.3_TPU_super.inst.cfg | 13 ++ .../tpu/ratrig_base_0.4_TPU_adaptive.inst.cfg | 13 ++ .../tpu/ratrig_base_0.4_TPU_standard.inst.cfg | 13 ++ .../tpu/ratrig_base_0.4_TPU_super.inst.cfg | 13 ++ .../tpu/ratrig_base_0.5_TPU_adaptive.inst.cfg | 13 ++ .../tpu/ratrig_base_0.5_TPU_standard.inst.cfg | 13 ++ .../tpu/ratrig_base_0.5_TPU_super.inst.cfg | 13 ++ .../tpu/ratrig_base_0.6_TPU_standard.inst.cfg | 13 ++ .../tpu/ratrig_base_0.8_TPU_draft.inst.cfg | 13 ++ .../tpu/ratrig_base_1.0_TPU_draft.inst.cfg | 13 ++ .../variants/ratrig/ratrig_base_0.2.inst.cfg | 12 ++ .../variants/ratrig/ratrig_base_0.3.inst.cfg | 12 ++ .../variants/ratrig/ratrig_base_0.4.inst.cfg | 12 ++ .../variants/ratrig/ratrig_base_0.6.inst.cfg | 12 ++ .../variants/ratrig/ratrig_base_0.8.inst.cfg | 12 ++ .../variants/ratrig/ratrig_base_1.0.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_200_0.2.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_200_0.3.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_200_0.4.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_200_0.6.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_200_0.8.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_200_1.0.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_300_0.2.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_300_0.3.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_300_0.4.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_300_0.6.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_300_0.8.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_300_1.0.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_400_0.2.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_400_0.3.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_400_0.4.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_400_0.6.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_400_0.8.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_400_1.0.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_500_0.2.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_500_0.3.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_500_0.4.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_500_0.6.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_500_0.8.inst.cfg | 12 ++ .../ratrig/ratrig_vcore3_500_1.0.inst.cfg | 12 ++ .../ratrig/ratrig_vminion_0.2.inst.cfg | 12 ++ .../ratrig/ratrig_vminion_0.3.inst.cfg | 12 ++ .../ratrig/ratrig_vminion_0.4.inst.cfg | 12 ++ .../ratrig/ratrig_vminion_0.6.inst.cfg | 12 ++ .../ratrig/ratrig_vminion_0.8.inst.cfg | 12 ++ .../ratrig/ratrig_vminion_1.0.inst.cfg | 12 ++ 120 files changed, 1851 insertions(+) create mode 100644 resources/definitions/ratrig_base.def.json create mode 100644 resources/definitions/ratrig_vcore3_200.def.json create mode 100644 resources/definitions/ratrig_vcore3_300.def.json create mode 100644 resources/definitions/ratrig_vcore3_400.def.json create mode 100644 resources/definitions/ratrig_vcore3_500.def.json create mode 100644 resources/definitions/ratrig_vcore3_base.def.json create mode 100644 resources/definitions/ratrig_vminion.def.json create mode 100644 resources/extruders/ratrig_base_extruder_0.def.json create mode 100644 resources/meshes/ratrig_vcore3_200.stl create mode 100644 resources/meshes/ratrig_vcore3_300.stl create mode 100644 resources/meshes/ratrig_vcore3_400.stl create mode 100644 resources/meshes/ratrig_vcore3_500.stl create mode 100644 resources/meshes/ratrig_vminion.stl create mode 100644 resources/quality/ratrig_base/nylon/ratrig_base_0.2_Nylon_super.inst.cfg create mode 100644 resources/quality/ratrig_base/nylon/ratrig_base_0.2_Nylon_ultra.inst.cfg create mode 100644 resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_adaptive.inst.cfg create mode 100644 resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_low.inst.cfg create mode 100644 resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_standard.inst.cfg create mode 100644 resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_super.inst.cfg create mode 100644 resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_adaptive.inst.cfg create mode 100644 resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_low.inst.cfg create mode 100644 resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_standard.inst.cfg create mode 100644 resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_super.inst.cfg create mode 100644 resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_adaptive.inst.cfg create mode 100644 resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_low.inst.cfg create mode 100644 resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_standard.inst.cfg create mode 100644 resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_super.inst.cfg create mode 100644 resources/quality/ratrig_base/nylon/ratrig_base_0.6_Nylon_standard.inst.cfg create mode 100644 resources/quality/ratrig_base/nylon/ratrig_base_0.8_Nylon_draft.inst.cfg create mode 100644 resources/quality/ratrig_base/nylon/ratrig_base_1.0_Nylon_draft.inst.cfg create mode 100644 resources/quality/ratrig_base/petg/ratrig_base_0.2_PETG_super.inst.cfg create mode 100644 resources/quality/ratrig_base/petg/ratrig_base_0.2_PETG_ultra.inst.cfg create mode 100644 resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_adaptive.inst.cfg create mode 100644 resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_low.inst.cfg create mode 100644 resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_standard.inst.cfg create mode 100644 resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_super.inst.cfg create mode 100644 resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_adaptive.inst.cfg create mode 100644 resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_low.inst.cfg create mode 100644 resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_standard.inst.cfg create mode 100644 resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_super.inst.cfg create mode 100644 resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_adaptive.inst.cfg create mode 100644 resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_low.inst.cfg create mode 100644 resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_standard.inst.cfg create mode 100644 resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_super.inst.cfg create mode 100644 resources/quality/ratrig_base/petg/ratrig_base_0.6_PETG_standard.inst.cfg create mode 100644 resources/quality/ratrig_base/petg/ratrig_base_0.8_PETG_draft.inst.cfg create mode 100644 resources/quality/ratrig_base/petg/ratrig_base_1.0_PETG_draft.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_0.2_PLA_super.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_0.2_PLA_ultra.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_adaptive.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_low.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_standard.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_super.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_adaptive.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_low.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_standard.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_super.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_adaptive.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_low.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_standard.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_super.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_draft.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_low.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_standard.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_0.8_PLA_draft.inst.cfg create mode 100644 resources/quality/ratrig_base/pla/ratrig_base_1.0_PLA_draft.inst.cfg create mode 100644 resources/quality/ratrig_base/ratrig_base_global_adaptive.inst.cfg create mode 100644 resources/quality/ratrig_base/ratrig_base_global_draft.inst.cfg create mode 100644 resources/quality/ratrig_base/ratrig_base_global_low.inst.cfg create mode 100644 resources/quality/ratrig_base/ratrig_base_global_standard.inst.cfg create mode 100644 resources/quality/ratrig_base/ratrig_base_global_super.inst.cfg create mode 100644 resources/quality/ratrig_base/ratrig_base_global_ultra.inst.cfg create mode 100644 resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_adaptive.inst.cfg create mode 100644 resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_standard.inst.cfg create mode 100644 resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_super.inst.cfg create mode 100644 resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_adaptive.inst.cfg create mode 100644 resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_standard.inst.cfg create mode 100644 resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_super.inst.cfg create mode 100644 resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_adaptive.inst.cfg create mode 100644 resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_standard.inst.cfg create mode 100644 resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_super.inst.cfg create mode 100644 resources/quality/ratrig_base/tpu/ratrig_base_0.6_TPU_standard.inst.cfg create mode 100644 resources/quality/ratrig_base/tpu/ratrig_base_0.8_TPU_draft.inst.cfg create mode 100644 resources/quality/ratrig_base/tpu/ratrig_base_1.0_TPU_draft.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_base_0.2.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_base_0.3.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_base_0.4.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_base_0.6.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_base_0.8.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_base_1.0.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_200_0.2.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_200_0.3.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_200_0.4.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_200_0.6.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_200_0.8.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_200_1.0.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_300_0.2.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_300_0.3.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_300_0.4.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_300_0.6.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_300_0.8.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_300_1.0.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_400_0.2.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_400_0.3.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_400_0.4.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_400_0.6.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_400_0.8.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_400_1.0.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_500_0.2.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_500_0.3.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_500_0.4.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_500_0.6.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_500_0.8.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vcore3_500_1.0.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vminion_0.2.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vminion_0.3.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vminion_0.4.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vminion_0.6.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vminion_0.8.inst.cfg create mode 100644 resources/variants/ratrig/ratrig_vminion_1.0.inst.cfg diff --git a/resources/definitions/ratrig_base.def.json b/resources/definitions/ratrig_base.def.json new file mode 100644 index 0000000000..22c01c8bc3 --- /dev/null +++ b/resources/definitions/ratrig_base.def.json @@ -0,0 +1,19 @@ +{ + "version": 2, + "name": "RatRig Printer", + "inherits": "fdmprinter", + "metadata": + { + "visible": false, + "author": "nu-hin", + "manufacturer": "RatRig", + "file_formats": "text/x-gcode", + "exclude_materials": [], + "first_start_actions": [ "MachineSettingsAction" ], + "has_materials": true, + "preferred_material": "generic_pla", + "preferred_quality_type": "standard", + "quality_definition": "ratrig_base", + "supported_actions": [ "MachineSettingsAction" ] + } +} diff --git a/resources/definitions/ratrig_vcore3_200.def.json b/resources/definitions/ratrig_vcore3_200.def.json new file mode 100644 index 0000000000..22738f6ce1 --- /dev/null +++ b/resources/definitions/ratrig_vcore3_200.def.json @@ -0,0 +1,23 @@ +{ + "version": 2, + "name": "RatRig V-Core 3 200mm", + "inherits": "ratrig_vcore3_base", + "metadata": + { + "visible": true, + "platform": "ratrig_vcore3_200.stl", + "platform_offset": [ + 0, + 5, + 0 + ], + "weight": 16 + }, + "overrides": + { + "machine_depth": { "default_value": 200 }, + "machine_height": { "default_value": 200 }, + "machine_name": { "default_value": "RatRig V-Core 3 200mm" }, + "machine_width": { "default_value": 200 } + } +} diff --git a/resources/definitions/ratrig_vcore3_300.def.json b/resources/definitions/ratrig_vcore3_300.def.json new file mode 100644 index 0000000000..b139f3b105 --- /dev/null +++ b/resources/definitions/ratrig_vcore3_300.def.json @@ -0,0 +1,23 @@ +{ + "version": 2, + "name": "RatRig V-Core 3 300mm", + "inherits": "ratrig_vcore3_base", + "metadata": + { + "visible": true, + "platform": "ratrig_vcore3_300.stl", + "platform_offset": [ + 0, + 5, + 0 + ], + "weight": 16 + }, + "overrides": + { + "machine_depth": { "default_value": 300 }, + "machine_height": { "default_value": 300 }, + "machine_name": { "default_value": "RatRig V-Core 3 300mm" }, + "machine_width": { "default_value": 300 } + } +} diff --git a/resources/definitions/ratrig_vcore3_400.def.json b/resources/definitions/ratrig_vcore3_400.def.json new file mode 100644 index 0000000000..a61e4570bc --- /dev/null +++ b/resources/definitions/ratrig_vcore3_400.def.json @@ -0,0 +1,23 @@ +{ + "version": 2, + "name": "RatRig V-Core 3 400mm", + "inherits": "ratrig_vcore3_base", + "metadata": + { + "visible": true, + "platform": "ratrig_vcore3_400.stl", + "platform_offset": [ + 0, + 3, + 0 + ], + "weight": 16 + }, + "overrides": + { + "machine_depth": { "default_value": 400 }, + "machine_height": { "default_value": 400 }, + "machine_name": { "default_value": "RatRig V-Core 3 400mm" }, + "machine_width": { "default_value": 400 } + } +} diff --git a/resources/definitions/ratrig_vcore3_500.def.json b/resources/definitions/ratrig_vcore3_500.def.json new file mode 100644 index 0000000000..93483af33a --- /dev/null +++ b/resources/definitions/ratrig_vcore3_500.def.json @@ -0,0 +1,23 @@ +{ + "version": 2, + "name": "RatRig V-Core 3 500mm", + "inherits": "ratrig_vcore3_base", + "metadata": + { + "visible": true, + "platform": "ratrig_vcore3_500.stl", + "platform_offset": [ + 0, + 0, + 0 + ], + "weight": 16 + }, + "overrides": + { + "machine_depth": { "default_value": 500 }, + "machine_height": { "default_value": 500 }, + "machine_name": { "default_value": "RatRig V-Core 3 500mm" }, + "machine_width": { "default_value": 500 } + } +} diff --git a/resources/definitions/ratrig_vcore3_base.def.json b/resources/definitions/ratrig_vcore3_base.def.json new file mode 100644 index 0000000000..a736da4506 --- /dev/null +++ b/resources/definitions/ratrig_vcore3_base.def.json @@ -0,0 +1,117 @@ +{ + "version": 2, + "name": "RatRig V-Core 3", + "inherits": "ratrig_base", + "metadata": + { + "visible": false, + "has_machine_quality": true, + "has_variants": true, + "machine_extruder_trains": { "0": "ratrig_base_extruder_0" }, + "preferred_variant_name": "0.4mm Nozzle", + "variants_name": "Nozzle Size" + }, + "overrides": + { + "acceleration_enabled": { "value": true }, + "acceleration_layer_0": { "value": "acceleration_topbottom" }, + "acceleration_roofing": { "enabled": "acceleration_enabled and roofing_layer_count > 0 and top_layers > 0" }, + "acceleration_topbottom": { "value": "acceleration_print / 3" }, + "acceleration_travel": { "value": 3000 }, + "acceleration_travel_layer_0": { "value": "acceleration_travel / 3" }, + "adaptive_layer_height_variation": { "value": 0.04 }, + "adaptive_layer_height_variation_step": { "value": 0.04 }, + "adhesion_type": { "value": "'skirt'" }, + "brim_replaces_support": { "value": false }, + "brim_width": { "value": "3" }, + "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, + "cool_min_layer_time": { "value": 2 }, + "fill_outline_gaps": { "value": false }, + "filter_out_tiny_gaps": { "value": false }, + "gantry_height": { "value": 30 }, + "infill_before_walls": { "value": false }, + "infill_overlap": { "value": 30 }, + "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, + "infill_wipe_dist": { "value": 0 }, + "layer_height": { "default_value": 0.2 }, + "layer_height_0": { "default_value": 0.2 }, + "machine_acceleration": { "value": 3000 }, + "machine_end_gcode": { "default_value": "END_PRINT" }, + "machine_extruder_count": { "default_value": 1 }, + "machine_head_with_fans_polygon": + { + "default_value": [ + [-40, 90], + [-40, -30], + [40, -30], + [40, 90] + ] + }, + "machine_heated_bed": { "default_value": true }, + "machine_max_acceleration_e": { "value": 5000 }, + "machine_max_acceleration_x": { "value": 9000 }, + "machine_max_acceleration_y": { "value": 9000 }, + "machine_max_acceleration_z": { "value": 100 }, + "machine_max_feedrate_e": { "value": 60 }, + "machine_max_feedrate_x": { "value": 500 }, + "machine_max_feedrate_y": { "value": 500 }, + "machine_max_feedrate_z": { "value": 10 }, + "machine_max_jerk_e": { "value": 5 }, + "machine_max_jerk_xy": { "value": 5 }, + "machine_max_jerk_z": { "value": 0.4 }, + "machine_name": { "default_value": "RatRig V-Core 3" }, + "machine_shape": { "default_value": "rectangular" }, + "machine_show_variants": { "default_value": true }, + "machine_start_gcode": { "default_value": "START_PRINT EXTRUDER_TEMP={material_print_temperature_layer_0} BED_TEMP={material_bed_temperature_layer_0}" }, + "material_diameter": { "default_value": 1.75 }, + "material_final_print_temperature": { "value": "material_print_temperature" }, + "material_initial_print_temperature": { "value": "material_print_temperature" }, + "meshfix_maximum_resolution": { "value": "0.25" }, + "meshfix_maximum_travel_resolution": { "value": "meshfix_maximum_resolution" }, + "minimum_interface_area": { "value": 10 }, + "minimum_support_area": { "value": 2 }, + "optimize_wall_printing_order": { "value": true }, + "retraction_amount": { "value": "machine_nozzle_size * 2" }, + "retraction_combing": { "value": "'off' if retraction_hop_enabled else 'noskin'" }, + "retraction_combing_max_distance": { "value": 30 }, + "retraction_count_max": { "value": 100 }, + "retraction_extrusion_window": { "value": 10 }, + "retraction_speed": { "value": 40 }, + "roofing_layer_count": { "value": 1 }, + "skin_overlap": { "value": 18 }, + "skirt_brim_minimal_length": { "default_value": 30 }, + "skirt_gap": { "value": 10 }, + "skirt_line_count": { "value": 3 }, + "speed_layer_0": { "value": "math.floor(speed_print * 3 / 10)" }, + "speed_print": { "value": 100 }, + "speed_roofing": { "value": "math.floor(speed_print * 3 / 10)" }, + "speed_support": { "value": "math.floor(speed_print * 3 / 10)" }, + "speed_support_interface": { "value": "speed_topbottom" }, + "speed_topbottom": { "value": "math.floor(speed_print / 2)" }, + "speed_travel": { "value": 250 }, + "speed_travel_layer_0": { "value": "100 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, + "speed_wall_x": { "value": "speed_wall" }, + "speed_z_hop": { "value": 5 }, + "support_angle": { "value": "math.floor(math.degrees(math.atan(line_width/2.0/layer_height)))" }, + "support_brim_width": { "value": 4 }, + "support_infill_rate": { "value": "0 if support_enable and support_structure == 'tree' else 20" }, + "support_interface_density": { "value": 33.333 }, + "support_interface_enable": { "value": true }, + "support_interface_height": { "value": "layer_height * 4" }, + "support_interface_pattern": { "value": "'grid'" }, + "support_pattern": { "value": "'zigzag'" }, + "support_use_towers": { "value": false }, + "support_xy_distance": { "value": "wall_line_width_0 * 2" }, + "support_xy_distance_overhang": { "value": "wall_line_width_0" }, + "support_xy_overrides_z": { "value": "'xy_overrides_z'" }, + "support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height * 2" }, + "top_bottom_pattern": { "value": "'lines'" }, + "top_bottom_thickness": { "value": "layer_height_0 + layer_height * 3" }, + "travel_avoid_supports": { "value": true }, + "travel_retract_before_outer_wall": { "value": true }, + "wall_0_wipe_dist": { "value": 0 }, + "wall_thickness": { "value": "line_width * 2" }, + "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, + "z_seam_type": { "value": "'back'" } + } +} diff --git a/resources/definitions/ratrig_vminion.def.json b/resources/definitions/ratrig_vminion.def.json new file mode 100644 index 0000000000..3cfb3baad6 --- /dev/null +++ b/resources/definitions/ratrig_vminion.def.json @@ -0,0 +1,128 @@ +{ + "version": 2, + "name": "RatRig V-Minion", + "inherits": "ratrig_base", + "metadata": + { + "visible": true, + "platform": "ratrig_vminion.stl", + "has_machine_quality": true, + "has_variants": true, + "machine_extruder_trains": { "0": "ratrig_base_extruder_0" }, + "platform_offset": [ + 0, + 5, + 0 + ], + "preferred_variant_name": "0.4mm Nozzle", + "variants_name": "Nozzle Size", + "weight": 8 + }, + "overrides": + { + "acceleration_enabled": { "value": true }, + "acceleration_layer_0": { "value": "acceleration_topbottom" }, + "acceleration_roofing": { "enabled": "acceleration_enabled and roofing_layer_count > 0 and top_layers > 0" }, + "acceleration_topbottom": { "value": "acceleration_print / 3" }, + "acceleration_travel": { "value": 3000 }, + "acceleration_travel_layer_0": { "value": "acceleration_travel / 3" }, + "adaptive_layer_height_variation": { "value": 0.04 }, + "adaptive_layer_height_variation_step": { "value": 0.04 }, + "adhesion_type": { "value": "'skirt'" }, + "brim_replaces_support": { "value": false }, + "brim_width": { "value": "3" }, + "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, + "cool_min_layer_time": { "value": 2 }, + "fill_outline_gaps": { "value": false }, + "filter_out_tiny_gaps": { "value": false }, + "gantry_height": { "value": 30 }, + "infill_before_walls": { "value": false }, + "infill_overlap": { "value": 30 }, + "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, + "infill_wipe_dist": { "value": 0 }, + "layer_height": { "default_value": 0.2 }, + "layer_height_0": { "default_value": 0.2 }, + "machine_acceleration": { "value": 3000 }, + "machine_depth": { "default_value": 180 }, + "machine_end_gcode": { "default_value": "END_PRINT" }, + "machine_extruder_count": { "default_value": 1 }, + "machine_head_with_fans_polygon": + { + "default_value": [ + [-40, 90], + [-40, -30], + [40, -30], + [40, 90] + ] + }, + "machine_heated_bed": { "default_value": true }, + "machine_height": { "default_value": 180 }, + "machine_max_acceleration_e": { "value": 5000 }, + "machine_max_acceleration_x": { "value": 9000 }, + "machine_max_acceleration_y": { "value": 9000 }, + "machine_max_acceleration_z": { "value": 100 }, + "machine_max_feedrate_e": { "value": 60 }, + "machine_max_feedrate_x": { "value": 500 }, + "machine_max_feedrate_y": { "value": 500 }, + "machine_max_feedrate_z": { "value": 10 }, + "machine_max_jerk_e": { "value": 5 }, + "machine_max_jerk_xy": { "value": 5 }, + "machine_max_jerk_z": { "value": 0.4 }, + "machine_name": { "default_value": "RatRig V-Minion" }, + "machine_shape": { "default_value": "rectangular" }, + "machine_show_variants": { "default_value": true }, + "machine_start_gcode": { "default_value": "START_PRINT EXTRUDER_TEMP={material_print_temperature_layer_0} BED_TEMP={material_bed_temperature_layer_0}" }, + "machine_width": { "default_value": 180 }, + "material_diameter": { "default_value": 1.75 }, + "material_final_print_temperature": { "value": "material_print_temperature" }, + "material_initial_print_temperature": { "value": "material_print_temperature" }, + "meshfix_maximum_resolution": { "value": "0.25" }, + "meshfix_maximum_travel_resolution": { "value": "meshfix_maximum_resolution" }, + "minimum_interface_area": { "value": 10 }, + "minimum_support_area": { "value": 2 }, + "optimize_wall_printing_order": { "value": true }, + "retraction_amount": { "value": "machine_nozzle_size * 2" }, + "retraction_combing": { "value": "'off' if retraction_hop_enabled else 'noskin'" }, + "retraction_combing_max_distance": { "value": 30 }, + "retraction_count_max": { "value": 100 }, + "retraction_extrusion_window": { "value": 10 }, + "retraction_speed": { "value": 40 }, + "roofing_layer_count": { "value": 1 }, + "skin_overlap": { "value": 18 }, + "skirt_brim_minimal_length": { "default_value": 30 }, + "skirt_gap": { "value": 10 }, + "skirt_line_count": { "value": 3 }, + "speed_layer_0": { "value": "math.floor(speed_print * 3 / 10)" }, + "speed_print": { "value": 100 }, + "speed_roofing": { "value": "math.floor(speed_print * 3 / 10)" }, + "speed_support": { "value": "math.floor(speed_print * 3 / 10)" }, + "speed_support_interface": { "value": "speed_topbottom" }, + "speed_topbottom": { "value": "math.floor(speed_print / 2)" }, + "speed_travel": { "value": 250 }, + "speed_travel_layer_0": { "value": "100 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, + "speed_wall": { "value": "math.floor(speed_print / 2)" }, + "speed_wall_x": { "value": "speed_wall" }, + "speed_z_hop": { "value": 5 }, + "support_angle": { "value": "math.floor(math.degrees(math.atan(line_width/2.0/layer_height)))" }, + "support_brim_width": { "value": 4 }, + "support_infill_rate": { "value": "0 if support_enable and support_structure == 'tree' else 20" }, + "support_interface_density": { "value": 33.333 }, + "support_interface_enable": { "value": true }, + "support_interface_height": { "value": "layer_height * 4" }, + "support_interface_pattern": { "value": "'grid'" }, + "support_pattern": { "value": "'zigzag'" }, + "support_use_towers": { "value": false }, + "support_xy_distance": { "value": "wall_line_width_0 * 2" }, + "support_xy_distance_overhang": { "value": "wall_line_width_0" }, + "support_xy_overrides_z": { "value": "'xy_overrides_z'" }, + "support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height * 2" }, + "top_bottom_pattern": { "value": "'lines'" }, + "top_bottom_thickness": { "value": "layer_height_0 + layer_height * 3" }, + "travel_avoid_supports": { "value": true }, + "travel_retract_before_outer_wall": { "value": true }, + "wall_0_wipe_dist": { "value": 0 }, + "wall_thickness": { "value": "line_width * 2" }, + "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, + "z_seam_type": { "value": "'back'" } + } +} diff --git a/resources/extruders/ratrig_base_extruder_0.def.json b/resources/extruders/ratrig_base_extruder_0.def.json new file mode 100644 index 0000000000..0c621c9a06 --- /dev/null +++ b/resources/extruders/ratrig_base_extruder_0.def.json @@ -0,0 +1,15 @@ +{ + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "ratrig_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/meshes/ratrig_vcore3_200.stl b/resources/meshes/ratrig_vcore3_200.stl new file mode 100644 index 0000000000000000000000000000000000000000..b44e099eb3f38dfaa1fdb42a928319b4aed7889e GIT binary patch literal 290784 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

n01}ErvB84aDDne(RczZ${cIt(v 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 O@#}~Aoj+w|ApRfb5FPLU literal 0 HcmV?d00001 diff --git a/resources/meshes/ratrig_vcore3_300.stl b/resources/meshes/ratrig_vcore3_300.stl new file mode 100644 index 0000000000000000000000000000000000000000..454efe90123ade9d965f4b4cf597e8cbb3891e12 GIT binary patch literal 250084 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 z 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 literal 0 HcmV?d00001 diff --git a/resources/meshes/ratrig_vcore3_400.stl b/resources/meshes/ratrig_vcore3_400.stl new file mode 100644 index 0000000000000000000000000000000000000000..dd1b801714a887243aa04bd1d5bcd5a82fa35094 GIT binary patch literal 250084 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

SjVOgc75e84hWM~o#=S}7P0xrx3le$0ahjxa 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 literal 0 HcmV?d00001 diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.2_Nylon_super.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.2_Nylon_super.inst.cfg new file mode 100644 index 0000000000..986c594aa8 --- /dev/null +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.2_Nylon_super.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Super Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = super +material = generic_nylon +variant = 0.2mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*8 diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.2_Nylon_ultra.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.2_Nylon_ultra.inst.cfg new file mode 100644 index 0000000000..8e857ee97c --- /dev/null +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.2_Nylon_ultra.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Ultra Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = ultra +material = generic_nylon +variant = 0.2mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*8 diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_adaptive.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_adaptive.inst.cfg new file mode 100644 index 0000000000..a63a0ecc02 --- /dev/null +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_adaptive.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Dynamic Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = adaptive +material = generic_nylon +variant = 0.3mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_low.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_low.inst.cfg new file mode 100644 index 0000000000..968ad34432 --- /dev/null +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_low.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Low Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = low +material = generic_nylon +variant = 0.3mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_standard.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_standard.inst.cfg new file mode 100644 index 0000000000..f139cc0aa7 --- /dev/null +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_standard.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Standard Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = standard +material = generic_nylon +variant = 0.3mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_super.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_super.inst.cfg new file mode 100644 index 0000000000..b09d167aa3 --- /dev/null +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_super.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Super Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = super +material = generic_nylon +variant = 0.3mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_adaptive.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_adaptive.inst.cfg new file mode 100644 index 0000000000..c686218598 --- /dev/null +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_adaptive.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Dynamic Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = adaptive +material = generic_nylon +variant = 0.4mm Nozzle + +[values] +wall_thickness = =line_width*4 +cool_fan_speed = 40 +retraction_speed = 20 +retraction_amount = 1.6 +material_flow = 94.0 diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_low.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_low.inst.cfg new file mode 100644 index 0000000000..7daca8bac7 --- /dev/null +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_low.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Low Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = low +material = generic_nylon +variant = 0.4mm Nozzle + +[values] +wall_thickness = =line_width*4 +cool_fan_speed = 40 +retraction_speed = 20 +retraction_amount = 1.6 +material_flow = 94.0 diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_standard.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_standard.inst.cfg new file mode 100644 index 0000000000..9f414288e9 --- /dev/null +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_standard.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Standard Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = standard +material = generic_nylon +variant = 0.4mm Nozzle + +[values] +wall_thickness = =line_width*4 +cool_fan_speed = 40 +retraction_speed = 20 +retraction_amount = 1.6 +material_flow = 94.0 diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_super.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_super.inst.cfg new file mode 100644 index 0000000000..ef3b84f810 --- /dev/null +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_super.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Super Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = super +material = generic_nylon +variant = 0.4mm Nozzle + +[values] +wall_thickness = =line_width*4 +cool_fan_speed = 40 +retraction_speed = 20 +retraction_amount = 1.6 +material_flow = 94.0 diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_adaptive.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_adaptive.inst.cfg new file mode 100644 index 0000000000..e3d64001f0 --- /dev/null +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_adaptive.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Dynamic Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = adaptive +material = generic_nylon +variant = 0.5mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_low.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_low.inst.cfg new file mode 100644 index 0000000000..7468690a7e --- /dev/null +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_low.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Low Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = low +material = generic_nylon +variant = 0.5mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_standard.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_standard.inst.cfg new file mode 100644 index 0000000000..0a7c369edd --- /dev/null +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_standard.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Standard Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = standard +material = generic_nylon +variant = 0.5mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_super.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_super.inst.cfg new file mode 100644 index 0000000000..d7cc617a74 --- /dev/null +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_super.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Super Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = super +material = generic_nylon +variant = 0.5mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.6_Nylon_standard.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.6_Nylon_standard.inst.cfg new file mode 100644 index 0000000000..bf34041d96 --- /dev/null +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.6_Nylon_standard.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Standard Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = standard +material = generic_nylon +variant = 0.6mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*3 diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.8_Nylon_draft.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.8_Nylon_draft.inst.cfg new file mode 100644 index 0000000000..92bc80ceb3 --- /dev/null +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.8_Nylon_draft.inst.cfg @@ -0,0 +1,16 @@ +[general] +version = 4 +name = Draft Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = draft +material = generic_nylon +variant = 0.8mm Nozzle + +[values] +speed_layer_0 = 30 +wall_thickness = =line_width*2 +cool_fan_speed = 40 diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_1.0_Nylon_draft.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_1.0_Nylon_draft.inst.cfg new file mode 100644 index 0000000000..860980c0a1 --- /dev/null +++ b/resources/quality/ratrig_base/nylon/ratrig_base_1.0_Nylon_draft.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Draft Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = draft +material = generic_nylon +variant = 1.0mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*3 diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.2_PETG_super.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.2_PETG_super.inst.cfg new file mode 100644 index 0000000000..6b0d6caff2 --- /dev/null +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.2_PETG_super.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Super Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = super +material = generic_petg +variant = 0.2mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*8 diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.2_PETG_ultra.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.2_PETG_ultra.inst.cfg new file mode 100644 index 0000000000..784001a294 --- /dev/null +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.2_PETG_ultra.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Ultra Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = ultra +material = generic_petg +variant = 0.2mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*8 diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_adaptive.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_adaptive.inst.cfg new file mode 100644 index 0000000000..4033896592 --- /dev/null +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_adaptive.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Dynamic Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = adaptive +material = generic_petg +variant = 0.3mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_low.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_low.inst.cfg new file mode 100644 index 0000000000..aaab545e84 --- /dev/null +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_low.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Low Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = low +material = generic_petg +variant = 0.3mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_standard.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_standard.inst.cfg new file mode 100644 index 0000000000..6c56665241 --- /dev/null +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_standard.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Standard Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = standard +material = generic_petg +variant = 0.3mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_super.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_super.inst.cfg new file mode 100644 index 0000000000..5b838bbcb7 --- /dev/null +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_super.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Super Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = super +material = generic_petg +variant = 0.3mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_adaptive.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_adaptive.inst.cfg new file mode 100644 index 0000000000..5e941ca011 --- /dev/null +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_adaptive.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Dynamic Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = adaptive +material = generic_petg +variant = 0.4mm Nozzle + +[values] +wall_thickness = =line_width*4 +cool_fan_speed = 40 +retraction_speed = 20 +retraction_amount = 1.6 +material_flow = 94.0 diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_low.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_low.inst.cfg new file mode 100644 index 0000000000..4052b22d10 --- /dev/null +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_low.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Low Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = low +material = generic_petg +variant = 0.4mm Nozzle + +[values] +wall_thickness = =line_width*4 +cool_fan_speed = 40 +retraction_speed = 20 +retraction_amount = 1.6 +material_flow = 94.0 diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_standard.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_standard.inst.cfg new file mode 100644 index 0000000000..eff9ddabf2 --- /dev/null +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_standard.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Standard Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = standard +material = generic_petg +variant = 0.4mm Nozzle + +[values] +wall_thickness = =line_width*4 +cool_fan_speed = 40 +retraction_speed = 20 +retraction_amount = 1.6 +material_flow = 94.0 diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_super.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_super.inst.cfg new file mode 100644 index 0000000000..53cd3e7041 --- /dev/null +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_super.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Super Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = super +material = generic_petg +variant = 0.4mm Nozzle + +[values] +wall_thickness = =line_width*4 +cool_fan_speed = 40 +retraction_speed = 20 +retraction_amount = 1.6 +material_flow = 94.0 diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_adaptive.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_adaptive.inst.cfg new file mode 100644 index 0000000000..58c3531f80 --- /dev/null +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_adaptive.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Dynamic Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = adaptive +material = generic_petg +variant = 0.5mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_low.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_low.inst.cfg new file mode 100644 index 0000000000..e2c1328fb2 --- /dev/null +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_low.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Low Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = low +material = generic_petg +variant = 0.5mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_standard.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_standard.inst.cfg new file mode 100644 index 0000000000..35f4a1a08f --- /dev/null +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_standard.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Standard Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = standard +material = generic_petg +variant = 0.5mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_super.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_super.inst.cfg new file mode 100644 index 0000000000..6b7995b239 --- /dev/null +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_super.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Super Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = super +material = generic_petg +variant = 0.5mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.6_PETG_standard.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.6_PETG_standard.inst.cfg new file mode 100644 index 0000000000..895fdcacb9 --- /dev/null +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.6_PETG_standard.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Standard Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = standard +material = generic_petg +variant = 0.6mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*3 diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.8_PETG_draft.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.8_PETG_draft.inst.cfg new file mode 100644 index 0000000000..a7d04cb10b --- /dev/null +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.8_PETG_draft.inst.cfg @@ -0,0 +1,16 @@ +[general] +version = 4 +name = Draft Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = draft +material = generic_petg +variant = 0.8mm Nozzle + +[values] +speed_layer_0 = 30 +wall_thickness = =line_width*2 +cool_fan_speed = 40 diff --git a/resources/quality/ratrig_base/petg/ratrig_base_1.0_PETG_draft.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_1.0_PETG_draft.inst.cfg new file mode 100644 index 0000000000..8ce4a9fef6 --- /dev/null +++ b/resources/quality/ratrig_base/petg/ratrig_base_1.0_PETG_draft.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Draft Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = draft +material = generic_petg +variant = 1.0mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*3 diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.2_PLA_super.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.2_PLA_super.inst.cfg new file mode 100644 index 0000000000..7b009267e3 --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.2_PLA_super.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Super Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = super +material = generic_pla +variant = 0.2mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.2_PLA_ultra.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.2_PLA_ultra.inst.cfg new file mode 100644 index 0000000000..1a401148d5 --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.2_PLA_ultra.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Ultra Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = ultra +material = generic_pla +variant = 0.2mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_adaptive.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_adaptive.inst.cfg new file mode 100644 index 0000000000..de0067706e --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_adaptive.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Dynamic Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = adaptive +material = generic_pla +variant = 0.3mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_low.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_low.inst.cfg new file mode 100644 index 0000000000..31747bda1c --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_low.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Low Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = low +material = generic_pla +variant = 0.3mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_standard.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_standard.inst.cfg new file mode 100644 index 0000000000..06000474af --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_standard.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Standard Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = standard +material = generic_pla +variant = 0.3mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_super.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_super.inst.cfg new file mode 100644 index 0000000000..24efb55980 --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_super.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Super Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = super +material = generic_pla +variant = 0.3mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_adaptive.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_adaptive.inst.cfg new file mode 100644 index 0000000000..de96e7d5fb --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_adaptive.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Dynamic Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = adaptive +material = generic_pla +variant = 0.4mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_low.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_low.inst.cfg new file mode 100644 index 0000000000..2e608f8d5c --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_low.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Low Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = low +material = generic_pla +variant = 0.4mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_standard.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_standard.inst.cfg new file mode 100644 index 0000000000..5f18e1281b --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_standard.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Standard Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = standard +material = generic_pla +variant = 0.4mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_super.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_super.inst.cfg new file mode 100644 index 0000000000..121be5d3cf --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_super.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Super Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = super +material = generic_pla +variant = 0.4mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_adaptive.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_adaptive.inst.cfg new file mode 100644 index 0000000000..07dadf89dd --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_adaptive.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Dynamic Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = adaptive +material = generic_pla +variant = 0.5mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_low.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_low.inst.cfg new file mode 100644 index 0000000000..7d92038aee --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_low.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Low Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = low +material = generic_pla +variant = 0.5mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_standard.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_standard.inst.cfg new file mode 100644 index 0000000000..ed786fb574 --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_standard.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Standard Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = standard +material = generic_pla +variant = 0.5mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_super.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_super.inst.cfg new file mode 100644 index 0000000000..ec1c18b046 --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_super.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Super Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = super +material = generic_pla +variant = 0.5mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_draft.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_draft.inst.cfg new file mode 100644 index 0000000000..816eaa0e0b --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_draft.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Draft Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = draft +material = generic_pla +variant = 0.6mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_low.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_low.inst.cfg new file mode 100644 index 0000000000..0b92dbf172 --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_low.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Low Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = low +material = generic_pla +variant = 0.6mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_standard.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_standard.inst.cfg new file mode 100644 index 0000000000..ddd87bec72 --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_standard.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Standard Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = standard +material = generic_pla +variant = 0.6mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.8_PLA_draft.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.8_PLA_draft.inst.cfg new file mode 100644 index 0000000000..e1ab1dcab7 --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.8_PLA_draft.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Draft Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = draft +material = generic_pla +variant = 0.8mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/pla/ratrig_base_1.0_PLA_draft.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_1.0_PLA_draft.inst.cfg new file mode 100644 index 0000000000..3dbb26c6ec --- /dev/null +++ b/resources/quality/ratrig_base/pla/ratrig_base_1.0_PLA_draft.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Draft Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = draft +material = generic_pla +variant = 1.0mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/ratrig_base_global_adaptive.inst.cfg b/resources/quality/ratrig_base/ratrig_base_global_adaptive.inst.cfg new file mode 100644 index 0000000000..29786dcdbe --- /dev/null +++ b/resources/quality/ratrig_base/ratrig_base_global_adaptive.inst.cfg @@ -0,0 +1,19 @@ +[general] +version = 4 +name = Dynamic Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = adaptive +weight = -2 +global_quality = True + +[values] +layer_height = 0.16 +layer_height_0 = 0.20 +top_bottom_thickness = =layer_height_0+layer_height*4 +wall_thickness = =line_width*3 +support_interface_height = =layer_height*6 +adaptive_layer_height_enabled = true diff --git a/resources/quality/ratrig_base/ratrig_base_global_draft.inst.cfg b/resources/quality/ratrig_base/ratrig_base_global_draft.inst.cfg new file mode 100644 index 0000000000..f6fcbb8348 --- /dev/null +++ b/resources/quality/ratrig_base/ratrig_base_global_draft.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Draft Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = draft +weight = -5 +global_quality = True + +[values] +layer_height = 0.32 +layer_height_0 = 0.32 +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/ratrig_base/ratrig_base_global_low.inst.cfg b/resources/quality/ratrig_base/ratrig_base_global_low.inst.cfg new file mode 100644 index 0000000000..ad32dcf779 --- /dev/null +++ b/resources/quality/ratrig_base/ratrig_base_global_low.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Low Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = low +weight = -4 +global_quality = True + +[values] +layer_height = 0.28 +layer_height_0 = 0.28 +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/ratrig_base/ratrig_base_global_standard.inst.cfg b/resources/quality/ratrig_base/ratrig_base_global_standard.inst.cfg new file mode 100644 index 0000000000..5f31222e11 --- /dev/null +++ b/resources/quality/ratrig_base/ratrig_base_global_standard.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Standard Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +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 diff --git a/resources/quality/ratrig_base/ratrig_base_global_super.inst.cfg b/resources/quality/ratrig_base/ratrig_base_global_super.inst.cfg new file mode 100644 index 0000000000..3c6460675d --- /dev/null +++ b/resources/quality/ratrig_base/ratrig_base_global_super.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Super Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = super +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/ratrig_base/ratrig_base_global_ultra.inst.cfg b/resources/quality/ratrig_base/ratrig_base_global_ultra.inst.cfg new file mode 100644 index 0000000000..c1257af094 --- /dev/null +++ b/resources/quality/ratrig_base/ratrig_base_global_ultra.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Ultra Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = ultra +weight = 0 +global_quality = True + +[values] +layer_height = 0.08 +layer_height_0 = 0.12 +top_bottom_thickness = =layer_height_0+layer_height*10 +wall_thickness = =line_width*3 +support_interface_height = =layer_height*12 diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_adaptive.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_adaptive.inst.cfg new file mode 100644 index 0000000000..a7feb4f3e0 --- /dev/null +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_adaptive.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Dynamic Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = adaptive +material = generic_tpu +variant = 0.3mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_standard.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_standard.inst.cfg new file mode 100644 index 0000000000..de56d84ba8 --- /dev/null +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_standard.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Standard Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = standard +material = generic_tpu +variant = 0.3mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_super.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_super.inst.cfg new file mode 100644 index 0000000000..2b7b1e711e --- /dev/null +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_super.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Super Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = super +material = generic_tpu +variant = 0.3mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_adaptive.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_adaptive.inst.cfg new file mode 100644 index 0000000000..dcfc502bae --- /dev/null +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_adaptive.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Dynamic Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = adaptive +material = generic_tpu +variant = 0.4mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_standard.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_standard.inst.cfg new file mode 100644 index 0000000000..7ff523b68e --- /dev/null +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_standard.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Standard Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = standard +material = generic_tpu +variant = 0.4mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_super.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_super.inst.cfg new file mode 100644 index 0000000000..a65ad09744 --- /dev/null +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_super.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Super Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = super +material = generic_tpu +variant = 0.4mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_adaptive.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_adaptive.inst.cfg new file mode 100644 index 0000000000..63e465243d --- /dev/null +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_adaptive.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Dynamic Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = adaptive +material = generic_tpu +variant = 0.5mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_standard.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_standard.inst.cfg new file mode 100644 index 0000000000..f568375f4c --- /dev/null +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_standard.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Standard Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = standard +material = generic_tpu +variant = 0.5mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_super.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_super.inst.cfg new file mode 100644 index 0000000000..1265c32061 --- /dev/null +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_super.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Super Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = super +material = generic_tpu +variant = 0.5mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.6_TPU_standard.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.6_TPU_standard.inst.cfg new file mode 100644 index 0000000000..df3d194177 --- /dev/null +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.6_TPU_standard.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Standard Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = standard +material = generic_tpu +variant = 0.6mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.8_TPU_draft.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.8_TPU_draft.inst.cfg new file mode 100644 index 0000000000..1db288b6b9 --- /dev/null +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.8_TPU_draft.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Draft Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = draft +material = generic_tpu +variant = 0.8mm Nozzle + +[values] diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_1.0_TPU_draft.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_1.0_TPU_draft.inst.cfg new file mode 100644 index 0000000000..3149efda36 --- /dev/null +++ b/resources/quality/ratrig_base/tpu/ratrig_base_1.0_TPU_draft.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Draft Quality +definition = ratrig_base + +[metadata] +setting_version = 22 +type = quality +quality_type = draft +material = generic_tpu +variant = 1.0mm Nozzle + +[values] diff --git a/resources/variants/ratrig/ratrig_base_0.2.inst.cfg b/resources/variants/ratrig/ratrig_base_0.2.inst.cfg new file mode 100644 index 0000000000..752f0fc7b3 --- /dev/null +++ b/resources/variants/ratrig/ratrig_base_0.2.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.2mm Nozzle +version = 4 +definition = ratrig_base + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.2 diff --git a/resources/variants/ratrig/ratrig_base_0.3.inst.cfg b/resources/variants/ratrig/ratrig_base_0.3.inst.cfg new file mode 100644 index 0000000000..2ad677756d --- /dev/null +++ b/resources/variants/ratrig/ratrig_base_0.3.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.3mm Nozzle +version = 4 +definition = ratrig_base + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.3 diff --git a/resources/variants/ratrig/ratrig_base_0.4.inst.cfg b/resources/variants/ratrig/ratrig_base_0.4.inst.cfg new file mode 100644 index 0000000000..652ae2b4c7 --- /dev/null +++ b/resources/variants/ratrig/ratrig_base_0.4.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.4mm Nozzle +version = 4 +definition = ratrig_base + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.4 diff --git a/resources/variants/ratrig/ratrig_base_0.6.inst.cfg b/resources/variants/ratrig/ratrig_base_0.6.inst.cfg new file mode 100644 index 0000000000..9316e0d850 --- /dev/null +++ b/resources/variants/ratrig/ratrig_base_0.6.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.6mm Nozzle +version = 4 +definition = ratrig_base + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.6 diff --git a/resources/variants/ratrig/ratrig_base_0.8.inst.cfg b/resources/variants/ratrig/ratrig_base_0.8.inst.cfg new file mode 100644 index 0000000000..ce329c7d6d --- /dev/null +++ b/resources/variants/ratrig/ratrig_base_0.8.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.8mm Nozzle +version = 4 +definition = ratrig_base + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.8 diff --git a/resources/variants/ratrig/ratrig_base_1.0.inst.cfg b/resources/variants/ratrig/ratrig_base_1.0.inst.cfg new file mode 100644 index 0000000000..c1b643b60e --- /dev/null +++ b/resources/variants/ratrig/ratrig_base_1.0.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 1.0mm Nozzle +version = 4 +definition = ratrig_base + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 1.0 diff --git a/resources/variants/ratrig/ratrig_vcore3_200_0.2.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_200_0.2.inst.cfg new file mode 100644 index 0000000000..d3ae97b4d4 --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_200_0.2.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.2mm Nozzle +version = 4 +definition = ratrig_vcore3_200 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.2 diff --git a/resources/variants/ratrig/ratrig_vcore3_200_0.3.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_200_0.3.inst.cfg new file mode 100644 index 0000000000..ad5127866b --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_200_0.3.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.3mm Nozzle +version = 4 +definition = ratrig_vcore3_200 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.3 diff --git a/resources/variants/ratrig/ratrig_vcore3_200_0.4.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_200_0.4.inst.cfg new file mode 100644 index 0000000000..dc46c98586 --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_200_0.4.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.4mm Nozzle +version = 4 +definition = ratrig_vcore3_200 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.4 diff --git a/resources/variants/ratrig/ratrig_vcore3_200_0.6.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_200_0.6.inst.cfg new file mode 100644 index 0000000000..24bcfdf234 --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_200_0.6.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.6mm Nozzle +version = 4 +definition = ratrig_vcore3_200 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.6 diff --git a/resources/variants/ratrig/ratrig_vcore3_200_0.8.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_200_0.8.inst.cfg new file mode 100644 index 0000000000..dc0d5b87e6 --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_200_0.8.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.8mm Nozzle +version = 4 +definition = ratrig_vcore3_200 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.8 diff --git a/resources/variants/ratrig/ratrig_vcore3_200_1.0.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_200_1.0.inst.cfg new file mode 100644 index 0000000000..fa07e194ee --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_200_1.0.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 1.0mm Nozzle +version = 4 +definition = ratrig_vcore3_200 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 1.0 diff --git a/resources/variants/ratrig/ratrig_vcore3_300_0.2.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_300_0.2.inst.cfg new file mode 100644 index 0000000000..f7e73d584d --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_300_0.2.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.2mm Nozzle +version = 4 +definition = ratrig_vcore3_300 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.2 diff --git a/resources/variants/ratrig/ratrig_vcore3_300_0.3.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_300_0.3.inst.cfg new file mode 100644 index 0000000000..a3d8ccc385 --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_300_0.3.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.3mm Nozzle +version = 4 +definition = ratrig_vcore3_300 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.3 diff --git a/resources/variants/ratrig/ratrig_vcore3_300_0.4.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_300_0.4.inst.cfg new file mode 100644 index 0000000000..aa60d45930 --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_300_0.4.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.4mm Nozzle +version = 4 +definition = ratrig_vcore3_300 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.4 diff --git a/resources/variants/ratrig/ratrig_vcore3_300_0.6.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_300_0.6.inst.cfg new file mode 100644 index 0000000000..cd036160ee --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_300_0.6.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.6mm Nozzle +version = 4 +definition = ratrig_vcore3_300 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.6 diff --git a/resources/variants/ratrig/ratrig_vcore3_300_0.8.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_300_0.8.inst.cfg new file mode 100644 index 0000000000..a9c568738f --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_300_0.8.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.8mm Nozzle +version = 4 +definition = ratrig_vcore3_300 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.8 diff --git a/resources/variants/ratrig/ratrig_vcore3_300_1.0.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_300_1.0.inst.cfg new file mode 100644 index 0000000000..96216c6679 --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_300_1.0.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 1.0mm Nozzle +version = 4 +definition = ratrig_vcore3_300 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 1.0 diff --git a/resources/variants/ratrig/ratrig_vcore3_400_0.2.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_400_0.2.inst.cfg new file mode 100644 index 0000000000..73cf813b9e --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_400_0.2.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.2mm Nozzle +version = 4 +definition = ratrig_vcore3_400 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.2 diff --git a/resources/variants/ratrig/ratrig_vcore3_400_0.3.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_400_0.3.inst.cfg new file mode 100644 index 0000000000..97a30ccae3 --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_400_0.3.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.3mm Nozzle +version = 4 +definition = ratrig_vcore3_400 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.3 diff --git a/resources/variants/ratrig/ratrig_vcore3_400_0.4.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_400_0.4.inst.cfg new file mode 100644 index 0000000000..3872109417 --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_400_0.4.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.4mm Nozzle +version = 4 +definition = ratrig_vcore3_400 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.4 diff --git a/resources/variants/ratrig/ratrig_vcore3_400_0.6.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_400_0.6.inst.cfg new file mode 100644 index 0000000000..bacbc75279 --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_400_0.6.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.6mm Nozzle +version = 4 +definition = ratrig_vcore3_400 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.6 diff --git a/resources/variants/ratrig/ratrig_vcore3_400_0.8.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_400_0.8.inst.cfg new file mode 100644 index 0000000000..96e1f89d1a --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_400_0.8.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.8mm Nozzle +version = 4 +definition = ratrig_vcore3_400 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.8 diff --git a/resources/variants/ratrig/ratrig_vcore3_400_1.0.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_400_1.0.inst.cfg new file mode 100644 index 0000000000..516ab97275 --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_400_1.0.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 1.0mm Nozzle +version = 4 +definition = ratrig_vcore3_400 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 1.0 diff --git a/resources/variants/ratrig/ratrig_vcore3_500_0.2.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_500_0.2.inst.cfg new file mode 100644 index 0000000000..5d8f552d62 --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_500_0.2.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.2mm Nozzle +version = 4 +definition = ratrig_vcore3_500 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.2 diff --git a/resources/variants/ratrig/ratrig_vcore3_500_0.3.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_500_0.3.inst.cfg new file mode 100644 index 0000000000..89773c5026 --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_500_0.3.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.3mm Nozzle +version = 4 +definition = ratrig_vcore3_500 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.3 diff --git a/resources/variants/ratrig/ratrig_vcore3_500_0.4.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_500_0.4.inst.cfg new file mode 100644 index 0000000000..4d97550b3e --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_500_0.4.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.4mm Nozzle +version = 4 +definition = ratrig_vcore3_500 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.4 diff --git a/resources/variants/ratrig/ratrig_vcore3_500_0.6.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_500_0.6.inst.cfg new file mode 100644 index 0000000000..2092d5c76a --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_500_0.6.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.6mm Nozzle +version = 4 +definition = ratrig_vcore3_500 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.6 diff --git a/resources/variants/ratrig/ratrig_vcore3_500_0.8.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_500_0.8.inst.cfg new file mode 100644 index 0000000000..9810346ad6 --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_500_0.8.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.8mm Nozzle +version = 4 +definition = ratrig_vcore3_500 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.8 diff --git a/resources/variants/ratrig/ratrig_vcore3_500_1.0.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_500_1.0.inst.cfg new file mode 100644 index 0000000000..cc790cc53e --- /dev/null +++ b/resources/variants/ratrig/ratrig_vcore3_500_1.0.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 1.0mm Nozzle +version = 4 +definition = ratrig_vcore3_500 + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 1.0 diff --git a/resources/variants/ratrig/ratrig_vminion_0.2.inst.cfg b/resources/variants/ratrig/ratrig_vminion_0.2.inst.cfg new file mode 100644 index 0000000000..0a90304e94 --- /dev/null +++ b/resources/variants/ratrig/ratrig_vminion_0.2.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.2mm Nozzle +version = 4 +definition = ratrig_vminion + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.2 diff --git a/resources/variants/ratrig/ratrig_vminion_0.3.inst.cfg b/resources/variants/ratrig/ratrig_vminion_0.3.inst.cfg new file mode 100644 index 0000000000..36c7d9bbca --- /dev/null +++ b/resources/variants/ratrig/ratrig_vminion_0.3.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.3mm Nozzle +version = 4 +definition = ratrig_vminion + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.3 diff --git a/resources/variants/ratrig/ratrig_vminion_0.4.inst.cfg b/resources/variants/ratrig/ratrig_vminion_0.4.inst.cfg new file mode 100644 index 0000000000..50bcd8f69b --- /dev/null +++ b/resources/variants/ratrig/ratrig_vminion_0.4.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.4mm Nozzle +version = 4 +definition = ratrig_vminion + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.4 diff --git a/resources/variants/ratrig/ratrig_vminion_0.6.inst.cfg b/resources/variants/ratrig/ratrig_vminion_0.6.inst.cfg new file mode 100644 index 0000000000..c4ab87616a --- /dev/null +++ b/resources/variants/ratrig/ratrig_vminion_0.6.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.6mm Nozzle +version = 4 +definition = ratrig_vminion + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.6 diff --git a/resources/variants/ratrig/ratrig_vminion_0.8.inst.cfg b/resources/variants/ratrig/ratrig_vminion_0.8.inst.cfg new file mode 100644 index 0000000000..8fb2a33b60 --- /dev/null +++ b/resources/variants/ratrig/ratrig_vminion_0.8.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.8mm Nozzle +version = 4 +definition = ratrig_vminion + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.8 diff --git a/resources/variants/ratrig/ratrig_vminion_1.0.inst.cfg b/resources/variants/ratrig/ratrig_vminion_1.0.inst.cfg new file mode 100644 index 0000000000..c946cfd5f0 --- /dev/null +++ b/resources/variants/ratrig/ratrig_vminion_1.0.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 1.0mm Nozzle +version = 4 +definition = ratrig_vminion + +[metadata] +setting_version = 22 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 1.0 From da4f675008a61ff1602e74ed14838cc41ad5d9b3 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Sat, 6 Jan 2024 16:39:04 +0100 Subject: [PATCH 041/269] Optimize wall printing order CURA-11507 --- 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 cf2b7a57af..2b37b3d7ac 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1159,7 +1159,7 @@ "label": "Optimize Wall Printing Order", "description": "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization. First layer is not optimized when choosing brim as build plate adhesion type.", "type": "bool", - "default_value": false, + "default_value": true, "settable_per_mesh": true }, "inset_direction": From 18302d6213788ad49438876833b650ad40546895 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Sun, 7 Jan 2024 11:10:22 +0100 Subject: [PATCH 042/269] attempt to fix binary search --- plugins/SimulationView/SimulationView.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/plugins/SimulationView/SimulationView.py b/plugins/SimulationView/SimulationView.py index 92a6a9e853..c070c69939 100644 --- a/plugins/SimulationView/SimulationView.py +++ b/plugins/SimulationView/SimulationView.py @@ -97,7 +97,8 @@ class SimulationView(CuraView): self._min_line_width = sys.float_info.max self._min_flow_rate = sys.float_info.max self._max_flow_rate = sys.float_info.min - self._cumulative_line_duration = {} + self._cumulative_line_duration_layer: Optional[int] = None + self._cumulative_line_duration: List[float] = [] self._global_container_stack: Optional[ContainerStack] = None self._proxy = None @@ -196,7 +197,7 @@ class SimulationView(CuraView): if len(cumulative_line_duration) > 0: self._current_time = time left_i = 0 - right_i = self._max_paths - 1 + right_i = len(cumulative_line_duration) - 1 total_duration = cumulative_line_duration[-1] # make an educated guess about where to start i = int(right_i * max(0.0, min(1.0, self._current_time / total_duration))) @@ -212,7 +213,8 @@ class SimulationView(CuraView): right_value = cumulative_line_duration[i] if not (left_value <= self._current_time <= right_value): - Logger.debug(f"At index {i}: left value {left_value} right value {right_value} and current time is {self._current_time}") + Logger.warn( + f"Binary search error (out of bounds): index {i}: left value {left_value} right value {right_value} and current time is {self._current_time}") fractional_value = (self._current_time - left_value) / (right_value - left_value) @@ -245,21 +247,22 @@ class SimulationView(CuraView): def cumulativeLineDuration(self) -> List[float]: # Make sure _cumulative_line_duration is initialized properly - if self.getCurrentLayer() not in self._cumulative_line_duration: + if self.getCurrentLayer() != self._cumulative_line_duration_layer: #clear cache - self._cumulative_line_duration = {} - self._cumulative_line_duration[self.getCurrentLayer()] = [] + self._cumulative_line_duration = [] total_duration = 0.0 polylines = self.getLayerData() if polylines is not None: for polyline in polylines.polygons: for line_duration in list((polyline.lineLengths / polyline.lineFeedrates)[0]): total_duration += line_duration / SimulationView.SIMULATION_FACTOR - self._cumulative_line_duration[self.getCurrentLayer()].append(total_duration) + self._cumulative_line_duration.append(total_duration) # for tool change we add an extra tool path - self._cumulative_line_duration[self.getCurrentLayer()].append(total_duration) + self._cumulative_line_duration.append(total_duration) + # set current cached layer + self._cumulative_line_duration_layer = self.getCurrentLayer() - return self._cumulative_line_duration[self.getCurrentLayer()] + return self._cumulative_line_duration def getLayerData(self) -> Optional["LayerData"]: scene = self.getController().getScene() From 1a5370d2efd67ef7a5dc5eace7da94152f7946e9 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Sun, 7 Jan 2024 12:41:59 +0100 Subject: [PATCH 043/269] Add 'Advanced Cooling Fan Control' post-processing script. See discussions in #15853 (on github) and (internally) tracking-ticket CURA-11520 --- .../scripts/AddCoolingProfile.py | 879 ++++++++++++++++++ 1 file changed, 879 insertions(+) create mode 100644 plugins/PostProcessingPlugin/scripts/AddCoolingProfile.py diff --git a/plugins/PostProcessingPlugin/scripts/AddCoolingProfile.py b/plugins/PostProcessingPlugin/scripts/AddCoolingProfile.py new file mode 100644 index 0000000000..6f9ac2dc13 --- /dev/null +++ b/plugins/PostProcessingPlugin/scripts/AddCoolingProfile.py @@ -0,0 +1,879 @@ +# January 2023 by GregValiant (Greg Foresi). +# Functions: +# Remove all fan speed lines from the file (optional). +# Enter new M106 lines "By Layer" or "By Feature" (;TYPE:WALL-OUTER, etc.). +# A Starting layer and/or an Ending layer can be defined. +# Fan speeds are scaled PWM (0 - 255) or RepRap (0 - 1) depending on {machine_scale_fan_speed_zero_to_one}. +# A minimum fan speed of 12% is enforced. +# If multiple extruders have separate fan circuits the speeds are set at tool changes and conform to the layer or +# feature setting. There is support for up to 4 layer cooling fan circuits. +# The option for whether or not to remove the existing M106 lines is added to allow multiple instances of this post-processor to be installed without the followup instances wiping out the insertions of previous instances. 1/3 of a file can be 'By Layer' and the second third 'By Feature', and end up with 'By Layer' again. +# My design intent was to make it as full featured and "industrial strength" as I could. +# My thanks to @5axes, @fieldOfView(@AHoeben), @Ghostkeeper, and @Torgeir. +# 9/14/23 added support for One-at-a-Time and removed the kick out code +# 12/15/23 split off some functions. Revised the regex replacements. + +from ..Script import Script +from UM.Application import Application +import re + +class AddCoolingProfile(Script): + + def getSettingDataString(self): + return """{ + "name": "Advanced Cooling Fan Control", + "key": "AddCoolingProfile", + "metadata": {}, + "version": 2, + "settings": + { + "fan_layer_or_feature": + { + "label": "Cooling Control by:", + "description": "A fan percentage of ''0'' turns the fan off. Minimum Fan is 12% (when on). All layer entries are the Cura Preview number. ''By Layer'': Enter as ''Layer#/Fan%'' (foreslash is the delimiter). Your final layer speed will continue to the end of the Gcode. ''By Feature'': If you enable an 'End Layer' then the ''Final %'' is available and is the speed that will finish the file. 'By Feature' is better for large slow prints than it is for short fast prints.", + "type": "enum", + "options": { + "by_layer": "Layer Numbers", + "by_feature": "Feature Types"}, + "default_value": "by_layer" + }, + "delete_existing_m106": + { + "label": "Remove M106 lines prior to inserting new.", + "description": "If you have 2 or more instances of 'Advanced Cooling Fan Control' running (to cool a portion of a print differently), then uncheck this box or the followup instances will remove all the lines inserted by the first instance. Pay attention to the Start and Stop layers. If you want to keep the Cura inserted lines up to the point where this post-processor will start making insertions, then un-check the box.", + "type": "bool", + "enabled": true, + "value": true + }, + "feature_fan_start_layer": + { + "label": "Starting Layer", + "description": "Layer to start the insertion at. Use the Cura preview numbers. Changes will begin at the start of that layer.", + "type": "int", + "default_value": 5, + "minimum_value": 1, + "unit": "Lay# ", + "enabled": "fan_layer_or_feature == 'by_feature'" + }, + "feature_fan_end_layer": + { + "label": "Ending Layer", + "description": "Layer to complete the insertion at. Enter '-1' for the entire file or enter a layer number. Insertions will stop at the END of this layer. If you set an End Layer then you should set the Final % that will finish the file", + "type": "int", + "default_value": -1, + "minimum_value": -1, + "unit": "Lay# ", + "enabled": "fan_layer_or_feature == 'by_feature'" + }, + "layer_fan_1st": + { + "label": "Layer/Percent #1", + "description": "Enter as: 'LAYER / Percent' Ex: 57/100 with the layer first, then a '/' to delimit, and then the fan percentage.", + "type": "str", + "default_value": "5/30", + "unit": "L#/% ", + "enabled": "fan_layer_or_feature == 'by_layer'" + }, + "layer_fan_2nd": + { + "label": "Layer/Percent #2", + "description": "Enter as: 'LAYER / Percent' Ex: 57/100 with the layer first, then a '/' to delimit, and then the fan percentage.", + "type": "str", + "default_value": "", + "unit": "L#/% ", + "enabled": "fan_layer_or_feature == 'by_layer'" + }, + "layer_fan_3rd": + { + "label": "Layer/Percent #3", + "description": "Enter as: 'LAYER / Percent' Ex: 57/100 with the layer first, then a '/' to delimit, and then the fan percentage.", + "type": "str", + "default_value": "", + "unit": "L#/% ", + "enabled": "fan_layer_or_feature == 'by_layer'" + }, + "layer_fan_4th": + { + "label": "Layer/Percent #4", + "description": "Enter as: 'LAYER / Percent' Ex: 57/100 with the layer first, then a '/' to delimit, and then the fan percentage.", + "type": "str", + "default_value": "", + "unit": "L#/% ", + "enabled": "fan_layer_or_feature == 'by_layer'" + }, + "layer_fan_5th": + { + "label": "Layer/Percent #5", + "description": "Enter as: 'LAYER / Percent' Ex: 57/100 with the layer first, then a '/' to delimit, and then the fan percentage.", + "type": "str", + "default_value": "", + "unit": "L#/% ", + "enabled": "fan_layer_or_feature == 'by_layer'" + }, + "layer_fan_6th": + { + "label": "Layer/Percent #6", + "description": "Enter as: 'LAYER / Percent' Ex: 57/100 with the layer first, then a '/' to delimit, and then the fan percentage.", + "type": "str", + "default_value": "", + "unit": "L#/% ", + "enabled": "fan_layer_or_feature == 'by_layer'" + }, + "layer_fan_7th": + { + "label": "Layer/Percent #7", + "description": "Enter as: 'LAYER / Percent' Ex: 57/100 with the layer first, then a '/' to delimit, and then the fan percentage.", + "type": "str", + "default_value": "", + "unit": "L#/% ", + "enabled": "fan_layer_or_feature == 'by_layer'" + }, + "layer_fan_8th": + { + "label": "Layer/Percent #8", + "description": "Enter as: 'LAYER / Percent' Ex: 57/100 with the layer first, then a '/' to delimit, and then the fan percentage.", + "type": "str", + "default_value": "", + "unit": "L#/% ", + "enabled": "fan_layer_or_feature == 'by_layer'" + }, + "feature_fan_skirt": + { + "label": "Skirt/Brim/Ooze Shield %", + "description": "Enter the fan percentage for skirt/brim. If you are starting at a layer above 1 then this setting only affects Ooze Shields and from the Start layer up.", + "type": "int", + "default_value": 0, + "minimum_value": 0, + "maximum_value": 100, + "unit": "% ", + "enabled": "fan_layer_or_feature == 'by_feature'" + }, + "feature_fan_wall_inner": + { + "label": "Inner Walls %", + "description": "Enter the fan percentage for the Wall-Inner.", + "type": "int", + "default_value": 35, + "minimum_value": 0, + "maximum_value": 100, + "unit": "% ", + "enabled": "fan_layer_or_feature == 'by_feature'" + }, + "feature_fan_wall_outer": + { + "label": "Outer Walls %", + "description": "Enter the fan percentage for the Wall-Outer.", + "type": "int", + "default_value": 75, + "minimum_value": 0, + "maximum_value": 100, + "unit": "% ", + "enabled": "fan_layer_or_feature == 'by_feature'" + }, + "feature_fan_fill": + { + "label": "Infill %", + "description": "Enter the fan percentage for the Infill.", + "type": "int", + "default_value": 35, + "minimum_value": 0, + "maximum_value": 100, + "unit": "% ", + "enabled": "fan_layer_or_feature == 'by_feature'" + }, + "feature_fan_skin": + { + "label": "Top/Bottom (Skin) %", + "description": "Enter the fan percentage for the Skins.", + "type": "int", + "default_value": 100, + "minimum_value": 0, + "maximum_value": 100, + "unit": "% ", + "enabled": "fan_layer_or_feature == 'by_feature'" + }, + "feature_fan_support": + { + "label": "Support %", + "description": "Enter the fan percentage for the Supports.", + "type": "int", + "default_value": 35, + "minimum_value": 0, + "maximum_value": 100, + "unit": "% ", + "enabled": "fan_layer_or_feature == 'by_feature'" + }, + "feature_fan_support_interface": + { + "label": "Support Interface %", + "description": "Enter the fan percentage for the Support Interface.", + "type": "int", + "default_value": 100, + "minimum_value": 0, + "maximum_value": 100, + "unit": "% ", + "enabled": "fan_layer_or_feature == 'by_feature'" + }, + "feature_fan_prime_tower": + { + "label": "Prime Tower %", + "description": "Enter the fan percentage for the Prime Tower (whether it's used or not).", + "type": "int", + "default_value": 35, + "minimum_value": 0, + "maximum_value": 100, + "unit": "% ", + "enabled": "fan_layer_or_feature == 'by_feature'" + }, + "feature_fan_bridge": + { + "label": "Bridge %", + "description": "Enter the fan percentage for any Bridging (whether it's used on not).", + "type": "int", + "default_value": 100, + "minimum_value": 0, + "maximum_value": 100, + "unit": "% ", + "enabled": "fan_layer_or_feature == 'by_feature'" + }, + "feature_fan_combing": + { + "label": "Fan 'OFF' during Combing:", + "description": "When checked will set the fan to 0% for combing moves over 5 lines long in the gcode. When un-checked the fan speed during combing is whatever the previous speed is set to.", + "type": "bool", + "enabled": "fan_layer_or_feature == 'by_feature'", + "default_value": true + }, + "feature_fan_feature_final": + { + "label": "Final %", + "description": "If you choose an 'End Layer' then this is the fan speed that will carry through to the end of the gcode file. It will go into effect at the 'END' of your end layer.", + "type": "int", + "default_value": 35, + "minimum_value": 0, + "maximum_value": 100, + "unit": "% ", + "enabled": "(int(feature_fan_end_layer) != -1) and (fan_layer_or_feature == 'by_feature')" + }, + "fan_enable_raft": + { + "label": "Enable Raft Cooling", + "description": "Enable the fan for the raft layers. When enabled the Raft Fan Speed will continue until another Layer or Feature setting over-rides it.", + "type": "bool", + "default_value": false, + "enabled": true + }, + "fan_raft_percent": + { + "label": "Raft Fan %:", + "description": "Enter the percentage for the Raft.", + "type": "int", + "default_value": 35, + "minimum_value": 0, + "maximum_value": 100, + "unit": "% ", + "enabled": "fan_enable_raft" + } + } + }""" + + def initialize(self) -> None: + super().initialize() + scripts = Application.getInstance().getGlobalContainerStack().getMetaDataEntry("post_processing_scripts") + if scripts != None: + script_count = scripts.count("AddCoolingProfile") + if script_count > 0: + ## Set the default to "false" if there is more than one instance of this script running. + self._instance.setProperty("delete_existing_m106", "value", False) + + def execute(self, data): + #Initialize variables that are buried in if statements. + mycura = Application.getInstance().getGlobalContainerStack() + t0_fan = " P0"; t1_fan = " P0"; t2_fan = " P0"; t3_fan = " P0"; is_multi_extr_print = True + + #Get some information from Cura----------------------------------- + extruder = mycura.extruderList + + #This will be true when fan scale is 0-255pwm and false when it's RepRap 0-1 (Cura 5.x) + fan_mode = True + ##For 4.x versions that don't have the 0-1 option + try: + fan_mode = not bool(extruder[0].getProperty("machine_scale_fan_speed_zero_to_one", "value")) + except: + pass + bed_adhesion = (extruder[0].getProperty("adhesion_type", "value")) + extruder_count = mycura.getProperty("machine_extruder_count", "value") + print_sequence = str(mycura.getProperty("print_sequence", "value")) + + #Assign the fan numbers to the tools------------------------------ + if extruder_count == 1: + is_multi_fan = False + is_multi_extr_print = False + if int((extruder[0].getProperty("machine_extruder_cooling_fan_number", "value"))) > 0: + t0_fan = " P" + str((extruder[0].getProperty("machine_extruder_cooling_fan_number", "value"))) + else: + #No P parameter if there is a single fan circuit------------------ + t0_fan = "" + elif extruder_count > 1: + is_multi_fan = True + t0_fan = " P" + str((extruder[0].getProperty("machine_extruder_cooling_fan_number", "value"))) + if is_multi_fan: + if extruder_count > 1: t1_fan = " P" + str((extruder[1].getProperty("machine_extruder_cooling_fan_number", "value"))) + if extruder_count > 2: t2_fan = " P" + str((extruder[2].getProperty("machine_extruder_cooling_fan_number", "value"))) + if extruder_count > 3: t3_fan = " P" + str((extruder[3].getProperty("machine_extruder_cooling_fan_number", "value"))) + + #Initialize the fan_list with defaults---------------------------- + fan_list = ["z"] * 16 + for num in range(0,15,2): + fan_list[num + 1] = "M106 S0" + + #Assign the variable values if "By Layer"------------------------- + by_layer_or_feature = self.getSettingValueByKey("fan_layer_or_feature") + if by_layer_or_feature == "by_layer": + ## By layer doesn't do any feature search + feature_fan_combing = False + fan_list[0] = self.getSettingValueByKey("layer_fan_1st") + fan_list[2] = self.getSettingValueByKey("layer_fan_2nd") + fan_list[4] = self.getSettingValueByKey("layer_fan_3rd") + fan_list[6] = self.getSettingValueByKey("layer_fan_4th") + fan_list[8] = self.getSettingValueByKey("layer_fan_5th") + fan_list[10] = self.getSettingValueByKey("layer_fan_6th") + fan_list[12] = self.getSettingValueByKey("layer_fan_7th") + fan_list[14] = self.getSettingValueByKey("layer_fan_8th") + ## If there is no '/' delimiter then ignore the line else put the settings in a list + for num in range(0,15,2): + if "/" in fan_list[num]: + fan_list[num + 1] = self._layer_checker(fan_list[num], "p", fan_mode) + fan_list[num] = self._layer_checker(fan_list[num], "l", fan_mode) + + ## Assign the variable values if "By Feature" + elif by_layer_or_feature == "by_feature": + the_start_layer = self.getSettingValueByKey("feature_fan_start_layer") - 1 + the_end_layer = self.getSettingValueByKey("feature_fan_end_layer") + try: + if int(the_end_layer) != -1: + ## Catch a possible input error. + if the_end_layer < the_start_layer: + the_end_layer = the_start_layer + except: + the_end_layer = -1 ## If there is an input error default to the entire gcode file. + + ## Get the speed for each feature + # 0;TYPE:SKIRT, 1;TYPE:WALL-INNER, 2;TYPE:WALL-OUTER, 3;TYPE:FILL, 4;TYPE:SKIN, 5;TYPE:SUPPORT, 6;TYPE:SUPPORT-INTERFACE, 7;TYPE:PRIME-TOWER, 8;BRIDGE, 9;FEATURE_FINAL, 10;FAN_COMBING, + fan_sp_skirt = self._feature_checker(self.getSettingValueByKey("feature_fan_skirt"), fan_mode) + fan_sp_wall_inner = self._feature_checker(self.getSettingValueByKey("feature_fan_wall_inner"), fan_mode) + fan_sp_wall_outer = self._feature_checker(self.getSettingValueByKey("feature_fan_wall_outer"), fan_mode) + fan_sp_fill = self._feature_checker(self.getSettingValueByKey("feature_fan_fill"), fan_mode) + fan_sp_skin = self._feature_checker(self.getSettingValueByKey("feature_fan_skin"), fan_mode) + fan_sp_support = self._feature_checker(self.getSettingValueByKey("feature_fan_support"), fan_mode) + fan_sp_support_interface = self._feature_checker(self.getSettingValueByKey("feature_fan_support_interface"), fan_mode) + fan_sp_prime_tower = self._feature_checker(self.getSettingValueByKey("feature_fan_prime_tower"), fan_mode) + fan_sp_bridge = self._feature_checker(self.getSettingValueByKey("feature_fan_bridge"), fan_mode) + fan_sp_feature_final = self._feature_checker(self.getSettingValueByKey("feature_fan_feature_final"), fan_mode) + feature_fan_combing = self.getSettingValueByKey("feature_fan_combing") + if the_end_layer > -1 and by_layer_or_feature == "by_feature": + ## Required so the final speed input can be determined + the_end_is_enabled = True + else: + ## There is no ending layer so do the whole file + the_end_is_enabled = False + if the_end_layer == -1 or the_end_is_enabled == False: + the_end_layer = len(data) + 2 + + ## Find the Layer0Index and the RaftIndex + raft_start_index = 0 + number_of_raft_layers = 0 + layer_0_index = 0 + ## Catch the number of raft layers. + for l_num in range(1,10,1): + layer = data[l_num] + if ";LAYER:-" in layer: + number_of_raft_layers += 1 + if raft_start_index == 0: + raft_start_index = l_num + if ";LAYER:0" in layer: + layer_0_index = l_num + break + + ## Is this a single extruder print on a multi-extruder printer? - get the correct fan number for the extruder being used. + if is_multi_fan: + T0_used = False + T1_used = False + T2_used = False + T3_used = False + ## Bypass the file header and ending gcode. + for num in range(1,len(data)-1,1): + lines = data[num] + if "T0" in lines: + T0_used = True + if "T1" in lines: + T1_used = True + if "T2" in lines: + T2_used = True + if "T3" in lines: + T3_used = True + is_multi_extr_print = True if sum([T0_used, T1_used, T2_used, T3_used]) > 1 else False + + ## On a multi-extruder printer and single extruder print find out which extruder starts the file. + init_fan = t0_fan + if not is_multi_extr_print: + startup = data[1] + lines = startup.split("\n") + for line in lines: + if line == "T1": + t0_fan = t1_fan + elif line == "T2": + t0_fan = t2_fan + elif line == "T3": + t0_fan = t3_fan + elif is_multi_extr_print: + ## On a multi-extruder printer and multi extruder print find out which extruder starts the file. + startup = data[1] + lines = startup.split("\n") + for line in lines: + if line == "T0": + init_fan = t0_fan + elif line == "T1": + init_fan = t1_fan + elif line == "T2": + init_fan = t2_fan + elif line == "T3": + init_fan = t3_fan + else: + init_fan = "" + ## Assign the variable values if "Raft Enabled" + raft_enabled = self.getSettingValueByKey("fan_enable_raft") + if raft_enabled and bed_adhesion == "raft": + fan_sp_raft = self._feature_checker(self.getSettingValueByKey("fan_raft_percent"), fan_mode) + else: + fan_sp_raft = "M106 S0" + + # Start to alter the data----------------------------------------- + ## Strip the existing M106 lines from the file up to the end of the last layer. If a user wants to use more than one instance of this plugin then they won't want to erase the M106 lines that the preceding plugins inserted so 'delete_existing_m106' is an option. + delete_existing_m106 = self.getSettingValueByKey("delete_existing_m106") + if delete_existing_m106: + ## Start deleting from the beginning + start_from = int(raft_start_index) + else: + if by_layer_or_feature == "by_layer": + altered_start_layer = str(len(data)) + ## The fan list layers don't need to be in ascending order. Get the lowest. + for num in range(0,15,2): + if int(fan_list[num]) < int(altered_start_layer): + altered_start_layer = int(fan_list[num]) + elif by_layer_or_feature == "by_feature": + altered_start_layer = int(the_start_layer) - 1 + start_from = int(layer_0_index) + int(altered_start_layer) + + ## Strip the M106 and M107 lines from the file + for l_index in range(int(start_from), len(data) - 1, 1): + data[l_index] = re.sub(re.compile("M106(.*)\n"), "", data[l_index]) + data[l_index] = re.sub(re.compile("M107(.*)\n"), "", data[l_index]) + + ## Deal with a raft and with One-At-A-Time + if raft_enabled and bed_adhesion == "raft": + if print_sequence == "one_at_a_time": + for r_index in range(2,len(data)-2,1): + lines = data[r_index].split("\n") + if not raft_enabled or bed_adhesion != "raft": + if ";LAYER:0" in data[r_index] or ";LAYER:-" in data[r_index]: + lines.insert(1, "M106 S0" + str(t0_fan)) + if raft_enabled and bed_adhesion == "raft": + if ";LAYER:-" in data[r_index]: + ## Turn the raft fan on + lines.insert(1, fan_sp_raft + str(t0_fan)) + ## Shut the raft fan off + if ";LAYER:0" in data[r_index]: + lines.insert(1,"M106 S0" + str(t0_fan)) + data[r_index] = "\n".join(lines) + elif print_sequence == "all_at_once": + layer = data[raft_start_index] + lines = layer.split("\n") + if ";LAYER:-" in layer: + ## Turn the raft fan on + lines.insert(1, fan_sp_raft + str(init_fan)) + layer = "\n".join(lines) + data[raft_start_index] = layer + layer = data[layer_0_index] + lines = layer.split("\n") + ## Shut the raft fan off + lines.insert(1, "M106 S0" + str(init_fan)) + data[layer_0_index] = "\n".join(lines) + else: + for r_index in range(2,len(data)-2,1): + lines = data[r_index].split("\n") + if ";LAYER:0" in data[r_index] or ";LAYER:-" in data[r_index]: + if not "0" in fan_list: + lines.insert(1, "M106 S0" + str(t0_fan)) + data[r_index] = "\n".join(lines) + + ## Turn off all fans at the end of data[1] + temp_startup = data[1].split("\n") + temp_startup.insert(len(temp_startup)-2,"M106 S0" + str(t0_fan)) + ## If there are multiple cooling fans shut them all off + if is_multi_fan: + if extruder_count > 1 and t1_fan != t0_fan: temp_startup.insert(len(temp_startup)-2,"M106 S0" + str(t1_fan)) + if extruder_count > 2 and t2_fan != t1_fan and t2_fan != t0_fan: temp_startup.insert(len(temp_startup)-2,"M106 S0" + str(t2_fan)) + if extruder_count > 3 and t3_fan != t2_fan and t3_fan != t1_fan and t3_fan != t0_fan: temp_startup.insert(len(temp_startup)-2,"M106 S0" + str(t3_fan)) + data[1] = "\n".join(temp_startup) + + ## If 'feature_fan_combing' is True then add additional 'MESH:NONMESH' lines for travel moves over 5 lines long + ## For compatibility with 5.3.0 change any MESH:NOMESH to MESH:NONMESH. + if feature_fan_combing: + for layer_num in range(2,len(data)): + layer = data[layer_num] + data[layer_num] = re.sub(";MESH:NOMESH", ";MESH:NONMESH", layer) + data = self._add_travel_comment(data, layer_0_index) + + # Single Fan "By Layer"-------------------------------------------- + if by_layer_or_feature == "by_layer" and not is_multi_fan: + return self._single_fan_by_layer(data, layer_0_index, fan_list, t0_fan) + + # Multi-Fan "By Layer"--------------------------------------------- + if by_layer_or_feature == "by_layer" and is_multi_fan: + return self._multi_fan_by_layer(data, layer_0_index, fan_list, t0_fan, t1_fan, t2_fan, t3_fan) + + #Single Fan "By Feature"------------------------------------------ + if by_layer_or_feature == "by_feature" and (not is_multi_fan or not is_multi_extr_print): + return self._single_fan_by_feature(data, layer_0_index, the_start_layer, the_end_layer, the_end_is_enabled, fan_list, t0_fan, fan_sp_skirt, fan_sp_wall_inner, fan_sp_wall_outer, fan_sp_fill, fan_sp_skin, fan_sp_support, fan_sp_support_interface, feature_fan_combing, fan_sp_prime_tower, fan_sp_bridge, fan_sp_feature_final) + + #Multi Fan "By Feature"------------------------------------------- + if by_layer_or_feature == "by_feature" and is_multi_fan: + return self._multi_fan_by_feature(data, layer_0_index, the_start_layer, the_end_layer, the_end_is_enabled, fan_list, t0_fan, t1_fan, t2_fan, t3_fan, fan_sp_skirt, fan_sp_wall_inner, fan_sp_wall_outer, fan_sp_fill, fan_sp_skin, fan_sp_support, fan_sp_support_interface, feature_fan_combing, fan_sp_prime_tower, fan_sp_bridge, fan_sp_feature_final) + + # The Single Fan "By Layer"---------------------------------------- + def _single_fan_by_layer(self, data: str, layer_0_index: int, fan_list: str, t0_fan: str)->str: + layer_number = "0" + single_fan_layer = data + for l_index in range(layer_0_index,len(single_fan_layer)-1,1): + layer = single_fan_layer[l_index] + fan_lines = layer.split("\n") + for fan_line in fan_lines: + if ";LAYER:" in fan_line: + layer_number = int(fan_line.split(":")[1]) + ## If there is a match for the current layer number make the insertion. + try: + for num in range(0,15,2): + if int(layer_number) == int(fan_list[num]): + layer = layer.replace(fan_lines[0],fan_lines[0] + "\n" + fan_list[num + 1] + str(t0_fan)) + single_fan_layer[l_index] = layer + except: + continue + return single_fan_layer + + # Multi-Fan "By Layer"----------------------------------------- + def _multi_fan_by_layer(self, data: str, layer_0_index: int, fan_list: str, t0_fan: str, t1_fan: str, t2_fan: str, t3_fan: str)->str: + multi_fan_data = data + layer_number = "0" + current_fan_speed = "0" + prev_fan = str(t0_fan) + this_fan = str(t0_fan) + start_index = str(len(multi_fan_data)) + for num in range(0,15,2): + ## The fan_list may not be in ascending order. Get the lowest layer number + try: + if int(fan_list[num]) < int(start_index): + start_index = str(fan_list[num]) + except: + pass + ## Move the start point if delete_existing_m106 is false + start_index = int(start_index) + int(layer_0_index) + ## Track the tool number + for num in range(1,int(start_index),1): + layer = multi_fan_data[num] + lines = layer.split("\n") + for line in lines: + if line == "T0": + prev_fan = this_fan + this_fan = t0_fan + elif line == "T1": + prev_fan = this_fan + this_fan = t1_fan + elif line == "T2": + prev_fan = this_fan + this_fan = t2_fan + elif line == "T3": + prev_fan = this_fan + this_fan = t3_fan + for l_index in range(int(start_index),len(multi_fan_data)-1,1): + modified_data = "" + layer = multi_fan_data[l_index] + fan_lines = layer.split("\n") + for fan_line in fan_lines: + ## Prepare to shut down the previous fan and start the next one. + if fan_line.startswith("T"): + if fan_line == "T0": this_fan = str(t0_fan) + if fan_line == "T1": this_fan = str(t1_fan) + if fan_line == "T2": this_fan = str(t2_fan) + if fan_line == "T3": this_fan = str(t3_fan) + modified_data += "M106 S0" + prev_fan + "\n" + modified_data += fan_line + "\n" + modified_data += "M106 S" + str(current_fan_speed) + this_fan + "\n" + prev_fan = this_fan + elif ";LAYER:" in fan_line: + modified_data += fan_line + "\n" + layer_number = str(fan_line.split(":")[1]) + for num in range(0,15,2): + if layer_number == str(fan_list[num]): + modified_data += fan_list[num + 1] + this_fan + "\n" + current_fan_speed = str(fan_list[num + 1].split("S")[1]) + current_fan_speed = str(current_fan_speed.split(" ")[0]) ## Just in case + else: + modified_data += fan_line + "\n" + if modified_data.endswith("\n"): modified_data = modified_data[0:-1] + multi_fan_data[l_index] = modified_data + return multi_fan_data + + # Single fan by feature----------------------------------------------- + def _single_fan_by_feature(self, data: str, layer_0_index: int, the_start_layer: str, the_end_layer: str, the_end_is_enabled: str, fan_list: str, t0_fan: str, fan_sp_skirt: str, fan_sp_wall_inner: str, fan_sp_wall_outer: str, fan_sp_fill: str, fan_sp_skin: str, fan_sp_support: str, fan_sp_support_interface: str, feature_fan_combing: str, fan_sp_prime_tower: str, fan_sp_bridge: str, fan_sp_feature_final: str)->str: + single_fan_data = data + layer_number = "0" + index = 1 + ## Start with layer:0 + for l_index in range(layer_0_index,len(single_fan_data)-1,1): + modified_data = "" + layer = single_fan_data[l_index] + lines = layer.split("\n") + for line in lines: + if ";LAYER:" in line: + layer_number = str(line.split(":")[1]) + if int(layer_number) >= int(the_start_layer) and int(layer_number) < int(the_end_layer)-1: + if ";TYPE:SKIRT" in line: + modified_data += fan_sp_skirt + t0_fan + "\n" + elif ";TYPE:WALL-INNER" in line: + modified_data += fan_sp_wall_inner + t0_fan + "\n" + elif ";TYPE:WALL-OUTER" in line: + modified_data += fan_sp_wall_outer + t0_fan + "\n" + elif ";TYPE:FILL" in line: + modified_data += fan_sp_fill + t0_fan + "\n" + elif ";TYPE:SKIN" in line: + modified_data += fan_sp_skin + t0_fan + "\n" + elif line == ";TYPE:SUPPORT": + modified_data += fan_sp_support + t0_fan + "\n" + elif ";TYPE:SUPPORT-INTERFACE" in line: + modified_data += fan_sp_support_interface + t0_fan + "\n" + elif ";MESH:NONMESH" in line: + if feature_fan_combing == True: + modified_data += "M106 S0" + t0_fan + "\n" + elif ";TYPE:PRIME-TOWER" in line: + modified_data += fan_sp_prime_tower + t0_fan + "\n" + elif line == ";BRIDGE": + modified_data += fan_sp_bridge + t0_fan + "\n" + modified_data += line + "\n" + ## If an End Layer is defined and is less than the last layer then insert the Final Speed + if line == ";LAYER:" + str(the_end_layer) and the_end_is_enabled == True: + modified_data += fan_sp_feature_final + t0_fan + "\n" + if modified_data.endswith("\n"): modified_data = modified_data[0: - 1] + single_fan_data[l_index] = modified_data + return single_fan_data + + # Multi-fan by feature------------------------------------------------ + def _multi_fan_by_feature(self, data: str, layer_0_index: int, the_start_layer: str, the_end_layer: str, the_end_is_enabled: str, fan_list: str, t0_fan: str, t1_fan: str, t2_fan: str, t3_fan: str, fan_sp_skirt: str, fan_sp_wall_inner: str, fan_sp_wall_outer: str, fan_sp_fill: str, fan_sp_skin: str, fan_sp_support: str, fan_sp_support_interface: str, feature_fan_combing: str, fan_sp_prime_tower: str, fan_sp_bridge: str, fan_sp_feature_final: str)->str: + multi_fan_data = data + layer_number = "0" + start_index = 1 + prev_fan = t0_fan + this_fan = t0_fan + modified_data = "" + current_fan_speed = "0" + for my_index in range(1, len(multi_fan_data) - 1, 1): + layer = multi_fan_data[my_index] + if ";LAYER:" + str(the_start_layer) + "\n" in layer: + start_index = int(my_index) - 1 + break + ## Track the previous tool changes + for num in range(1,start_index,1): + layer = multi_fan_data[num] + lines = layer.split("\n") + for line in lines: + if line == "T0": + prev_fan = this_fan + this_fan = t0_fan + elif line == "T1": + prev_fan = this_fan + this_fan = t1_fan + elif line == "T2": + prev_fan = this_fan + this_fan = t2_fan + elif line == "T3": + prev_fan = this_fan + this_fan = t3_fan + ## Get the current tool. + for l_index in range(start_index,start_index + 1,1): + layer = multi_fan_data[l_index] + lines = layer.split("\n") + for line in lines: + if line.startswith("T"): + if line == "T0": this_fan = t0_fan + if line == "T1": this_fan = t1_fan + if line == "T2": this_fan = t2_fan + if line == "T3": this_fan = t3_fan + prev_fan = this_fan + + ## Start to make insertions------------------------------------- + for l_index in range(start_index+1,len(multi_fan_data)-1,1): + layer = multi_fan_data[l_index] + lines = layer.split("\n") + for line in lines: + if line.startswith("T"): + if line == "T0": this_fan = t0_fan + if line == "T1": this_fan = t1_fan + if line == "T2": this_fan = t2_fan + if line == "T3": this_fan = t3_fan + ## Turn off the prev fan + modified_data += "M106 S0" + prev_fan + "\n" + modified_data += line + "\n" + ## Turn on the current fan + modified_data += "M106 S" + str(current_fan_speed) + this_fan + "\n" + prev_fan = this_fan + if ";LAYER:" in line: + layer_number = str(line.split(":")[1]) + modified_data += line + "\n" + if int(layer_number) >= int(the_start_layer): # Problem with oneatatime < start + if ";TYPE:SKIRT" in line: + modified_data += line + "\n" + modified_data += fan_sp_skirt + this_fan + "\n" + current_fan_speed = str(fan_sp_skirt.split("S")[1]) + elif ";TYPE:WALL-INNER" in line: + modified_data += line + "\n" + modified_data += fan_sp_wall_inner + this_fan + "\n" + current_fan_speed = str(fan_sp_wall_inner.split("S")[1]) + elif ";TYPE:WALL-OUTER" in line: + modified_data += line + "\n" + modified_data += fan_sp_wall_outer + this_fan + "\n" + current_fan_speed = str(fan_sp_wall_outer.split("S")[1]) + elif ";TYPE:FILL" in line: + modified_data += line + "\n" + modified_data += fan_sp_fill + this_fan + "\n" + current_fan_speed = str(fan_sp_fill.split("S")[1]) + elif ";TYPE:SKIN" in line: + modified_data += line + "\n" + modified_data += fan_sp_skin + this_fan + "\n" + current_fan_speed = str(fan_sp_skin.split("S")[1]) + elif line == ";TYPE:SUPPORT": + modified_data += line + "\n" + modified_data += fan_sp_support + this_fan + "\n" + current_fan_speed = str(fan_sp_support.split("S")[1]) + elif ";TYPE:SUPPORT-INTERFACE" in line: + modified_data += line + "\n" + modified_data += fan_sp_support_interface + this_fan + "\n" + current_fan_speed = str(fan_sp_support_interface.split("S")[1]) + elif ";MESH:NONMESH" in line: + if feature_fan_combing == True: + modified_data += line + "\n" + modified_data += "M106 S0" + this_fan + "\n" + current_fan_speed = "0" + else: + modified_data += line + "\n" + elif ";TYPE:PRIME-TOWER" in line: + modified_data += line + "\n" + modified_data += fan_sp_prime_tower + this_fan + "\n" + current_fan_speed = str(fan_sp_prime_tower.split("S")[1]) + elif line == ";BRIDGE": + modified_data += line + "\n" + modified_data += fan_sp_bridge + this_fan + "\n" + current_fan_speed = str(fan_sp_bridge.split("S")[1]) + ## If an end layer is defined - Insert the final speed and set the other variables to Final Speed to finish the file + ## There cannot be a break here because if there are multiple fan numbers they still need to be shut off and turned on. + elif line == ";LAYER:" + str(the_end_layer): + modified_data += fan_sp_feature_final + this_fan + "\n" + fan_sp_skirt = fan_sp_feature_final + fan_sp_wall_inner = fan_sp_feature_final + fan_sp_wall_outer = fan_sp_feature_final + fan_sp_fill = fan_sp_feature_final + fan_sp_skin = fan_sp_feature_final + fan_sp_support = fan_sp_feature_final + fan_sp_support_interface = fan_sp_feature_final + fan_sp_prime_tower = fan_sp_feature_final + fan_sp_bridge = fan_sp_feature_final + else: + ## Layer and Tool get inserted into modified_data above. All other lines go into modified_data here + if not line.startswith("T") and not line.startswith(";LAYER:"): modified_data += line + "\n" + if modified_data.endswith("\n"): modified_data = modified_data[0: - 1] + multi_fan_data[l_index] = modified_data + modified_data = "" + return multi_fan_data + + #Try to catch layer input errors, set the minimum speed to 12%, and put the strings together + def _layer_checker(self, fan_string: str, ty_pe: str, fan_mode: bool) -> str: + fan_string_l = str(fan_string.split("/")[0]) + try: + if int(fan_string_l) <= 1: fan_string_l = "1" + if fan_string_l == "": fan_string_l = str(len(data)) + except ValueError: + fan_string_l = str(len(data)) + fan_string_l = str(int(fan_string_l) - 1) + fan_string_p = str(fan_string.split("/")[1]) + if fan_string_p == "": fan_string_p = "0" + try: + if int(fan_string_p) < 0: fan_string_p = "0" + if int(fan_string_p) > 100: fan_string_p = "100" + except ValueError: + fan_string_p = "0" + ## Set the minimum fan speed to 12% + if int(fan_string_p) < 12 and int(fan_string_p) != 0: + fan_string_p = "12" + fan_layer_line = str(fan_string_l) + if fan_mode: + fan_percent_line = "M106 S" + str(round(int(fan_string_p) * 2.55)) + else: + fan_percent_line = "M106 S" + str(round(int(fan_string_p) / 100, 1)) + if ty_pe == "l": + return str(fan_layer_line) + elif ty_pe == "p": + return fan_percent_line + + #Try to catch feature input errors, set the minimum speed to 12%, and put the strings together when 'By Feature' + def _feature_checker(self, fan_feat_string: int, fan_mode: bool) -> str: + if fan_feat_string < 0: fan_feat_string = 0 + ## Set the minimum fan speed to 12% + if fan_feat_string > 0 and fan_feat_string < 12: fan_feat_string = 12 + if fan_feat_string > 100: fan_feat_string = 100 + if fan_mode: + fan_sp_feat = "M106 S" + str(round(fan_feat_string * 2.55)) + else: + fan_sp_feat = "M106 S" + str(round(fan_feat_string / 100, 1)) + return fan_sp_feat + + # Add additional travel comments to turn the fan off during combing. + def _add_travel_comment(self, the_data: str, lay_0_index: str) -> str: + for lay_num in range(int(lay_0_index), len(the_data)-1,1): + layer = the_data[lay_num] + lines = layer.split("\n") + ## Copy the data to new_data and make the insertions there + new_data = lines + g0_count = 0 + g0_index = -1 + feature_type = ";TYPE:SUPPORT" + is_travel = False + for index, line in enumerate(lines): + insert_index = 0 + if ";TYPE:" in line: + feature_type = line + is_travel = False + g0_count = 0 + if ";MESH:NONMESH" in line: + is_travel = True + g0_count = 0 + if line.startswith("G0 ") and not is_travel: + g0_count += 1 + if g0_index == -1: + g0_index = lines.index(line) + elif not line.startswith("G0 ") and not is_travel: + ## Add additional 'NONMESH' lines to shut the fan off during long combing moves-------- + if g0_count > 5: + if not is_travel: + new_data.insert(g0_index + insert_index, ";MESH:NONMESH") + insert_index += 1 + ## Add the feature_type at the end of the combing move to turn the fan back on + new_data.insert(g0_index + g0_count + 1, feature_type) + insert_index += 1 + g0_count = 0 + g0_index = -1 + is_travel = False + elif g0_count <= 5: + g0_count = 0 + g0_index = -1 + is_travel = False + the_data[lay_num] = "\n".join(new_data) + return the_data \ No newline at end of file From 13deab505ea06e8a352bd93615bfabe67775b210 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 8 Jan 2024 11:32:25 +0100 Subject: [PATCH 044/269] Add/reorganize settings for raft walls CURA-11228 --- resources/definitions/fdmprinter.def.json | 59 ++++++++++++++++++----- resources/setting_visibility/expert.cfg | 1 + 2 files changed, 49 insertions(+), 11 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 2b37b3d7ac..32908b6f3e 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6329,6 +6329,54 @@ "settable_per_extruder": true, "limit_to_extruder": "raft_base_extruder_nr" }, + "raft_wall_count": + { + "label": "Raft Wall Count", + "description": "The number of contours to print around the linear pattern of the raft.", + "type": "int", + "default_value": 1, + "minimum_value": "0", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "settable_per_mesh": false, + "settable_per_extruder": false, + "children": + { + "raft_surface_wall_count": + { + "label": "Raft Top Wall Count", + "description": "The number of contours to print around the linear pattern in the top layers of the raft.", + "type": "int", + "default_value": 0, + "minimum_value": "0", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "settable_per_mesh": false, + "settable_per_extruder": false + }, + "raft_interface_wall_count": + { + "label": "Raft Middle Wall Count", + "description": "The number of contours to print around the linear pattern in the middle layers of the raft.", + "type": "int", + "default_value": 0, + "minimum_value": "0", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "settable_per_mesh": false, + "settable_per_extruder": false + }, + "raft_base_wall_count": + { + "label": "Raft Base Wall Count", + "description": "The number of contours to print around the linear pattern in the base layer of the raft.", + "type": "int", + "default_value": 1, + "value": "raft_wall_count", + "minimum_value": "0", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "settable_per_mesh": false, + "settable_per_extruder": false + } + } + }, "raft_speed": { "label": "Raft Print Speed", @@ -8286,17 +8334,6 @@ "settable_per_mesh": false, "settable_per_extruder": false }, - "raft_base_wall_count": - { - "label": "Raft Base Wall Count", - "description": "The number of contours to print around the linear pattern in the base layer of the raft.", - "type": "int", - "default_value": 1, - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "resolve": "max(extruderValues('raft_base_wall_count'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, "group_outer_walls": { "label": "Group Outer Walls", diff --git a/resources/setting_visibility/expert.cfg b/resources/setting_visibility/expert.cfg index 2f2dd7671d..384f8d2528 100644 --- a/resources/setting_visibility/expert.cfg +++ b/resources/setting_visibility/expert.cfg @@ -344,6 +344,7 @@ raft_interface_line_spacing raft_base_thickness raft_base_line_width raft_base_line_spacing +raft_wall_count raft_speed raft_acceleration raft_jerk From 68460c55474ac92b6c781df29db6d5567bcd3323 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Mon, 8 Jan 2024 12:47:28 +0100 Subject: [PATCH 045/269] Also run on 5.6E branch Fixes CURA-11523 --- .github/workflows/conan-package.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/conan-package.yml b/.github/workflows/conan-package.yml index 7ca2b0c467..faa970270d 100644 --- a/.github/workflows/conan-package.yml +++ b/.github/workflows/conan-package.yml @@ -20,12 +20,8 @@ on: - 'main' - 'CURA-*' - 'PP-*' - - '[0-9].[0-9]' - - '[0-9].[0-9][0-9]' - tags: - - '[0-9].[0-9].[0-9]*' - - '[0-9].[0-9].[0-9]' - - '[0-9].[0-9][0-9].[0-9]*' + - '[0-9].[0-9]*' + - '[0-9].[0-9][0-9]*' env: CONAN_LOGIN_USERNAME_CURA: ${{ secrets.CONAN_USER }} From 677f35b5159e53fded2d4c31b2ca58ede6b28373 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Mon, 8 Jan 2024 11:06:20 +0100 Subject: [PATCH 046/269] use `input` instead of the `github.events` Fixes CURA-11523 --- .github/workflows/installers.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/installers.yml b/.github/workflows/installers.yml index 6e531ba833..9c51cfe820 100644 --- a/.github/workflows/installers.yml +++ b/.github/workflows/installers.yml @@ -54,9 +54,9 @@ jobs: needs: [ default_values ] with: cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }} - conan_args: ${{ github.event.inputs.conan_args }} - enterprise: ${{ github.event.inputs.enterprise == 'true' }} - staging: ${{ github.event.inputs.staging == 'true' }} + conan_args: ${{ inputs.conan_args }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} architecture: X64 operating_system: windows-2022 secrets: inherit @@ -66,9 +66,9 @@ jobs: needs: [ default_values ] with: cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }} - conan_args: ${{ github.event.inputs.conan_args }} - enterprise: ${{ github.event.inputs.enterprise == 'true' }} - staging: ${{ github.event.inputs.staging == 'true' }} + conan_args: ${{ inputs.conan_args }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} architecture: X64 operating_system: ubuntu-22.04 secrets: inherit @@ -78,9 +78,9 @@ jobs: needs: [ default_values ] with: cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }} - conan_args: ${{ github.event.inputs.conan_args }} - enterprise: ${{ github.event.inputs.enterprise == 'true' }} - staging: ${{ github.event.inputs.staging == 'true' }} + conan_args: ${{ inputs.conan_args }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} architecture: X64 operating_system: self-hosted-X64 secrets: inherit @@ -90,9 +90,9 @@ jobs: needs: [ default_values ] with: cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }} - conan_args: ${{ github.event.inputs.conan_args }} - enterprise: ${{ github.event.inputs.enterprise == 'true' }} - staging: ${{ github.event.inputs.staging == 'true' }} + conan_args: ${{ inputs.conan_args }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} architecture: ARM64 operating_system: self-hosted-ARM64 secrets: inherit From 85a762aec38e8fc99d39addc0b58279f8e45078a Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Mon, 8 Jan 2024 11:17:16 +0100 Subject: [PATCH 047/269] sync workflow with 5.6E branch Fixes CURA-11523 --- .github/workflows/linux.yml | 11 +++-------- .github/workflows/macos.yml | 11 +++-------- .github/workflows/windows.yml | 11 +++-------- 3 files changed, 9 insertions(+), 24 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index f88b77a022..08c59c9158 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -39,19 +39,14 @@ on: options: - ubuntu-22.04 -env: - CONAN_ARGS: ${{ inputs.conan_args || '' }} - ENTERPRISE: ${{ inputs.enterprise || false }} - STAGING: ${{ inputs.staging || false }} - jobs: - installer: + linux-installer: uses: ultimaker/cura-workflows/.github/workflows/cura-installer-linux.yml@main with: cura_conan_version: ${{ inputs.cura_conan_version }} conan_args: ${{ inputs.conan_args }} - enterprise: ${{ inputs.enterprise == 'true' }} - staging: ${{ inputs.staging == 'true' }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} architecture: ${{ inputs.architecture }} operating_system: ${{ inputs.operating_system }} secrets: inherit \ No newline at end of file diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index e909b9f839..9c940330e1 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -43,19 +43,14 @@ on: - macos-11 - macos-12 -env: - CONAN_ARGS: ${{ inputs.conan_args || '' }} - ENTERPRISE: ${{ inputs.enterprise || false }} - STAGING: ${{ inputs.staging || false }} - jobs: - installer: + macos-installer: uses: ultimaker/cura-workflows/.github/workflows/cura-installer-macos.yml@main with: cura_conan_version: ${{ inputs.cura_conan_version }} conan_args: ${{ inputs.conan_args }} - enterprise: ${{ inputs.enterprise == 'true' }} - staging: ${{ inputs.staging == 'true' }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} architecture: ${{ inputs.architecture }} operating_system: ${{ inputs.operating_system }} secrets: inherit \ No newline at end of file diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 151935c3f3..22a81e9b2a 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -39,19 +39,14 @@ on: options: - windows-2022 -env: - CONAN_ARGS: ${{ inputs.conan_args || '' }} - ENTERPRISE: ${{ inputs.enterprise || false }} - STAGING: ${{ inputs.staging || false }} - jobs: - installer: + windows-installer: uses: ultimaker/cura-workflows/.github/workflows/cura-installer-windows.yml@main with: cura_conan_version: ${{ inputs.cura_conan_version }} conan_args: ${{ inputs.conan_args }} - enterprise: ${{ inputs.enterprise == 'true' }} - staging: ${{ inputs.staging == 'true' }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} architecture: ${{ inputs.architecture }} operating_system: ${{ inputs.operating_system }} secrets: inherit \ No newline at end of file From b60b07e2b26f4d676222d56d135a5dc274ffa41f Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Mon, 8 Jan 2024 13:13:53 +0100 Subject: [PATCH 048/269] build Conan packages This will compile the mo files. But be sure that `enable_i18n` option is still removed from the `package_id`. Such that the build conan package can also be used Fixes CURA-11497 --- .github/workflows/conan-package.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/conan-package.yml b/.github/workflows/conan-package.yml index faa970270d..8faf1e27e1 100644 --- a/.github/workflows/conan-package.yml +++ b/.github/workflows/conan-package.yml @@ -40,3 +40,11 @@ jobs: recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }} recipe_id_latest: ${{ needs.conan-recipe-version.outputs.recipe_id_latest }} secrets: inherit + + conan-package-create: + needs: [ conan-recipe-version, conan-package-export ] + uses: ultimaker/cura-workflows/.github/workflows/conan-package-create-linux.yml@main + with: + recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }} + conan_extra_args: "-o cura:enable_i18n=True" + secrets: inherit \ No newline at end of file From 11aa71a5dfa6e6bf321313511df61c019b80717b Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Mon, 8 Jan 2024 14:41:41 +0100 Subject: [PATCH 049/269] Singleton management in Cura -QualityManagementModel, MaterialManagementModel, SimpleModeSettingsManager, MachineActionManager and CustomQualityProfilesDropDownMenuModel *deleted* -QualityProfilesDropDownmenuModel changed to RegisterType CURA-7812 --- cura/CuraApplication.py | 22 +++++++++---------- resources/qml/Preferences/MachinesPage.qml | 4 +++- .../Custom/QualitiesWithIntentMenu.qml | 2 +- .../ProfileWarningReset.qml | 4 ++-- 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 1ef2f63a9e..3243260b6e 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1138,6 +1138,10 @@ class CuraApplication(QtApplication): return cast(MachineActionManager.MachineActionManager, self._machine_action_manager) + @pyqtSlot(result = QObject) + def getMachineActionManagerQml(self)-> MachineActionManager.MachineActionManager: + return cast(QObject, self._machine_action_manager) + @pyqtSlot(result = QObject) def getMaterialManagementModel(self) -> MaterialManagementModel: if not self._material_management_model: @@ -1150,7 +1154,8 @@ class CuraApplication(QtApplication): self._quality_management_model = QualityManagementModel(parent = self) return self._quality_management_model - def getSimpleModeSettingsManager(self, *args): + @pyqtSlot(result=QObject) + def getSimpleModeSettingsManager(self)-> SimpleModeSettingsManager: if self._simple_mode_settings_manager is None: self._simple_mode_settings_manager = SimpleModeSettingsManager() return self._simple_mode_settings_manager @@ -1193,12 +1198,14 @@ class CuraApplication(QtApplication): return self._print_information - def getQualityProfilesDropDownMenuModel(self, *args, **kwargs): + pyqtSlot(result =QObject) + def getQualityProfilesDropDownMenuModel(self, *args, **kwargs)-> QualityProfilesDropDownMenuModel: if self._quality_profile_drop_down_menu_model is None: self._quality_profile_drop_down_menu_model = QualityProfilesDropDownMenuModel(self) return self._quality_profile_drop_down_menu_model - def getCustomQualityProfilesDropDownMenuModel(self, *args, **kwargs): + pyqtSlot(result=QObject) + def getCustomQualityProfilesDropDownMenuModel(self, *args, **kwargs)->CustomQualityProfilesDropDownMenuModel: if self._custom_quality_profile_drop_down_menu_model is None: self._custom_quality_profile_drop_down_menu_model = CustomQualityProfilesDropDownMenuModel(self) return self._custom_quality_profile_drop_down_menu_model @@ -1231,8 +1238,6 @@ class CuraApplication(QtApplication): qmlRegisterSingletonType(MachineManager, "Cura", 1, 0, self.getMachineManager, "MachineManager") qmlRegisterSingletonType(IntentManager, "Cura", 1, 6, self.getIntentManager, "IntentManager") qmlRegisterSingletonType(SettingInheritanceManager, "Cura", 1, 0, self.getSettingInheritanceManager, "SettingInheritanceManager") - qmlRegisterSingletonType(SimpleModeSettingsManager, "Cura", 1, 0, self.getSimpleModeSettingsManager, "SimpleModeSettingsManager") - qmlRegisterSingletonType(MachineActionManager.MachineActionManager, "Cura", 1, 0, self.getMachineActionManager, "MachineActionManager") self.processEvents() qmlRegisterType(NetworkingUtil, "Cura", 1, 5, "NetworkingUtil") @@ -1257,16 +1262,11 @@ class CuraApplication(QtApplication): qmlRegisterType(FavoriteMaterialsModel, "Cura", 1, 0, "FavoriteMaterialsModel") qmlRegisterType(GenericMaterialsModel, "Cura", 1, 0, "GenericMaterialsModel") qmlRegisterType(MaterialBrandsModel, "Cura", 1, 0, "MaterialBrandsModel") - qmlRegisterSingletonType(QualityManagementModel, "Cura", 1, 0, self.getQualityManagementModel, "QualityManagementModel") - qmlRegisterSingletonType(MaterialManagementModel, "Cura", 1, 5, self.getMaterialManagementModel, "MaterialManagementModel") self.processEvents() qmlRegisterType(DiscoveredPrintersModel, "Cura", 1, 0, "DiscoveredPrintersModel") qmlRegisterType(DiscoveredCloudPrintersModel, "Cura", 1, 7, "DiscoveredCloudPrintersModel") - qmlRegisterSingletonType(QualityProfilesDropDownMenuModel, "Cura", 1, 0, - self.getQualityProfilesDropDownMenuModel, "QualityProfilesDropDownMenuModel") - qmlRegisterSingletonType(CustomQualityProfilesDropDownMenuModel, "Cura", 1, 0, - self.getCustomQualityProfilesDropDownMenuModel, "CustomQualityProfilesDropDownMenuModel") + qmlRegisterType(QualityProfilesDropDownMenuModel, "Cura", 1, 0, "QualityProfilesDropDownMenuModel") qmlRegisterType(NozzleModel, "Cura", 1, 0, "NozzleModel") qmlRegisterType(IntentModel, "Cura", 1, 6, "IntentModel") qmlRegisterType(IntentCategoryModel, "Cura", 1, 6, "IntentCategoryModel") diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index fb98cb59c5..971de03696 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -12,6 +12,7 @@ import Cura 1.0 as Cura UM.ManagementPage { id: base + property var machineActionManager: CuraApplication.getMachineActionManagerQml() Item { enabled: false; UM.I18nCatalog { id: catalog; name: "cura"} } title: catalog.i18nc("@title:tab", "Printers") @@ -58,10 +59,11 @@ UM.ManagementPage anchors.fill: parent spacing: UM.Theme.getSize("default_margin").height + Repeater { id: machineActionRepeater - model: base.currentItem ? Cura.MachineActionManager.getSupportedActions(Cura.MachineManager.getDefinitionByMachineId(base.currentItem.id)) : null + model: base.currentItem ? machineActionManager.getSupportedActions(Cura.MachineManager.getDefinitionByMachineId(base.currentItem.id)) : null Item { diff --git a/resources/qml/PrintSetupSelector/Custom/QualitiesWithIntentMenu.qml b/resources/qml/PrintSetupSelector/Custom/QualitiesWithIntentMenu.qml index 646e835cb2..9facc5095e 100644 --- a/resources/qml/PrintSetupSelector/Custom/QualitiesWithIntentMenu.qml +++ b/resources/qml/PrintSetupSelector/Custom/QualitiesWithIntentMenu.qml @@ -187,7 +187,7 @@ Popup //Add all the custom profiles. Repeater { - model: Cura.CustomQualityProfilesDropDownMenuModel + model: CuraApplication.getCustomQualityProfilesDropDownMenuModel() MenuButton { onClicked: Cura.MachineManager.setQualityChangesGroup(model.quality_changes_group) diff --git a/resources/qml/PrintSetupSelector/ProfileWarningReset.qml b/resources/qml/PrintSetupSelector/ProfileWarningReset.qml index c44fcc8cc2..bf4385446d 100644 --- a/resources/qml/PrintSetupSelector/ProfileWarningReset.qml +++ b/resources/qml/PrintSetupSelector/ProfileWarningReset.qml @@ -11,7 +11,7 @@ import "../Dialogs" Item { property bool fullWarning: true // <- Can you see the warning icon and the text, or is it just the buttons? - + property var simpleModeSettingsManager :CuraApplication.getSimpleModeSettingsManager() height: visible ? UM.Theme.getSize("action_button_icon").height : 0 width: visible ? childrenRect.width: 0 visible: Cura.MachineManager.hasUserSettings || (fullWarning && Cura.MachineManager.hasCustomQuality) @@ -96,7 +96,7 @@ Item State { name: "custom settings changed" - when: Cura.SimpleModeSettingsManager.isProfileCustomized + when: simpleModeSettingsManager.isProfileCustomized PropertyChanges { target: warning From a7137c5e634264b036ca3b38c8084423fbd8c2f1 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 8 Jan 2024 14:44:17 +0100 Subject: [PATCH 050/269] Add raft settings to make margin and remove inside corners configurable per raft-type Added teh following settings - raft_base_margin - raft_interface_margin - raft_surface_margin - raft_base_smoothing - raft_interface_smoothing - raft_surface_smoothing - raft_base_remove_inside_corners - raft_interface_remove_inside_corners - raft_surface_remove_inside_corners --- resources/definitions/fdmprinter.def.json | 129 +++++++++++++++++++++- resources/setting_visibility/expert.cfg | 9 ++ 2 files changed, 135 insertions(+), 3 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 2b37b3d7ac..b40e074f1c 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6114,7 +6114,51 @@ "enabled": "resolveOrValue('adhesion_type') == 'raft'", "limit_to_extruder": "adhesion_extruder_nr", "settable_per_mesh": false, - "settable_per_extruder": true + "settable_per_extruder": true, + "children": { + "raft_base_margin": { + "label": "Raft Base Extra Margin", + "description": "If the raft base is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print.", + "unit": "mm", + "type": "float", + "value": "raft_margin", + "default_value": 15, + "minimum_value_warning": "raft_interface_line_width", + "maximum_value_warning": "20", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "limit_to_extruder": "adhesion_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "raft_interface_margin": { + "label": "Raft Middle Extra Margin", + "description": "If the raft middle is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print.", + "unit": "mm", + "type": "float", + "value": "raft_margin", + "default_value": 15, + "minimum_value_warning": "raft_interface_line_width", + "maximum_value_warning": "20", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "limit_to_extruder": "adhesion_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "raft_surface_margin": { + "label": "Raft Top Extra Margin", + "description": "If the raft top is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print.", + "unit": "mm", + "type": "float", + "value": "raft_margin", + "default_value": 15, + "minimum_value_warning": "raft_interface_line_width", + "maximum_value_warning": "20", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "limit_to_extruder": "adhesion_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true + } + } }, "raft_smoothing": { @@ -6128,7 +6172,51 @@ "enabled": "resolveOrValue('adhesion_type') == 'raft' and not raft_remove_inside_corners", "limit_to_extruder": "adhesion_extruder_nr", "settable_per_mesh": false, - "settable_per_extruder": true + "settable_per_extruder": true, + "children": { + "raft_base_smoothing": { + "label": "Raft Base Smoothing", + "description": "This setting controls how much inner corners in the raft base outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle.", + "unit": "mm", + "type": "float", + "value": "raft_smoothing", + "default_value": 5, + "minimum_value": "0", + "minimum_value_warning": "raft_interface_line_width", + "enabled": "resolveOrValue('adhesion_type') == 'raft' and not raft_base_remove_inside_corners", + "limit_to_extruder": "adhesion_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "raft_interface_smoothing": { + "label": "Raft Middle Smoothing", + "description": "This setting controls how much inner corners in the raft middle outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle.", + "unit": "mm", + "type": "float", + "value": "raft_smoothing", + "default_value": 5, + "minimum_value": "0", + "minimum_value_warning": "raft_interface_line_width", + "enabled": "resolveOrValue('adhesion_type') == 'raft' and not raft_interface_remove_inside_corners", + "limit_to_extruder": "adhesion_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "raft_surface_smoothing": { + "label": "Raft Top Smoothing", + "description": "This setting controls how much inner corners in the raft top outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle.", + "unit": "mm", + "type": "float", + "value": "raft_smoothing", + "default_value": 5, + "minimum_value": "0", + "minimum_value_warning": "raft_interface_line_width", + "enabled": "resolveOrValue('adhesion_type') == 'raft' and not raft_surface_remove_inside_corners", + "limit_to_extruder": "adhesion_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true + } + } }, "raft_airgap": { @@ -8284,7 +8372,42 @@ "resolve": "any(extruderValues('raft_remove_inside_corners'))", "enabled": "resolveOrValue('adhesion_type') == 'raft'", "settable_per_mesh": false, - "settable_per_extruder": false + "settable_per_extruder": false, + "children": { + "raft_base_remove_inside_corners": { + "label": "Remove Raft Base Inside Corners", + "description": "Remove inside corners from the raft base, causing the raft to become convex.", + "type": "bool", + "value": "raft_remove_inside_corners", + "default_value": false, + "resolve": "any(extruderValues('raft_remove_inside_corners'))", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "settable_per_mesh": false, + "settable_per_extruder": false + }, + "raft_interface_remove_inside_corners": { + "label": "Remove Raft Middle Inside Corners", + "description": "Remove inside corners from the raft middle part, causing the raft to become convex.", + "type": "bool", + "value": "raft_remove_inside_corners", + "default_value": false, + "resolve": "any(extruderValues('raft_remove_inside_corners'))", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "settable_per_mesh": false, + "settable_per_extruder": false + }, + "raft_surface_remove_inside_corners": { + "label": "Remove Raft Top Inside Corners", + "description": "Remove inside corners from the raft top part, causing the raft to become convex.", + "type": "bool", + "value": "raft_remove_inside_corners", + "default_value": false, + "resolve": "any(extruderValues('raft_remove_inside_corners'))", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "settable_per_mesh": false, + "settable_per_extruder": false + } + } }, "raft_base_wall_count": { diff --git a/resources/setting_visibility/expert.cfg b/resources/setting_visibility/expert.cfg index 2f2dd7671d..ebab2357dd 100644 --- a/resources/setting_visibility/expert.cfg +++ b/resources/setting_visibility/expert.cfg @@ -331,7 +331,13 @@ brim_line_count brim_outside_only brim_smart_ordering raft_margin +raft_base_margin +raft_interface_margin +raft_surface_margin raft_smoothing +raft_base_smoothing +raft_interface_smoothing +raft_surface_smoothing raft_airgap raft_surface_layers raft_surface_thickness @@ -467,3 +473,6 @@ small_hole_max_size small_feature_max_length small_feature_speed_factor small_feature_speed_factor_0 +raft_base_remove_inside_corners +raft_interface_remove_inside_corners +raft_surface_remove_inside_corners \ No newline at end of file From ff45f566d6ee27779fe01b3347c7239865bf1719 Mon Sep 17 00:00:00 2001 From: casperlamboo Date: Mon, 8 Jan 2024 13:46:14 +0000 Subject: [PATCH 051/269] Applied printer-linter format --- resources/definitions/fdmprinter.def.json | 36 +++++++++++++++-------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index b40e074f1c..ff09a16228 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6115,8 +6115,10 @@ "limit_to_extruder": "adhesion_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true, - "children": { - "raft_base_margin": { + "children": + { + "raft_base_margin": + { "label": "Raft Base Extra Margin", "description": "If the raft base is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print.", "unit": "mm", @@ -6130,7 +6132,8 @@ "settable_per_mesh": false, "settable_per_extruder": true }, - "raft_interface_margin": { + "raft_interface_margin": + { "label": "Raft Middle Extra Margin", "description": "If the raft middle is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print.", "unit": "mm", @@ -6144,7 +6147,8 @@ "settable_per_mesh": false, "settable_per_extruder": true }, - "raft_surface_margin": { + "raft_surface_margin": + { "label": "Raft Top Extra Margin", "description": "If the raft top is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print.", "unit": "mm", @@ -6173,8 +6177,10 @@ "limit_to_extruder": "adhesion_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true, - "children": { - "raft_base_smoothing": { + "children": + { + "raft_base_smoothing": + { "label": "Raft Base Smoothing", "description": "This setting controls how much inner corners in the raft base outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle.", "unit": "mm", @@ -6188,7 +6194,8 @@ "settable_per_mesh": false, "settable_per_extruder": true }, - "raft_interface_smoothing": { + "raft_interface_smoothing": + { "label": "Raft Middle Smoothing", "description": "This setting controls how much inner corners in the raft middle outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle.", "unit": "mm", @@ -6202,7 +6209,8 @@ "settable_per_mesh": false, "settable_per_extruder": true }, - "raft_surface_smoothing": { + "raft_surface_smoothing": + { "label": "Raft Top Smoothing", "description": "This setting controls how much inner corners in the raft top outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle.", "unit": "mm", @@ -8373,8 +8381,10 @@ "enabled": "resolveOrValue('adhesion_type') == 'raft'", "settable_per_mesh": false, "settable_per_extruder": false, - "children": { - "raft_base_remove_inside_corners": { + "children": + { + "raft_base_remove_inside_corners": + { "label": "Remove Raft Base Inside Corners", "description": "Remove inside corners from the raft base, causing the raft to become convex.", "type": "bool", @@ -8385,7 +8395,8 @@ "settable_per_mesh": false, "settable_per_extruder": false }, - "raft_interface_remove_inside_corners": { + "raft_interface_remove_inside_corners": + { "label": "Remove Raft Middle Inside Corners", "description": "Remove inside corners from the raft middle part, causing the raft to become convex.", "type": "bool", @@ -8396,7 +8407,8 @@ "settable_per_mesh": false, "settable_per_extruder": false }, - "raft_surface_remove_inside_corners": { + "raft_surface_remove_inside_corners": + { "label": "Remove Raft Top Inside Corners", "description": "Remove inside corners from the raft top part, causing the raft to become convex.", "type": "bool", From 35131d5d7ce03b3ec7c5af4260b2baef43183382 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Mon, 8 Jan 2024 15:54:32 +0100 Subject: [PATCH 052/269] Inherit secrets for UT Fixes CURA-11497 --- .github/workflows/unit-test-post.yml | 1 + .github/workflows/unit-test.yml | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/unit-test-post.yml b/.github/workflows/unit-test-post.yml index eaf69692a7..a8e9f26b8b 100644 --- a/.github/workflows/unit-test-post.yml +++ b/.github/workflows/unit-test-post.yml @@ -11,3 +11,4 @@ jobs: with: event: ${{ github.event.workflow_run.event }} conclusion: ${{ github.event.workflow_run.conclusion }} + secrets: inherit diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 7c6910b39f..9a42f4f85d 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -58,4 +58,5 @@ jobs: conan_extra_args: '-g VirtualPythonEnv -o cura:devtools=True -c tools.build:skip_test=False' unit_test_cmd: 'pytest --junitxml=junit_cura.xml' unit_test_dir: 'tests' - conan_generator_dir: './venv/bin' \ No newline at end of file + conan_generator_dir: './venv/bin' + secrets: inherit \ No newline at end of file From 90ce6d7f765358c38308b46b4bcbcee3df01b2d6 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 8 Jan 2024 16:53:10 +0100 Subject: [PATCH 053/269] Reorganize raft settings to a user-intuitive order CURA-11228 --- resources/definitions/fdmprinter.def.json | 250 +++++++++++----------- 1 file changed, 125 insertions(+), 125 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 32908b6f3e..a49d613ce1 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6159,66 +6159,53 @@ "settable_per_extruder": true, "limit_to_extruder": "raft_surface_extruder_nr" }, - "raft_surface_layers": + "raft_base_thickness": { - "label": "Raft Top Layers", - "description": "The number of top layers on top of the 2nd raft layer. These are fully filled layers that the model sits on. 2 layers result in a smoother top surface than 1.", - "type": "int", - "default_value": 2, - "minimum_value": "0", - "maximum_value_warning": "20", + "label": "Raft Base Thickness", + "description": "Layer thickness of the base raft layer. This should be a thick layer which sticks firmly to the printer build plate.", + "unit": "mm", + "type": "float", + "default_value": 0.3, + "value": "resolveOrValue('layer_height_0') * 1.2", + "minimum_value": "0.001", + "minimum_value_warning": "0.04", + "maximum_value_warning": "0.75 * raft_base_line_width", "enabled": "resolveOrValue('adhesion_type') == 'raft'", "settable_per_mesh": false, "settable_per_extruder": true, - "limit_to_extruder": "raft_surface_extruder_nr" + "limit_to_extruder": "raft_base_extruder_nr" }, - "raft_surface_thickness": + "raft_base_line_width": { - "label": "Raft Top Layer Thickness", - "description": "Layer thickness of the top raft layers.", + "label": "Raft Base Line Width", + "description": "Width of the lines in the base raft layer. These should be thick lines to assist in build plate adhesion.", "unit": "mm", "type": "float", - "default_value": 0.1, - "value": "resolveOrValue('layer_height')", + "default_value": 0.8, "minimum_value": "0.001", - "minimum_value_warning": "0.04", - "maximum_value_warning": "0.75 * machine_nozzle_size", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", + "value": "machine_nozzle_size * 2", + "minimum_value_warning": "machine_nozzle_size * 0.5", + "maximum_value_warning": "machine_nozzle_size * 3", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", "settable_per_mesh": false, "settable_per_extruder": true, - "limit_to_extruder": "raft_surface_extruder_nr" + "limit_to_extruder": "raft_base_extruder_nr" }, - "raft_surface_line_width": + "raft_base_line_spacing": { - "label": "Raft Top Line Width", - "description": "Width of the lines in the top surface of the raft. These can be thin lines so that the top of the raft becomes smooth.", + "label": "Raft Base Line Spacing", + "description": "The distance between the raft lines for the base raft layer. Wide spacing makes for easy removal of the raft from the build plate.", "unit": "mm", "type": "float", - "default_value": 0.4, - "value": "line_width", - "minimum_value": "0.001", - "minimum_value_warning": "machine_nozzle_size * 0.1", - "maximum_value_warning": "machine_nozzle_size * 2", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_surface_extruder_nr" - }, - "raft_surface_line_spacing": - { - "label": "Raft Top Spacing", - "description": "The distance between the raft lines for the top raft layers. The spacing should be equal to the line width, so that the surface is solid.", - "unit": "mm", - "type": "float", - "default_value": 0.4, + "default_value": 1.6, + "value": "raft_base_line_width * 2", "minimum_value": "0", - "minimum_value_warning": "raft_surface_line_width", - "maximum_value_warning": "raft_surface_line_width * 3", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", - "value": "raft_surface_line_width", + "minimum_value_warning": "raft_base_line_width", + "maximum_value_warning": "100", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", "settable_per_mesh": false, "settable_per_extruder": true, - "limit_to_extruder": "raft_surface_extruder_nr" + "limit_to_extruder": "raft_base_extruder_nr" }, "raft_interface_layers": { @@ -6281,53 +6268,66 @@ "settable_per_extruder": true, "limit_to_extruder": "raft_interface_extruder_nr" }, - "raft_base_thickness": + "raft_surface_layers": { - "label": "Raft Base Thickness", - "description": "Layer thickness of the base raft layer. This should be a thick layer which sticks firmly to the printer build plate.", + "label": "Raft Top Layers", + "description": "The number of top layers on top of the 2nd raft layer. These are fully filled layers that the model sits on. 2 layers result in a smoother top surface than 1.", + "type": "int", + "default_value": 2, + "minimum_value": "0", + "maximum_value_warning": "20", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "settable_per_mesh": false, + "settable_per_extruder": true, + "limit_to_extruder": "raft_surface_extruder_nr" + }, + "raft_surface_thickness": + { + "label": "Raft Top Layer Thickness", + "description": "Layer thickness of the top raft layers.", "unit": "mm", "type": "float", - "default_value": 0.3, - "value": "resolveOrValue('layer_height_0') * 1.2", + "default_value": 0.1, + "value": "resolveOrValue('layer_height')", "minimum_value": "0.001", "minimum_value_warning": "0.04", - "maximum_value_warning": "0.75 * raft_base_line_width", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "maximum_value_warning": "0.75 * machine_nozzle_size", + "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", "settable_per_mesh": false, "settable_per_extruder": true, - "limit_to_extruder": "raft_base_extruder_nr" + "limit_to_extruder": "raft_surface_extruder_nr" }, - "raft_base_line_width": + "raft_surface_line_width": { - "label": "Raft Base Line Width", - "description": "Width of the lines in the base raft layer. These should be thick lines to assist in build plate adhesion.", + "label": "Raft Top Line Width", + "description": "Width of the lines in the top surface of the raft. These can be thin lines so that the top of the raft becomes smooth.", "unit": "mm", "type": "float", - "default_value": 0.8, + "default_value": 0.4, + "value": "line_width", "minimum_value": "0.001", - "value": "machine_nozzle_size * 2", - "minimum_value_warning": "machine_nozzle_size * 0.5", - "maximum_value_warning": "machine_nozzle_size * 3", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "minimum_value_warning": "machine_nozzle_size * 0.1", + "maximum_value_warning": "machine_nozzle_size * 2", + "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", "settable_per_mesh": false, "settable_per_extruder": true, - "limit_to_extruder": "raft_base_extruder_nr" + "limit_to_extruder": "raft_surface_extruder_nr" }, - "raft_base_line_spacing": + "raft_surface_line_spacing": { - "label": "Raft Base Line Spacing", - "description": "The distance between the raft lines for the base raft layer. Wide spacing makes for easy removal of the raft from the build plate.", + "label": "Raft Top Spacing", + "description": "The distance between the raft lines for the top raft layers. The spacing should be equal to the line width, so that the surface is solid.", "unit": "mm", "type": "float", - "default_value": 1.6, - "value": "raft_base_line_width * 2", + "default_value": 0.4, "minimum_value": "0", - "minimum_value_warning": "raft_base_line_width", - "maximum_value_warning": "100", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "minimum_value_warning": "raft_surface_line_width", + "maximum_value_warning": "raft_surface_line_width * 3", + "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", + "value": "raft_surface_line_width", "settable_per_mesh": false, "settable_per_extruder": true, - "limit_to_extruder": "raft_base_extruder_nr" + "limit_to_extruder": "raft_surface_extruder_nr" }, "raft_wall_count": { @@ -6341,12 +6341,13 @@ "settable_per_extruder": false, "children": { - "raft_surface_wall_count": + "raft_base_wall_count": { - "label": "Raft Top Wall Count", - "description": "The number of contours to print around the linear pattern in the top layers of the raft.", + "label": "Raft Base Wall Count", + "description": "The number of contours to print around the linear pattern in the base layer of the raft.", "type": "int", - "default_value": 0, + "default_value": 1, + "value": "raft_wall_count", "minimum_value": "0", "enabled": "resolveOrValue('adhesion_type') == 'raft'", "settable_per_mesh": false, @@ -6363,13 +6364,12 @@ "settable_per_mesh": false, "settable_per_extruder": false }, - "raft_base_wall_count": + "raft_surface_wall_count": { - "label": "Raft Base Wall Count", - "description": "The number of contours to print around the linear pattern in the base layer of the raft.", + "label": "Raft Top Wall Count", + "description": "The number of contours to print around the linear pattern in the top layers of the raft.", "type": "int", - "default_value": 1, - "value": "raft_wall_count", + "default_value": 0, "minimum_value": "0", "enabled": "resolveOrValue('adhesion_type') == 'raft'", "settable_per_mesh": false, @@ -6394,21 +6394,21 @@ "limit_to_extruder": "adhesion_extruder_nr", "children": { - "raft_surface_speed": + "raft_base_speed": { - "label": "Raft Top Print Speed", - "description": "The speed at which the top raft layers are printed. These should be printed a bit slower, so that the nozzle can slowly smooth out adjacent surface lines.", + "label": "Raft Base Print Speed", + "description": "The speed at which the base raft layer is printed. This should be printed quite slowly, as the volume of material coming out of the nozzle is quite high.", "unit": "mm/s", "type": "float", - "default_value": 20, + "default_value": 15, "minimum_value": "0.1", "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "100", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", - "value": "raft_speed", + "maximum_value_warning": "200", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "value": "0.75 * raft_speed", "settable_per_mesh": false, "settable_per_extruder": true, - "limit_to_extruder": "raft_surface_extruder_nr" + "limit_to_extruder": "raft_base_extruder_nr" }, "raft_interface_speed": { @@ -6426,21 +6426,21 @@ "settable_per_extruder": true, "limit_to_extruder": "raft_interface_extruder_nr" }, - "raft_base_speed": + "raft_surface_speed": { - "label": "Raft Base Print Speed", - "description": "The speed at which the base raft layer is printed. This should be printed quite slowly, as the volume of material coming out of the nozzle is quite high.", + "label": "Raft Top Print Speed", + "description": "The speed at which the top raft layers are printed. These should be printed a bit slower, so that the nozzle can slowly smooth out adjacent surface lines.", "unit": "mm/s", "type": "float", - "default_value": 15, + "default_value": 20, "minimum_value": "0.1", "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "200", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "value": "0.75 * raft_speed", + "maximum_value_warning": "100", + "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", + "value": "raft_speed", "settable_per_mesh": false, "settable_per_extruder": true, - "limit_to_extruder": "raft_base_extruder_nr" + "limit_to_extruder": "raft_surface_extruder_nr" } } }, @@ -6460,10 +6460,10 @@ "limit_to_extruder": "adhesion_extruder_nr", "children": { - "raft_surface_acceleration": + "raft_base_acceleration": { - "label": "Raft Top Print Acceleration", - "description": "The acceleration with which the top raft layers are printed.", + "label": "Raft Base Print Acceleration", + "description": "The acceleration with which the base raft layer is printed.", "unit": "mm/s\u00b2", "type": "float", "default_value": 3000, @@ -6471,9 +6471,9 @@ "minimum_value": "0.1", "minimum_value_warning": "100", "maximum_value_warning": "10000", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled') and raft_surface_layers > 0", + "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')", "settable_per_mesh": false, - "limit_to_extruder": "raft_surface_extruder_nr" + "limit_to_extruder": "raft_base_extruder_nr" }, "raft_interface_acceleration": { @@ -6490,10 +6490,10 @@ "settable_per_mesh": false, "limit_to_extruder": "raft_interface_extruder_nr" }, - "raft_base_acceleration": + "raft_surface_acceleration": { - "label": "Raft Base Print Acceleration", - "description": "The acceleration with which the base raft layer is printed.", + "label": "Raft Top Print Acceleration", + "description": "The acceleration with which the top raft layers are printed.", "unit": "mm/s\u00b2", "type": "float", "default_value": 3000, @@ -6501,9 +6501,9 @@ "minimum_value": "0.1", "minimum_value_warning": "100", "maximum_value_warning": "10000", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')", + "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled') and raft_surface_layers > 0", "settable_per_mesh": false, - "limit_to_extruder": "raft_base_extruder_nr" + "limit_to_extruder": "raft_surface_extruder_nr" } } }, @@ -6523,20 +6523,20 @@ "limit_to_extruder": "adhesion_extruder_nr", "children": { - "raft_surface_jerk": + "raft_base_jerk": { - "label": "Raft Top Print Jerk", - "description": "The jerk with which the top raft layers are printed.", + "label": "Raft Base Print Jerk", + "description": "The jerk with which the base raft layer is printed.", "unit": "mm/s", "type": "float", "default_value": 20, "value": "raft_jerk", "minimum_value": "0", "minimum_value_warning": "5", - "maximum_value_warning": "100", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled') and raft_surface_layers > 0", + "maximum_value_warning": "50", + "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')", "settable_per_mesh": false, - "limit_to_extruder": "raft_surface_extruder_nr" + "limit_to_extruder": "raft_base_extruder_nr" }, "raft_interface_jerk": { @@ -6553,20 +6553,20 @@ "settable_per_mesh": false, "limit_to_extruder": "raft_interface_extruder_nr" }, - "raft_base_jerk": + "raft_surface_jerk": { - "label": "Raft Base Print Jerk", - "description": "The jerk with which the base raft layer is printed.", + "label": "Raft Top Print Jerk", + "description": "The jerk with which the top raft layers are printed.", "unit": "mm/s", "type": "float", "default_value": 20, "value": "raft_jerk", "minimum_value": "0", "minimum_value_warning": "5", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')", + "maximum_value_warning": "100", + "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled') and raft_surface_layers > 0", "settable_per_mesh": false, - "limit_to_extruder": "raft_base_extruder_nr" + "limit_to_extruder": "raft_surface_extruder_nr" } } }, @@ -6585,20 +6585,20 @@ "limit_to_extruder": "adhesion_extruder_nr", "children": { - "raft_surface_fan_speed": + "raft_base_fan_speed": { - "label": "Raft Top Fan Speed", - "description": "The fan speed for the top raft layers.", + "label": "Raft Base Fan Speed", + "description": "The fan speed for the base raft layer.", "unit": "%", "type": "float", "minimum_value": "0", "maximum_value": "100", "default_value": 0, "value": "raft_fan_speed", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", "settable_per_mesh": false, "settable_per_extruder": true, - "limit_to_extruder": "raft_surface_extruder_nr" + "limit_to_extruder": "raft_base_extruder_nr" }, "raft_interface_fan_speed": { @@ -6615,20 +6615,20 @@ "settable_per_extruder": true, "limit_to_extruder": "raft_interface_extruder_nr" }, - "raft_base_fan_speed": + "raft_surface_fan_speed": { - "label": "Raft Base Fan Speed", - "description": "The fan speed for the base raft layer.", + "label": "Raft Top Fan Speed", + "description": "The fan speed for the top raft layers.", "unit": "%", "type": "float", "minimum_value": "0", "maximum_value": "100", "default_value": 0, "value": "raft_fan_speed", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", "settable_per_mesh": false, "settable_per_extruder": true, - "limit_to_extruder": "raft_base_extruder_nr" + "limit_to_extruder": "raft_surface_extruder_nr" } } } From d01b5c17678a853b87f1af1eb26b13fbae1f78e6 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Mon, 8 Jan 2024 17:46:04 +0100 Subject: [PATCH 054/269] Renmoved singleton Um.Application CURA-7812 --- cura/CuraApplication.py | 2 +- resources/qml/Dialogs/AboutDialog.qml | 2 +- .../qml/PrintSetupSelector/Custom/QualitiesWithIntentMenu.qml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 3243260b6e..20048e3d3f 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1266,7 +1266,7 @@ class CuraApplication(QtApplication): self.processEvents() qmlRegisterType(DiscoveredPrintersModel, "Cura", 1, 0, "DiscoveredPrintersModel") qmlRegisterType(DiscoveredCloudPrintersModel, "Cura", 1, 7, "DiscoveredCloudPrintersModel") - qmlRegisterType(QualityProfilesDropDownMenuModel, "Cura", 1, 0, "QualityProfilesDropDownMenuModel") + qmlRegisterType(CustomQualityProfilesDropDownMenuModel, "Cura", 1, 0, "CustomQualityProfilesDropDownMenuModel") qmlRegisterType(NozzleModel, "Cura", 1, 0, "NozzleModel") qmlRegisterType(IntentModel, "Cura", 1, 6, "IntentModel") qmlRegisterType(IntentCategoryModel, "Cura", 1, 6, "IntentCategoryModel") diff --git a/resources/qml/Dialogs/AboutDialog.qml b/resources/qml/Dialogs/AboutDialog.qml index 947b46269a..79cad92b25 100644 --- a/resources/qml/Dialogs/AboutDialog.qml +++ b/resources/qml/Dialogs/AboutDialog.qml @@ -58,7 +58,7 @@ UM.Dialog UM.Label { id: version - text: catalog.i18nc("@label","version: %1").arg(UM.Application.version) + text: catalog.i18nc("@label","version: %1").arg(CuraApplication.applicationVersion()) font: UM.Theme.getFont("large_bold") color: UM.Theme.getColor("button_text") anchors.right : logo.right diff --git a/resources/qml/PrintSetupSelector/Custom/QualitiesWithIntentMenu.qml b/resources/qml/PrintSetupSelector/Custom/QualitiesWithIntentMenu.qml index 9facc5095e..646e835cb2 100644 --- a/resources/qml/PrintSetupSelector/Custom/QualitiesWithIntentMenu.qml +++ b/resources/qml/PrintSetupSelector/Custom/QualitiesWithIntentMenu.qml @@ -187,7 +187,7 @@ Popup //Add all the custom profiles. Repeater { - model: CuraApplication.getCustomQualityProfilesDropDownMenuModel() + model: Cura.CustomQualityProfilesDropDownMenuModel MenuButton { onClicked: Cura.MachineManager.setQualityChangesGroup(model.quality_changes_group) From 023a8f232588ce6c5fd84adf57960caabc99a210 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Tue, 9 Jan 2024 08:32:33 +0100 Subject: [PATCH 055/269] Ensure that nightlies have default values Fixes CURA-11528 --- .github/workflows/installers.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/installers.yml b/.github/workflows/installers.yml index 9c51cfe820..29ff24c2b5 100644 --- a/.github/workflows/installers.yml +++ b/.github/workflows/installers.yml @@ -54,9 +54,9 @@ jobs: needs: [ default_values ] with: cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }} - conan_args: ${{ inputs.conan_args }} - enterprise: ${{ inputs.enterprise }} - staging: ${{ inputs.staging }} + conan_args: ${{ env.CONAN_ARGS }} + enterprise: ${{ env.ENTERPRISE }} + staging: ${{ env.STAGING }} architecture: X64 operating_system: windows-2022 secrets: inherit @@ -66,9 +66,9 @@ jobs: needs: [ default_values ] with: cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }} - conan_args: ${{ inputs.conan_args }} - enterprise: ${{ inputs.enterprise }} - staging: ${{ inputs.staging }} + conan_args: ${{ env.CONAN_ARGS }} + enterprise: ${{ env.ENTERPRISE }} + staging: ${{ env.STAGING }} architecture: X64 operating_system: ubuntu-22.04 secrets: inherit @@ -78,9 +78,9 @@ jobs: needs: [ default_values ] with: cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }} - conan_args: ${{ inputs.conan_args }} - enterprise: ${{ inputs.enterprise }} - staging: ${{ inputs.staging }} + conan_args: ${{ env.CONAN_ARGS }} + enterprise: ${{ env.ENTERPRISE }} + staging: ${{ env.STAGING }} architecture: X64 operating_system: self-hosted-X64 secrets: inherit @@ -90,9 +90,9 @@ jobs: needs: [ default_values ] with: cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }} - conan_args: ${{ inputs.conan_args }} - enterprise: ${{ inputs.enterprise }} - staging: ${{ inputs.staging }} + conan_args: ${{ env.CONAN_ARGS }} + enterprise: ${{ env.ENTERPRISE }} + staging: ${{ env.STAGING }} architecture: ARM64 operating_system: self-hosted-ARM64 secrets: inherit From 7244ba4e24d516a97ea04f558a239ef3d747179e Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Tue, 9 Jan 2024 08:38:17 +0100 Subject: [PATCH 056/269] Revert "Ensure that nightlies have default values" This reverts commit 023a8f232588ce6c5fd84adf57960caabc99a210. --- .github/workflows/installers.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/installers.yml b/.github/workflows/installers.yml index 29ff24c2b5..9c51cfe820 100644 --- a/.github/workflows/installers.yml +++ b/.github/workflows/installers.yml @@ -54,9 +54,9 @@ jobs: needs: [ default_values ] with: cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }} - conan_args: ${{ env.CONAN_ARGS }} - enterprise: ${{ env.ENTERPRISE }} - staging: ${{ env.STAGING }} + conan_args: ${{ inputs.conan_args }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} architecture: X64 operating_system: windows-2022 secrets: inherit @@ -66,9 +66,9 @@ jobs: needs: [ default_values ] with: cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }} - conan_args: ${{ env.CONAN_ARGS }} - enterprise: ${{ env.ENTERPRISE }} - staging: ${{ env.STAGING }} + conan_args: ${{ inputs.conan_args }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} architecture: X64 operating_system: ubuntu-22.04 secrets: inherit @@ -78,9 +78,9 @@ jobs: needs: [ default_values ] with: cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }} - conan_args: ${{ env.CONAN_ARGS }} - enterprise: ${{ env.ENTERPRISE }} - staging: ${{ env.STAGING }} + conan_args: ${{ inputs.conan_args }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} architecture: X64 operating_system: self-hosted-X64 secrets: inherit @@ -90,9 +90,9 @@ jobs: needs: [ default_values ] with: cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }} - conan_args: ${{ env.CONAN_ARGS }} - enterprise: ${{ env.ENTERPRISE }} - staging: ${{ env.STAGING }} + conan_args: ${{ inputs.conan_args }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} architecture: ARM64 operating_system: self-hosted-ARM64 secrets: inherit From 76b93c31719822916507560069e19f15fe6639ab Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Tue, 9 Jan 2024 08:40:30 +0100 Subject: [PATCH 057/269] Revert "use `input` instead of the `github.events`" This reverts commit 677f35b5159e53fded2d4c31b2ca58ede6b28373. --- .github/workflows/installers.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/installers.yml b/.github/workflows/installers.yml index 9c51cfe820..6e531ba833 100644 --- a/.github/workflows/installers.yml +++ b/.github/workflows/installers.yml @@ -54,9 +54,9 @@ jobs: needs: [ default_values ] with: cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }} - conan_args: ${{ inputs.conan_args }} - enterprise: ${{ inputs.enterprise }} - staging: ${{ inputs.staging }} + conan_args: ${{ github.event.inputs.conan_args }} + enterprise: ${{ github.event.inputs.enterprise == 'true' }} + staging: ${{ github.event.inputs.staging == 'true' }} architecture: X64 operating_system: windows-2022 secrets: inherit @@ -66,9 +66,9 @@ jobs: needs: [ default_values ] with: cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }} - conan_args: ${{ inputs.conan_args }} - enterprise: ${{ inputs.enterprise }} - staging: ${{ inputs.staging }} + conan_args: ${{ github.event.inputs.conan_args }} + enterprise: ${{ github.event.inputs.enterprise == 'true' }} + staging: ${{ github.event.inputs.staging == 'true' }} architecture: X64 operating_system: ubuntu-22.04 secrets: inherit @@ -78,9 +78,9 @@ jobs: needs: [ default_values ] with: cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }} - conan_args: ${{ inputs.conan_args }} - enterprise: ${{ inputs.enterprise }} - staging: ${{ inputs.staging }} + conan_args: ${{ github.event.inputs.conan_args }} + enterprise: ${{ github.event.inputs.enterprise == 'true' }} + staging: ${{ github.event.inputs.staging == 'true' }} architecture: X64 operating_system: self-hosted-X64 secrets: inherit @@ -90,9 +90,9 @@ jobs: needs: [ default_values ] with: cura_conan_version: ${{ needs.default_values.outputs.cura_conan_version }} - conan_args: ${{ inputs.conan_args }} - enterprise: ${{ inputs.enterprise }} - staging: ${{ inputs.staging }} + conan_args: ${{ github.event.inputs.conan_args }} + enterprise: ${{ github.event.inputs.enterprise == 'true' }} + staging: ${{ github.event.inputs.staging == 'true' }} architecture: ARM64 operating_system: self-hosted-ARM64 secrets: inherit From 37f350b134d69518ef6455f214f152e4e04737b6 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 9 Jan 2024 10:15:17 +0100 Subject: [PATCH 058/269] Limit settings to their correct extruders --- resources/definitions/fdmprinter.def.json | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 95588c2f24..3253e25cf3 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6128,7 +6128,7 @@ "minimum_value_warning": "raft_interface_line_width", "maximum_value_warning": "20", "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "limit_to_extruder": "adhesion_extruder_nr", + "limit_to_extruder": "raft_base_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -6143,7 +6143,7 @@ "minimum_value_warning": "raft_interface_line_width", "maximum_value_warning": "20", "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "limit_to_extruder": "adhesion_extruder_nr", + "limit_to_extruder": "raft_interface_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -6158,7 +6158,7 @@ "minimum_value_warning": "raft_interface_line_width", "maximum_value_warning": "20", "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "limit_to_extruder": "adhesion_extruder_nr", + "limit_to_extruder": "raft_surface_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true } @@ -6190,7 +6190,7 @@ "minimum_value": "0", "minimum_value_warning": "raft_interface_line_width", "enabled": "resolveOrValue('adhesion_type') == 'raft' and not raft_base_remove_inside_corners", - "limit_to_extruder": "adhesion_extruder_nr", + "limit_to_extruder": "raft_base_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -6205,7 +6205,7 @@ "minimum_value": "0", "minimum_value_warning": "raft_interface_line_width", "enabled": "resolveOrValue('adhesion_type') == 'raft' and not raft_interface_remove_inside_corners", - "limit_to_extruder": "adhesion_extruder_nr", + "limit_to_extruder": "raft_interface_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -6220,7 +6220,7 @@ "minimum_value": "0", "minimum_value_warning": "raft_interface_line_width", "enabled": "resolveOrValue('adhesion_type') == 'raft' and not raft_surface_remove_inside_corners", - "limit_to_extruder": "adhesion_extruder_nr", + "limit_to_extruder": "raft_surface_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true } @@ -8440,6 +8440,7 @@ "default_value": false, "resolve": "any(extruderValues('raft_remove_inside_corners'))", "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "limit_to_extruder": "raft_base_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -8452,6 +8453,7 @@ "default_value": false, "resolve": "any(extruderValues('raft_remove_inside_corners'))", "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "limit_to_extruder": "raft_interface_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -8464,6 +8466,7 @@ "default_value": false, "resolve": "any(extruderValues('raft_remove_inside_corners'))", "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "limit_to_extruder": "raft_surface_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": false } From af51ccf5f37c5fdaf93bf31de307c5d3678f3691 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 9 Jan 2024 10:17:10 +0100 Subject: [PATCH 059/269] Move "Remove Raft Inside Corners" outside experimental --- resources/definitions/fdmprinter.def.json | 101 ++++++++++------------ 1 file changed, 48 insertions(+), 53 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 3253e25cf3..ce165d1f3d 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6164,6 +6164,54 @@ } } }, + "raft_remove_inside_corners": { + "label": "Remove Raft Inside Corners", + "description": "Remove inside corners from the raft, causing the raft to become convex.", + "type": "bool", + "default_value": false, + "resolve": "any(extruderValues('raft_remove_inside_corners'))", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "settable_per_mesh": false, + "settable_per_extruder": false, + "children": { + "raft_base_remove_inside_corners": { + "label": "Remove Raft Base Inside Corners", + "description": "Remove inside corners from the raft base, causing the raft to become convex.", + "type": "bool", + "value": "raft_remove_inside_corners", + "default_value": false, + "resolve": "any(extruderValues('raft_remove_inside_corners'))", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "limit_to_extruder": "raft_base_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": false + }, + "raft_interface_remove_inside_corners": { + "label": "Remove Raft Middle Inside Corners", + "description": "Remove inside corners from the raft middle part, causing the raft to become convex.", + "type": "bool", + "value": "raft_remove_inside_corners", + "default_value": false, + "resolve": "any(extruderValues('raft_remove_inside_corners'))", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "limit_to_extruder": "raft_interface_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": false + }, + "raft_surface_remove_inside_corners": { + "label": "Remove Raft Top Inside Corners", + "description": "Remove inside corners from the raft top part, causing the raft to become convex.", + "type": "bool", + "value": "raft_remove_inside_corners", + "default_value": false, + "resolve": "any(extruderValues('raft_remove_inside_corners'))", + "enabled": "resolveOrValue('adhesion_type') == 'raft'", + "limit_to_extruder": "raft_surface_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": false + } + } + }, "raft_smoothing": { "label": "Raft Smoothing", @@ -8419,59 +8467,6 @@ "settable_per_mesh": true, "settable_per_extruder": true }, - "raft_remove_inside_corners": - { - "label": "Remove Raft Inside Corners", - "description": "Remove inside corners from the raft, causing the raft to become convex.", - "type": "bool", - "default_value": false, - "resolve": "any(extruderValues('raft_remove_inside_corners'))", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": false, - "children": - { - "raft_base_remove_inside_corners": - { - "label": "Remove Raft Base Inside Corners", - "description": "Remove inside corners from the raft base, causing the raft to become convex.", - "type": "bool", - "value": "raft_remove_inside_corners", - "default_value": false, - "resolve": "any(extruderValues('raft_remove_inside_corners'))", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "limit_to_extruder": "raft_base_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "raft_interface_remove_inside_corners": - { - "label": "Remove Raft Middle Inside Corners", - "description": "Remove inside corners from the raft middle part, causing the raft to become convex.", - "type": "bool", - "value": "raft_remove_inside_corners", - "default_value": false, - "resolve": "any(extruderValues('raft_remove_inside_corners'))", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "limit_to_extruder": "raft_interface_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "raft_surface_remove_inside_corners": - { - "label": "Remove Raft Top Inside Corners", - "description": "Remove inside corners from the raft top part, causing the raft to become convex.", - "type": "bool", - "value": "raft_remove_inside_corners", - "default_value": false, - "resolve": "any(extruderValues('raft_remove_inside_corners'))", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "limit_to_extruder": "raft_surface_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": false - } - } - }, "group_outer_walls": { "label": "Group Outer Walls", From 594e4a5ea67fc0266783dfe8052f2b3a8b0191cc Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 9 Jan 2024 10:18:22 +0100 Subject: [PATCH 060/269] Warn if raft extra margin exceeds raft margin of layer below --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index ce165d1f3d..48321bae2f 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6126,7 +6126,7 @@ "value": "raft_margin", "default_value": 15, "minimum_value_warning": "raft_interface_line_width", - "maximum_value_warning": "20", + "maximum_value_warning": "min(raft_interface_margin, 20)", "enabled": "resolveOrValue('adhesion_type') == 'raft'", "limit_to_extruder": "raft_base_extruder_nr", "settable_per_mesh": false, @@ -6141,7 +6141,7 @@ "value": "raft_margin", "default_value": 15, "minimum_value_warning": "raft_interface_line_width", - "maximum_value_warning": "20", + "maximum_value_warning": "min(raft_surface_margin, 20)", "enabled": "resolveOrValue('adhesion_type') == 'raft'", "limit_to_extruder": "raft_interface_extruder_nr", "settable_per_mesh": false, From 4489b8db462e28777e24947fbcc09517566ecfe2 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 9 Jan 2024 10:21:55 +0100 Subject: [PATCH 061/269] Make expert more consistent Only include parent settings --- resources/setting_visibility/expert.cfg | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/resources/setting_visibility/expert.cfg b/resources/setting_visibility/expert.cfg index 7f72dfe8ab..ab0d2aa920 100644 --- a/resources/setting_visibility/expert.cfg +++ b/resources/setting_visibility/expert.cfg @@ -331,10 +331,8 @@ brim_line_count brim_outside_only brim_smart_ordering raft_margin -raft_base_margin -raft_interface_margin -raft_surface_margin raft_smoothing +raft_remove_inside_corners raft_base_smoothing raft_interface_smoothing raft_surface_smoothing @@ -474,6 +472,3 @@ small_hole_max_size small_feature_max_length small_feature_speed_factor small_feature_speed_factor_0 -raft_base_remove_inside_corners -raft_interface_remove_inside_corners -raft_surface_remove_inside_corners \ No newline at end of file From d9feb88b24836d4015365f953b132fbc0528216d Mon Sep 17 00:00:00 2001 From: casperlamboo Date: Tue, 9 Jan 2024 09:22:53 +0000 Subject: [PATCH 062/269] Applied printer-linter format --- resources/definitions/fdmprinter.def.json | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 48321bae2f..af041bd803 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6164,7 +6164,8 @@ } } }, - "raft_remove_inside_corners": { + "raft_remove_inside_corners": + { "label": "Remove Raft Inside Corners", "description": "Remove inside corners from the raft, causing the raft to become convex.", "type": "bool", @@ -6173,8 +6174,10 @@ "enabled": "resolveOrValue('adhesion_type') == 'raft'", "settable_per_mesh": false, "settable_per_extruder": false, - "children": { - "raft_base_remove_inside_corners": { + "children": + { + "raft_base_remove_inside_corners": + { "label": "Remove Raft Base Inside Corners", "description": "Remove inside corners from the raft base, causing the raft to become convex.", "type": "bool", @@ -6186,7 +6189,8 @@ "settable_per_mesh": false, "settable_per_extruder": false }, - "raft_interface_remove_inside_corners": { + "raft_interface_remove_inside_corners": + { "label": "Remove Raft Middle Inside Corners", "description": "Remove inside corners from the raft middle part, causing the raft to become convex.", "type": "bool", @@ -6198,7 +6202,8 @@ "settable_per_mesh": false, "settable_per_extruder": false }, - "raft_surface_remove_inside_corners": { + "raft_surface_remove_inside_corners": + { "label": "Remove Raft Top Inside Corners", "description": "Remove inside corners from the raft top part, causing the raft to become convex.", "type": "bool", From 676099ccf6455576cfe444e9823817c678ed29d9 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Tue, 9 Jan 2024 10:29:45 +0100 Subject: [PATCH 063/269] Removed singleton UM.OperationStack, merged with CuraActions Removed ActiveTool singleton added to controller singleton CURA-7812 --- cura/CuraActions.py | 26 ++++++++++++++++++- .../PerObjectSettingsTool/PerObjectItem.qml | 2 +- .../PerObjectSettingsPanel.qml | 22 ++++++++-------- resources/qml/Actions.qml | 8 +++--- .../Custom/CustomPrintSetup.qml | 2 +- resources/qml/Settings/SettingTextField.qml | 2 +- resources/qml/Toolbar.qml | 4 +-- 7 files changed, 45 insertions(+), 21 deletions(-) diff --git a/cura/CuraActions.py b/cura/CuraActions.py index 9a61a1c4f0..36c69618dd 100644 --- a/cura/CuraActions.py +++ b/cura/CuraActions.py @@ -3,10 +3,11 @@ from typing import List, cast -from PyQt6.QtCore import QObject, QUrl, QMimeData +from PyQt6.QtCore import QObject, QUrl, pyqtSignal, pyqtProperty from PyQt6.QtGui import QDesktopServices from PyQt6.QtWidgets import QApplication +from UM.Application import Application from UM.Event import CallFunctionEvent from UM.FlameProfiler import pyqtSlot from UM.Math.Vector import Vector @@ -37,6 +38,10 @@ class CuraActions(QObject): def __init__(self, parent: QObject = None) -> None: super().__init__(parent) + self._operation_stack = Application.getInstance().getOperationStack() + self._operation_stack.changed.connect(self._onUndoStackChanged) + + undoStackChanged = pyqtSignal() @pyqtSlot() def openDocumentation(self) -> None: # Starting a web browser from a signal handler connected to a menu will crash on windows. @@ -45,6 +50,25 @@ class CuraActions(QObject): event = CallFunctionEvent(self._openUrl, [QUrl("https://ultimaker.com/en/resources/manuals/software?utm_source=cura&utm_medium=software&utm_campaign=dropdown-documentation")], {}) cura.CuraApplication.CuraApplication.getInstance().functionEvent(event) + @pyqtProperty(bool, notify=undoStackChanged) + def canUndo(self): + return self._operation_stack.canUndo() + + @pyqtProperty(bool, notify=undoStackChanged) + def canRedo(self): + return self._operation_stack.canRedo() + + @pyqtSlot() + def undo(self): + self._operation_stack.undo() + + @pyqtSlot() + def redo(self): + self._operation_stack.redo() + + def _onUndoStackChanged(self): + self.undoStackChanged.emit() + @pyqtSlot() def openBugReportPage(self) -> None: event = CallFunctionEvent(self._openUrl, [QUrl("https://github.com/Ultimaker/Cura/issues/new/choose")], {}) diff --git a/plugins/PerObjectSettingsTool/PerObjectItem.qml b/plugins/PerObjectSettingsTool/PerObjectItem.qml index b6cf13943b..cd406c80af 100644 --- a/plugins/PerObjectSettingsTool/PerObjectItem.qml +++ b/plugins/PerObjectSettingsTool/PerObjectItem.qml @@ -25,7 +25,7 @@ UM.TooltipArea onClicked: { addedSettingsModel.setVisible(model.key, checked); - UM.ActiveTool.forceUpdate(); + UM.Controller.forceUpdate(); } } diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index 0ddedee897..78d6643034 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -23,7 +23,7 @@ Item readonly property string infillMeshType: "infill_mesh" readonly property string antiOverhangMeshType: "anti_overhang_mesh" - property var currentMeshType: UM.ActiveTool.properties.getValue("MeshType") + property var currentMeshType: UM.Controller.properties.getValue("MeshType") // Update the view every time the currentMeshType changes onCurrentMeshTypeChanged: @@ -56,7 +56,7 @@ Item function setMeshType(type) { - UM.ActiveTool.setProperty("MeshType", type) + UM.Controller.setProperty("MeshType", type) updateMeshTypeCheckedState(type) } @@ -224,7 +224,7 @@ Item visibilityHandler: Cura.PerObjectSettingVisibilityHandler { id: visibility_handler - selectedObjectId: UM.ActiveTool.properties.getValue("SelectedObjectId") + selectedObjectId: UM.Controller.properties.getValue("SelectedObjectId") } // For some reason the model object is updated after removing him from the memory and @@ -320,7 +320,7 @@ Item { id: provider - containerStackId: UM.ActiveTool.properties.getValue("ContainerID") + containerStackId: UM.Controller.properties.getValue("ContainerID") key: model.key watchedProperties: [ "value", "enabled", "validationState" ] storeIndex: 0 @@ -330,7 +330,7 @@ Item UM.SettingPropertyProvider { id: inheritStackProvider - containerStackId: UM.ActiveTool.properties.getValue("ContainerID") + containerStackId: UM.Controller.properties.getValue("ContainerID") key: model.key watchedProperties: [ "limit_to_extruder" ] } @@ -381,22 +381,22 @@ Item Connections { - target: UM.ActiveTool + target: UM.Controller function onPropertiesChanged() { - // the values cannot be bound with UM.ActiveTool.properties.getValue() calls, + // the values cannot be bound with UM.Controller.properties.getValue() calls, // so here we connect to the signal and update the those values. - if (typeof UM.ActiveTool.properties.getValue("SelectedObjectId") !== "undefined") + if (typeof UM.Controller.properties.getValue("SelectedObjectId") !== "undefined") { - const selectedObjectId = UM.ActiveTool.properties.getValue("SelectedObjectId") + const selectedObjectId = UM.Controller.properties.getValue("SelectedObjectId") if (addedSettingsModel.visibilityHandler.selectedObjectId != selectedObjectId) { addedSettingsModel.visibilityHandler.selectedObjectId = selectedObjectId } } - if (typeof UM.ActiveTool.properties.getValue("ContainerID") !== "undefined") + if (typeof UM.Controller.properties.getValue("ContainerID") !== "undefined") { - const containerId = UM.ActiveTool.properties.getValue("ContainerID") + const containerId = UM.Controller.properties.getValue("ContainerID") if (provider.containerStackId !== containerId) { provider.containerStackId = containerId diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index 458d7fcaae..7eac124a8f 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -120,8 +120,8 @@ Item text: catalog.i18nc("@action:inmenu menubar:edit", "&Undo") icon.name: "edit-undo" shortcut: StandardKey.Undo - onTriggered: UM.OperationStack.undo() - enabled: UM.OperationStack.canUndo + onTriggered: UM.CuraActions.undo() + enabled: UM.CuraActions.canUndo } Action @@ -130,8 +130,8 @@ Item text: catalog.i18nc("@action:inmenu menubar:edit", "&Redo") icon.name: "edit-redo" shortcut: StandardKey.Redo - onTriggered: UM.OperationStack.redo() - enabled: UM.OperationStack.canRedo + onTriggered: UM.CuraActions.redo() + enabled: UM.CuraActions.canRedo } Action diff --git a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml index 41ab40eb31..4cc1e3034a 100644 --- a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml @@ -160,7 +160,7 @@ Item ProfileWarningReset { id: profileWarningReset - width: childrenRect.width + width: parent.width anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter fullWarning: false diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index d8e90e4951..f49b688c18 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -223,7 +223,7 @@ SettingItem cursorShape: Qt.IBeamCursor - onPressed: { + onPressed:(mouse)=> { if (!input.activeFocus) { base.focusGainedByClick = true diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index fd48ef7448..1af4e958f4 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -203,7 +203,7 @@ Item x: UM.Theme.getSize("default_margin").width y: UM.Theme.getSize("default_margin").height - source: UM.ActiveTool.valid ? UM.ActiveTool.activeToolPanel : "" + source: UM.Controller.valid ? UM.Controller.activeToolPanel : "" enabled: UM.Controller.toolsEnabled } } @@ -222,7 +222,7 @@ Item UM.Label { id: toolHint - text: UM.ActiveTool.properties.getValue("ToolHint") != undefined ? UM.ActiveTool.properties.getValue("ToolHint") : "" + text: UM.Controller.properties.getValue("ToolHint") != undefined ? UM.ActiveTool.properties.getValue("ToolHint") : "" color: UM.Theme.getColor("tooltip_text") anchors.horizontalCenter: parent.horizontalCenter } From 0ddf92ce62ff69b8e06a6704d0bae59edd49463e Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Tue, 9 Jan 2024 10:33:02 +0100 Subject: [PATCH 064/269] fix for proper path for CuraAction undo redo CURA-7812 --- resources/qml/Actions.qml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index 7eac124a8f..3717e778d3 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -120,8 +120,8 @@ Item text: catalog.i18nc("@action:inmenu menubar:edit", "&Undo") icon.name: "edit-undo" shortcut: StandardKey.Undo - onTriggered: UM.CuraActions.undo() - enabled: UM.CuraActions.canUndo + onTriggered: CuraActions.undo() + enabled: CuraActions.canUndo } Action @@ -130,8 +130,8 @@ Item text: catalog.i18nc("@action:inmenu menubar:edit", "&Redo") icon.name: "edit-redo" shortcut: StandardKey.Redo - onTriggered: UM.CuraActions.redo() - enabled: UM.CuraActions.canRedo + onTriggered: CuraActions.redo() + enabled: CuraActions.canRedo } Action From 1f7b8efff0d7369ae576410d86c0c1ff15e087e6 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 9 Jan 2024 16:26:14 +0100 Subject: [PATCH 065/269] Don't make `raft_smoothing` settable per extruder CURA-11395 --- resources/definitions/fdmprinter.def.json | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index af041bd803..0bdfa7c602 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6196,7 +6196,6 @@ "type": "bool", "value": "raft_remove_inside_corners", "default_value": false, - "resolve": "any(extruderValues('raft_remove_inside_corners'))", "enabled": "resolveOrValue('adhesion_type') == 'raft'", "limit_to_extruder": "raft_interface_extruder_nr", "settable_per_mesh": false, @@ -6229,7 +6228,7 @@ "enabled": "resolveOrValue('adhesion_type') == 'raft' and not raft_remove_inside_corners", "limit_to_extruder": "adhesion_extruder_nr", "settable_per_mesh": false, - "settable_per_extruder": true, + "settable_per_extruder": false, "children": { "raft_base_smoothing": @@ -6245,7 +6244,7 @@ "enabled": "resolveOrValue('adhesion_type') == 'raft' and not raft_base_remove_inside_corners", "limit_to_extruder": "raft_base_extruder_nr", "settable_per_mesh": false, - "settable_per_extruder": true + "settable_per_extruder": false }, "raft_interface_smoothing": { @@ -6260,7 +6259,7 @@ "enabled": "resolveOrValue('adhesion_type') == 'raft' and not raft_interface_remove_inside_corners", "limit_to_extruder": "raft_interface_extruder_nr", "settable_per_mesh": false, - "settable_per_extruder": true + "settable_per_extruder": false }, "raft_surface_smoothing": { @@ -6275,7 +6274,7 @@ "enabled": "resolveOrValue('adhesion_type') == 'raft' and not raft_surface_remove_inside_corners", "limit_to_extruder": "raft_surface_extruder_nr", "settable_per_mesh": false, - "settable_per_extruder": true + "settable_per_extruder": false } } }, From 30b25975df64990c3ac063699f4b56587ebe7dc8 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Tue, 9 Jan 2024 16:38:57 +0100 Subject: [PATCH 066/269] Make settings not settable par extruder CURA-11395 --- resources/definitions/fdmprinter.def.json | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 0bdfa7c602..8531fdcbe3 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6170,7 +6170,6 @@ "description": "Remove inside corners from the raft, causing the raft to become convex.", "type": "bool", "default_value": false, - "resolve": "any(extruderValues('raft_remove_inside_corners'))", "enabled": "resolveOrValue('adhesion_type') == 'raft'", "settable_per_mesh": false, "settable_per_extruder": false, @@ -6183,9 +6182,7 @@ "type": "bool", "value": "raft_remove_inside_corners", "default_value": false, - "resolve": "any(extruderValues('raft_remove_inside_corners'))", "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "limit_to_extruder": "raft_base_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -6197,7 +6194,6 @@ "value": "raft_remove_inside_corners", "default_value": false, "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "limit_to_extruder": "raft_interface_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -6208,9 +6204,7 @@ "type": "bool", "value": "raft_remove_inside_corners", "default_value": false, - "resolve": "any(extruderValues('raft_remove_inside_corners'))", "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "limit_to_extruder": "raft_surface_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": false } @@ -6226,7 +6220,6 @@ "minimum_value": "0", "minimum_value_warning": "raft_interface_line_width", "enabled": "resolveOrValue('adhesion_type') == 'raft' and not raft_remove_inside_corners", - "limit_to_extruder": "adhesion_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": false, "children": @@ -6242,7 +6235,6 @@ "minimum_value": "0", "minimum_value_warning": "raft_interface_line_width", "enabled": "resolveOrValue('adhesion_type') == 'raft' and not raft_base_remove_inside_corners", - "limit_to_extruder": "raft_base_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -6257,7 +6249,6 @@ "minimum_value": "0", "minimum_value_warning": "raft_interface_line_width", "enabled": "resolveOrValue('adhesion_type') == 'raft' and not raft_interface_remove_inside_corners", - "limit_to_extruder": "raft_interface_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -6272,7 +6263,6 @@ "minimum_value": "0", "minimum_value_warning": "raft_interface_line_width", "enabled": "resolveOrValue('adhesion_type') == 'raft' and not raft_surface_remove_inside_corners", - "limit_to_extruder": "raft_surface_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": false } From 2ad2afd1f41b70acffa0674cd53afa315d05cef2 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Tue, 9 Jan 2024 19:55:03 +0100 Subject: [PATCH 067/269] Update 'Advanced Cooling Fan Control' post-processing script. See discussions in #15853 (on github) and (internally) tracking-ticket CURA-11520 --- .../scripts/AddCoolingProfile.py | 258 ++++++++---------- 1 file changed, 108 insertions(+), 150 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/AddCoolingProfile.py b/plugins/PostProcessingPlugin/scripts/AddCoolingProfile.py index 6f9ac2dc13..44709afd24 100644 --- a/plugins/PostProcessingPlugin/scripts/AddCoolingProfile.py +++ b/plugins/PostProcessingPlugin/scripts/AddCoolingProfile.py @@ -1,17 +1,16 @@ -# January 2023 by GregValiant (Greg Foresi). -# Functions: -# Remove all fan speed lines from the file (optional). -# Enter new M106 lines "By Layer" or "By Feature" (;TYPE:WALL-OUTER, etc.). -# A Starting layer and/or an Ending layer can be defined. -# Fan speeds are scaled PWM (0 - 255) or RepRap (0 - 1) depending on {machine_scale_fan_speed_zero_to_one}. -# A minimum fan speed of 12% is enforced. -# If multiple extruders have separate fan circuits the speeds are set at tool changes and conform to the layer or -# feature setting. There is support for up to 4 layer cooling fan circuits. -# The option for whether or not to remove the existing M106 lines is added to allow multiple instances of this post-processor to be installed without the followup instances wiping out the insertions of previous instances. 1/3 of a file can be 'By Layer' and the second third 'By Feature', and end up with 'By Layer' again. -# My design intent was to make it as full featured and "industrial strength" as I could. -# My thanks to @5axes, @fieldOfView(@AHoeben), @Ghostkeeper, and @Torgeir. -# 9/14/23 added support for One-at-a-Time and removed the kick out code -# 12/15/23 split off some functions. Revised the regex replacements. +# Designed in January 2023 by GregValiant (Greg Foresi) +## My design intent was to make this as full featured and "industrial strength" as I could. People printing exotic materials on large custom printers may want to turn the fans off for certain layers, and then back on again later in the print. This script allows that. +# Functions: +## Remove all fan speed lines from the file (optional). This should be enabled for the first instance of the script. It is disabled by default in any following instances. +## "By Layer" allows the user to adjust the fan speed up, or down, or off, within the print. "By Feature" allows different fan speeds for different features (;TYPE:WALL-OUTER, etc.). +## If 'By Feature' then a Start Layer and/or an End Layer can be defined. +## Fan speeds are scaled PWM (0 - 255) or RepRap (0.0 - 1.0) depending on {machine_scale_fan_speed_zero_to_one}. +## A minimum fan speed of 12% is enforced. It is the slowest speed that my cooling fan will turn on so that's what I used. 'M106 S14' (as Cura might insert) was pretty useless. +## If multiple extruders have separate fan circuits the speeds are set at tool changes and conform to the layer or feature setting. There is support for up to 4 layer cooling fan circuits. +## My thanks to @5axes(@CUQ), @fieldOfView(@AHoeben), @Ghostkeeper, and @Torgeir. A special thanks to @RBurema for his patience in reviewing my 'non-pythonic' script. +## 9/14/23 (Greg Foresi) Added support for One-at-a-Time print sequence. +## 12/15/23 (Greg Foresi) Split off 'Single Fan By Layer', 'Multi-fan By Layer', 'Single Fan By Feature', and 'Multi-fan By Feature' from the main 'execute' script. +## 1/5/24 (Greg Foresi) Revised the regex replacements. from ..Script import Script from UM.Application import Application @@ -40,10 +39,11 @@ class AddCoolingProfile(Script): "delete_existing_m106": { "label": "Remove M106 lines prior to inserting new.", - "description": "If you have 2 or more instances of 'Advanced Cooling Fan Control' running (to cool a portion of a print differently), then uncheck this box or the followup instances will remove all the lines inserted by the first instance. Pay attention to the Start and Stop layers. If you want to keep the Cura inserted lines up to the point where this post-processor will start making insertions, then un-check the box.", + "description": "If you have 2 or more instances of 'Advanced Cooling Fan Control' running (to cool a portion of a print differently), then you must uncheck this box or the followup instances will remove all the lines inserted by the first instance. Pay attention to the Start and Stop layers. Regardless of this setting: The script always removes M106 lines starting with the lowest layer number (when 'By Layer') or the starting layer number (when 'By Feature'). If you want to keep the M106 lines that Cura inserted up to the point where this post-processor will start making insertions, then un-check the box.", "type": "bool", "enabled": true, - "value": true + "value": true, + "default_value": true }, "feature_fan_start_layer": { @@ -65,73 +65,73 @@ class AddCoolingProfile(Script): "unit": "Lay# ", "enabled": "fan_layer_or_feature == 'by_feature'" }, - "layer_fan_1st": + "layer_fan_1": { "label": "Layer/Percent #1", - "description": "Enter as: 'LAYER / Percent' Ex: 57/100 with the layer first, then a '/' to delimit, and then the fan percentage.", + "description": "Enter as: 'LAYER / Percent' Ex: 55/100 with the layer first, then a '/' to delimit, and then the fan percentage. There are up to 8 changes. If you need more then add a second instance of this script and remember to turn off 'Remove M106 lines' in the second instance. The layer numbers in the second instance must start with a layer number higher than the last layer number in a previous script. You can't end the first script with a setting for layer 80 and then start the second script with a setting for layer 40 because 'Remove M106 lines' always starts with the lowest layer number when 'By Layer' is selected.", "type": "str", "default_value": "5/30", "unit": "L#/% ", "enabled": "fan_layer_or_feature == 'by_layer'" }, - "layer_fan_2nd": + "layer_fan_2": { "label": "Layer/Percent #2", - "description": "Enter as: 'LAYER / Percent' Ex: 57/100 with the layer first, then a '/' to delimit, and then the fan percentage.", + "description": "Enter as: 'LAYER / Percent' Ex: 55/100 with the layer first, then a '/' to delimit, and then the fan percentage.", "type": "str", "default_value": "", "unit": "L#/% ", "enabled": "fan_layer_or_feature == 'by_layer'" }, - "layer_fan_3rd": + "layer_fan_3": { "label": "Layer/Percent #3", - "description": "Enter as: 'LAYER / Percent' Ex: 57/100 with the layer first, then a '/' to delimit, and then the fan percentage.", + "description": "Enter as: 'LAYER / Percent' Ex: 55/100 with the layer first, then a '/' to delimit, and then the fan percentage.", "type": "str", "default_value": "", "unit": "L#/% ", "enabled": "fan_layer_or_feature == 'by_layer'" }, - "layer_fan_4th": + "layer_fan_4": { "label": "Layer/Percent #4", - "description": "Enter as: 'LAYER / Percent' Ex: 57/100 with the layer first, then a '/' to delimit, and then the fan percentage.", + "description": "Enter as: 'LAYER / Percent' Ex: 55/100 with the layer first, then a '/' to delimit, and then the fan percentage.", "type": "str", "default_value": "", "unit": "L#/% ", "enabled": "fan_layer_or_feature == 'by_layer'" }, - "layer_fan_5th": + "layer_fan_5": { "label": "Layer/Percent #5", - "description": "Enter as: 'LAYER / Percent' Ex: 57/100 with the layer first, then a '/' to delimit, and then the fan percentage.", + "description": "Enter as: 'LAYER / Percent' Ex: 55/100 with the layer first, then a '/' to delimit, and then the fan percentage.", "type": "str", "default_value": "", "unit": "L#/% ", "enabled": "fan_layer_or_feature == 'by_layer'" }, - "layer_fan_6th": + "layer_fan_6": { "label": "Layer/Percent #6", - "description": "Enter as: 'LAYER / Percent' Ex: 57/100 with the layer first, then a '/' to delimit, and then the fan percentage.", + "description": "Enter as: 'LAYER / Percent' Ex: 55/100 with the layer first, then a '/' to delimit, and then the fan percentage.", "type": "str", "default_value": "", "unit": "L#/% ", "enabled": "fan_layer_or_feature == 'by_layer'" }, - "layer_fan_7th": + "layer_fan_7": { "label": "Layer/Percent #7", - "description": "Enter as: 'LAYER / Percent' Ex: 57/100 with the layer first, then a '/' to delimit, and then the fan percentage.", + "description": "Enter as: 'LAYER / Percent' Ex: 55/100 with the layer first, then a '/' to delimit, and then the fan percentage.", "type": "str", "default_value": "", "unit": "L#/% ", "enabled": "fan_layer_or_feature == 'by_layer'" }, - "layer_fan_8th": + "layer_fan_8": { "label": "Layer/Percent #8", - "description": "Enter as: 'LAYER / Percent' Ex: 57/100 with the layer first, then a '/' to delimit, and then the fan percentage.", + "description": "Enter as: 'LAYER / Percent' Ex: 55/100 with the layer first, then a '/' to delimit, and then the fan percentage.", "type": "str", "default_value": "", "unit": "L#/% ", @@ -140,7 +140,7 @@ class AddCoolingProfile(Script): "feature_fan_skirt": { "label": "Skirt/Brim/Ooze Shield %", - "description": "Enter the fan percentage for skirt/brim. If you are starting at a layer above 1 then this setting only affects Ooze Shields and from the Start layer up.", + "description": "Enter the fan percentage for skirt/brim. If you are starting at a layer above 1 then this setting only affects Ooze Shields and from the Start Layer up.", "type": "int", "default_value": 0, "minimum_value": 0, @@ -247,7 +247,7 @@ class AddCoolingProfile(Script): "feature_fan_feature_final": { "label": "Final %", - "description": "If you choose an 'End Layer' then this is the fan speed that will carry through to the end of the gcode file. It will go into effect at the 'END' of your end layer.", + "description": "If you choose an 'End Layer' then this is the fan speed that will carry through to the end of the gcode file. It will go into effect at the 'END' of your End layer.", "type": "int", "default_value": 35, "minimum_value": 0, @@ -283,7 +283,7 @@ class AddCoolingProfile(Script): if scripts != None: script_count = scripts.count("AddCoolingProfile") if script_count > 0: - ## Set the default to "false" if there is more than one instance of this script running. + ## Set 'Remove M106 lines' to "false" if there is already an instance of this script running. self._instance.setProperty("delete_existing_m106", "value", False) def execute(self, data): @@ -314,6 +314,8 @@ class AddCoolingProfile(Script): else: #No P parameter if there is a single fan circuit------------------ t0_fan = "" + + #Get the cooling fan numbers for each extruder if the printer has multiple extruders elif extruder_count > 1: is_multi_fan = True t0_fan = " P" + str((extruder[0].getProperty("machine_extruder_cooling_fan_number", "value"))) @@ -325,21 +327,22 @@ class AddCoolingProfile(Script): #Initialize the fan_list with defaults---------------------------- fan_list = ["z"] * 16 for num in range(0,15,2): + fan_list[num] = len(data) fan_list[num + 1] = "M106 S0" #Assign the variable values if "By Layer"------------------------- by_layer_or_feature = self.getSettingValueByKey("fan_layer_or_feature") if by_layer_or_feature == "by_layer": - ## By layer doesn't do any feature search + ## By layer doesn't do any feature search so there is no need to look for combing moves feature_fan_combing = False - fan_list[0] = self.getSettingValueByKey("layer_fan_1st") - fan_list[2] = self.getSettingValueByKey("layer_fan_2nd") - fan_list[4] = self.getSettingValueByKey("layer_fan_3rd") - fan_list[6] = self.getSettingValueByKey("layer_fan_4th") - fan_list[8] = self.getSettingValueByKey("layer_fan_5th") - fan_list[10] = self.getSettingValueByKey("layer_fan_6th") - fan_list[12] = self.getSettingValueByKey("layer_fan_7th") - fan_list[14] = self.getSettingValueByKey("layer_fan_8th") + fan_list[0] = self.getSettingValueByKey("layer_fan_1") + fan_list[2] = self.getSettingValueByKey("layer_fan_2") + fan_list[4] = self.getSettingValueByKey("layer_fan_3") + fan_list[6] = self.getSettingValueByKey("layer_fan_4") + fan_list[8] = self.getSettingValueByKey("layer_fan_5") + fan_list[10] = self.getSettingValueByKey("layer_fan_6") + fan_list[12] = self.getSettingValueByKey("layer_fan_7") + fan_list[14] = self.getSettingValueByKey("layer_fan_8") ## If there is no '/' delimiter then ignore the line else put the settings in a list for num in range(0,15,2): if "/" in fan_list[num]: @@ -359,17 +362,18 @@ class AddCoolingProfile(Script): the_end_layer = -1 ## If there is an input error default to the entire gcode file. ## Get the speed for each feature - # 0;TYPE:SKIRT, 1;TYPE:WALL-INNER, 2;TYPE:WALL-OUTER, 3;TYPE:FILL, 4;TYPE:SKIN, 5;TYPE:SUPPORT, 6;TYPE:SUPPORT-INTERFACE, 7;TYPE:PRIME-TOWER, 8;BRIDGE, 9;FEATURE_FINAL, 10;FAN_COMBING, - fan_sp_skirt = self._feature_checker(self.getSettingValueByKey("feature_fan_skirt"), fan_mode) - fan_sp_wall_inner = self._feature_checker(self.getSettingValueByKey("feature_fan_wall_inner"), fan_mode) - fan_sp_wall_outer = self._feature_checker(self.getSettingValueByKey("feature_fan_wall_outer"), fan_mode) - fan_sp_fill = self._feature_checker(self.getSettingValueByKey("feature_fan_fill"), fan_mode) - fan_sp_skin = self._feature_checker(self.getSettingValueByKey("feature_fan_skin"), fan_mode) - fan_sp_support = self._feature_checker(self.getSettingValueByKey("feature_fan_support"), fan_mode) - fan_sp_support_interface = self._feature_checker(self.getSettingValueByKey("feature_fan_support_interface"), fan_mode) - fan_sp_prime_tower = self._feature_checker(self.getSettingValueByKey("feature_fan_prime_tower"), fan_mode) - fan_sp_bridge = self._feature_checker(self.getSettingValueByKey("feature_fan_bridge"), fan_mode) - fan_sp_feature_final = self._feature_checker(self.getSettingValueByKey("feature_fan_feature_final"), fan_mode) + feature_name_list = [] + feature_speed_list = [] + feature_speed_list.append(self._feature_checker(self.getSettingValueByKey("feature_fan_skirt"), fan_mode)); feature_name_list.append(";TYPE:SKIRT") + feature_speed_list.append(self._feature_checker(self.getSettingValueByKey("feature_fan_wall_inner"), fan_mode)); feature_name_list.append(";TYPE:WALL-INNER") + feature_speed_list.append(self._feature_checker(self.getSettingValueByKey("feature_fan_wall_outer"), fan_mode)); feature_name_list.append(";TYPE:WALL-OUTER") + feature_speed_list.append(self._feature_checker(self.getSettingValueByKey("feature_fan_fill"), fan_mode)); feature_name_list.append(";TYPE:FILL") + feature_speed_list.append(self._feature_checker(self.getSettingValueByKey("feature_fan_skin"), fan_mode)); feature_name_list.append(";TYPE:SKIN") + feature_speed_list.append(self._feature_checker(self.getSettingValueByKey("feature_fan_support"), fan_mode)); feature_name_list.append(";TYPE:SUPPORT") + feature_speed_list.append(self._feature_checker(self.getSettingValueByKey("feature_fan_support_interface"), fan_mode)); feature_name_list.append(";TYPE:SUPPORT-INTERFACE") + feature_speed_list.append(self._feature_checker(self.getSettingValueByKey("feature_fan_prime_tower"), fan_mode)); feature_name_list.append(";TYPE:PRIME-TOWER") + feature_speed_list.append(self._feature_checker(self.getSettingValueByKey("feature_fan_bridge"), fan_mode)); feature_name_list.append(";BRIDGE") + feature_speed_list.append(self._feature_checker(self.getSettingValueByKey("feature_fan_feature_final"), fan_mode)); feature_name_list.append("FINAL_FAN") feature_fan_combing = self.getSettingValueByKey("feature_fan_combing") if the_end_layer > -1 and by_layer_or_feature == "by_feature": ## Required so the final speed input can be determined @@ -459,18 +463,20 @@ class AddCoolingProfile(Script): altered_start_layer = str(len(data)) ## The fan list layers don't need to be in ascending order. Get the lowest. for num in range(0,15,2): - if int(fan_list[num]) < int(altered_start_layer): - altered_start_layer = int(fan_list[num]) + try: + if int(fan_list[num]) < int(altered_start_layer): + altered_start_layer = int(fan_list[num]) + except: + pass elif by_layer_or_feature == "by_feature": altered_start_layer = int(the_start_layer) - 1 start_from = int(layer_0_index) + int(altered_start_layer) - ## Strip the M106 and M107 lines from the file for l_index in range(int(start_from), len(data) - 1, 1): data[l_index] = re.sub(re.compile("M106(.*)\n"), "", data[l_index]) data[l_index] = re.sub(re.compile("M107(.*)\n"), "", data[l_index]) - ## Deal with a raft and with One-At-A-Time + ## Deal with a raft and with One-At-A-Time print sequence if raft_enabled and bed_adhesion == "raft": if print_sequence == "one_at_a_time": for r_index in range(2,len(data)-2,1): @@ -482,7 +488,7 @@ class AddCoolingProfile(Script): if ";LAYER:-" in data[r_index]: ## Turn the raft fan on lines.insert(1, fan_sp_raft + str(t0_fan)) - ## Shut the raft fan off + ## Shut the raft fan off at layer 0 if ";LAYER:0" in data[r_index]: lines.insert(1,"M106 S0" + str(t0_fan)) data[r_index] = "\n".join(lines) @@ -507,7 +513,7 @@ class AddCoolingProfile(Script): lines.insert(1, "M106 S0" + str(t0_fan)) data[r_index] = "\n".join(lines) - ## Turn off all fans at the end of data[1] + ## Turn off all fans at the end of data[1]. If more than one instance of this script is running then this will result in multiple M106 lines. temp_startup = data[1].split("\n") temp_startup.insert(len(temp_startup)-2,"M106 S0" + str(t0_fan)) ## If there are multiple cooling fans shut them all off @@ -535,31 +541,28 @@ class AddCoolingProfile(Script): #Single Fan "By Feature"------------------------------------------ if by_layer_or_feature == "by_feature" and (not is_multi_fan or not is_multi_extr_print): - return self._single_fan_by_feature(data, layer_0_index, the_start_layer, the_end_layer, the_end_is_enabled, fan_list, t0_fan, fan_sp_skirt, fan_sp_wall_inner, fan_sp_wall_outer, fan_sp_fill, fan_sp_skin, fan_sp_support, fan_sp_support_interface, feature_fan_combing, fan_sp_prime_tower, fan_sp_bridge, fan_sp_feature_final) + return self._single_fan_by_feature(data, layer_0_index, the_start_layer, the_end_layer, the_end_is_enabled, fan_list, t0_fan, feature_speed_list, feature_name_list, feature_fan_combing) #Multi Fan "By Feature"------------------------------------------- if by_layer_or_feature == "by_feature" and is_multi_fan: - return self._multi_fan_by_feature(data, layer_0_index, the_start_layer, the_end_layer, the_end_is_enabled, fan_list, t0_fan, t1_fan, t2_fan, t3_fan, fan_sp_skirt, fan_sp_wall_inner, fan_sp_wall_outer, fan_sp_fill, fan_sp_skin, fan_sp_support, fan_sp_support_interface, feature_fan_combing, fan_sp_prime_tower, fan_sp_bridge, fan_sp_feature_final) + return self._multi_fan_by_feature(data, layer_0_index, the_start_layer, the_end_layer, the_end_is_enabled, fan_list, t0_fan, t1_fan, t2_fan, t3_fan, feature_speed_list, feature_name_list, feature_fan_combing) # The Single Fan "By Layer"---------------------------------------- def _single_fan_by_layer(self, data: str, layer_0_index: int, fan_list: str, t0_fan: str)->str: layer_number = "0" - single_fan_layer = data - for l_index in range(layer_0_index,len(single_fan_layer)-1,1): - layer = single_fan_layer[l_index] + single_fan_data = data + for l_index in range(layer_0_index,len(single_fan_data)-1,1): + layer = single_fan_data[l_index] fan_lines = layer.split("\n") for fan_line in fan_lines: if ";LAYER:" in fan_line: - layer_number = int(fan_line.split(":")[1]) - ## If there is a match for the current layer number make the insertion. - try: - for num in range(0,15,2): - if int(layer_number) == int(fan_list[num]): - layer = layer.replace(fan_lines[0],fan_lines[0] + "\n" + fan_list[num + 1] + str(t0_fan)) - single_fan_layer[l_index] = layer - except: - continue - return single_fan_layer + layer_number = str(fan_line.split(":")[1]) + ## If there is a match for the current layer number make the insertion + for num in range(0,15,2): + if layer_number == str(fan_list[num]): + layer = layer.replace(fan_lines[0],fan_lines[0] + "\n" + fan_list[num + 1] + str(t0_fan)) + single_fan_data[l_index] = layer + return single_fan_data # Multi-Fan "By Layer"----------------------------------------- def _multi_fan_by_layer(self, data: str, layer_0_index: int, fan_list: str, t0_fan: str, t1_fan: str, t2_fan: str, t3_fan: str)->str: @@ -625,7 +628,7 @@ class AddCoolingProfile(Script): return multi_fan_data # Single fan by feature----------------------------------------------- - def _single_fan_by_feature(self, data: str, layer_0_index: int, the_start_layer: str, the_end_layer: str, the_end_is_enabled: str, fan_list: str, t0_fan: str, fan_sp_skirt: str, fan_sp_wall_inner: str, fan_sp_wall_outer: str, fan_sp_fill: str, fan_sp_skin: str, fan_sp_support: str, fan_sp_support_interface: str, feature_fan_combing: str, fan_sp_prime_tower: str, fan_sp_bridge: str, fan_sp_feature_final: str)->str: + def _single_fan_by_feature(self, data: str, layer_0_index: int, the_start_layer: str, the_end_layer: str, the_end_is_enabled: str, fan_list: str, t0_fan: str, feature_speed_list: str, feature_name_list: str, feature_fan_combing: bool)->str: single_fan_data = data layer_number = "0" index = 1 @@ -638,37 +641,26 @@ class AddCoolingProfile(Script): if ";LAYER:" in line: layer_number = str(line.split(":")[1]) if int(layer_number) >= int(the_start_layer) and int(layer_number) < int(the_end_layer)-1: - if ";TYPE:SKIRT" in line: - modified_data += fan_sp_skirt + t0_fan + "\n" - elif ";TYPE:WALL-INNER" in line: - modified_data += fan_sp_wall_inner + t0_fan + "\n" - elif ";TYPE:WALL-OUTER" in line: - modified_data += fan_sp_wall_outer + t0_fan + "\n" - elif ";TYPE:FILL" in line: - modified_data += fan_sp_fill + t0_fan + "\n" - elif ";TYPE:SKIN" in line: - modified_data += fan_sp_skin + t0_fan + "\n" - elif line == ";TYPE:SUPPORT": - modified_data += fan_sp_support + t0_fan + "\n" - elif ";TYPE:SUPPORT-INTERFACE" in line: - modified_data += fan_sp_support_interface + t0_fan + "\n" + temp = line.split(" ")[0] + try: + name_index = feature_name_list.index(temp) + except: + name_index = -1 + if name_index != -1: + modified_data += feature_speed_list[name_index] + t0_fan + "\n" elif ";MESH:NONMESH" in line: if feature_fan_combing == True: modified_data += "M106 S0" + t0_fan + "\n" - elif ";TYPE:PRIME-TOWER" in line: - modified_data += fan_sp_prime_tower + t0_fan + "\n" - elif line == ";BRIDGE": - modified_data += fan_sp_bridge + t0_fan + "\n" modified_data += line + "\n" ## If an End Layer is defined and is less than the last layer then insert the Final Speed - if line == ";LAYER:" + str(the_end_layer) and the_end_is_enabled == True: - modified_data += fan_sp_feature_final + t0_fan + "\n" + if line == ";LAYER:" + str(the_end_layer) and the_end_is_enabled == True: + modified_data += feature_speed_list[len(feature_speed_list) - 1] + t0_fan + "\n" if modified_data.endswith("\n"): modified_data = modified_data[0: - 1] single_fan_data[l_index] = modified_data return single_fan_data # Multi-fan by feature------------------------------------------------ - def _multi_fan_by_feature(self, data: str, layer_0_index: int, the_start_layer: str, the_end_layer: str, the_end_is_enabled: str, fan_list: str, t0_fan: str, t1_fan: str, t2_fan: str, t3_fan: str, fan_sp_skirt: str, fan_sp_wall_inner: str, fan_sp_wall_outer: str, fan_sp_fill: str, fan_sp_skin: str, fan_sp_support: str, fan_sp_support_interface: str, feature_fan_combing: str, fan_sp_prime_tower: str, fan_sp_bridge: str, fan_sp_feature_final: str)->str: + def _multi_fan_by_feature(self, data: str, layer_0_index: int, the_start_layer: str, the_end_layer: str, the_end_is_enabled: str, fan_list: str, t0_fan: str, t1_fan: str, t2_fan: str, t3_fan: str, feature_speed_list: str, feature_name_list: str, feature_fan_combing: bool)->str: multi_fan_data = data layer_number = "0" start_index = 1 @@ -729,35 +721,16 @@ class AddCoolingProfile(Script): if ";LAYER:" in line: layer_number = str(line.split(":")[1]) modified_data += line + "\n" - if int(layer_number) >= int(the_start_layer): # Problem with oneatatime < start - if ";TYPE:SKIRT" in line: - modified_data += line + "\n" - modified_data += fan_sp_skirt + this_fan + "\n" - current_fan_speed = str(fan_sp_skirt.split("S")[1]) - elif ";TYPE:WALL-INNER" in line: - modified_data += line + "\n" - modified_data += fan_sp_wall_inner + this_fan + "\n" - current_fan_speed = str(fan_sp_wall_inner.split("S")[1]) - elif ";TYPE:WALL-OUTER" in line: - modified_data += line + "\n" - modified_data += fan_sp_wall_outer + this_fan + "\n" - current_fan_speed = str(fan_sp_wall_outer.split("S")[1]) - elif ";TYPE:FILL" in line: - modified_data += line + "\n" - modified_data += fan_sp_fill + this_fan + "\n" - current_fan_speed = str(fan_sp_fill.split("S")[1]) - elif ";TYPE:SKIN" in line: - modified_data += line + "\n" - modified_data += fan_sp_skin + this_fan + "\n" - current_fan_speed = str(fan_sp_skin.split("S")[1]) - elif line == ";TYPE:SUPPORT": - modified_data += line + "\n" - modified_data += fan_sp_support + this_fan + "\n" - current_fan_speed = str(fan_sp_support.split("S")[1]) - elif ";TYPE:SUPPORT-INTERFACE" in line: - modified_data += line + "\n" - modified_data += fan_sp_support_interface + this_fan + "\n" - current_fan_speed = str(fan_sp_support_interface.split("S")[1]) + if int(layer_number) >= int(the_start_layer): + temp = line.split(" ")[0] + try: + name_index = feature_name_list.index(temp) + except: + name_index = -1 + if name_index != -1: + modified_data += line + "\n" + feature_speed_list[name_index] + this_fan + "\n" + #modified_data += feature_speed_list[name_index] + this_fan + "\n" + current_fan_speed = str(feature_speed_list[name_index].split("S")[1]) elif ";MESH:NONMESH" in line: if feature_fan_combing == True: modified_data += line + "\n" @@ -765,27 +738,12 @@ class AddCoolingProfile(Script): current_fan_speed = "0" else: modified_data += line + "\n" - elif ";TYPE:PRIME-TOWER" in line: - modified_data += line + "\n" - modified_data += fan_sp_prime_tower + this_fan + "\n" - current_fan_speed = str(fan_sp_prime_tower.split("S")[1]) - elif line == ";BRIDGE": - modified_data += line + "\n" - modified_data += fan_sp_bridge + this_fan + "\n" - current_fan_speed = str(fan_sp_bridge.split("S")[1]) ## If an end layer is defined - Insert the final speed and set the other variables to Final Speed to finish the file ## There cannot be a break here because if there are multiple fan numbers they still need to be shut off and turned on. elif line == ";LAYER:" + str(the_end_layer): - modified_data += fan_sp_feature_final + this_fan + "\n" - fan_sp_skirt = fan_sp_feature_final - fan_sp_wall_inner = fan_sp_feature_final - fan_sp_wall_outer = fan_sp_feature_final - fan_sp_fill = fan_sp_feature_final - fan_sp_skin = fan_sp_feature_final - fan_sp_support = fan_sp_feature_final - fan_sp_support_interface = fan_sp_feature_final - fan_sp_prime_tower = fan_sp_feature_final - fan_sp_bridge = fan_sp_feature_final + modified_data += feature_speed_list[len(feature_speed_list) - 1] + this_fan + "\n" + for set_speed in range(0, len(feature_speed_list) - 2): + feature_speed_list[set_speed] = feature_speed_list[len(feature_speed_list) - 1] else: ## Layer and Tool get inserted into modified_data above. All other lines go into modified_data here if not line.startswith("T") and not line.startswith(";LAYER:"): modified_data += line + "\n" @@ -836,9 +794,9 @@ class AddCoolingProfile(Script): return fan_sp_feat # Add additional travel comments to turn the fan off during combing. - def _add_travel_comment(self, the_data: str, lay_0_index: str) -> str: - for lay_num in range(int(lay_0_index), len(the_data)-1,1): - layer = the_data[lay_num] + def _add_travel_comment(self, comment_data: str, lay_0_index: str) -> str: + for lay_num in range(int(lay_0_index), len(comment_data)-1,1): + layer = comment_data[lay_num] lines = layer.split("\n") ## Copy the data to new_data and make the insertions there new_data = lines @@ -875,5 +833,5 @@ class AddCoolingProfile(Script): g0_count = 0 g0_index = -1 is_travel = False - the_data[lay_num] = "\n".join(new_data) - return the_data \ No newline at end of file + comment_data[lay_num] = "\n".join(new_data) + return comment_data \ No newline at end of file From b3825ee1c7f43a7e21784462433a921ea4a612a9 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Wed, 10 Jan 2024 05:39:59 +0100 Subject: [PATCH 068/269] actually use f string Contributes to CURA-11482 --- plugins/CuraEngineBackend/StartSliceJob.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index fe7137150b..935eb81afa 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -337,7 +337,7 @@ class StartSliceJob(Job): user_id = uuid.getnode() # On all of Cura's supported platforms, this returns the MAC address which is pseudonymical information (!= anonymous). user_id %= 2 ** 16 # So to make it anonymous, apply a bitmask selecting only the last 16 bits. This prevents it from being traceable to a specific user but still gives somewhat of an idea of whether it's just the same user hitting the same crash over and over again, or if it's widespread. - self._slice_message.sentry_id = "{user_id}" + self._slice_message.sentry_id = f"{user_id}" self._slice_message.cura_version = CuraVersion # Build messages for extruder stacks From e47698c9ec312c666a14290bdd3440e1dda76e36 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Wed, 10 Jan 2024 06:49:27 +0100 Subject: [PATCH 069/269] Use engine version from branch CURA-11482 Contributes to CURA-11482 --- conandata.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conandata.yml b/conandata.yml index a0a5a204ca..dcf883c630 100644 --- a/conandata.yml +++ b/conandata.yml @@ -1,7 +1,7 @@ version: "5.7.0-alpha.0" requirements: - "uranium/(latest)@ultimaker/testing" - - "curaengine/(latest)@ultimaker/testing" + - "curaengine/(latest)@ultimaker/cura_11482" - "cura_binary_data/(latest)@ultimaker/testing" - "fdm_materials/(latest)@ultimaker/testing" - "curaengine_plugin_gradual_flow/(latest)@ultimaker/stable" From c64dcb785cb2abbcee0f7ceb98d2be0ea466fef5 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 10 Jan 2024 08:55:56 +0100 Subject: [PATCH 070/269] Remove 'support_interface_skip_height' setting. Was used for run-time efficiency, but it wasn't really ever set beyond one layer-height, which made it rather useless. frontend part of CURA-11157 -- needed version upgrader as well, since it's the first alteration --- .../VersionUpgrade56to57.py | 95 +++++++++++++++++++ .../VersionUpgrade56to57/__init__.py | 61 ++++++++++++ .../VersionUpgrade56to57/plugin.json | 8 ++ resources/definitions/ankermake_m5.def.json | 1 - resources/definitions/artillery_base.def.json | 1 - .../atmat_signal_pro_base.def.json | 1 - resources/definitions/biqu_base.def.json | 1 - resources/definitions/blocks_base.def.json | 1 - resources/definitions/fdmprinter.def.json | 14 --- .../definitions/flyingbear_base.def.json | 1 - resources/definitions/fusion3_f410.def.json | 1 - resources/definitions/kingroon_base.def.json | 1 - resources/definitions/koonovo_base.def.json | 1 - resources/definitions/koonovo_kn3.def.json | 1 - resources/definitions/koonovo_kn5.def.json | 1 - resources/definitions/longer_base.def.json | 1 - resources/definitions/mingda_base.def.json | 1 - resources/definitions/tank_m_base.def.json | 1 - resources/definitions/tronxy_x.def.json | 1 - resources/definitions/two_trees_base.def.json | 1 - resources/definitions/vivedino_base.def.json | 1 - resources/i18n/fdmprinter.def.json.pot | 8 -- .../quality/beamup_l/beamup_l_coarse.inst.cfg | 1 - .../quality/beamup_l/beamup_l_draft.inst.cfg | 1 - .../beamup_l/beamup_l_extra_fine.inst.cfg | 1 - .../quality/beamup_l/beamup_l_fine.inst.cfg | 1 - .../quality/beamup_l/beamup_l_normal.inst.cfg | 1 - .../quality/beamup_s/beamup_s_coarse.inst.cfg | 1 - .../quality/beamup_s/beamup_s_draft.inst.cfg | 1 - .../beamup_s/beamup_s_extra_fine.inst.cfg | 1 - .../quality/beamup_s/beamup_s_fine.inst.cfg | 1 - .../quality/beamup_s/beamup_s_normal.inst.cfg | 1 - .../quality/flsun_sr/flsun_sr_fine.inst.cfg | 1 - .../quality/flsun_sr/flsun_sr_normal.inst.cfg | 1 - .../flsun_v400/flsun_v400_normal.inst.cfg | 1 - .../imade3d_jellybox_coarse.inst.cfg | 1 - .../imade3d_jellybox_fine.inst.cfg | 1 - .../imade3d_jellybox_normal.inst.cfg | 1 - .../imade3d_jellybox_ultrafine.inst.cfg | 1 - .../jb2_global_coarse.inst.cfg | 1 - .../jb2_global_fine.inst.cfg | 1 - .../jb2_global_normal.inst.cfg | 1 - .../jb2_global_ultrafine.inst.cfg | 1 - resources/setting_visibility/expert.cfg | 1 - .../variants/arjun/arjun300_pva_0.2.inst.cfg | 1 - .../variants/arjun/arjun300_pva_0.3.inst.cfg | 1 - .../variants/arjun/arjun300_pva_0.4.inst.cfg | 1 - .../variants/arjun/arjun300_pva_0.5.inst.cfg | 1 - .../variants/arjun/arjun300_pva_0.6.inst.cfg | 1 - .../variants/arjun/arjun300_pva_0.8.inst.cfg | 1 - .../arjun/arjunpro300_pva_0.2.inst.cfg | 1 - .../arjun/arjunpro300_pva_0.3.inst.cfg | 1 - .../arjun/arjunpro300_pva_0.4.inst.cfg | 1 - .../arjun/arjunpro300_pva_0.5.inst.cfg | 1 - .../arjun/arjunpro300_pva_0.6.inst.cfg | 1 - .../arjun/arjunpro300_pva_0.8.inst.cfg | 1 - .../kosher/kosher220_pva_0.2.inst.cfg | 1 - .../kosher/kosher220_pva_0.3.inst.cfg | 1 - .../kosher/kosher220_pva_0.4.inst.cfg | 1 - .../kosher/kosher220_pva_0.5.inst.cfg | 1 - .../kosher/kosher220_pva_0.6.inst.cfg | 1 - .../kosher/kosher220_pva_0.8.inst.cfg | 1 - 62 files changed, 164 insertions(+), 79 deletions(-) create mode 100644 plugins/VersionUpgrade/VersionUpgrade56to57/VersionUpgrade56to57.py create mode 100644 plugins/VersionUpgrade/VersionUpgrade56to57/__init__.py create mode 100644 plugins/VersionUpgrade/VersionUpgrade56to57/plugin.json diff --git a/plugins/VersionUpgrade/VersionUpgrade56to57/VersionUpgrade56to57.py b/plugins/VersionUpgrade/VersionUpgrade56to57/VersionUpgrade56to57.py new file mode 100644 index 0000000000..8e94f7963c --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade56to57/VersionUpgrade56to57.py @@ -0,0 +1,95 @@ +# Copyright (c) 2024 UltiMaker +# Cura is released under the terms of the LGPLv3 or higher. + +import configparser +from typing import Tuple, List +import io +from UM.VersionUpgrade import VersionUpgrade + +_REMOVED_SETTINGS = { + "support_interface_skip_height", +} +_NEW_SETTING_VERSION = "23" + + +class VersionUpgrade56to57(VersionUpgrade): + def upgradePreferences(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: + """ + Upgrades preferences to remove from the visibility list the settings that were removed in this version. + It also changes the preferences to have the new version number. + + This removes any settings that were removed in the new Cura version. + :param serialized: The original contents of the preferences file. + :param filename: The file name of the preferences file. + :return: A list of new file names, and a list of the new contents for + those files. + """ + parser = configparser.ConfigParser(interpolation = None) + parser.read_string(serialized) + + # Update version number. + parser["metadata"]["setting_version"] = _NEW_SETTING_VERSION + + # Remove deleted settings from the visible settings list. + if "general" in parser and "visible_settings" in parser["general"]: + visible_settings = set(parser["general"]["visible_settings"].split(";")) + for removed in _REMOVED_SETTINGS: + if removed in visible_settings: + visible_settings.remove(removed) + + parser["general"]["visible_settings"] = ";".join(visible_settings) + + result = io.StringIO() + parser.write(result) + return [filename], [result.getvalue()] + + def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: + """ + Upgrades instance containers to remove the settings that were removed in this version. + It also changes the instance containers to have the new version number. + + This removes any settings that were removed in the new Cura version and updates settings that need to be updated + with a new value. + + :param serialized: The original contents of the instance container. + :param filename: The original file name of the instance container. + :return: A list of new file names, and a list of the new contents for + those files. + """ + parser = configparser.ConfigParser(interpolation = None, comment_prefixes = ()) + parser.read_string(serialized) + + # Update version number. + parser["metadata"]["setting_version"] = _NEW_SETTING_VERSION + + if "values" in parser: + # Remove deleted settings from the instance containers. + for removed in _REMOVED_SETTINGS: + if removed in parser["values"]: + del parser["values"][removed] + + result = io.StringIO() + parser.write(result) + return [filename], [result.getvalue()] + + def upgradeStack(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: + """ + Upgrades stacks to have the new version number. + + :param serialized: The original contents of the stack. + :param filename: The original file name of the stack. + :return: A list of new file names, and a list of the new contents for + those files. + """ + parser = configparser.ConfigParser(interpolation = None) + parser.read_string(serialized) + + # Update version number. + if "metadata" not in parser: + parser["metadata"] = {} + + parser["metadata"]["setting_version"] = _NEW_SETTING_VERSION + + result = io.StringIO() + parser.write(result) + return [filename], [result.getvalue()] diff --git a/plugins/VersionUpgrade/VersionUpgrade56to57/__init__.py b/plugins/VersionUpgrade/VersionUpgrade56to57/__init__.py new file mode 100644 index 0000000000..62e72c8da4 --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade56to57/__init__.py @@ -0,0 +1,61 @@ +# Copyright (c) 2024 UltiMaker +# Cura is released under the terms of the LGPLv3 or higher. + +from typing import Any, Dict, TYPE_CHECKING + +from . import VersionUpgrade56to57 + +if TYPE_CHECKING: + from UM.Application import Application + +upgrade = VersionUpgrade56to57.VersionUpgrade56to57() + + +def getMetaData() -> Dict[str, Any]: + return { + "version_upgrade": { + # From To Upgrade function + ("preferences", 7000022): ("preferences", 7000023, upgrade.upgradePreferences), + ("machine_stack", 6000022): ("machine_stack", 6000023, upgrade.upgradeStack), + ("extruder_train", 6000022): ("extruder_train", 6000023, upgrade.upgradeStack), + ("definition_changes", 4000022): ("definition_changes", 4000023, upgrade.upgradeInstanceContainer), + ("quality_changes", 4000022): ("quality_changes", 4000023, upgrade.upgradeInstanceContainer), + ("quality", 4000022): ("quality", 4000023, upgrade.upgradeInstanceContainer), + ("user", 4000022): ("user", 4000023, upgrade.upgradeInstanceContainer), + ("intent", 4000022): ("intent", 4000023, upgrade.upgradeInstanceContainer), + }, + "sources": { + "preferences": { + "get_version": upgrade.getCfgVersion, + "location": {"."} + }, + "machine_stack": { + "get_version": upgrade.getCfgVersion, + "location": {"./machine_instances"} + }, + "extruder_train": { + "get_version": upgrade.getCfgVersion, + "location": {"./extruders"} + }, + "definition_changes": { + "get_version": upgrade.getCfgVersion, + "location": {"./definition_changes"} + }, + "quality_changes": { + "get_version": upgrade.getCfgVersion, + "location": {"./quality_changes"} + }, + "quality": { + "get_version": upgrade.getCfgVersion, + "location": {"./quality"} + }, + "user": { + "get_version": upgrade.getCfgVersion, + "location": {"./user"} + } + } + } + + +def register(app: "Application") -> Dict[str, Any]: + return {"version_upgrade": upgrade} diff --git a/plugins/VersionUpgrade/VersionUpgrade56to57/plugin.json b/plugins/VersionUpgrade/VersionUpgrade56to57/plugin.json new file mode 100644 index 0000000000..1752d64aa0 --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade56to57/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Version Upgrade 5.6 to 5.7", + "author": "UltiMaker", + "version": "1.0.0", + "description": "Upgrades configurations from Cura 5.6 to Cura 5.7.", + "api": 8, + "i18n-catalog": "cura" +} diff --git a/resources/definitions/ankermake_m5.def.json b/resources/definitions/ankermake_m5.def.json index 0880f0b007..4e4b3498b3 100644 --- a/resources/definitions/ankermake_m5.def.json +++ b/resources/definitions/ankermake_m5.def.json @@ -112,7 +112,6 @@ "support_interface_density": { "value": 33.333 }, "support_interface_enable": { "value": true }, "support_interface_pattern": { "value": "'grid'" }, - "support_interface_skip_height": { "value": 0.2 }, "support_roof_enable": { "value": true }, "support_xy_distance": { "value": "wall_line_width_0 * 2" }, "support_xy_distance_overhang": { "value": "wall_line_width_0" }, diff --git a/resources/definitions/artillery_base.def.json b/resources/definitions/artillery_base.def.json index d9e71e4333..38d9531f7f 100644 --- a/resources/definitions/artillery_base.def.json +++ b/resources/definitions/artillery_base.def.json @@ -114,7 +114,6 @@ "support_interface_enable": { "value": true }, "support_interface_height": { "value": "layer_height * 4" }, "support_interface_pattern": { "value": "'grid'" }, - "support_interface_skip_height": { "value": 0.2 }, "support_xy_distance": { "value": "wall_line_width_0 * 2" }, "support_xy_distance_overhang": { "value": "wall_line_width_0" }, "support_xy_overrides_z": { "value": "'xy_overrides_z'" }, diff --git a/resources/definitions/atmat_signal_pro_base.def.json b/resources/definitions/atmat_signal_pro_base.def.json index f19dc8920d..cd59e1c169 100644 --- a/resources/definitions/atmat_signal_pro_base.def.json +++ b/resources/definitions/atmat_signal_pro_base.def.json @@ -154,7 +154,6 @@ "support_infill_rate": { "value": "20" }, "support_interface_enable": { "value": "True" }, "support_interface_height": { "value": "1" }, - "support_interface_skip_height": { "value": "layer_height" }, "support_join_distance": { "value": "1" }, "support_offset": { "value": "1.5" }, "support_pattern": { "default_value": "zigzag" }, diff --git a/resources/definitions/biqu_base.def.json b/resources/definitions/biqu_base.def.json index 78edc62b74..a42f4044a0 100755 --- a/resources/definitions/biqu_base.def.json +++ b/resources/definitions/biqu_base.def.json @@ -108,7 +108,6 @@ "support_interface_enable": { "value": true }, "support_interface_height": { "value": "layer_height * 4" }, "support_interface_pattern": { "value": "'grid'" }, - "support_interface_skip_height": { "value": 0.2 }, "support_pattern": { "value": "'zigzag'" }, "support_wall_count": { "value": 1 }, "support_xy_distance": { "value": "wall_line_width_0 * 2" }, diff --git a/resources/definitions/blocks_base.def.json b/resources/definitions/blocks_base.def.json index d83e6b31f6..fde5f912da 100644 --- a/resources/definitions/blocks_base.def.json +++ b/resources/definitions/blocks_base.def.json @@ -97,7 +97,6 @@ "support_interface_enable": { "value": true }, "support_interface_height": { "value": "layer_height * 4" }, "support_interface_pattern": { "value": "'grid'" }, - "support_interface_skip_height": { "value": 0.2 }, "support_pattern": { "value": "'zigzag'" }, "support_xy_distance": { "value": "wall_line_width_0 * 2" }, "support_xy_distance_overhang": { "value": "wall_line_width_0" }, diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 8531fdcbe3..31a67d0122 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -5423,20 +5423,6 @@ } } }, - "support_interface_skip_height": - { - "label": "Support Interface Resolution", - "description": "When checking where there's model above and below the support, take steps of the given height. Lower values will slice slower, while higher values may cause normal support to be printed in some places where there should have been support interface.", - "unit": "mm", - "type": "float", - "default_value": 0.2, - "value": "layer_height", - "minimum_value": "0", - "maximum_value_warning": "support_interface_height", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": true - }, "support_interface_density": { "label": "Support Interface Density", diff --git a/resources/definitions/flyingbear_base.def.json b/resources/definitions/flyingbear_base.def.json index 268d8a169b..8733a85a84 100644 --- a/resources/definitions/flyingbear_base.def.json +++ b/resources/definitions/flyingbear_base.def.json @@ -92,7 +92,6 @@ "support_interface_height": { "value": "layer_height * 4" }, "support_interface_line_width": { "value": "line_width - 0.1" }, "support_interface_pattern": { "value": "'grid'" }, - "support_interface_skip_height": { "value": 0.2 }, "support_pattern": { "value": "'zigzag'" }, "support_wall_count": { "value": 1 }, "support_xy_distance": { "value": "wall_line_width_0 * 2" }, diff --git a/resources/definitions/fusion3_f410.def.json b/resources/definitions/fusion3_f410.def.json index 6f50a15fd8..83fdb8affd 100644 --- a/resources/definitions/fusion3_f410.def.json +++ b/resources/definitions/fusion3_f410.def.json @@ -112,7 +112,6 @@ "support_interface_density": { "value": 33.333 }, "support_interface_height": { "value": "layer_height * 4" }, "support_interface_pattern": { "value": "'grid'" }, - "support_interface_skip_height": { "value": 0.2 }, "support_pattern": { "value": "'zigzag'" }, "support_wall_count": { "value": 0 }, "support_xy_distance": { "value": "wall_line_width_0 * 3" }, diff --git a/resources/definitions/kingroon_base.def.json b/resources/definitions/kingroon_base.def.json index 7b318018f7..b800b81cca 100644 --- a/resources/definitions/kingroon_base.def.json +++ b/resources/definitions/kingroon_base.def.json @@ -133,7 +133,6 @@ "support_interface_enable": { "value": true }, "support_interface_height": { "value": "layer_height * 4" }, "support_interface_pattern": { "value": "'grid'" }, - "support_interface_skip_height": { "value": 0.2 }, "support_pattern": { "value": "'zigzag'" }, "support_wall_count": { "value": 1 }, "support_xy_distance": { "value": "wall_line_width_0 * 2" }, diff --git a/resources/definitions/koonovo_base.def.json b/resources/definitions/koonovo_base.def.json index b22a4267d1..f46c39ec1e 100644 --- a/resources/definitions/koonovo_base.def.json +++ b/resources/definitions/koonovo_base.def.json @@ -70,7 +70,6 @@ "support_interface_enable": { "value": true }, "support_interface_height": { "value": "layer_height * 4" }, "support_interface_pattern": { "value": "'grid'" }, - "support_interface_skip_height": { "value": 0.2 }, "support_pattern": { "value": "'zigzag'" }, "support_wall_count": { "value": 1 }, "support_xy_distance": { "value": "wall_line_width_0 * 2" }, diff --git a/resources/definitions/koonovo_kn3.def.json b/resources/definitions/koonovo_kn3.def.json index ae978b12e0..06cf226ff4 100644 --- a/resources/definitions/koonovo_kn3.def.json +++ b/resources/definitions/koonovo_kn3.def.json @@ -88,7 +88,6 @@ "support_interface_enable": { "value": true }, "support_interface_height": { "value": "layer_height * 4" }, "support_interface_pattern": { "value": "'grid'" }, - "support_interface_skip_height": { "value": 0.2 }, "support_pattern": { "value": "'zigzag'" }, "support_wall_count": { "value": 1 }, "support_xy_distance": { "value": "wall_line_width_0 * 2" }, diff --git a/resources/definitions/koonovo_kn5.def.json b/resources/definitions/koonovo_kn5.def.json index 96ae03a6d9..c8e444f5d4 100644 --- a/resources/definitions/koonovo_kn5.def.json +++ b/resources/definitions/koonovo_kn5.def.json @@ -88,7 +88,6 @@ "support_interface_enable": { "value": true }, "support_interface_height": { "value": "layer_height * 4" }, "support_interface_pattern": { "value": "'grid'" }, - "support_interface_skip_height": { "value": 0.2 }, "support_pattern": { "value": "'zigzag'" }, "support_wall_count": { "value": 1 }, "support_xy_distance": { "value": "wall_line_width_0 * 2" }, diff --git a/resources/definitions/longer_base.def.json b/resources/definitions/longer_base.def.json index fdc78b838b..6010b7af46 100644 --- a/resources/definitions/longer_base.def.json +++ b/resources/definitions/longer_base.def.json @@ -109,7 +109,6 @@ "support_interface_enable": { "value": true }, "support_interface_height": { "value": "layer_height * 4" }, "support_interface_pattern": { "value": "'grid'" }, - "support_interface_skip_height": { "value": 0.2 }, "support_pattern": { "value": "'zigzag'" }, "support_wall_count": { "value": 1 }, "support_xy_distance": { "value": "wall_line_width_0 * 2" }, diff --git a/resources/definitions/mingda_base.def.json b/resources/definitions/mingda_base.def.json index 23dcf21f48..b07dbe458f 100644 --- a/resources/definitions/mingda_base.def.json +++ b/resources/definitions/mingda_base.def.json @@ -119,7 +119,6 @@ "support_interface_enable": { "value": true }, "support_interface_height": { "value": "layer_height * 4" }, "support_interface_pattern": { "value": "'grid'" }, - "support_interface_skip_height": { "value": 0.2 }, "support_pattern": { "value": "'zigzag'" }, "support_wall_count": { "value": 1 }, "support_xy_distance": { "value": "wall_line_width_0 * 2" }, diff --git a/resources/definitions/tank_m_base.def.json b/resources/definitions/tank_m_base.def.json index 3692793259..dfeaa7e9d8 100644 --- a/resources/definitions/tank_m_base.def.json +++ b/resources/definitions/tank_m_base.def.json @@ -70,7 +70,6 @@ "support_interface_enable": { "value": true }, "support_interface_height": { "value": "layer_height * 4" }, "support_interface_pattern": { "value": "'grid'" }, - "support_interface_skip_height": { "value": 0.2 }, "support_pattern": { "value": "'zigzag'" }, "support_wall_count": { "value": 1 }, "support_xy_distance": { "value": "wall_line_width_0 * 2" }, diff --git a/resources/definitions/tronxy_x.def.json b/resources/definitions/tronxy_x.def.json index 683761a81b..233dbb1c64 100644 --- a/resources/definitions/tronxy_x.def.json +++ b/resources/definitions/tronxy_x.def.json @@ -111,7 +111,6 @@ "support_interface_density": { "value": 33.333 }, "support_interface_height": { "value": "layer_height * 4" }, "support_interface_pattern": { "value": "'grid'" }, - "support_interface_skip_height": { "value": 0.2 }, "support_pattern": { "value": "'zigzag'" }, "support_wall_count": { "value": "1 if (support_structure == 'tree') else 0" }, "support_xy_distance": { "value": "wall_line_width_0 * 3" }, diff --git a/resources/definitions/two_trees_base.def.json b/resources/definitions/two_trees_base.def.json index ff01e46f6f..c83476db65 100644 --- a/resources/definitions/two_trees_base.def.json +++ b/resources/definitions/two_trees_base.def.json @@ -68,7 +68,6 @@ "support_interface_density": { "value": 33.333 }, "support_interface_height": { "value": "layer_height * 4" }, "support_interface_pattern": { "value": "'grid'" }, - "support_interface_skip_height": { "value": 0.2 }, "support_pattern": { "value": "'zigzag'" }, "support_wall_count": { "value": "1 if (support_structure == 'tree') else 0" }, "support_xy_distance": { "value": "wall_line_width_0 * 2" }, diff --git a/resources/definitions/vivedino_base.def.json b/resources/definitions/vivedino_base.def.json index a638fc105c..a5cf0def87 100644 --- a/resources/definitions/vivedino_base.def.json +++ b/resources/definitions/vivedino_base.def.json @@ -99,7 +99,6 @@ "support_interface_enable": { "value": true }, "support_interface_height": { "value": "layer_height * 4" }, "support_interface_pattern": { "value": "'grid'" }, - "support_interface_skip_height": { "value": 0.2 }, "support_pattern": { "value": "'zigzag'" }, "support_wall_count": { "value": 1 }, "support_xy_distance": { "value": "wall_line_width_0 * 2" }, diff --git a/resources/i18n/fdmprinter.def.json.pot b/resources/i18n/fdmprinter.def.json.pot index 6b61ec3173..ab63530018 100644 --- a/resources/i18n/fdmprinter.def.json.pot +++ b/resources/i18n/fdmprinter.def.json.pot @@ -3548,14 +3548,6 @@ msgctxt "support_bottom_height description" msgid "The thickness of the support floors. This controls the number of dense layers that are printed on top of places of a model on which support rests." msgstr "" -msgctxt "support_interface_skip_height label" -msgid "Support Interface Resolution" -msgstr "" - -msgctxt "support_interface_skip_height description" -msgid "When checking where there's model above and below the support, take steps of the given height. Lower values will slice slower, while higher values may cause normal support to be printed in some places where there should have been support interface." -msgstr "" - msgctxt "support_interface_density label" msgid "Support Interface Density" msgstr "" diff --git a/resources/quality/beamup_l/beamup_l_coarse.inst.cfg b/resources/quality/beamup_l/beamup_l_coarse.inst.cfg index e298d659f7..2fd1b8afca 100644 --- a/resources/quality/beamup_l/beamup_l_coarse.inst.cfg +++ b/resources/quality/beamup_l/beamup_l_coarse.inst.cfg @@ -33,7 +33,6 @@ support_infill_rate = 20 support_interface_enable = True support_interface_height = 0.60 support_interface_pattern = zigzag -support_interface_skip_height = 0.30 support_offset = 0.8 support_z_distance = 0.4 wall_thickness = 1.6 diff --git a/resources/quality/beamup_l/beamup_l_draft.inst.cfg b/resources/quality/beamup_l/beamup_l_draft.inst.cfg index 16f8536a02..e3cf82651b 100644 --- a/resources/quality/beamup_l/beamup_l_draft.inst.cfg +++ b/resources/quality/beamup_l/beamup_l_draft.inst.cfg @@ -33,7 +33,6 @@ support_infill_rate = 20 support_interface_enable = True support_interface_height = 0.60 support_interface_pattern = zigzag -support_interface_skip_height = 0.20 support_offset = 0.8 support_z_distance = 0.3 wall_thickness = 1.6 diff --git a/resources/quality/beamup_l/beamup_l_extra_fine.inst.cfg b/resources/quality/beamup_l/beamup_l_extra_fine.inst.cfg index cacf5289e7..8b4e8eccc7 100644 --- a/resources/quality/beamup_l/beamup_l_extra_fine.inst.cfg +++ b/resources/quality/beamup_l/beamup_l_extra_fine.inst.cfg @@ -33,7 +33,6 @@ support_infill_rate = 20 support_interface_enable = True support_interface_height = 0.30 support_interface_pattern = zigzag -support_interface_skip_height = 0.06 support_offset = 0.8 support_z_distance = 0.12 wall_thickness = 1.6 diff --git a/resources/quality/beamup_l/beamup_l_fine.inst.cfg b/resources/quality/beamup_l/beamup_l_fine.inst.cfg index f977de059b..87ed50905c 100644 --- a/resources/quality/beamup_l/beamup_l_fine.inst.cfg +++ b/resources/quality/beamup_l/beamup_l_fine.inst.cfg @@ -33,7 +33,6 @@ support_infill_rate = 20 support_interface_enable = True support_interface_height = 0.30 support_interface_pattern = zigzag -support_interface_skip_height = 0.10 support_offset = 0.8 support_z_distance = 0.2 wall_thickness = 1.6 diff --git a/resources/quality/beamup_l/beamup_l_normal.inst.cfg b/resources/quality/beamup_l/beamup_l_normal.inst.cfg index cc78f01198..59ad26fc03 100644 --- a/resources/quality/beamup_l/beamup_l_normal.inst.cfg +++ b/resources/quality/beamup_l/beamup_l_normal.inst.cfg @@ -33,7 +33,6 @@ support_infill_rate = 20 support_interface_enable = True support_interface_height = 0.45 support_interface_pattern = zigzag -support_interface_skip_height = 0.15 support_offset = 0.8 support_z_distance = 0.25 wall_thickness = 1.6 diff --git a/resources/quality/beamup_s/beamup_s_coarse.inst.cfg b/resources/quality/beamup_s/beamup_s_coarse.inst.cfg index d4d8b3551b..673950dca8 100644 --- a/resources/quality/beamup_s/beamup_s_coarse.inst.cfg +++ b/resources/quality/beamup_s/beamup_s_coarse.inst.cfg @@ -33,7 +33,6 @@ support_infill_rate = 20 support_interface_enable = True support_interface_height = 0.60 support_interface_pattern = zigzag -support_interface_skip_height = 0.30 support_offset = 0.8 support_z_distance = 0.2 wall_thickness = 0.8 diff --git a/resources/quality/beamup_s/beamup_s_draft.inst.cfg b/resources/quality/beamup_s/beamup_s_draft.inst.cfg index 14dc4ad964..a307f2d872 100644 --- a/resources/quality/beamup_s/beamup_s_draft.inst.cfg +++ b/resources/quality/beamup_s/beamup_s_draft.inst.cfg @@ -33,7 +33,6 @@ support_infill_rate = 20 support_interface_enable = True support_interface_height = 0.40 support_interface_pattern = zigzag -support_interface_skip_height = 0.20 support_offset = 0.8 support_z_distance = 0.2 wall_thickness = 0.8 diff --git a/resources/quality/beamup_s/beamup_s_extra_fine.inst.cfg b/resources/quality/beamup_s/beamup_s_extra_fine.inst.cfg index fe490f5dd4..daf1c8c5e5 100644 --- a/resources/quality/beamup_s/beamup_s_extra_fine.inst.cfg +++ b/resources/quality/beamup_s/beamup_s_extra_fine.inst.cfg @@ -33,7 +33,6 @@ support_infill_rate = 20 support_interface_enable = True support_interface_height = 0.30 support_interface_pattern = zigzag -support_interface_skip_height = 0.06 support_offset = 0.8 support_z_distance = 0.2 wall_thickness = 0.8 diff --git a/resources/quality/beamup_s/beamup_s_fine.inst.cfg b/resources/quality/beamup_s/beamup_s_fine.inst.cfg index ea86894268..798cc6bb68 100644 --- a/resources/quality/beamup_s/beamup_s_fine.inst.cfg +++ b/resources/quality/beamup_s/beamup_s_fine.inst.cfg @@ -33,7 +33,6 @@ support_infill_rate = 20 support_interface_enable = True support_interface_height = 0.30 support_interface_pattern = zigzag -support_interface_skip_height = 0.10 support_offset = 0.8 support_z_distance = 0.2 wall_thickness = 0.8 diff --git a/resources/quality/beamup_s/beamup_s_normal.inst.cfg b/resources/quality/beamup_s/beamup_s_normal.inst.cfg index c034f9bfd4..cab5840330 100644 --- a/resources/quality/beamup_s/beamup_s_normal.inst.cfg +++ b/resources/quality/beamup_s/beamup_s_normal.inst.cfg @@ -33,7 +33,6 @@ support_infill_rate = 20 support_interface_enable = True support_interface_height = 0.45 support_interface_pattern = zigzag -support_interface_skip_height = 0.15 support_offset = 0.8 support_z_distance = 0.2 wall_thickness = 0.8 diff --git a/resources/quality/flsun_sr/flsun_sr_fine.inst.cfg b/resources/quality/flsun_sr/flsun_sr_fine.inst.cfg index 7ba7f82e9a..c54130d953 100644 --- a/resources/quality/flsun_sr/flsun_sr_fine.inst.cfg +++ b/resources/quality/flsun_sr/flsun_sr_fine.inst.cfg @@ -65,7 +65,6 @@ support_interface_density = 60 support_interface_enable = True support_interface_height = 0.96 support_interface_pattern = grid -support_interface_skip_height = 0.12 support_roof_density = 60 support_type = everywhere support_wall_count = 1 diff --git a/resources/quality/flsun_sr/flsun_sr_normal.inst.cfg b/resources/quality/flsun_sr/flsun_sr_normal.inst.cfg index 5091ec6d97..373e5dbf6f 100644 --- a/resources/quality/flsun_sr/flsun_sr_normal.inst.cfg +++ b/resources/quality/flsun_sr/flsun_sr_normal.inst.cfg @@ -65,7 +65,6 @@ support_interface_density = 60 support_interface_enable = True support_interface_height = 0.6 support_interface_pattern = grid -support_interface_skip_height = 0.2 support_roof_density = 60 support_type = everywhere support_wall_count = 1 diff --git a/resources/quality/flsun_v400/flsun_v400_normal.inst.cfg b/resources/quality/flsun_v400/flsun_v400_normal.inst.cfg index 321f44a8bd..9c99046939 100644 --- a/resources/quality/flsun_v400/flsun_v400_normal.inst.cfg +++ b/resources/quality/flsun_v400/flsun_v400_normal.inst.cfg @@ -100,7 +100,6 @@ support_interface_density = 70 support_interface_enable = True support_interface_height = 0.6 support_interface_pattern = lines -support_interface_skip_height = 0.2 support_pattern = zigzag support_roof_density = 70 support_type = everywhere diff --git a/resources/quality/imade3d_jellybox/imade3d_jellybox_coarse.inst.cfg b/resources/quality/imade3d_jellybox/imade3d_jellybox_coarse.inst.cfg index 4363815718..b84019e791 100644 --- a/resources/quality/imade3d_jellybox/imade3d_jellybox_coarse.inst.cfg +++ b/resources/quality/imade3d_jellybox/imade3d_jellybox_coarse.inst.cfg @@ -65,7 +65,6 @@ support_interface_density = 70 support_interface_enable = True support_interface_height = 2 support_interface_pattern = concentric -support_interface_skip_height = 0.1 support_type = everywhere support_use_towers = False support_xy_distance = 0.8 diff --git a/resources/quality/imade3d_jellybox/imade3d_jellybox_fine.inst.cfg b/resources/quality/imade3d_jellybox/imade3d_jellybox_fine.inst.cfg index ad1786e646..8aa8ee6203 100644 --- a/resources/quality/imade3d_jellybox/imade3d_jellybox_fine.inst.cfg +++ b/resources/quality/imade3d_jellybox/imade3d_jellybox_fine.inst.cfg @@ -65,7 +65,6 @@ support_interface_density = 70 support_interface_enable = True support_interface_height = 2 support_interface_pattern = concentric -support_interface_skip_height = 0.1 support_type = everywhere support_use_towers = False support_xy_distance = 0.8 diff --git a/resources/quality/imade3d_jellybox/imade3d_jellybox_normal.inst.cfg b/resources/quality/imade3d_jellybox/imade3d_jellybox_normal.inst.cfg index 9d20162475..5e6ed2682c 100644 --- a/resources/quality/imade3d_jellybox/imade3d_jellybox_normal.inst.cfg +++ b/resources/quality/imade3d_jellybox/imade3d_jellybox_normal.inst.cfg @@ -65,7 +65,6 @@ support_interface_density = 70 support_interface_enable = True support_interface_height = 2 support_interface_pattern = concentric -support_interface_skip_height = 0.1 support_type = everywhere support_use_towers = False support_xy_distance = 0.8 diff --git a/resources/quality/imade3d_jellybox/imade3d_jellybox_ultrafine.inst.cfg b/resources/quality/imade3d_jellybox/imade3d_jellybox_ultrafine.inst.cfg index 9cf8367db5..db92713bd0 100644 --- a/resources/quality/imade3d_jellybox/imade3d_jellybox_ultrafine.inst.cfg +++ b/resources/quality/imade3d_jellybox/imade3d_jellybox_ultrafine.inst.cfg @@ -65,7 +65,6 @@ support_interface_density = 70 support_interface_enable = True support_interface_height = 2 support_interface_pattern = concentric -support_interface_skip_height = 0.1 support_type = everywhere support_use_towers = False support_xy_distance = 0.8 diff --git a/resources/quality/imade3d_jellybox_2/jb2_global_coarse.inst.cfg b/resources/quality/imade3d_jellybox_2/jb2_global_coarse.inst.cfg index a445dc28be..9fde6a87ea 100644 --- a/resources/quality/imade3d_jellybox_2/jb2_global_coarse.inst.cfg +++ b/resources/quality/imade3d_jellybox_2/jb2_global_coarse.inst.cfg @@ -65,7 +65,6 @@ support_interface_density = 70 support_interface_enable = True support_interface_height = 2 support_interface_pattern = concentric -support_interface_skip_height = 0.1 support_type = everywhere support_use_towers = False support_xy_distance = 0.8 diff --git a/resources/quality/imade3d_jellybox_2/jb2_global_fine.inst.cfg b/resources/quality/imade3d_jellybox_2/jb2_global_fine.inst.cfg index df0a0bf3f0..419fa6b300 100644 --- a/resources/quality/imade3d_jellybox_2/jb2_global_fine.inst.cfg +++ b/resources/quality/imade3d_jellybox_2/jb2_global_fine.inst.cfg @@ -65,7 +65,6 @@ support_interface_density = 70 support_interface_enable = True support_interface_height = 2 support_interface_pattern = concentric -support_interface_skip_height = 0.1 support_type = everywhere support_use_towers = False support_xy_distance = 0.8 diff --git a/resources/quality/imade3d_jellybox_2/jb2_global_normal.inst.cfg b/resources/quality/imade3d_jellybox_2/jb2_global_normal.inst.cfg index be43962f72..c352981f2d 100644 --- a/resources/quality/imade3d_jellybox_2/jb2_global_normal.inst.cfg +++ b/resources/quality/imade3d_jellybox_2/jb2_global_normal.inst.cfg @@ -65,7 +65,6 @@ support_interface_density = 70 support_interface_enable = True support_interface_height = 2 support_interface_pattern = concentric -support_interface_skip_height = 0.1 support_type = everywhere support_use_towers = False support_xy_distance = 0.8 diff --git a/resources/quality/imade3d_jellybox_2/jb2_global_ultrafine.inst.cfg b/resources/quality/imade3d_jellybox_2/jb2_global_ultrafine.inst.cfg index b3b35aca97..a1496e36cc 100644 --- a/resources/quality/imade3d_jellybox_2/jb2_global_ultrafine.inst.cfg +++ b/resources/quality/imade3d_jellybox_2/jb2_global_ultrafine.inst.cfg @@ -65,7 +65,6 @@ support_interface_density = 70 support_interface_enable = True support_interface_height = 2 support_interface_pattern = concentric -support_interface_skip_height = 0.1 support_type = everywhere support_use_towers = False support_xy_distance = 0.8 diff --git a/resources/setting_visibility/expert.cfg b/resources/setting_visibility/expert.cfg index ab0d2aa920..2a71993998 100644 --- a/resources/setting_visibility/expert.cfg +++ b/resources/setting_visibility/expert.cfg @@ -293,7 +293,6 @@ support_bottom_wall_count support_interface_height support_roof_height support_bottom_height -support_interface_skip_height support_interface_density support_roof_density support_bottom_density diff --git a/resources/variants/arjun/arjun300_pva_0.2.inst.cfg b/resources/variants/arjun/arjun300_pva_0.2.inst.cfg index 26440e5486..065fecd92b 100644 --- a/resources/variants/arjun/arjun300_pva_0.2.inst.cfg +++ b/resources/variants/arjun/arjun300_pva_0.2.inst.cfg @@ -21,7 +21,6 @@ support_interface_density = 100 support_interface_enable = True support_interface_height = =layer_height * 5 support_interface_pattern = concentric -support_interface_skip_height = =layer_height support_join_distance = 3 support_offset = 3 support_pattern = triangles diff --git a/resources/variants/arjun/arjun300_pva_0.3.inst.cfg b/resources/variants/arjun/arjun300_pva_0.3.inst.cfg index 5edaddba92..cef64896b1 100644 --- a/resources/variants/arjun/arjun300_pva_0.3.inst.cfg +++ b/resources/variants/arjun/arjun300_pva_0.3.inst.cfg @@ -21,7 +21,6 @@ support_interface_density = 100 support_interface_enable = True support_interface_height = =layer_height * 5 support_interface_pattern = concentric -support_interface_skip_height = =layer_height support_join_distance = 3 support_offset = 3 support_pattern = triangles diff --git a/resources/variants/arjun/arjun300_pva_0.4.inst.cfg b/resources/variants/arjun/arjun300_pva_0.4.inst.cfg index a5ca8ffb7a..273bab3848 100644 --- a/resources/variants/arjun/arjun300_pva_0.4.inst.cfg +++ b/resources/variants/arjun/arjun300_pva_0.4.inst.cfg @@ -21,7 +21,6 @@ support_interface_density = 100 support_interface_enable = True support_interface_height = =layer_height * 5 support_interface_pattern = concentric -support_interface_skip_height = =layer_height support_join_distance = 3 support_offset = 3 support_pattern = triangles diff --git a/resources/variants/arjun/arjun300_pva_0.5.inst.cfg b/resources/variants/arjun/arjun300_pva_0.5.inst.cfg index 2145714b0d..4ac74b10b0 100644 --- a/resources/variants/arjun/arjun300_pva_0.5.inst.cfg +++ b/resources/variants/arjun/arjun300_pva_0.5.inst.cfg @@ -21,7 +21,6 @@ support_interface_density = 100 support_interface_enable = True support_interface_height = =layer_height * 5 support_interface_pattern = concentric -support_interface_skip_height = =layer_height support_join_distance = 3 support_offset = 3 support_pattern = triangles diff --git a/resources/variants/arjun/arjun300_pva_0.6.inst.cfg b/resources/variants/arjun/arjun300_pva_0.6.inst.cfg index 40e0c5f3ba..9522f1a103 100644 --- a/resources/variants/arjun/arjun300_pva_0.6.inst.cfg +++ b/resources/variants/arjun/arjun300_pva_0.6.inst.cfg @@ -21,7 +21,6 @@ support_interface_density = 100 support_interface_enable = True support_interface_height = =layer_height * 5 support_interface_pattern = concentric -support_interface_skip_height = =layer_height support_join_distance = 3 support_offset = 3 support_pattern = triangles diff --git a/resources/variants/arjun/arjun300_pva_0.8.inst.cfg b/resources/variants/arjun/arjun300_pva_0.8.inst.cfg index ee6e5557fb..1e47424034 100644 --- a/resources/variants/arjun/arjun300_pva_0.8.inst.cfg +++ b/resources/variants/arjun/arjun300_pva_0.8.inst.cfg @@ -21,7 +21,6 @@ support_interface_density = 100 support_interface_enable = True support_interface_height = =layer_height * 5 support_interface_pattern = concentric -support_interface_skip_height = =layer_height support_join_distance = 3 support_offset = 3 support_pattern = triangles diff --git a/resources/variants/arjun/arjunpro300_pva_0.2.inst.cfg b/resources/variants/arjun/arjunpro300_pva_0.2.inst.cfg index 60d7f77d7b..3fc340152c 100644 --- a/resources/variants/arjun/arjunpro300_pva_0.2.inst.cfg +++ b/resources/variants/arjun/arjunpro300_pva_0.2.inst.cfg @@ -21,7 +21,6 @@ support_interface_density = 100 support_interface_enable = True support_interface_height = =layer_height * 5 support_interface_pattern = concentric -support_interface_skip_height = =layer_height support_join_distance = 3 support_offset = 3 support_pattern = triangles diff --git a/resources/variants/arjun/arjunpro300_pva_0.3.inst.cfg b/resources/variants/arjun/arjunpro300_pva_0.3.inst.cfg index f4c0c7e37a..8ae2ffb70a 100644 --- a/resources/variants/arjun/arjunpro300_pva_0.3.inst.cfg +++ b/resources/variants/arjun/arjunpro300_pva_0.3.inst.cfg @@ -21,7 +21,6 @@ support_interface_density = 100 support_interface_enable = True support_interface_height = =layer_height * 5 support_interface_pattern = concentric -support_interface_skip_height = =layer_height support_join_distance = 3 support_offset = 3 support_pattern = triangles diff --git a/resources/variants/arjun/arjunpro300_pva_0.4.inst.cfg b/resources/variants/arjun/arjunpro300_pva_0.4.inst.cfg index 25f40aa829..b444d14925 100644 --- a/resources/variants/arjun/arjunpro300_pva_0.4.inst.cfg +++ b/resources/variants/arjun/arjunpro300_pva_0.4.inst.cfg @@ -21,7 +21,6 @@ support_interface_density = 100 support_interface_enable = True support_interface_height = =layer_height * 5 support_interface_pattern = concentric -support_interface_skip_height = =layer_height support_join_distance = 3 support_offset = 3 support_pattern = triangles diff --git a/resources/variants/arjun/arjunpro300_pva_0.5.inst.cfg b/resources/variants/arjun/arjunpro300_pva_0.5.inst.cfg index cbb9ea3deb..e78ca2f27a 100644 --- a/resources/variants/arjun/arjunpro300_pva_0.5.inst.cfg +++ b/resources/variants/arjun/arjunpro300_pva_0.5.inst.cfg @@ -21,7 +21,6 @@ support_interface_density = 100 support_interface_enable = True support_interface_height = =layer_height * 5 support_interface_pattern = concentric -support_interface_skip_height = =layer_height support_join_distance = 3 support_offset = 3 support_pattern = triangles diff --git a/resources/variants/arjun/arjunpro300_pva_0.6.inst.cfg b/resources/variants/arjun/arjunpro300_pva_0.6.inst.cfg index d9459b476a..d6a3770cd9 100644 --- a/resources/variants/arjun/arjunpro300_pva_0.6.inst.cfg +++ b/resources/variants/arjun/arjunpro300_pva_0.6.inst.cfg @@ -21,7 +21,6 @@ support_interface_density = 100 support_interface_enable = True support_interface_height = =layer_height * 5 support_interface_pattern = concentric -support_interface_skip_height = =layer_height support_join_distance = 3 support_offset = 3 support_pattern = triangles diff --git a/resources/variants/arjun/arjunpro300_pva_0.8.inst.cfg b/resources/variants/arjun/arjunpro300_pva_0.8.inst.cfg index cf5df5f37d..c19c8ca79a 100644 --- a/resources/variants/arjun/arjunpro300_pva_0.8.inst.cfg +++ b/resources/variants/arjun/arjunpro300_pva_0.8.inst.cfg @@ -21,7 +21,6 @@ support_interface_density = 100 support_interface_enable = True support_interface_height = =layer_height * 5 support_interface_pattern = concentric -support_interface_skip_height = =layer_height support_join_distance = 3 support_offset = 3 support_pattern = triangles diff --git a/resources/variants/kosher/kosher220_pva_0.2.inst.cfg b/resources/variants/kosher/kosher220_pva_0.2.inst.cfg index e5893c3e65..ea3b821cea 100644 --- a/resources/variants/kosher/kosher220_pva_0.2.inst.cfg +++ b/resources/variants/kosher/kosher220_pva_0.2.inst.cfg @@ -21,7 +21,6 @@ support_interface_density = 100 support_interface_enable = True support_interface_height = =layer_height * 5 support_interface_pattern = concentric -support_interface_skip_height = =layer_height support_join_distance = 3 support_offset = 3 support_pattern = triangles diff --git a/resources/variants/kosher/kosher220_pva_0.3.inst.cfg b/resources/variants/kosher/kosher220_pva_0.3.inst.cfg index e1fbeaaf69..216388c64b 100644 --- a/resources/variants/kosher/kosher220_pva_0.3.inst.cfg +++ b/resources/variants/kosher/kosher220_pva_0.3.inst.cfg @@ -21,7 +21,6 @@ support_interface_density = 100 support_interface_enable = True support_interface_height = =layer_height * 5 support_interface_pattern = concentric -support_interface_skip_height = =layer_height support_join_distance = 3 support_offset = 3 support_pattern = triangles diff --git a/resources/variants/kosher/kosher220_pva_0.4.inst.cfg b/resources/variants/kosher/kosher220_pva_0.4.inst.cfg index 40de699118..024d842630 100644 --- a/resources/variants/kosher/kosher220_pva_0.4.inst.cfg +++ b/resources/variants/kosher/kosher220_pva_0.4.inst.cfg @@ -21,7 +21,6 @@ support_interface_density = 100 support_interface_enable = True support_interface_height = =layer_height * 5 support_interface_pattern = concentric -support_interface_skip_height = =layer_height support_join_distance = 3 support_offset = 3 support_pattern = triangles diff --git a/resources/variants/kosher/kosher220_pva_0.5.inst.cfg b/resources/variants/kosher/kosher220_pva_0.5.inst.cfg index 2a4c88d022..6197e0ab9c 100644 --- a/resources/variants/kosher/kosher220_pva_0.5.inst.cfg +++ b/resources/variants/kosher/kosher220_pva_0.5.inst.cfg @@ -21,7 +21,6 @@ support_interface_density = 100 support_interface_enable = True support_interface_height = =layer_height * 5 support_interface_pattern = concentric -support_interface_skip_height = =layer_height support_join_distance = 3 support_offset = 3 support_pattern = triangles diff --git a/resources/variants/kosher/kosher220_pva_0.6.inst.cfg b/resources/variants/kosher/kosher220_pva_0.6.inst.cfg index a3781a00bd..211a361c2b 100644 --- a/resources/variants/kosher/kosher220_pva_0.6.inst.cfg +++ b/resources/variants/kosher/kosher220_pva_0.6.inst.cfg @@ -21,7 +21,6 @@ support_interface_density = 100 support_interface_enable = True support_interface_height = =layer_height * 5 support_interface_pattern = concentric -support_interface_skip_height = =layer_height support_join_distance = 3 support_offset = 3 support_pattern = triangles diff --git a/resources/variants/kosher/kosher220_pva_0.8.inst.cfg b/resources/variants/kosher/kosher220_pva_0.8.inst.cfg index 4faf6729b6..6f6a9dd6b4 100644 --- a/resources/variants/kosher/kosher220_pva_0.8.inst.cfg +++ b/resources/variants/kosher/kosher220_pva_0.8.inst.cfg @@ -21,7 +21,6 @@ support_interface_density = 100 support_interface_enable = True support_interface_height = =layer_height * 5 support_interface_pattern = concentric -support_interface_skip_height = =layer_height support_join_distance = 3 support_offset = 3 support_pattern = triangles From 16737dccf21165709bacad5c3496b9477d7f2a8d Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Wed, 10 Jan 2024 10:02:46 +0100 Subject: [PATCH 071/269] Set initial fan speed for AA0.25 ABS 0.1mm print mode to 0% to increase adhesion robustness. PP-422 --- resources/quality/ultimaker_s3/um_s3_aa0.25_abs_0.1mm.inst.cfg | 1 + .../quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg | 1 + resources/quality/ultimaker_s5/um_s5_aa0.25_abs_0.1mm.inst.cfg | 1 + .../quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg | 1 + 4 files changed, 4 insertions(+) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_abs_0.1mm.inst.cfg index 5e0afa0015..ec9ff192a9 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_abs_0.1mm.inst.cfg @@ -12,6 +12,7 @@ variant = AA 0.25 weight = 0 [values] +cool_fan_speed_0 = 0 material_print_temperature = =default_material_print_temperature - 20 speed_topbottom = =math.ceil(speed_print * 30 / 55) support_bottom_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg index ada1c2cefb..40058561ac 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg @@ -12,6 +12,7 @@ variant = AA 0.25 weight = 0 [values] +cool_fan_speed_0 = 0 material_print_temperature = =default_material_print_temperature - 20 speed_topbottom = =math.ceil(speed_print * 30 / 55) support_bottom_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_abs_0.1mm.inst.cfg index 2e09727a19..d26fe0daee 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_abs_0.1mm.inst.cfg @@ -12,6 +12,7 @@ variant = AA 0.25 weight = 0 [values] +cool_fan_speed_0 = 0 material_print_temperature = =default_material_print_temperature - 20 speed_topbottom = =math.ceil(speed_print * 30 / 55) support_bottom_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg index 1b6c680650..0dc15571d7 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg @@ -12,6 +12,7 @@ variant = AA 0.25 weight = 0 [values] +cool_fan_speed_0 = 0 material_print_temperature = =default_material_print_temperature - 20 speed_topbottom = =math.ceil(speed_print * 30 / 55) support_bottom_distance = =support_z_distance From ed47c05e4b0d91c6eca826f6f50a398a62f692d9 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 10 Jan 2024 10:36:23 +0100 Subject: [PATCH 072/269] Fix QML warning. done as part of CURA-11396 --- resources/qml/PrinterSelector/PrintSelectorCard.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/PrinterSelector/PrintSelectorCard.qml b/resources/qml/PrinterSelector/PrintSelectorCard.qml index efcbe07c87..1c3e78adbf 100644 --- a/resources/qml/PrinterSelector/PrintSelectorCard.qml +++ b/resources/qml/PrinterSelector/PrintSelectorCard.qml @@ -79,7 +79,7 @@ Rectangle anchors.verticalCenter: extruderIcon.verticalCenter anchors.left: extruderIcon.right anchors.leftMargin: UM.Theme.getSize("default_margin").width - text: modelData.core + text: modelData ? (modelData.core ? modelData.core : "" ) : "" font: UM.Theme.getFont("default_bold") } From 34da282275073432f04ce37cda9d7fbcd3670702 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Wed, 10 Jan 2024 15:09:26 +0100 Subject: [PATCH 073/269] Uranium fixing API breaks. deprecated message shows up when user uses it. will remove them in future CURA-7812 --- resources/qml/Dialogs/AboutDialog.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Dialogs/AboutDialog.qml b/resources/qml/Dialogs/AboutDialog.qml index 79cad92b25..5c80964e38 100644 --- a/resources/qml/Dialogs/AboutDialog.qml +++ b/resources/qml/Dialogs/AboutDialog.qml @@ -58,7 +58,7 @@ UM.Dialog UM.Label { id: version - text: catalog.i18nc("@label","version: %1").arg(CuraApplication.applicationVersion()) + text: catalog.i18nc("@label","version: %1").arg(CuraApplication.version()) font: UM.Theme.getFont("large_bold") color: UM.Theme.getColor("button_text") anchors.right : logo.right From 330dfd8be0dc4ea312273df3e73654ca51618242 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Wed, 10 Jan 2024 15:13:42 +0100 Subject: [PATCH 074/269] Add retry to OAuth token refresh failure CURA-11406 --- cura/OAuth2/AuthorizationHelpers.py | 11 ++++++++--- cura/OAuth2/AuthorizationService.py | 26 +++++++++++++++++++++++--- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/cura/OAuth2/AuthorizationHelpers.py b/cura/OAuth2/AuthorizationHelpers.py index a654ee4bdb..1bc0d545f4 100644 --- a/cura/OAuth2/AuthorizationHelpers.py +++ b/cura/OAuth2/AuthorizationHelpers.py @@ -16,6 +16,7 @@ from UM.TaskManagement.HttpRequestManager import HttpRequestManager # To downlo catalog = i18nCatalog("cura") TOKEN_TIMESTAMP_FORMAT = "%Y-%m-%d %H:%M:%S" +REQUEST_TIMEOUT = 5 # Seconds class AuthorizationHelpers: @@ -52,7 +53,8 @@ class AuthorizationHelpers: data = urllib.parse.urlencode(data).encode("UTF-8"), headers_dict = headers, callback = lambda response: self.parseTokenResponse(response, callback), - error_callback = lambda response, _: self.parseTokenResponse(response, callback) + error_callback = lambda response, _: self.parseTokenResponse(response, callback), + timeout = REQUEST_TIMEOUT ) def getAccessTokenUsingRefreshToken(self, refresh_token: str, callback: Callable[[AuthenticationResponse], None]) -> None: @@ -75,7 +77,9 @@ class AuthorizationHelpers: data = urllib.parse.urlencode(data).encode("UTF-8"), headers_dict = headers, callback = lambda response: self.parseTokenResponse(response, callback), - error_callback = lambda response, _: self.parseTokenResponse(response, callback) + error_callback = lambda response, _: self.parseTokenResponse(response, callback), + urgent = True, + timeout = REQUEST_TIMEOUT ) def parseTokenResponse(self, token_response: QNetworkReply, callback: Callable[[AuthenticationResponse], None]) -> None: @@ -120,7 +124,8 @@ class AuthorizationHelpers: check_token_url, headers_dict = headers, callback = lambda reply: self._parseUserProfile(reply, success_callback, failed_callback), - error_callback = lambda _, _2: failed_callback() if failed_callback is not None else None + error_callback = lambda _, _2: failed_callback() if failed_callback is not None else None, + timeout = REQUEST_TIMEOUT ) def _parseUserProfile(self, reply: QNetworkReply, success_callback: Optional[Callable[[UserProfile], None]], failed_callback: Optional[Callable[[], None]] = None) -> None: diff --git a/cura/OAuth2/AuthorizationService.py b/cura/OAuth2/AuthorizationService.py index 62bf31982a..7a1bfb75f7 100644 --- a/cura/OAuth2/AuthorizationService.py +++ b/cura/OAuth2/AuthorizationService.py @@ -6,13 +6,14 @@ from datetime import datetime, timedelta from typing import Callable, Dict, Optional, TYPE_CHECKING, Union from urllib.parse import urlencode, quote_plus -from PyQt6.QtCore import QUrl +from PyQt6.QtCore import QUrl, QTimer from PyQt6.QtGui import QDesktopServices from UM.Logger import Logger from UM.Message import Message from UM.Signal import Signal from UM.i18n import i18nCatalog +from UM.TaskManagement.HttpRequestManager import HttpRequestManager # To download log-in tokens. from cura.OAuth2.AuthorizationHelpers import AuthorizationHelpers, TOKEN_TIMESTAMP_FORMAT from cura.OAuth2.LocalAuthorizationServer import LocalAuthorizationServer from cura.OAuth2.Models import AuthenticationResponse, BaseModel @@ -53,6 +54,12 @@ class AuthorizationService: self.onAuthStateChanged.connect(self._authChanged) + self._refresh_token_retries = 0 + self._refresh_token_retry_timer = QTimer() + self._refresh_token_retry_timer.setInterval(1000) + self._refresh_token_retry_timer.setSingleShot(True) + self._refresh_token_retry_timer.timeout.connect(self.refreshAccessToken) + def _authChanged(self, logged_in): if logged_in and self._unable_to_get_data_message is not None: self._unable_to_get_data_message.hide() @@ -163,16 +170,29 @@ class AuthorizationService: return def process_auth_data(response: AuthenticationResponse) -> None: + self._currently_refreshing_token = False + if response.success: + self._refresh_token_retries = 0 self._storeAuthData(response) + HttpRequestManager.getInstance().setDelayRequests(False) self.onAuthStateChanged.emit(logged_in = True) else: - Logger.warning("Failed to get a new access token from the server.") - self.onAuthStateChanged.emit(logged_in = False) + if self._refresh_token_retries >= 15: + self._refresh_token_retries = 0 + Logger.warning("Failed to get a new access token from the server, giving up.") + HttpRequestManager.getInstance().setDelayRequests(False) + self.onAuthStateChanged.emit(logged_in = False) + else: + # Retry a bit later, network may be offline right now and will hopefully be back soon + Logger.warning("Failed to get a new access token from the server, retrying later.") + self._refresh_token_retries += 1 + self._refresh_token_retry_timer.start() if self._currently_refreshing_token: Logger.debug("Was already busy refreshing token. Do not start a new request.") return + HttpRequestManager.getInstance().setDelayRequests(True) self._currently_refreshing_token = True self._auth_helpers.getAccessTokenUsingRefreshToken(self._auth_data.refresh_token, process_auth_data) From bb0c17b2fd5c30cb912d5768c010f27309f6f83c Mon Sep 17 00:00:00 2001 From: HellAholic Date: Wed, 10 Jan 2024 15:41:20 +0100 Subject: [PATCH 075/269] Revert "qt6.6 scroll issues" --- conanfile.py | 1 - cura_app.py | 5 ----- packaging/AppImage-builder/AppImageBuilder.yml.jinja | 1 - packaging/AppImage/AppRun | 1 - 4 files changed, 8 deletions(-) diff --git a/conanfile.py b/conanfile.py index 5ebcf5a4c4..a3ca8f1c89 100644 --- a/conanfile.py +++ b/conanfile.py @@ -71,7 +71,6 @@ class CuraConan(ConanFile): self._cura_env = Environment() self._cura_env.define("QML2_IMPORT_PATH", str(self._site_packages.joinpath("PyQt6", "Qt6", "qml"))) self._cura_env.define("QT_PLUGIN_PATH", str(self._site_packages.joinpath("PyQt6", "Qt6", "plugins"))) - self._cura_env.define("QT_QUICK_FLICKABLE_WHEEL_DECELERATION", "5000") if not self.in_local_cache: self._cura_env.define("CURA_DATA_ROOT", str(self._share_dir.joinpath("cura"))) diff --git a/cura_app.py b/cura_app.py index 7e80bbac79..905d8f4ee0 100755 --- a/cura_app.py +++ b/cura_app.py @@ -17,11 +17,6 @@ import faulthandler import os if sys.platform != "linux": # Turns out the Linux build _does_ use this, but we're not making an Enterprise release for that system anyway. os.environ["QT_PLUGIN_PATH"] = "" # Security workaround: Don't need it, and introduces an attack vector, so set to nul. - try: - # try converting to integer - os.environ["QT_QUICK_FLICKABLE_WHEEL_DECELERATION"] = str(int(os.environ["QT_QUICK_FLICKABLE_WHEEL_DECELERATION"])) - except ValueError: - os.environ["QT_QUICK_FLICKABLE_WHEEL_DECELERATION"] = "5000" os.environ["QML2_IMPORT_PATH"] = "" # Security workaround: Don't need it, and introduces an attack vector, so set to nul. os.environ["QT_OPENGL_DLL"] = "" # Security workaround: Don't need it, and introduces an attack vector, so set to nul. diff --git a/packaging/AppImage-builder/AppImageBuilder.yml.jinja b/packaging/AppImage-builder/AppImageBuilder.yml.jinja index ae6cabcaa1..9090a5f209 100644 --- a/packaging/AppImage-builder/AppImageBuilder.yml.jinja +++ b/packaging/AppImage-builder/AppImageBuilder.yml.jinja @@ -45,7 +45,6 @@ AppDir: LD_LIBRARY_PATH: "$APPDIR:$APPDIR/runtime/compat/:$APPDIR/usr/lib/x86_64-linux-gnu:$APPDIR/lib/x86_64-linux-gnu:$APPDIR/usr/lib:$APPDIR/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders" PYTHONPATH: "$APPDIR" QT_PLUGIN_PATH: "$APPDIR/qt/plugins" - QT_QUICK_FLICKABLE_WHEEL_DECELERATION: "5000" QML2_IMPORT_PATH: "$APPDIR/qt/qml" QT_QPA_PLATFORMTHEME: xdgdesktopportal GDK_PIXBUF_MODULEDIR: $APPDIR/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders diff --git a/packaging/AppImage/AppRun b/packaging/AppImage/AppRun index 9926df1878..369ce54c6c 100644 --- a/packaging/AppImage/AppRun +++ b/packaging/AppImage/AppRun @@ -5,7 +5,6 @@ scriptdir=$(dirname $0) export PYTHONPATH="$scriptdir/lib/python3.10" export LD_LIBRARY_PATH=$scriptdir export QT_PLUGIN_PATH="$scriptdir/qt/plugins" -export QT_QUICK_FLICKABLE_WHEEL_DECELERATION="5000" export QML2_IMPORT_PATH="$scriptdir/qt/qml" export QT_QPA_FONTDIR=/usr/share/fonts export QT_QPA_PLATFORMTHEME=xdgdesktopportal From 332222f9aa8e1733ad96f20bee8c1f5788ebb6e6 Mon Sep 17 00:00:00 2001 From: wawanbreton Date: Wed, 10 Jan 2024 15:31:30 +0000 Subject: [PATCH 076/269] Applied printer-linter format --- 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 2066ca5bd9..bc25ce590c 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6900,7 +6900,7 @@ "minimum_value": "0", "maximum_value": "min(0.5 * machine_width, 0.5 * machine_depth)", "settable_per_mesh": false, - "settable_per_extruder": false + "settable_per_extruder": false }, "prime_tower_base_height": { From 34555d4dd138f478911c75b539be9834e6b5317c Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Wed, 10 Jan 2024 17:24:10 +0100 Subject: [PATCH 077/269] Rename prime tower enabled -> mode in profiles --- resources/setting_visibility/advanced.cfg | 2 +- resources/setting_visibility/basic.cfg | 2 +- resources/setting_visibility/expert.cfg | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/resources/setting_visibility/advanced.cfg b/resources/setting_visibility/advanced.cfg index c3451d2c98..1b59302c4d 100644 --- a/resources/setting_visibility/advanced.cfg +++ b/resources/setting_visibility/advanced.cfg @@ -127,7 +127,7 @@ brim_line_count brim_outside_only [dual] -prime_tower_enable +prime_tower_mode prime_tower_position_x prime_tower_position_y prime_tower_brim_enable diff --git a/resources/setting_visibility/basic.cfg b/resources/setting_visibility/basic.cfg index 0193eb26ba..f5552f3cd8 100644 --- a/resources/setting_visibility/basic.cfg +++ b/resources/setting_visibility/basic.cfg @@ -53,7 +53,7 @@ adhesion_type adhesion_extruder_nr [dual] -prime_tower_enable +prime_tower_mode prime_tower_position_x prime_tower_position_y diff --git a/resources/setting_visibility/expert.cfg b/resources/setting_visibility/expert.cfg index ab0d2aa920..5a9b9bd585 100644 --- a/resources/setting_visibility/expert.cfg +++ b/resources/setting_visibility/expert.cfg @@ -356,7 +356,7 @@ raft_fan_speed raft_is_shrink_plate [dual] -prime_tower_enable +prime_tower_mode prime_tower_size prime_tower_min_volume prime_tower_position_x @@ -367,6 +367,7 @@ prime_tower_base_size prime_tower_base_height prime_tower_base_curve_magnitude prime_tower_raft_base_line_spacing +prime_tower_max_bridging_distance ooze_shield_enabled ooze_shield_angle ooze_shield_dist From d0560ae790ad027ee32ab4b87c456299c9642056 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Wed, 10 Jan 2024 17:54:02 +0100 Subject: [PATCH 078/269] restoring qmlregistersingletons in Cura adding wrapper for deprecation warning CURA-7812 --- cura/CuraApplication.py | 42 ++++++++++++++++--- .../Custom/QualitiesWithIntentMenu.qml | 2 +- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 20048e3d3f..67c420028b 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -15,13 +15,13 @@ import numpy from PyQt6.QtCore import QObject, QTimer, QUrl, QUrlQuery, pyqtSignal, pyqtProperty, QEvent, pyqtEnum, QCoreApplication, \ QByteArray from PyQt6.QtGui import QColor, QIcon -from PyQt6.QtQml import qmlRegisterUncreatableType, qmlRegisterUncreatableMetaObject, qmlRegisterSingletonType, qmlRegisterType +from PyQt6.QtQml import qmlRegisterUncreatableMetaObject, qmlRegisterSingletonType, qmlRegisterType from PyQt6.QtWidgets import QMessageBox import UM.Util import cura.Settings.cura_empty_instance_containers from UM.Application import Application -from UM.Decorators import override +from UM.Decorators import override, deprecated from UM.FlameProfiler import pyqtSlot from UM.Logger import Logger from UM.Math.AxisAlignedBox import AxisAlignedBox @@ -191,7 +191,7 @@ class CuraApplication(QtApplication): self.empty_container = None # type: EmptyInstanceContainer self.empty_definition_changes_container = None # type: EmptyInstanceContainer self.empty_variant_container = None # type: EmptyInstanceContainer - self.empty_intent_container = None # type: EmptyInstanceContainer + self.empty_intent_container = None # type: EmptyInstanceContainer self.empty_material_container = None # type: EmptyInstanceContainer self.empty_quality_container = None # type: EmptyInstanceContainer self.empty_quality_changes_container = None # type: EmptyInstanceContainer @@ -1198,18 +1198,43 @@ class CuraApplication(QtApplication): return self._print_information - pyqtSlot(result =QObject) + @pyqtSlot(result=QObject) def getQualityProfilesDropDownMenuModel(self, *args, **kwargs)-> QualityProfilesDropDownMenuModel: if self._quality_profile_drop_down_menu_model is None: self._quality_profile_drop_down_menu_model = QualityProfilesDropDownMenuModel(self) return self._quality_profile_drop_down_menu_model - pyqtSlot(result=QObject) + @pyqtSlot(result=QObject) def getCustomQualityProfilesDropDownMenuModel(self, *args, **kwargs)->CustomQualityProfilesDropDownMenuModel: if self._custom_quality_profile_drop_down_menu_model is None: self._custom_quality_profile_drop_down_menu_model = CustomQualityProfilesDropDownMenuModel(self) return self._custom_quality_profile_drop_down_menu_model + @deprecated("SimpleModeSettingsManager is deprecated and will be removed in major SDK release, Use getSimpleModeSettingsManager() instead", since = "5.7.0") + def getSimpleModeSettingsManagerWrapper(self, *args, **kwargs): + return self.getSimpleModeSettingsManager() + + @deprecated("MachineActionManager is deprecated and will be removed in major SDK release, Use getMachineActionManager() instead", since="5.7.0") + def getMachineActionManagerWrapper(self, *args, **kwargs): + return self.getMachineActionManager() + + @deprecated("QualityManagementModel is deprecated and will be removed in major SDK release, Use getQualityManagementModel() instead", since="5.7.0") + def getQualityManagementModelWrapper(self, *args, **kwargs): + return self.getQualityManagementModel() + + @deprecated("MaterialManagementModel is deprecated and will be removed in major SDK release, Use getMaterialManagementModel() instead", since = "5.7.0") + def getMaterialManagementModelWrapper(self, *args, **kwargs): + return self.getMaterialManagementModel() + + @deprecated("QualityProfilesDropDownMenuModel is deprecated and will be removed in major SDK release, Use getQualityProfilesDropDownMenuModel() instead", since = "5.7.0") + def getQualityProfilesDropDownMenuModelWrapper(self, *args, **kwargs): + return self.getQualityProfilesDropDownMenuModel() + + @deprecated("CustomQualityProfilesDropDownMenuModel is deprecated and will be removed in major SDK release, Use getCustomQualityProfilesDropDownMenuModel() instead", since = "5.7.0") + def getCustomQualityProfilesDropDownMenuModelWrapper(self, *args, **kwargs): + return self.getCustomQualityProfilesDropDownMenuModel() + + def getCuraAPI(self, *args, **kwargs) -> "CuraAPI": return self._cura_API @@ -1238,6 +1263,8 @@ class CuraApplication(QtApplication): qmlRegisterSingletonType(MachineManager, "Cura", 1, 0, self.getMachineManager, "MachineManager") qmlRegisterSingletonType(IntentManager, "Cura", 1, 6, self.getIntentManager, "IntentManager") qmlRegisterSingletonType(SettingInheritanceManager, "Cura", 1, 0, self.getSettingInheritanceManager, "SettingInheritanceManager") + qmlRegisterSingletonType(SimpleModeSettingsManager, "Cura", 1, 0, self.getSimpleModeSettingsManagerWrapper, "SimpleModeSettingsManager") + qmlRegisterSingletonType(MachineActionManager.MachineActionManager, "Cura", 1, 0, self.getMachineActionManagerWrapper, "MachineActionManager") self.processEvents() qmlRegisterType(NetworkingUtil, "Cura", 1, 5, "NetworkingUtil") @@ -1262,11 +1289,14 @@ class CuraApplication(QtApplication): qmlRegisterType(FavoriteMaterialsModel, "Cura", 1, 0, "FavoriteMaterialsModel") qmlRegisterType(GenericMaterialsModel, "Cura", 1, 0, "GenericMaterialsModel") qmlRegisterType(MaterialBrandsModel, "Cura", 1, 0, "MaterialBrandsModel") + qmlRegisterSingletonType(QualityManagementModel, "Cura", 1, 0, self.getQualityManagementModelWrapper,"QualityManagementModel") + qmlRegisterSingletonType(MaterialManagementModel, "Cura", 1, 5, self.getMaterialManagementModelWrapper,"MaterialManagementModel") self.processEvents() qmlRegisterType(DiscoveredPrintersModel, "Cura", 1, 0, "DiscoveredPrintersModel") qmlRegisterType(DiscoveredCloudPrintersModel, "Cura", 1, 7, "DiscoveredCloudPrintersModel") - qmlRegisterType(CustomQualityProfilesDropDownMenuModel, "Cura", 1, 0, "CustomQualityProfilesDropDownMenuModel") + qmlRegisterSingletonType(QualityProfilesDropDownMenuModel, "Cura", 1, 0, self.getQualityProfilesDropDownMenuModelWrapper, "QualityProfilesDropDownMenuModel") + qmlRegisterSingletonType(CustomQualityProfilesDropDownMenuModel, "Cura", 1, 0, self.getCustomQualityProfilesDropDownMenuModelWrapper, "CustomQualityProfilesDropDownMenuModel") qmlRegisterType(NozzleModel, "Cura", 1, 0, "NozzleModel") qmlRegisterType(IntentModel, "Cura", 1, 6, "IntentModel") qmlRegisterType(IntentCategoryModel, "Cura", 1, 6, "IntentCategoryModel") diff --git a/resources/qml/PrintSetupSelector/Custom/QualitiesWithIntentMenu.qml b/resources/qml/PrintSetupSelector/Custom/QualitiesWithIntentMenu.qml index 646e835cb2..9facc5095e 100644 --- a/resources/qml/PrintSetupSelector/Custom/QualitiesWithIntentMenu.qml +++ b/resources/qml/PrintSetupSelector/Custom/QualitiesWithIntentMenu.qml @@ -187,7 +187,7 @@ Popup //Add all the custom profiles. Repeater { - model: Cura.CustomQualityProfilesDropDownMenuModel + model: CuraApplication.getCustomQualityProfilesDropDownMenuModel() MenuButton { onClicked: Cura.MachineManager.setQualityChangesGroup(model.quality_changes_group) From 8f29e8d77bdd141a52528932af9c1a298981990b Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Thu, 11 Jan 2024 09:00:19 +0100 Subject: [PATCH 079/269] Fix wrongful removal of i18n option This caused the option to be always be removed, while we only needed the info of the option to be removed Contributes to CURA-11497 --- conanfile.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index a3ca8f1c89..ea1ac2e1f9 100644 --- a/conanfile.py +++ b/conanfile.py @@ -518,7 +518,8 @@ echo "CURA_APP_NAME={{ cura_app_name }}" >> ${{ env_prefix }}GITHUB_ENV del self.info.options.cloud_api_version del self.info.options.display_name del self.info.options.cura_debug_mode - self.options.rm_safe("enable_i18n") + if self.options.get_safe("enable_i18n", False): + del self.info.options.enable_i18n # TODO: Use the hash of requirements.txt and requirements-ultimaker.txt, Because changing these will actually result in a different # Cura. This is needed because the requirements.txt aren't managed by Conan and therefor not resolved in the package_id. This isn't From b7970dadee75b0c4f029f4503062624f4b873410 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Thu, 11 Jan 2024 13:03:48 +0100 Subject: [PATCH 080/269] Setting QT_QUICK_FLICKABLE_WHEEL_DECELERATION only while opening cura application CURA-11468 --- conanfile.py | 1 - cura_app.py | 9 ++++----- packaging/AppImage-builder/AppImageBuilder.yml.jinja | 1 - packaging/AppImage/AppRun | 1 - 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/conanfile.py b/conanfile.py index 5ebcf5a4c4..a3ca8f1c89 100644 --- a/conanfile.py +++ b/conanfile.py @@ -71,7 +71,6 @@ class CuraConan(ConanFile): self._cura_env = Environment() self._cura_env.define("QML2_IMPORT_PATH", str(self._site_packages.joinpath("PyQt6", "Qt6", "qml"))) self._cura_env.define("QT_PLUGIN_PATH", str(self._site_packages.joinpath("PyQt6", "Qt6", "plugins"))) - self._cura_env.define("QT_QUICK_FLICKABLE_WHEEL_DECELERATION", "5000") if not self.in_local_cache: self._cura_env.define("CURA_DATA_ROOT", str(self._share_dir.joinpath("cura"))) diff --git a/cura_app.py b/cura_app.py index 7e80bbac79..87cd1a59ed 100755 --- a/cura_app.py +++ b/cura_app.py @@ -15,13 +15,12 @@ if "" in sys.path: import argparse import faulthandler import os + +# try converting to integer +os.environ["QT_QUICK_FLICKABLE_WHEEL_DECELERATION"] = str(int(os.environ.get("QT_QUICK_FLICKABLE_WHEEL_DECELERATION", "5000"))) + if sys.platform != "linux": # Turns out the Linux build _does_ use this, but we're not making an Enterprise release for that system anyway. os.environ["QT_PLUGIN_PATH"] = "" # Security workaround: Don't need it, and introduces an attack vector, so set to nul. - try: - # try converting to integer - os.environ["QT_QUICK_FLICKABLE_WHEEL_DECELERATION"] = str(int(os.environ["QT_QUICK_FLICKABLE_WHEEL_DECELERATION"])) - except ValueError: - os.environ["QT_QUICK_FLICKABLE_WHEEL_DECELERATION"] = "5000" os.environ["QML2_IMPORT_PATH"] = "" # Security workaround: Don't need it, and introduces an attack vector, so set to nul. os.environ["QT_OPENGL_DLL"] = "" # Security workaround: Don't need it, and introduces an attack vector, so set to nul. diff --git a/packaging/AppImage-builder/AppImageBuilder.yml.jinja b/packaging/AppImage-builder/AppImageBuilder.yml.jinja index ae6cabcaa1..9090a5f209 100644 --- a/packaging/AppImage-builder/AppImageBuilder.yml.jinja +++ b/packaging/AppImage-builder/AppImageBuilder.yml.jinja @@ -45,7 +45,6 @@ AppDir: LD_LIBRARY_PATH: "$APPDIR:$APPDIR/runtime/compat/:$APPDIR/usr/lib/x86_64-linux-gnu:$APPDIR/lib/x86_64-linux-gnu:$APPDIR/usr/lib:$APPDIR/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders" PYTHONPATH: "$APPDIR" QT_PLUGIN_PATH: "$APPDIR/qt/plugins" - QT_QUICK_FLICKABLE_WHEEL_DECELERATION: "5000" QML2_IMPORT_PATH: "$APPDIR/qt/qml" QT_QPA_PLATFORMTHEME: xdgdesktopportal GDK_PIXBUF_MODULEDIR: $APPDIR/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders diff --git a/packaging/AppImage/AppRun b/packaging/AppImage/AppRun index 9926df1878..369ce54c6c 100644 --- a/packaging/AppImage/AppRun +++ b/packaging/AppImage/AppRun @@ -5,7 +5,6 @@ scriptdir=$(dirname $0) export PYTHONPATH="$scriptdir/lib/python3.10" export LD_LIBRARY_PATH=$scriptdir export QT_PLUGIN_PATH="$scriptdir/qt/plugins" -export QT_QUICK_FLICKABLE_WHEEL_DECELERATION="5000" export QML2_IMPORT_PATH="$scriptdir/qt/qml" export QT_QPA_FONTDIR=/usr/share/fonts export QT_QPA_PLATFORMTHEME=xdgdesktopportal From db94117cf18ec9f9ec93ceb9d92844401c52292e Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Thu, 11 Jan 2024 13:08:47 +0100 Subject: [PATCH 081/269] description changed CURA-11468 --- cura_app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura_app.py b/cura_app.py index 87cd1a59ed..bcea032789 100755 --- a/cura_app.py +++ b/cura_app.py @@ -16,7 +16,7 @@ import argparse import faulthandler import os -# try converting to integer +# set the environment variable QT_QUICK_FLICKABLE_WHEEL_DECELERATION to 5000 as mentioned in qt6.6 update log to overcome scroll related issues os.environ["QT_QUICK_FLICKABLE_WHEEL_DECELERATION"] = str(int(os.environ.get("QT_QUICK_FLICKABLE_WHEEL_DECELERATION", "5000"))) if sys.platform != "linux": # Turns out the Linux build _does_ use this, but we're not making an Enterprise release for that system anyway. From f19e6347820b868f495d5a0a31d982ff7abb9623 Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Fri, 12 Jan 2024 09:43:46 +0100 Subject: [PATCH 082/269] Set the printing temperature (instead of initial) and do not wait for setpoint to be reached (the 5s wait after that command will be enough + Cura also directly does a M109 after the switch) PP-417 --- resources/extruders/ultimaker_methodx_extruder_left.def.json | 2 +- resources/extruders/ultimaker_methodx_extruder_right.def.json | 2 +- resources/extruders/ultimaker_methodxl_extruder_left.def.json | 2 +- resources/extruders/ultimaker_methodxl_extruder_right.def.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/extruders/ultimaker_methodx_extruder_left.def.json b/resources/extruders/ultimaker_methodx_extruder_left.def.json index 273a2c922e..41b2322ff3 100644 --- a/resources/extruders/ultimaker_methodx_extruder_left.def.json +++ b/resources/extruders/ultimaker_methodx_extruder_left.def.json @@ -15,7 +15,7 @@ "maximum_value": "1" }, "machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S1.0\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" }, - "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM109 S{material_initial_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed/100}" }, + "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM104 S{material_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed/100}" }, "machine_nozzle_offset_x": { "default_value": 0 }, "machine_nozzle_offset_y": { "default_value": 0 }, "machine_nozzle_size": { "default_value": 0.4 }, diff --git a/resources/extruders/ultimaker_methodx_extruder_right.def.json b/resources/extruders/ultimaker_methodx_extruder_right.def.json index bb8f1d89c2..0524d73e94 100644 --- a/resources/extruders/ultimaker_methodx_extruder_right.def.json +++ b/resources/extruders/ultimaker_methodx_extruder_right.def.json @@ -15,7 +15,7 @@ "maximum_value": "1" }, "machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S1.0\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" }, - "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM109 S{material_initial_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed/100}" }, + "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM104 S{material_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed/100}" }, "machine_nozzle_offset_x": { "default_value": 0 }, "machine_nozzle_offset_y": { "default_value": 0 }, "machine_nozzle_size": { "default_value": 0.4 }, diff --git a/resources/extruders/ultimaker_methodxl_extruder_left.def.json b/resources/extruders/ultimaker_methodxl_extruder_left.def.json index ba4a3f0157..b37cd5e446 100644 --- a/resources/extruders/ultimaker_methodxl_extruder_left.def.json +++ b/resources/extruders/ultimaker_methodxl_extruder_left.def.json @@ -15,7 +15,7 @@ "maximum_value": "1" }, "machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S1.0\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" }, - "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM109 S{material_initial_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed/100}" }, + "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM104 S{material_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed/100}" }, "machine_nozzle_offset_x": { "default_value": 0 }, "machine_nozzle_offset_y": { "default_value": 0 }, "machine_nozzle_size": { "default_value": 0.4 }, diff --git a/resources/extruders/ultimaker_methodxl_extruder_right.def.json b/resources/extruders/ultimaker_methodxl_extruder_right.def.json index 32fbf1dd08..8a0b0e4635 100644 --- a/resources/extruders/ultimaker_methodxl_extruder_right.def.json +++ b/resources/extruders/ultimaker_methodxl_extruder_right.def.json @@ -15,7 +15,7 @@ "maximum_value": "1" }, "machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S1.0\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" }, - "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM109 S{material_initial_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed/100}" }, + "machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM104 S{material_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed/100}" }, "machine_nozzle_offset_x": { "default_value": 0 }, "machine_nozzle_offset_y": { "default_value": 0 }, "machine_nozzle_size": { "default_value": 0.4 }, From 90472bb6477fb7f1027ecdcba38a33ff1e3e55a6 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Fri, 12 Jan 2024 10:57:24 +0100 Subject: [PATCH 083/269] Use Arcus with published Sentry debug-files Contributes to CURA-11482 --- conandata.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conandata.yml b/conandata.yml index dcf883c630..a3456c44b1 100644 --- a/conandata.yml +++ b/conandata.yml @@ -6,7 +6,7 @@ requirements: - "fdm_materials/(latest)@ultimaker/testing" - "curaengine_plugin_gradual_flow/(latest)@ultimaker/stable" - "dulcificum/latest@ultimaker/testing" - - "pyarcus/5.3.0" + - "arcus/(latest)@ultimaker/cura_11482" - "pysavitar/5.3.0" - "pynest2d/5.3.0" - "curaengine_grpc_definitions/(latest)@ultimaker/testing" From ec1c82535263761ba8c72a6cbd74a32a96ee5797 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Fri, 12 Jan 2024 11:00:18 +0100 Subject: [PATCH 084/269] Don't package pdb Contributes to CURA-11482 --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index ea1ac2e1f9..7ce196c90d 100644 --- a/conanfile.py +++ b/conanfile.py @@ -242,7 +242,7 @@ class CuraConan(ConanFile): self.output.warning(f"Source path for binary {binary['binary']} does not exist") continue - for bin in Path(src_path).glob(binary["binary"] + "*[.exe|.dll|.so|.dylib|.so.|.pdb]*"): + for bin in Path(src_path).glob(binary["binary"] + "*[.exe|.dll|.so|.dylib|.so.]*"): binaries.append((str(bin), binary["dst"])) for bin in Path(src_path).glob(binary["binary"]): binaries.append((str(bin), binary["dst"])) From 0661fe5dcb0b6b3796fd57e04f07fab5c51cd0f7 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Fri, 12 Jan 2024 11:04:31 +0100 Subject: [PATCH 085/269] Enable Sentry for Arcus Contributes to CURA-11482 --- conanfile.py | 1 + 1 file changed, 1 insertion(+) diff --git a/conanfile.py b/conanfile.py index 7ce196c90d..9eac9218b1 100644 --- a/conanfile.py +++ b/conanfile.py @@ -320,6 +320,7 @@ class CuraConan(ConanFile): self.options["openssl"].shared = True if self.conf.get("user.curaengine:sentry_url", "", check_type=str) != "": self.options["curaengine"].enable_sentry = True + self.options["arcus"].enable_sentry = True def validate(self): version = self.conf.get("user.cura:version", default = self.version, check_type = str) From 34e7ea81850e85f6e3f4a4a22acf016dabd2b28b Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Fri, 12 Jan 2024 14:28:01 +0100 Subject: [PATCH 086/269] Use clipper with Sentry support Contributes to CURA-11482 --- conanfile.py | 1 + 1 file changed, 1 insertion(+) diff --git a/conanfile.py b/conanfile.py index 9eac9218b1..3402e4dc54 100644 --- a/conanfile.py +++ b/conanfile.py @@ -336,6 +336,7 @@ class CuraConan(ConanFile): for req in self.conan_data["requirements_internal"]: self.requires(req) self.requires("cpython/3.10.4@ultimaker/stable") + self.requires("clipper/6.4.2@ultimaker/cura_11482") # TODO: change channel to `testing` once merged self.requires("openssl/3.2.0") self.requires("boost/1.82.0") self.requires("spdlog/1.12.0") From 2bcdacef7239779db21cef3a069e174ff4a4831d Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Sat, 13 Jan 2024 11:12:46 +0100 Subject: [PATCH 087/269] Allow for opt-in of DF User name for Sentry crash reports This will help us with triage of bugs for our customers. Contributes to CURA-11482 --- .../CuraEngineBackend/CuraEngineBackend.py | 10 +++- resources/qml/Preferences/GeneralPage.qml | 47 ++++++++++++++++++- 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 818766d766..f67d14aafe 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -164,6 +164,7 @@ class CuraEngineBackend(QObject, Backend): application.getPreferences().addPreference("general/auto_slice", False) application.getPreferences().addPreference("info/send_engine_crash", True) + application.getPreferences().addPreference("info/anonymous_engine_crash_report", True) self._use_timer: bool = False @@ -198,6 +199,7 @@ class CuraEngineBackend(QObject, Backend): # Ensure that the initial value for send_engine_crash is handled correctly. application.callLater(self._onPreferencesChanged, "info/send_engine_crash") + application.callLater(self._onPreferencesChanged, "info/anonymous_engine_crash_report") def startPlugins(self) -> None: """ @@ -1094,14 +1096,18 @@ class CuraEngineBackend(QObject, Backend): self._change_timer.timeout.disconnect(self.slice) def _onPreferencesChanged(self, preference: str) -> None: - if preference != "general/auto_slice" and preference != "info/send_engine_crash": + if preference != "general/auto_slice" and preference != "info/send_engine_crash" and preference != "info/anonymous_engine_crash_report": return if preference == "general/auto_slice": auto_slice = self.determineAutoSlicing() if auto_slice: self._change_timer.start() elif preference == "info/send_engine_crash": - os.environ["use_sentry"] = "1" if CuraApplication.getInstance().getPreferences().getValue("info/send_engine_crash") else "0" + os.environ["USE_SENTRY"] = "1" if CuraApplication.getInstance().getPreferences().getValue("info/send_engine_crash") else "0" + elif preference == "info/anonymous_engine_crash_report": + account = CuraApplication.getInstance().getCuraAPI().account + if account and account.isLoggedIn and not CuraApplication.getInstance().getPreferences().getValue("info/anonymous_engine_crash_report"): + os.environ["CURAENGINE_SENTRY_USER"] = account.userName def tickle(self) -> None: """Tickle the backend so in case of auto slicing, it starts the timer.""" diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index 587084444c..708cc4a441 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -124,6 +124,9 @@ UM.PreferencesPage UM.Preferences.resetPreference("info/send_engine_crash") sendEngineCrashCheckbox.checked = boolCheck(UM.Preferences.getValue("info/send_engine_crash")) + UM.Preferences.resetPreference("info/anonymous_engine_crash_report") + sendEngineCrashCheckboxAnonymous.checked = boolCheck(UM.Preferences.getValue("info/anonymous_engine_crash_report")) + UM.Preferences.resetPreference("info/automatic_update_check") checkUpdatesCheckbox.checked = boolCheck(UM.Preferences.getValue("info/automatic_update_check")) @@ -859,11 +862,12 @@ UM.PreferencesPage font: UM.Theme.getFont("medium_bold") text: catalog.i18nc("@label", "Privacy") } + UM.TooltipArea { width: childrenRect.width height: visible ? childrenRect.height : 0 - text: catalog.i18nc("@info:tooltip", "Should slicing crashes be automatically reported to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored.") + text: catalog.i18nc("@info:tooltip", "Should slicing crashes be automatically reported to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored, unless you give explicit permission.") UM.CheckBox { @@ -874,6 +878,47 @@ UM.PreferencesPage } } + ButtonGroup + { + id: curaCrashGroup + buttons: [sendEngineCrashCheckboxAnonymous, sendEngineCrashCheckboxUser] + } + + UM.TooltipArea + { + width: childrenRect.width + height: visible ? childrenRect.height : 0 + visible: Cura.API.account.isLoggedIn + text: catalog.i18nc("@info:tooltip", "Send crash reports without any personally identifiable information or models data to UltiMaker.") + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + Cura.RadioButton + { + id: sendEngineCrashCheckboxAnonymous + text: catalog.i18nc("@option:radio", "Anonymous crash reports") + enabled: sendEngineCrashCheckbox.checked + checked: boolCheck(UM.Preferences.getValue("info/anonymous_engine_crash_report")) + onClicked: UM.Preferences.setValue("info/anonymous_engine_crash_report", true) + } + } + UM.TooltipArea + { + width: childrenRect.width + height: visible ? childrenRect.height : 0 + visible: Cura.API.account.isLoggedIn + text: catalog.i18nc("@info:tooltip", "Send crash reports with your registered UltiMaker account email adress to UltiMaker. No model data is being send.") + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + Cura.RadioButton + { + id: sendEngineCrashCheckboxUser + text: catalog.i18nc("@option:radio", "Crash reports with email adress") + enabled: sendEngineCrashCheckbox.checked + checked: !boolCheck(UM.Preferences.getValue("info/anonymous_engine_crash_report")) && Cura.API.account.isLoggedIn + onClicked: UM.Preferences.setValue("info/anonymous_engine_crash_report", false) + } + } + UM.TooltipArea { width: childrenRect.width From a4137676af257ab391a7102f0c01c2716e439e57 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 15 Jan 2024 09:56:14 +0100 Subject: [PATCH 088/269] Settings name consistency --- resources/definitions/fdmprinter.def.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index bc25ce590c..1f348f2828 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6789,8 +6789,8 @@ "options": { "none": "None", - "optimized_consistent": "Bucket", - "optimized": "Sparse" + "bucket": "Bucket", + "sparse": "Sparse" }, "default_value": "none", "enabled": "extruders_enabled_count > 1", @@ -6835,7 +6835,7 @@ "default_value": 5, "minimum_value": "line_width", "maximum_value_warning": "10.0", - "enabled": "resolveOrValue('prime_tower_mode') == 'optimized' or resolveOrValue('prime_tower_mode') == 'optimized_consistent'", + "enabled": "resolveOrValue('prime_tower_mode') == 'sparse' or resolveOrValue('prime_tower_mode') == 'bucket'", "settable_per_mesh": false, "settable_per_extruder": true }, From e91322d0707a44e4687848ce793a619d272c328d Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Mon, 15 Jan 2024 08:06:16 +0100 Subject: [PATCH 089/269] ALso enable Sentry for Clipper Contributes to CURA-11482 --- conanfile.py | 1 + 1 file changed, 1 insertion(+) diff --git a/conanfile.py b/conanfile.py index 3402e4dc54..4aa0b07bbf 100644 --- a/conanfile.py +++ b/conanfile.py @@ -321,6 +321,7 @@ class CuraConan(ConanFile): if self.conf.get("user.curaengine:sentry_url", "", check_type=str) != "": self.options["curaengine"].enable_sentry = True self.options["arcus"].enable_sentry = True + self.options["clipper"].enable_sentry = True def validate(self): version = self.conf.get("user.cura:version", default = self.version, check_type = str) From 773805963169eee52b6c4b0abb4d8d789a22f8ba Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Mon, 15 Jan 2024 10:44:43 +0100 Subject: [PATCH 090/269] Add optional (opt-in) project_name to Sentry Needed for automatic Issue handling in the future Contributes to CURA-11482 --- plugins/CuraEngineBackend/Cura.proto | 1 + plugins/CuraEngineBackend/StartSliceJob.py | 5 +++++ resources/qml/Preferences/GeneralPage.qml | 4 ++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/CuraEngineBackend/Cura.proto b/plugins/CuraEngineBackend/Cura.proto index 9593b83528..b03298f695 100644 --- a/plugins/CuraEngineBackend/Cura.proto +++ b/plugins/CuraEngineBackend/Cura.proto @@ -35,6 +35,7 @@ message Slice repeated EnginePlugin engine_plugins = 5; string sentry_id = 6; // The anonymized Sentry user id that requested the slice string cura_version = 7; // The version of Cura that requested the slice + optional string project_name = 8; // The name of the project that requested the slice } message Extruder diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 935eb81afa..8826d2e1f6 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -340,6 +340,11 @@ class StartSliceJob(Job): self._slice_message.sentry_id = f"{user_id}" self._slice_message.cura_version = CuraVersion + # Add the project name to the message if the user allows for non-anonymous crash data collection. + account = CuraApplication.getInstance().getCuraAPI().account + if account and account.isLoggedIn and not CuraApplication.getInstance().getPreferences().getValue("info/anonymous_engine_crash_report"): + self._slice_message.project_name = CuraApplication.getInstance().getPrintInformation().baseName + # Build messages for extruder stacks for extruder_stack in global_stack.extruderList: self._buildExtruderMessage(extruder_stack) diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index 708cc4a441..e540fc1b1f 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -906,13 +906,13 @@ UM.PreferencesPage width: childrenRect.width height: visible ? childrenRect.height : 0 visible: Cura.API.account.isLoggedIn - text: catalog.i18nc("@info:tooltip", "Send crash reports with your registered UltiMaker account email adress to UltiMaker. No model data is being send.") + text: catalog.i18nc("@info:tooltip", "Send crash reports with your registered UltiMaker account name and the project name to UltiMaker Sentry. No actual model data is being send.") anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_margin").width Cura.RadioButton { id: sendEngineCrashCheckboxUser - text: catalog.i18nc("@option:radio", "Crash reports with email adress") + text: catalog.i18nc("@option:radio", "Send crash reports with UltiMaker account name") enabled: sendEngineCrashCheckbox.checked checked: !boolCheck(UM.Preferences.getValue("info/anonymous_engine_crash_report")) && Cura.API.account.isLoggedIn onClicked: UM.Preferences.setValue("info/anonymous_engine_crash_report", false) From 783f51aef2a020b7aa18a83d6a85d80909eb3767 Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Mon, 15 Jan 2024 11:48:23 +0100 Subject: [PATCH 091/269] Let the wall count of the middle and top raft interface follow the raft wall count PP-414 --- resources/definitions/ultimaker_method_base.def.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/definitions/ultimaker_method_base.def.json b/resources/definitions/ultimaker_method_base.def.json index 4f03a8dbe1..16464f0e67 100644 --- a/resources/definitions/ultimaker_method_base.def.json +++ b/resources/definitions/ultimaker_method_base.def.json @@ -361,8 +361,10 @@ "raft_interface_line_width": { "value": 0.7 }, "raft_interface_speed": { "value": 90 }, "raft_interface_thickness": { "value": 0.3 }, - "raft_margin": { "value": 3 }, + "raft_interface_wall_count": { "value": "raft_wall_count" }, + "raft_margin": { "value": 1.2 }, "raft_surface_extruder_nr": { "value": "int(anyExtruderWithMaterial('material_is_support_material')) if support_enable and extruderValue(support_extruder_nr,'material_is_support_material') else raft_base_extruder_nr" }, + "raft_surface_wall_count": { "value": "raft_wall_count" }, "retraction_amount": { "value": 0.75 }, "retraction_combing": { "value": "'off'" }, "retraction_combing_max_distance": { "value": "speed_travel / 10" }, From fe440a664350441c0d3f9aa8d3a635a16667deac Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 15 Jan 2024 11:52:11 +0100 Subject: [PATCH 092/269] Allow for expressions in start/end machine/extruder code extruder_nr field CURA-11536 --- plugins/CuraEngineBackend/StartSliceJob.py | 49 ++++++++++++---------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 935eb81afa..fda1542e0a 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023 UltiMaker +# Copyright (c) 2024 UltiMaker # Cura is released under the terms of the LGPLv3 or higher. import uuid @@ -63,13 +63,12 @@ class GcodeStartEndFormatter(Formatter): # will be used. Alternatively, if the expression is formatted as "{[expression], [extruder_nr]}", # then the expression will be evaluated with the extruder stack of the specified extruder_nr. - _extruder_regex = re.compile(r"^\s*(?P.*)\s*,\s*(?P\d+)\s*$") + _extruder_regex = re.compile(r"^\s*(?P.*)\s*,\s*(?P.*)\s*$") - def __init__(self, default_extruder_nr: int = -1, *, - additional_per_extruder_settings: Optional[Dict[str, Dict[str, any]]] = None) -> None: + def __init__(self, all_extruder_settings: Dict[str, Any], default_extruder_nr: int = -1) -> None: super().__init__() + self._all_extruder_settings: Dict[str, Any] = all_extruder_settings self._default_extruder_nr: int = default_extruder_nr - self._additional_per_extruder_settings: Optional[Dict[str, Dict[str, any]]] = additional_per_extruder_settings def get_field(self, field_name, args: [str], kwargs: dict) -> Tuple[str, str]: # get_field method parses all fields in the format-string and parses them individually to the get_value method. @@ -88,22 +87,31 @@ class GcodeStartEndFormatter(Formatter): if expression in post_slice_data_variables: return f"{{{expression}}}" - extruder_nr = self._default_extruder_nr + extruder_nr = str(self._default_extruder_nr) # The settings may specify a specific extruder to use. This is done by - # formatting the expression as "{expression}, {extruder_nr}". If the + # formatting the expression as "{expression}, {extruder_nr_expr}". If the # expression is formatted like this, we extract the extruder_nr and use # it to get the value from the correct extruder stack. match = self._extruder_regex.match(expression) if match: expression = match.group("expression") - extruder_nr = int(match.group("extruder_nr")) + extruder_nr_expr = match.group("extruder_nr_expr") - if self._additional_per_extruder_settings is not None and str( - extruder_nr) in self._additional_per_extruder_settings: - additional_variables = self._additional_per_extruder_settings[str(extruder_nr)] + if extruder_nr_expr.isdigit(): + extruder_nr = extruder_nr_expr + else: + # We get the value of the extruder_nr_expr from `_all_extruder_settings` dictionary + # rather than the global container stack. The `_all_extruder_settings["-1"]` is a + # dict-representation of the global container stack, with additional properties such + # as `initial_extruder_nr`. As users may enter such expressions we can't use the + # global container stack. + extruder_nr = self._all_extruder_settings["-1"].get(extruder_nr_expr, "-1") + + if extruder_nr in self._all_extruder_settings: + additional_variables = self._all_extruder_settings[extruder_nr] else: - additional_variables = dict() + additional_variables = self._all_extruder_settings["-1"] # Add the arguments and keyword arguments to the additional settings. These # are currently _not_ used, but they are added for consistency with the @@ -113,7 +121,7 @@ class GcodeStartEndFormatter(Formatter): for key, value in kwargs.items(): additional_variables[key] = value - if extruder_nr == -1: + if extruder_nr == "-1": container_stack = CuraApplication.getInstance().getGlobalContainerStack() else: container_stack = ExtruderManager.getInstance().getExtruderStack(extruder_nr) @@ -121,7 +129,6 @@ class GcodeStartEndFormatter(Formatter): setting_function = SettingFunction(expression) value = setting_function(container_stack, additional_variables=additional_variables) - return value @@ -131,12 +138,13 @@ class StartSliceJob(Job): def __init__(self, slice_message: Arcus.PythonMessage) -> None: super().__init__() - self._scene = CuraApplication.getInstance().getController().getScene() #type: Scene + self._scene: Scene = CuraApplication.getInstance().getController().getScene() self._slice_message: Arcus.PythonMessage = slice_message - self._is_cancelled = False #type: bool - self._build_plate_number = None #type: Optional[int] + self._is_cancelled: bool = False + self._build_plate_number: Optional[int] = None - self._all_extruders_settings = None #type: Optional[Dict[str, Any]] # cache for all setting values from all stacks (global & extruder) for the current machine + # cache for all setting values from all stacks (global & extruder) for the current machine + self._all_extruders_settings: Optional[Dict[str, Any]] = None def getSliceMessage(self) -> Arcus.PythonMessage: return self._slice_message @@ -471,10 +479,7 @@ class StartSliceJob(Job): # Get "replacement-keys" for the extruders. In the formatter the settings stack is used to get the # replacement values for the setting-keys. However, the values for `material_id`, `material_type`, # etc are not in the settings stack. - additional_per_extruder_settings = self._all_extruders_settings.copy() - additional_per_extruder_settings["default_extruder_nr"] = default_extruder_nr - fmt = GcodeStartEndFormatter(default_extruder_nr=default_extruder_nr, - additional_per_extruder_settings=additional_per_extruder_settings) + fmt = GcodeStartEndFormatter(self._all_extruders_settings, default_extruder_nr=default_extruder_nr) return str(fmt.format(value)) except: Logger.logException("w", "Unable to do token replacement on start/end g-code") From 5da4dfcb705b519ded069245fd0cf5bfbaf0f244 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 15 Jan 2024 12:03:42 +0100 Subject: [PATCH 093/269] Improve unhappy flow CURA-11536 --- plugins/CuraEngineBackend/StartSliceJob.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index fda1542e0a..04345bf747 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -111,6 +111,7 @@ class GcodeStartEndFormatter(Formatter): if extruder_nr in self._all_extruder_settings: additional_variables = self._all_extruder_settings[extruder_nr] else: + Logger.warning(f"Extruder {extruder_nr} does not exist, using global settings") additional_variables = self._all_extruder_settings["-1"] # Add the arguments and keyword arguments to the additional settings. These @@ -125,6 +126,9 @@ class GcodeStartEndFormatter(Formatter): container_stack = CuraApplication.getInstance().getGlobalContainerStack() else: container_stack = ExtruderManager.getInstance().getExtruderStack(extruder_nr) + if not container_stack: + Logger.warning(f"Extruder {extruder_nr} does not exist, using global settings") + container_stack = CuraApplication.getInstance().getGlobalContainerStack() setting_function = SettingFunction(expression) value = setting_function(container_stack, additional_variables=additional_variables) From 68152e6f3111a17d8d5c17d4e353db01b1a8d65d Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 15 Jan 2024 12:04:55 +0100 Subject: [PATCH 094/269] Code readability CURA-11482 --- plugins/CuraEngineBackend/CuraEngineBackend.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index f67d14aafe..a22d6b5306 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -1105,9 +1105,10 @@ class CuraEngineBackend(QObject, Backend): elif preference == "info/send_engine_crash": os.environ["USE_SENTRY"] = "1" if CuraApplication.getInstance().getPreferences().getValue("info/send_engine_crash") else "0" elif preference == "info/anonymous_engine_crash_report": - account = CuraApplication.getInstance().getCuraAPI().account - if account and account.isLoggedIn and not CuraApplication.getInstance().getPreferences().getValue("info/anonymous_engine_crash_report"): - os.environ["CURAENGINE_SENTRY_USER"] = account.userName + if not CuraApplication.getInstance().getPreferences().getValue("info/anonymous_engine_crash_report"): + account = CuraApplication.getInstance().getCuraAPI().account + if account and account.isLoggedIn: + os.environ["CURAENGINE_SENTRY_USER"] = account.userName def tickle(self) -> None: """Tickle the backend so in case of auto slicing, it starts the timer.""" From 9d78c9ed5860de5b94f4a5c301cd9003edd86132 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 15 Jan 2024 12:39:10 +0100 Subject: [PATCH 095/269] Don't mutate/pollute `_all_extruder_settings` with additional values CURA-11536 --- plugins/CuraEngineBackend/StartSliceJob.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 04345bf747..5039e9a3de 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -109,10 +109,10 @@ class GcodeStartEndFormatter(Formatter): extruder_nr = self._all_extruder_settings["-1"].get(extruder_nr_expr, "-1") if extruder_nr in self._all_extruder_settings: - additional_variables = self._all_extruder_settings[extruder_nr] + additional_variables = self._all_extruder_settings[extruder_nr].copy() else: Logger.warning(f"Extruder {extruder_nr} does not exist, using global settings") - additional_variables = self._all_extruder_settings["-1"] + additional_variables = self._all_extruder_settings["-1"].copy() # Add the arguments and keyword arguments to the additional settings. These # are currently _not_ used, but they are added for consistency with the From 399a8171783b4686f5522fce18dc4035b96a9966 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Mon, 15 Jan 2024 13:37:54 +0100 Subject: [PATCH 096/269] Use `self-hosted-Windows-X64` as default Contributes to CURA-11544 --- .github/workflows/installers.yml | 2 +- .github/workflows/windows.yml | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/installers.yml b/.github/workflows/installers.yml index 6e531ba833..f1bd4b2d19 100644 --- a/.github/workflows/installers.yml +++ b/.github/workflows/installers.yml @@ -58,7 +58,7 @@ jobs: enterprise: ${{ github.event.inputs.enterprise == 'true' }} staging: ${{ github.event.inputs.staging == 'true' }} architecture: X64 - operating_system: windows-2022 + operating_system: self-hosted-Windows-X64 secrets: inherit linux-installer: diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 22a81e9b2a..09f972bb1a 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -34,9 +34,10 @@ on: operating_system: description: 'OS' required: true - default: 'windows-2022' + default: 'self-hosted-Windows-X64' type: choice options: + - self-hosted-Windows-X64 - windows-2022 jobs: From 557a95568c9f220ae4a23be44fd61e386698ebc7 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 15 Jan 2024 13:42:24 +0100 Subject: [PATCH 097/269] More explicit crash report configuration CURA-11482 --- resources/qml/Preferences/GeneralPage.qml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index e540fc1b1f..8871944523 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -872,7 +872,7 @@ UM.PreferencesPage UM.CheckBox { id: sendEngineCrashCheckbox - text: catalog.i18nc("@option:check","Send (anonymous) engine crash reports") + text: catalog.i18nc("@option:check","Send engine crash reports") checked: boolCheck(UM.Preferences.getValue("info/send_engine_crash")) onCheckedChanged: UM.Preferences.setValue("info/send_engine_crash", checked) } @@ -888,7 +888,6 @@ UM.PreferencesPage { width: childrenRect.width height: visible ? childrenRect.height : 0 - visible: Cura.API.account.isLoggedIn text: catalog.i18nc("@info:tooltip", "Send crash reports without any personally identifiable information or models data to UltiMaker.") anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_margin").width @@ -896,7 +895,7 @@ UM.PreferencesPage { id: sendEngineCrashCheckboxAnonymous text: catalog.i18nc("@option:radio", "Anonymous crash reports") - enabled: sendEngineCrashCheckbox.checked + enabled: sendEngineCrashCheckbox.checked && Cura.API.account.isLoggedIn checked: boolCheck(UM.Preferences.getValue("info/anonymous_engine_crash_report")) onClicked: UM.Preferences.setValue("info/anonymous_engine_crash_report", true) } @@ -905,15 +904,16 @@ UM.PreferencesPage { width: childrenRect.width height: visible ? childrenRect.height : 0 - visible: Cura.API.account.isLoggedIn - text: catalog.i18nc("@info:tooltip", "Send crash reports with your registered UltiMaker account name and the project name to UltiMaker Sentry. No actual model data is being send.") + text: Cura.API.account.isLoggedIn ? + catalog.i18nc("@info:tooltip", "Send crash reports with your registered UltiMaker account name and the project name to UltiMaker Sentry. No actual model data is being send.") : + catalog.i18nc("@info:tooltip", "Please sign in to your UltiMaker account to allow sending non-anonymous data.") anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_margin").width Cura.RadioButton { id: sendEngineCrashCheckboxUser - text: catalog.i18nc("@option:radio", "Send crash reports with UltiMaker account name") - enabled: sendEngineCrashCheckbox.checked + text: catalog.i18nc("@option:radio", "Include UltiMaker account name") + enabled: sendEngineCrashCheckbox.checked && Cura.API.account.isLoggedIn checked: !boolCheck(UM.Preferences.getValue("info/anonymous_engine_crash_report")) && Cura.API.account.isLoggedIn onClicked: UM.Preferences.setValue("info/anonymous_engine_crash_report", false) } From ab322ae703024026e80dd4d9857dd95705184a80 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 15 Jan 2024 15:22:25 +0100 Subject: [PATCH 098/269] Always send user name for Sentry if available CURA-11482 --- plugins/CuraEngineBackend/Cura.proto | 1 + plugins/CuraEngineBackend/CuraEngineBackend.py | 6 ------ plugins/CuraEngineBackend/StartSliceJob.py | 1 + 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/plugins/CuraEngineBackend/Cura.proto b/plugins/CuraEngineBackend/Cura.proto index b03298f695..238829ba64 100644 --- a/plugins/CuraEngineBackend/Cura.proto +++ b/plugins/CuraEngineBackend/Cura.proto @@ -36,6 +36,7 @@ message Slice string sentry_id = 6; // The anonymized Sentry user id that requested the slice string cura_version = 7; // The version of Cura that requested the slice optional string project_name = 8; // The name of the project that requested the slice + optional string user_name = 9; // The Digital Factory account name of the user that requested the slice } message Extruder diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index a22d6b5306..0c4003fadc 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -199,7 +199,6 @@ class CuraEngineBackend(QObject, Backend): # Ensure that the initial value for send_engine_crash is handled correctly. application.callLater(self._onPreferencesChanged, "info/send_engine_crash") - application.callLater(self._onPreferencesChanged, "info/anonymous_engine_crash_report") def startPlugins(self) -> None: """ @@ -1104,11 +1103,6 @@ class CuraEngineBackend(QObject, Backend): self._change_timer.start() elif preference == "info/send_engine_crash": os.environ["USE_SENTRY"] = "1" if CuraApplication.getInstance().getPreferences().getValue("info/send_engine_crash") else "0" - elif preference == "info/anonymous_engine_crash_report": - if not CuraApplication.getInstance().getPreferences().getValue("info/anonymous_engine_crash_report"): - account = CuraApplication.getInstance().getCuraAPI().account - if account and account.isLoggedIn: - os.environ["CURAENGINE_SENTRY_USER"] = account.userName def tickle(self) -> None: """Tickle the backend so in case of auto slicing, it starts the timer.""" diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 8826d2e1f6..633352d616 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -344,6 +344,7 @@ class StartSliceJob(Job): account = CuraApplication.getInstance().getCuraAPI().account if account and account.isLoggedIn and not CuraApplication.getInstance().getPreferences().getValue("info/anonymous_engine_crash_report"): self._slice_message.project_name = CuraApplication.getInstance().getPrintInformation().baseName + self._slice_message.user_name = account.userName # Build messages for extruder stacks for extruder_stack in global_stack.extruderList: From c1e7bc15285ef7feb2c31bc38dc5f3b8c39471e1 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Mon, 15 Jan 2024 17:12:30 +0100 Subject: [PATCH 099/269] Use updated CPython recipe Contributes to CURA-11544 --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index ea1ac2e1f9..f9e452cb9d 100644 --- a/conanfile.py +++ b/conanfile.py @@ -334,7 +334,7 @@ class CuraConan(ConanFile): if self._internal: for req in self.conan_data["requirements_internal"]: self.requires(req) - self.requires("cpython/3.10.4@ultimaker/stable") + self.requires("cpython/3.10.4@ultimaker/cura_11544") # FIXME: once merged to main self.requires("openssl/3.2.0") self.requires("boost/1.82.0") self.requires("spdlog/1.12.0") From 1a57f121729a153902c0485d66a400298851fbeb Mon Sep 17 00:00:00 2001 From: HellAholic Date: Tue, 16 Jan 2024 10:01:26 +0100 Subject: [PATCH 100/269] change label to name to align with items in global_container_stack check --- cura/Machines/Models/ExtrudersModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Machines/Models/ExtrudersModel.py b/cura/Machines/Models/ExtrudersModel.py index 2677894bff..f31f7c8717 100644 --- a/cura/Machines/Models/ExtrudersModel.py +++ b/cura/Machines/Models/ExtrudersModel.py @@ -227,7 +227,7 @@ class ExtrudersModel(ListModel): "material_brand": "", "color_name": "", "material_type": "", - "material_label": "" + "material_name": "" } items.append(item) if self._items != items: From 54df08f47fa30a4462317ca40d8328a5649491af Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Tue, 16 Jan 2024 13:14:49 +0100 Subject: [PATCH 101/269] Fix specific extruder not being used CURA-11536 --- plugins/CuraEngineBackend/StartSliceJob.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 5039e9a3de..6ede9fa219 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -106,7 +106,7 @@ class GcodeStartEndFormatter(Formatter): # dict-representation of the global container stack, with additional properties such # as `initial_extruder_nr`. As users may enter such expressions we can't use the # global container stack. - extruder_nr = self._all_extruder_settings["-1"].get(extruder_nr_expr, "-1") + extruder_nr = str(self._all_extruder_settings["-1"].get(extruder_nr_expr, "-1")) if extruder_nr in self._all_extruder_settings: additional_variables = self._all_extruder_settings[extruder_nr].copy() From 1514d755b0c9ccf474c374080557d81c81d3ef0d Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Wed, 17 Jan 2024 11:03:32 +0100 Subject: [PATCH 102/269] Set proper dependancies versions --- conandata.yml | 3 +-- conanfile.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/conandata.yml b/conandata.yml index a3456c44b1..9b0e2e337b 100644 --- a/conandata.yml +++ b/conandata.yml @@ -1,12 +1,11 @@ version: "5.7.0-alpha.0" requirements: - "uranium/(latest)@ultimaker/testing" - - "curaengine/(latest)@ultimaker/cura_11482" + - "curaengine/(latest)@ultimaker/testing" - "cura_binary_data/(latest)@ultimaker/testing" - "fdm_materials/(latest)@ultimaker/testing" - "curaengine_plugin_gradual_flow/(latest)@ultimaker/stable" - "dulcificum/latest@ultimaker/testing" - - "arcus/(latest)@ultimaker/cura_11482" - "pysavitar/5.3.0" - "pynest2d/5.3.0" - "curaengine_grpc_definitions/(latest)@ultimaker/testing" diff --git a/conanfile.py b/conanfile.py index 4aa0b07bbf..ca8427ad70 100644 --- a/conanfile.py +++ b/conanfile.py @@ -337,7 +337,7 @@ class CuraConan(ConanFile): for req in self.conan_data["requirements_internal"]: self.requires(req) self.requires("cpython/3.10.4@ultimaker/stable") - self.requires("clipper/6.4.2@ultimaker/cura_11482") # TODO: change channel to `testing` once merged + self.requires("clipper/6.4.2@ultimaker/stable") self.requires("openssl/3.2.0") self.requires("boost/1.82.0") self.requires("spdlog/1.12.0") From e6235063aa866a863f176dc8baaf6a3ea1d21169 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Wed, 17 Jan 2024 12:05:42 +0100 Subject: [PATCH 103/269] Revert "Use updated CPython recipe" This reverts commit c1e7bc15285ef7feb2c31bc38dc5f3b8c39471e1. --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index f9e452cb9d..ea1ac2e1f9 100644 --- a/conanfile.py +++ b/conanfile.py @@ -334,7 +334,7 @@ class CuraConan(ConanFile): if self._internal: for req in self.conan_data["requirements_internal"]: self.requires(req) - self.requires("cpython/3.10.4@ultimaker/cura_11544") # FIXME: once merged to main + self.requires("cpython/3.10.4@ultimaker/stable") self.requires("openssl/3.2.0") self.requires("boost/1.82.0") self.requires("spdlog/1.12.0") From 668a527d335e6ef2c1cdd895c2f7b2c7d15bd4fa Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Wed, 17 Jan 2024 13:24:34 +0100 Subject: [PATCH 104/269] Reduce initial layer speed to improve reliability for S3 and S5 machines when no glue is used. PP-421 --- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.4mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.3mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.4mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.3mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.4mm.inst.cfg | 2 +- 48 files changed, 48 insertions(+), 48 deletions(-) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg index cd8e392dfa..ee0525c13e 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg @@ -52,7 +52,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg index 29f3cb056f..57413c4b30 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg index 94535ab9c1..0052ce90cd 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg index 4c2861436a..8732c3ad63 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg @@ -51,7 +51,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg index 7e29e3a9d0..e7e50350c0 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg @@ -52,7 +52,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg index 2a74986a2a..5ecaa739db 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg @@ -52,7 +52,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg index 0f3fee265b..136a3bed42 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg @@ -52,7 +52,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg index 100f2485ba..dcbb580edb 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg index d06fa7c63b..fc2a185be4 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg index d0a2747ea4..2aa24f805d 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg @@ -52,7 +52,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 26 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg index ea4761463c..151af3ed50 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg @@ -52,7 +52,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 26 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg index 4ba2b956e9..56c097d890 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 26 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.2mm.inst.cfg index 2051530eee..9d7b4455d6 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.2mm.inst.cfg @@ -56,7 +56,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.3mm.inst.cfg index 897b0e8688..e2a5c54c66 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.3mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 75 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.4mm.inst.cfg index 12e37a25d9..26d3dc7fb8 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.4mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 50 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.2mm.inst.cfg index e62880cf41..b1dae1cb7a 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.2mm.inst.cfg @@ -55,7 +55,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.3mm.inst.cfg index 0c35b29fe0..4d4ffa0059 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.3mm.inst.cfg @@ -54,7 +54,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 75 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.4mm.inst.cfg index 1c8ba2c88b..5cc6a43e13 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.4mm.inst.cfg @@ -54,7 +54,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 50 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.2mm.inst.cfg index f51cd7df60..59f8409483 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.2mm.inst.cfg @@ -56,7 +56,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.3mm.inst.cfg index 347f3bd093..a4cdd898f1 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.3mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 65 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.4mm.inst.cfg index 6aaf0461e2..79dc105f86 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.4mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 45 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg index 4064af789f..a76864a1a3 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg @@ -56,7 +56,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 26 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.3mm.inst.cfg index d509a82bb6..d364232726 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.3mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 26 speed_prime_tower = =speed_wall_0 speed_print = 65 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.4mm.inst.cfg index a6ac3f3895..02a71fa9b7 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.4mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 26 speed_prime_tower = =speed_wall_0 speed_print = 45 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg index 1085472560..9c7ceca13b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg @@ -52,7 +52,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg index 22ef09c921..f430e6bc16 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg index 9067d8fb33..98ca8927b6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg index 8a64a81ab1..201c663d5c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg @@ -51,7 +51,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg index 70ee9b0309..55696eccb4 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg @@ -52,7 +52,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg index 65c8343d85..fe3eeb67ad 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg @@ -52,7 +52,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg index ac6cce0b10..713f94219f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg @@ -52,7 +52,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg index dbea8c6436..02d22b06b8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg index dcb2e0c516..b0d5d41d0f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg index 59044a7f04..55e724da9d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg @@ -52,7 +52,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 26 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg index 74e6d5d972..ee0ee279e6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg @@ -52,7 +52,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 26 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg index a9cb1c6865..875bd5a669 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 26 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.2mm.inst.cfg index c6e3042130..9ba4a38c6e 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.2mm.inst.cfg @@ -56,7 +56,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.3mm.inst.cfg index 764a0cb9ac..4ab74980ef 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.3mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 75 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.4mm.inst.cfg index 1f02428548..269d51dd4b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.4mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 50 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.2mm.inst.cfg index a144394b5a..4f56167ffd 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.2mm.inst.cfg @@ -55,7 +55,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.3mm.inst.cfg index 8af2e7c1bb..9fdf9a665b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.3mm.inst.cfg @@ -54,7 +54,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 75 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.4mm.inst.cfg index bd74c294e1..3368ae6e2d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.4mm.inst.cfg @@ -54,7 +54,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 50 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.2mm.inst.cfg index 32cc67a02b..ca93df9dc1 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.2mm.inst.cfg @@ -56,7 +56,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.3mm.inst.cfg index 79df2f65f0..4461ae0772 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.3mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 65 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.4mm.inst.cfg index acfbcb1f1e..1acdad53a0 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.4mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 30 speed_prime_tower = =speed_wall_0 speed_print = 45 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg index 0ea97ff531..4973ec35bb 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg @@ -56,7 +56,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 26 speed_prime_tower = =speed_wall_0 speed_print = 100 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.3mm.inst.cfg index 0f21a87568..2bcf3fa82d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.3mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 26 speed_prime_tower = =speed_wall_0 speed_print = 65 speed_roofing = =math.ceil(speed_wall*(45/100)) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.4mm.inst.cfg index 70234b8524..3e4693c115 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.4mm.inst.cfg @@ -53,7 +53,7 @@ small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print speed_ironing = 20 -speed_layer_0 = =speed_roofing +speed_layer_0 = 26 speed_prime_tower = =speed_wall_0 speed_print = 45 speed_roofing = =math.ceil(speed_wall*(45/100)) From ff478559b0f169a0606fbb2e34429dc929130dcb Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Wed, 17 Jan 2024 19:50:46 +0100 Subject: [PATCH 105/269] Change bool setting to more flexible callback function --- cura/OAuth2/AuthorizationService.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/cura/OAuth2/AuthorizationService.py b/cura/OAuth2/AuthorizationService.py index 06478e911b..29c426e46f 100644 --- a/cura/OAuth2/AuthorizationService.py +++ b/cura/OAuth2/AuthorizationService.py @@ -34,7 +34,7 @@ class AuthorizationService: def __init__(self, settings: "OAuth2Settings", preferences: Optional["Preferences"] = None, - get_user_profile: bool = True) -> None: + callback_auth_data_retrieved: Callable[[], None] = None) -> None: # Emit signal when authentication is completed. self.onAuthStateChanged = Signal() @@ -48,7 +48,7 @@ class AuthorizationService: self._auth_url = "{}/authorize".format(self._settings.OAUTH_SERVER_URL) self._auth_data: Optional[AuthenticationResponse] = None self._user_profile: Optional["UserProfile"] = None - self._get_user_profile: bool = get_user_profile + self._callback_auth_data_retrieved = self.getUserProfile if callback_auth_data_retrieved is None else callback_auth_data_retrieved self._preferences = preferences self._server = LocalAuthorizationServer(self._auth_helpers, self._onAuthStateChanged, daemon=True) self._currently_refreshing_token = False # Whether we are currently in the process of refreshing auth. Don't make new requests while busy. @@ -298,8 +298,7 @@ class AuthorizationService: self._auth_data = auth_data self._currently_refreshing_token = False if auth_data: - if self._get_user_profile: - self.getUserProfile() + self._callback_auth_data_retrieved() self._preferences.setValue(self._settings.AUTH_DATA_PREFERENCE_KEY, json.dumps(auth_data.dump())) else: Logger.log("d", "Clearing the user profile") From 5bcc37d7d72dfbd592f8aaf8dba8b74ec0533ed7 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Thu, 18 Jan 2024 10:44:15 +0100 Subject: [PATCH 106/269] Revert "Change bool setting to more flexible callback function" This reverts commit ff478559b0f169a0606fbb2e34429dc929130dcb. --- cura/OAuth2/AuthorizationService.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cura/OAuth2/AuthorizationService.py b/cura/OAuth2/AuthorizationService.py index 29c426e46f..06478e911b 100644 --- a/cura/OAuth2/AuthorizationService.py +++ b/cura/OAuth2/AuthorizationService.py @@ -34,7 +34,7 @@ class AuthorizationService: def __init__(self, settings: "OAuth2Settings", preferences: Optional["Preferences"] = None, - callback_auth_data_retrieved: Callable[[], None] = None) -> None: + get_user_profile: bool = True) -> None: # Emit signal when authentication is completed. self.onAuthStateChanged = Signal() @@ -48,7 +48,7 @@ class AuthorizationService: self._auth_url = "{}/authorize".format(self._settings.OAUTH_SERVER_URL) self._auth_data: Optional[AuthenticationResponse] = None self._user_profile: Optional["UserProfile"] = None - self._callback_auth_data_retrieved = self.getUserProfile if callback_auth_data_retrieved is None else callback_auth_data_retrieved + self._get_user_profile: bool = get_user_profile self._preferences = preferences self._server = LocalAuthorizationServer(self._auth_helpers, self._onAuthStateChanged, daemon=True) self._currently_refreshing_token = False # Whether we are currently in the process of refreshing auth. Don't make new requests while busy. @@ -298,7 +298,8 @@ class AuthorizationService: self._auth_data = auth_data self._currently_refreshing_token = False if auth_data: - self._callback_auth_data_retrieved() + if self._get_user_profile: + self.getUserProfile() self._preferences.setValue(self._settings.AUTH_DATA_PREFERENCE_KEY, json.dumps(auth_data.dump())) else: Logger.log("d", "Clearing the user profile") From 80d5662a78981810ad600af5c54d6994c7613a6d Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Thu, 18 Jan 2024 13:43:59 +0100 Subject: [PATCH 107/269] Regenerated from autogenerate PP-391 --- .../um_s3_aa0.4_um-abs_0.06mm_visual.inst.cfg | 12 +++- ...s3_aa0.4_um-abs_0.1mm_engineering.inst.cfg | 6 +- .../um_s3_aa0.4_um-abs_0.1mm_visual.inst.cfg | 12 +++- ...3_aa0.4_um-petg_0.1mm_engineering.inst.cfg | 6 +- .../um_s3_aa0.4_um-pla_0.06mm_visual.inst.cfg | 12 +++- ...s3_aa0.4_um-pla_0.1mm_engineering.inst.cfg | 6 +- .../um_s3_aa0.4_um-pla_0.1mm_visual.inst.cfg | 12 +++- ..._aa0.4_um-tough-pla_0.06mm_visual.inst.cfg | 12 +++- ....4_um-tough-pla_0.1mm_engineering.inst.cfg | 6 +- ...3_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg | 12 +++- .../um_s5_aa0.4_um-abs_0.06mm_visual.inst.cfg | 12 +++- ...s5_aa0.4_um-abs_0.1mm_engineering.inst.cfg | 6 +- .../um_s5_aa0.4_um-abs_0.1mm_visual.inst.cfg | 12 +++- ...5_aa0.4_um-petg_0.1mm_engineering.inst.cfg | 6 +- .../um_s5_aa0.4_um-pla_0.06mm_visual.inst.cfg | 12 +++- ...s5_aa0.4_um-pla_0.1mm_engineering.inst.cfg | 6 +- .../um_s5_aa0.4_um-pla_0.1mm_visual.inst.cfg | 12 +++- ..._aa0.4_um-tough-pla_0.06mm_visual.inst.cfg | 12 +++- ....4_um-tough-pla_0.1mm_engineering.inst.cfg | 6 +- ...5_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg | 12 +++- .../um_s3_aa0.25_um-abs_0.1mm.inst.cfg | 59 +++++++++++++++-- .../um_s3_aa0.25_um-petg_0.1mm.inst.cfg | 59 +++++++++++++++-- .../um_s3_aa0.25_um-pla_0.1mm.inst.cfg | 65 +++++++++++++++---- .../um_s3_aa0.4_um-abs_0.06mm.inst.cfg | 63 +++++++++++++++--- .../um_s3_aa0.4_um-abs_0.15mm.inst.cfg | 2 +- .../um_s3_aa0.4_um-abs_0.1mm.inst.cfg | 63 +++++++++++++++--- .../um_s3_aa0.4_um-abs_0.2mm.inst.cfg | 2 +- .../um_s3_aa0.4_um-abs_0.3mm.inst.cfg | 2 +- .../um_s3_aa0.4_um-petg_0.06mm.inst.cfg | 64 +++++++++++++++--- .../um_s3_aa0.4_um-petg_0.15mm.inst.cfg | 2 +- .../um_s3_aa0.4_um-petg_0.1mm.inst.cfg | 64 +++++++++++++++--- .../um_s3_aa0.4_um-petg_0.2mm.inst.cfg | 2 +- .../um_s3_aa0.4_um-petg_0.3mm.inst.cfg | 2 +- .../um_s3_aa0.4_um-pla_0.06mm.inst.cfg | 59 +++++++++++++++-- .../um_s3_aa0.4_um-pla_0.1mm.inst.cfg | 55 +++++++++++++++- .../um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg | 61 ++++++++++++++--- .../um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg | 61 ++++++++++++++--- .../um_s5_aa0.25_um-abs_0.1mm.inst.cfg | 59 +++++++++++++++-- .../um_s5_aa0.25_um-petg_0.1mm.inst.cfg | 59 +++++++++++++++-- .../um_s5_aa0.25_um-pla_0.1mm.inst.cfg | 65 +++++++++++++++---- .../um_s5_aa0.4_um-abs_0.06mm.inst.cfg | 63 +++++++++++++++--- .../um_s5_aa0.4_um-abs_0.15mm.inst.cfg | 2 +- .../um_s5_aa0.4_um-abs_0.1mm.inst.cfg | 63 +++++++++++++++--- .../um_s5_aa0.4_um-abs_0.2mm.inst.cfg | 2 +- .../um_s5_aa0.4_um-abs_0.3mm.inst.cfg | 2 +- .../um_s5_aa0.4_um-petg_0.06mm.inst.cfg | 64 +++++++++++++++--- .../um_s5_aa0.4_um-petg_0.15mm.inst.cfg | 2 +- .../um_s5_aa0.4_um-petg_0.1mm.inst.cfg | 64 +++++++++++++++--- .../um_s5_aa0.4_um-petg_0.2mm.inst.cfg | 2 +- .../um_s5_aa0.4_um-petg_0.3mm.inst.cfg | 2 +- .../um_s5_aa0.4_um-pla_0.06mm.inst.cfg | 59 +++++++++++++++-- .../um_s5_aa0.4_um-pla_0.1mm.inst.cfg | 55 +++++++++++++++- .../um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg | 61 ++++++++++++++--- .../um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg | 61 ++++++++++++++--- 54 files changed, 1352 insertions(+), 210 deletions(-) diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm_visual.inst.cfg index fb88768bb6..62e3254f8b 100644 --- a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm_visual.inst.cfg @@ -12,6 +12,14 @@ type = intent variant = AA 0.4 [values] -speed_infill = 50 -top_bottom_thickness = 1.05 +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 0.5 +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 20 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm_engineering.inst.cfg index 967051c6b6..b61495c66f 100644 --- a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm_engineering.inst.cfg @@ -12,9 +12,13 @@ type = intent variant = AA 0.4 [values] +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 jerk_print = 30 speed_infill = =speed_print -speed_print = 30 +speed_print = 35 +speed_roofing = =speed_topbottom speed_topbottom = =speed_print speed_wall = =speed_print speed_wall_0 = =speed_wall diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm_visual.inst.cfg index c08c5e37c1..2b113bb10c 100644 --- a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm_visual.inst.cfg @@ -12,6 +12,14 @@ type = intent variant = AA 0.4 [values] -speed_infill = 50 -top_bottom_thickness = 1.05 +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 0.5 +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 20 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-petg_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-petg_0.1mm_engineering.inst.cfg index 9bf56f69a2..7c1de8fd56 100644 --- a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-petg_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-petg_0.1mm_engineering.inst.cfg @@ -12,9 +12,13 @@ type = intent variant = AA 0.4 [values] +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 jerk_print = 30 speed_infill = =speed_print -speed_print = 30 +speed_print = 35 +speed_roofing = =speed_topbottom speed_topbottom = =speed_print speed_wall = =speed_print speed_wall_0 = =speed_wall diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm_visual.inst.cfg index 63e20e56bd..7bde0a1a84 100644 --- a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm_visual.inst.cfg @@ -12,6 +12,14 @@ type = intent variant = AA 0.4 [values] -speed_infill = 50 -top_bottom_thickness = 1.05 +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 0.5 +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 20 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm_engineering.inst.cfg index b65a22fbdc..ed573773e1 100644 --- a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm_engineering.inst.cfg @@ -12,9 +12,13 @@ type = intent variant = AA 0.4 [values] +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 jerk_print = 30 speed_infill = =speed_print -speed_print = 30 +speed_print = 35 +speed_roofing = =speed_topbottom speed_topbottom = =speed_print speed_wall = =speed_print speed_wall_0 = =speed_wall diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm_visual.inst.cfg index a90a1b971d..b5e414e2a7 100644 --- a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm_visual.inst.cfg @@ -12,6 +12,14 @@ type = intent variant = AA 0.4 [values] -speed_infill = 50 -top_bottom_thickness = 1.05 +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 0.5 +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 20 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm_visual.inst.cfg index e2997ae696..f1a72ac90b 100644 --- a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm_visual.inst.cfg @@ -12,6 +12,14 @@ type = intent variant = AA 0.4 [values] -speed_infill = 50 -top_bottom_thickness = 1.05 +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 0.5 +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 20 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm_engineering.inst.cfg index a57cbf0af0..61916c3da7 100644 --- a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm_engineering.inst.cfg @@ -12,9 +12,13 @@ type = intent variant = AA 0.4 [values] +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 jerk_print = 30 speed_infill = =speed_print -speed_print = 30 +speed_print = 35 +speed_roofing = =speed_topbottom speed_topbottom = =speed_print speed_wall = =speed_print speed_wall_0 = =speed_wall diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg index 48ce65c800..75345728fb 100644 --- a/resources/intent/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg @@ -12,6 +12,14 @@ type = intent variant = AA 0.4 [values] -speed_infill = 50 -top_bottom_thickness = 1.05 +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 0.5 +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 20 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm_visual.inst.cfg index 3866a4593a..7b919a96f5 100644 --- a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm_visual.inst.cfg @@ -12,6 +12,14 @@ type = intent variant = AA 0.4 [values] -speed_infill = 50 -top_bottom_thickness = 1.05 +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 0.5 +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 20 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm_engineering.inst.cfg index b5834b5757..43edfa3548 100644 --- a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm_engineering.inst.cfg @@ -12,9 +12,13 @@ type = intent variant = AA 0.4 [values] +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 jerk_print = 30 speed_infill = =speed_print -speed_print = 30 +speed_print = 35 +speed_roofing = =speed_topbottom speed_topbottom = =speed_print speed_wall = =speed_print speed_wall_0 = =speed_wall diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm_visual.inst.cfg index 63b0273ba5..62a6fb4fdf 100644 --- a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm_visual.inst.cfg @@ -12,6 +12,14 @@ type = intent variant = AA 0.4 [values] -speed_infill = 50 -top_bottom_thickness = 1.05 +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 0.5 +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 20 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-petg_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-petg_0.1mm_engineering.inst.cfg index 00c264aa32..a251a24a6e 100644 --- a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-petg_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-petg_0.1mm_engineering.inst.cfg @@ -12,9 +12,13 @@ type = intent variant = AA 0.4 [values] +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 jerk_print = 30 speed_infill = =speed_print -speed_print = 30 +speed_print = 35 +speed_roofing = =speed_topbottom speed_topbottom = =speed_print speed_wall = =speed_print speed_wall_0 = =speed_wall diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm_visual.inst.cfg index 0bb1797b46..464c17a430 100644 --- a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm_visual.inst.cfg @@ -12,6 +12,14 @@ type = intent variant = AA 0.4 [values] -speed_infill = 50 -top_bottom_thickness = 1.05 +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 0.5 +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 20 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm_engineering.inst.cfg index 0ab18817e0..5f6d7ee67b 100644 --- a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm_engineering.inst.cfg @@ -12,9 +12,13 @@ type = intent variant = AA 0.4 [values] +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 jerk_print = 30 speed_infill = =speed_print -speed_print = 30 +speed_print = 35 +speed_roofing = =speed_topbottom speed_topbottom = =speed_print speed_wall = =speed_print speed_wall_0 = =speed_wall diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm_visual.inst.cfg index f6b7800386..2dcc5e1850 100644 --- a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm_visual.inst.cfg @@ -12,6 +12,14 @@ type = intent variant = AA 0.4 [values] -speed_infill = 50 -top_bottom_thickness = 1.05 +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 0.5 +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 20 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm_visual.inst.cfg index b4516e44dd..c0c3ccc383 100644 --- a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm_visual.inst.cfg @@ -12,6 +12,14 @@ type = intent variant = AA 0.4 [values] -speed_infill = 50 -top_bottom_thickness = 1.05 +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 0.5 +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 20 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm_engineering.inst.cfg index 5c78ea044d..411d22b0ab 100644 --- a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm_engineering.inst.cfg @@ -12,9 +12,13 @@ type = intent variant = AA 0.4 [values] +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 jerk_print = 30 speed_infill = =speed_print -speed_print = 30 +speed_print = 35 +speed_roofing = =speed_topbottom speed_topbottom = =speed_print speed_wall = =speed_print speed_wall_0 = =speed_wall diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg index 5f73432e1c..9a3c677fe9 100644 --- a/resources/intent/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg @@ -12,6 +12,14 @@ type = intent variant = AA 0.4 [values] -speed_infill = 50 -top_bottom_thickness = 1.05 +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 0.5 +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 20 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg index 40058561ac..24c5a1d9e6 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg @@ -12,11 +12,62 @@ variant = AA 0.25 weight = 0 [values] -cool_fan_speed_0 = 0 -material_print_temperature = =default_material_print_temperature - 20 -speed_topbottom = =math.ceil(speed_print * 30 / 55) +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.8 +optimize_wall_printing_order = False +prime_tower_enable = False +raft_airgap = 0.15 +retraction_amount = 6.5 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-petg_0.1mm.inst.cfg index fe8efb08d8..e3965d9c5c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-petg_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-petg_0.1mm.inst.cfg @@ -12,12 +12,61 @@ variant = AA 0.25 weight = 0 [values] -material_print_temperature = =default_material_print_temperature - 15 -speed_infill = =math.ceil(speed_print * 40 / 55) -speed_topbottom = =math.ceil(speed_print * 30 / 55) +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.4 +machine_nozzle_heat_up_speed = 1.7 +material_extrusion_cool_down_speed = 0.7 +optimize_wall_printing_order = False +prime_tower_enable = False +retraction_amount = 8 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height -top_bottom_thickness = 0.8 +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-pla_0.1mm.inst.cfg index b9ec617a19..3343f7627a 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-pla_0.1mm.inst.cfg @@ -12,21 +12,62 @@ variant = AA 0.25 weight = 0 [values] -brim_width = 8 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 2 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' -machine_nozzle_cool_down_speed = 0.9 -machine_nozzle_heat_up_speed = 1.4 -material_print_temperature = =default_material_print_temperature - 10 -retraction_hop = 0.2 -speed_print = 30 -speed_wall = =math.ceil(speed_print * 25 / 30) -speed_wall_0 = =math.ceil(speed_print * 20 / 30) +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +optimize_wall_printing_order = False +prime_tower_enable = False +raft_airgap = 0.25 +retraction_amount = 6.5 +retraction_prime_speed = =retraction_speed +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height -top_bottom_thickness = 0.72 -travel_avoid_distance = 0.4 -wall_0_inset = 0.015 -wall_0_wipe_dist = 0.25 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg index 312afa0421..de5e0faf2e 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg @@ -12,18 +12,63 @@ variant = AA 0.4 weight = 1 [values] -machine_nozzle_cool_down_speed = 0.8 -machine_nozzle_heat_up_speed = 1.5 -material_final_print_temperature = =material_print_temperature - 20 -material_print_temperature = =default_material_print_temperature - 10 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.8 +material_max_flowrate = 20 +optimize_wall_printing_order = False prime_tower_enable = False raft_airgap = 0.15 -speed_infill = =math.ceil(speed_print * 40 / 50) -speed_print = 50 -speed_topbottom = =math.ceil(speed_print * 30 / 50) -speed_wall = =math.ceil(speed_print * 30 / 50) +retraction_amount = 6.5 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg index ee0525c13e..c39c6d42c8 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg index b53e8275a2..08bb2befdf 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg @@ -12,18 +12,63 @@ variant = AA 0.4 weight = 0 [values] -machine_nozzle_cool_down_speed = 0.85 -machine_nozzle_heat_up_speed = 1.5 -material_final_print_temperature = =material_print_temperature - 20 -material_print_temperature = =default_material_print_temperature - 5 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.8 +material_max_flowrate = 20 +optimize_wall_printing_order = False prime_tower_enable = False raft_airgap = 0.15 -speed_infill = =math.ceil(speed_print * 40 / 55) -speed_print = 55 -speed_topbottom = =math.ceil(speed_print * 30 / 55) -speed_wall = =math.ceil(speed_print * 30 / 55) +retraction_amount = 6.5 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg index 57413c4b30..9d67113da0 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg @@ -67,7 +67,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg index 0052ce90cd..fc6aa8c5fa 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg @@ -67,7 +67,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.06mm.inst.cfg index 1b7919bd02..7eb5de8b64 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.06mm.inst.cfg @@ -12,16 +12,62 @@ variant = AA 0.4 weight = 1 [values] -infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' -machine_nozzle_cool_down_speed = 0.85 -machine_nozzle_heat_up_speed = 1.5 -material_print_temperature = =default_material_print_temperature - 10 -speed_infill = =math.ceil(speed_print * 40 / 50) -speed_print = 50 -speed_topbottom = =math.ceil(speed_print * 30 / 50) -speed_wall = =math.ceil(speed_print * 30 / 50) +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.4 +machine_nozzle_heat_up_speed = 1.7 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 20 +optimize_wall_printing_order = False +prime_tower_enable = False +retraction_amount = 8 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg index 8732c3ad63..d4431382dd 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.1mm.inst.cfg index afa05aa2cf..bb7de56356 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.1mm.inst.cfg @@ -12,16 +12,62 @@ variant = AA 0.4 weight = 0 [values] -infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' -machine_nozzle_cool_down_speed = 0.85 -machine_nozzle_heat_up_speed = 1.5 -material_print_temperature = =default_material_print_temperature - 5 -speed_infill = =math.ceil(speed_print * 45 / 55) -speed_print = 55 -speed_topbottom = =math.ceil(speed_print * 30 / 55) -speed_wall = =math.ceil(speed_print * 30 / 55) +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.4 +machine_nozzle_heat_up_speed = 1.7 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 20 +optimize_wall_printing_order = False +prime_tower_enable = False +retraction_amount = 8 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg index e7e50350c0..6b333e2f13 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg index 5ecaa739db..d95b6de92f 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg index 2939389a3c..25887f19d7 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg @@ -12,18 +12,63 @@ variant = AA 0.4 weight = 1 [values] -machine_nozzle_cool_down_speed = 0.75 -machine_nozzle_heat_up_speed = 1.6 -material_print_temperature = =default_material_print_temperature - 5 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 2 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 12 +optimize_wall_printing_order = False prime_tower_enable = False raft_airgap = 0.25 +retraction_amount = 6.5 retraction_prime_speed = =retraction_speed -speed_print = 50 -speed_topbottom = =math.ceil(speed_print * 35 / 50) -speed_wall = =math.ceil(speed_print * 35 / 50) +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height -top_bottom_thickness = 1 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg index 2b430c1afb..e8820673ea 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg @@ -12,14 +12,63 @@ variant = AA 0.4 weight = 0 [values] -machine_nozzle_cool_down_speed = 0.75 -machine_nozzle_heat_up_speed = 1.6 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 2 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 12 +optimize_wall_printing_order = False prime_tower_enable = False raft_airgap = 0.25 +retraction_amount = 6.5 retraction_prime_speed = =retraction_speed +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height -top_bottom_thickness = 1 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg index c84c2fb66e..73f25eae0f 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg @@ -12,18 +12,63 @@ variant = AA 0.4 weight = 1 [values] -machine_nozzle_cool_down_speed = 0.75 -machine_nozzle_heat_up_speed = 1.6 -material_print_temperature = =default_material_print_temperature - 5 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 2 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 14 +optimize_wall_printing_order = False prime_tower_enable = False +raft_airgap = 0.25 +retraction_amount = 6.5 retraction_prime_speed = =retraction_speed -speed_print = 45 -speed_topbottom = =math.ceil(speed_print * 35 / 45) -speed_wall = =math.ceil(speed_print * 40 / 45) -speed_wall_0 = =math.ceil(speed_wall * 35 / 45) +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 26 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height -top_bottom_thickness = 1.2 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg index 47687fb5be..e51d440c31 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg @@ -12,18 +12,63 @@ variant = AA 0.4 weight = 0 [values] -machine_nozzle_cool_down_speed = 0.75 -machine_nozzle_heat_up_speed = 1.6 -material_print_temperature = =default_material_print_temperature - 5 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 2 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 14 +optimize_wall_printing_order = False prime_tower_enable = False +raft_airgap = 0.25 +retraction_amount = 6.5 retraction_prime_speed = =retraction_speed -speed_print = 45 -speed_topbottom = =math.ceil(speed_print * 35 / 45) -speed_wall = =math.ceil(speed_print * 40 / 45) -speed_wall_0 = =math.ceil(speed_wall * 35 / 45) +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 26 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height -top_bottom_thickness = 1.2 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg index 0dc15571d7..7b14730a66 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg @@ -12,11 +12,62 @@ variant = AA 0.25 weight = 0 [values] -cool_fan_speed_0 = 0 -material_print_temperature = =default_material_print_temperature - 20 -speed_topbottom = =math.ceil(speed_print * 30 / 55) +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.8 +optimize_wall_printing_order = False +prime_tower_enable = False +raft_airgap = 0.15 +retraction_amount = 6.5 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-petg_0.1mm.inst.cfg index c5cadca4bd..a2233703d4 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-petg_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-petg_0.1mm.inst.cfg @@ -12,12 +12,61 @@ variant = AA 0.25 weight = 0 [values] -material_print_temperature = =default_material_print_temperature - 15 -speed_infill = =math.ceil(speed_print * 40 / 55) -speed_topbottom = =math.ceil(speed_print * 30 / 55) +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.4 +machine_nozzle_heat_up_speed = 1.7 +material_extrusion_cool_down_speed = 0.7 +optimize_wall_printing_order = False +prime_tower_enable = False +retraction_amount = 8 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height -top_bottom_thickness = 0.8 +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-pla_0.1mm.inst.cfg index c6d2afaf03..789d186f77 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-pla_0.1mm.inst.cfg @@ -12,21 +12,62 @@ variant = AA 0.25 weight = 0 [values] -brim_width = 8 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 2 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' -machine_nozzle_cool_down_speed = 0.9 -machine_nozzle_heat_up_speed = 1.4 -material_print_temperature = =default_material_print_temperature - 10 -retraction_hop = 0.2 -speed_print = 30 -speed_wall = =math.ceil(speed_print * 25 / 30) -speed_wall_0 = =math.ceil(speed_print * 20 / 30) +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +optimize_wall_printing_order = False +prime_tower_enable = False +raft_airgap = 0.25 +retraction_amount = 6.5 +retraction_prime_speed = =retraction_speed +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height -top_bottom_thickness = 0.72 -travel_avoid_distance = 0.4 -wall_0_inset = 0.015 -wall_0_wipe_dist = 0.25 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg index a69ff33f76..c0b4799ca9 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg @@ -12,18 +12,63 @@ variant = AA 0.4 weight = 1 [values] -machine_nozzle_cool_down_speed = 0.8 -machine_nozzle_heat_up_speed = 1.5 -material_final_print_temperature = =material_print_temperature - 20 -material_print_temperature = =default_material_print_temperature - 10 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.8 +material_max_flowrate = 20 +optimize_wall_printing_order = False prime_tower_enable = False raft_airgap = 0.15 -speed_infill = =math.ceil(speed_print * 40 / 50) -speed_print = 50 -speed_topbottom = =math.ceil(speed_print * 30 / 50) -speed_wall = =math.ceil(speed_print * 30 / 50) +retraction_amount = 6.5 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg index 9c7ceca13b..d430f867d8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg index ca659622cb..b2c25e26c7 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg @@ -12,18 +12,63 @@ variant = AA 0.4 weight = 0 [values] -machine_nozzle_cool_down_speed = 0.85 -machine_nozzle_heat_up_speed = 1.5 -material_final_print_temperature = =material_print_temperature - 20 -material_print_temperature = =default_material_print_temperature - 5 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.8 +material_max_flowrate = 20 +optimize_wall_printing_order = False prime_tower_enable = False raft_airgap = 0.15 -speed_infill = =math.ceil(speed_print * 40 / 55) -speed_print = 55 -speed_topbottom = =math.ceil(speed_print * 30 / 55) -speed_wall = =math.ceil(speed_print * 30 / 55) +retraction_amount = 6.5 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg index f430e6bc16..8a02dfe38c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg @@ -67,7 +67,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg index 98ca8927b6..d1feed0b46 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg @@ -67,7 +67,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.06mm.inst.cfg index 9545d34977..ef58c14663 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.06mm.inst.cfg @@ -12,16 +12,62 @@ variant = AA 0.4 weight = 1 [values] -infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' -machine_nozzle_cool_down_speed = 0.85 -machine_nozzle_heat_up_speed = 1.5 -material_print_temperature = =default_material_print_temperature - 10 -speed_infill = =math.ceil(speed_print * 40 / 50) -speed_print = 50 -speed_topbottom = =math.ceil(speed_print * 30 / 50) -speed_wall = =math.ceil(speed_print * 30 / 50) +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.4 +machine_nozzle_heat_up_speed = 1.7 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 20 +optimize_wall_printing_order = False +prime_tower_enable = False +retraction_amount = 8 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg index 201c663d5c..5d14f014b9 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.1mm.inst.cfg index 4a20bd76b3..d23a7b8cea 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.1mm.inst.cfg @@ -12,16 +12,62 @@ variant = AA 0.4 weight = 0 [values] -infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' -machine_nozzle_cool_down_speed = 0.85 -machine_nozzle_heat_up_speed = 1.5 -material_print_temperature = =default_material_print_temperature - 5 -speed_infill = =math.ceil(speed_print * 45 / 55) -speed_print = 55 -speed_topbottom = =math.ceil(speed_print * 30 / 55) -speed_wall = =math.ceil(speed_print * 30 / 55) +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 1 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.4 +machine_nozzle_heat_up_speed = 1.7 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 20 +optimize_wall_printing_order = False +prime_tower_enable = False +retraction_amount = 8 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg index 55696eccb4..8bfe117380 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg index fe3eeb67ad..83f1a65862 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg index c2bb123d04..a9043c7372 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg @@ -12,18 +12,63 @@ variant = AA 0.4 weight = 1 [values] -machine_nozzle_cool_down_speed = 0.75 -machine_nozzle_heat_up_speed = 1.6 -material_print_temperature = =default_material_print_temperature - 5 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 2 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 12 +optimize_wall_printing_order = False prime_tower_enable = False raft_airgap = 0.25 +retraction_amount = 6.5 retraction_prime_speed = =retraction_speed -speed_print = 50 -speed_topbottom = =math.ceil(speed_print * 35 / 50) -speed_wall = =math.ceil(speed_print * 35 / 50) +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height -top_bottom_thickness = 1 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm.inst.cfg index 1e2820f565..4e451d4165 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm.inst.cfg @@ -12,14 +12,63 @@ variant = AA 0.4 weight = 0 [values] -machine_nozzle_cool_down_speed = 0.75 -machine_nozzle_heat_up_speed = 1.6 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 2 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 12 +optimize_wall_printing_order = False prime_tower_enable = False raft_airgap = 0.25 +retraction_amount = 6.5 retraction_prime_speed = =retraction_speed +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height -top_bottom_thickness = 1 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg index 595de835ba..641c1279e4 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg @@ -12,18 +12,63 @@ variant = AA 0.4 weight = 1 [values] -machine_nozzle_cool_down_speed = 0.75 -machine_nozzle_heat_up_speed = 1.6 -material_print_temperature = =default_material_print_temperature - 5 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 2 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 14 +optimize_wall_printing_order = False prime_tower_enable = False +raft_airgap = 0.25 +retraction_amount = 6.5 retraction_prime_speed = =retraction_speed -speed_print = 45 -speed_topbottom = =math.ceil(speed_print * 35 / 45) -speed_wall = =math.ceil(speed_print * 40 / 45) -speed_wall_0 = =math.ceil(speed_wall * 35 / 45) +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 26 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height -top_bottom_thickness = 1.2 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg index 07c97a632f..35e8c0903c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg @@ -12,18 +12,63 @@ variant = AA 0.4 weight = 0 [values] -machine_nozzle_cool_down_speed = 0.75 -machine_nozzle_heat_up_speed = 1.6 -material_print_temperature = =default_material_print_temperature - 5 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 2 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 14 +optimize_wall_printing_order = False prime_tower_enable = False +raft_airgap = 0.25 +retraction_amount = 6.5 retraction_prime_speed = =retraction_speed -speed_print = 45 -speed_topbottom = =math.ceil(speed_print * 35 / 45) -speed_wall = =math.ceil(speed_print * 40 / 45) -speed_wall_0 = =math.ceil(speed_wall * 35 / 45) +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 26 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height -top_bottom_thickness = 1.2 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True From 5f3e49bdbf4e54f74db0c3d780839c2b4b0b38de Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Thu, 18 Jan 2024 13:48:14 +0100 Subject: [PATCH 108/269] Restore old z support formula. PP-391 --- .../quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.25_um-petg_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.25_um-petg_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg | 2 +- 24 files changed, 24 insertions(+), 24 deletions(-) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg index 24c5a1d9e6..3fc09bbc49 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg @@ -64,7 +64,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-petg_0.1mm.inst.cfg index e3965d9c5c..1aa26ebcfc 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-petg_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-petg_0.1mm.inst.cfg @@ -63,7 +63,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg index de5e0faf2e..85dc32801e 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg index c39c6d42c8..ee0525c13e 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg index 08bb2befdf..ca1d9d7afc 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg index 9d67113da0..57413c4b30 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg @@ -67,7 +67,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg index fc6aa8c5fa..0052ce90cd 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg @@ -67,7 +67,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.06mm.inst.cfg index 7eb5de8b64..0e9ceaf9e3 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.06mm.inst.cfg @@ -64,7 +64,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg index d4431382dd..8732c3ad63 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.1mm.inst.cfg index bb7de56356..6f8db11141 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.1mm.inst.cfg @@ -64,7 +64,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg index 6b333e2f13..e7e50350c0 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg index d95b6de92f..5ecaa739db 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg index 7b14730a66..39ceb39dce 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg @@ -64,7 +64,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-petg_0.1mm.inst.cfg index a2233703d4..82e07b6fdf 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-petg_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-petg_0.1mm.inst.cfg @@ -63,7 +63,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg index c0b4799ca9..fbe230fb2e 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg index d430f867d8..9c7ceca13b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg index b2c25e26c7..8ef78a6fb5 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg index 8a02dfe38c..f430e6bc16 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg @@ -67,7 +67,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg index d1feed0b46..98ca8927b6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg @@ -67,7 +67,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.06mm.inst.cfg index ef58c14663..aea8906877 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.06mm.inst.cfg @@ -64,7 +64,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg index 5d14f014b9..201c663d5c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.1mm.inst.cfg index d23a7b8cea..a9d239bf3a 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.1mm.inst.cfg @@ -64,7 +64,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg index 8bfe117380..55696eccb4 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg index 83f1a65862..fe3eeb67ad 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = 0.3 +support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) From 6b4ec29b41535b777f9934e1ce592aea74490aca Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Thu, 18 Jan 2024 15:51:26 +0100 Subject: [PATCH 109/269] Add setting to activate monotonic raft top layer CURA-11438 --- resources/definitions/fdmprinter.def.json | 11 +++++++++++ resources/setting_visibility/expert.cfg | 1 + 2 files changed, 12 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 31a67d0122..be44eb7bb2 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6453,6 +6453,17 @@ "settable_per_extruder": true, "limit_to_extruder": "raft_surface_extruder_nr" }, + "raft_surface_monotonic": + { + "label": "Monotonic Raft Top Surface Order", + "description": "Print raft top surface lines in an ordering that causes them to always overlap with adjacent lines in a single direction. This takes slightly more time to print, but makes the surface look more consistent, which is also visible on the model bottom surface.", + "type": "bool", + "default_value": false, + "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", + "settable_per_mesh": false, + "settable_per_extruder": true, + "limit_to_extruder": "raft_surface_extruder_nr" + }, "raft_wall_count": { "label": "Raft Wall Count", diff --git a/resources/setting_visibility/expert.cfg b/resources/setting_visibility/expert.cfg index 2a71993998..52c08f70ba 100644 --- a/resources/setting_visibility/expert.cfg +++ b/resources/setting_visibility/expert.cfg @@ -340,6 +340,7 @@ raft_surface_layers raft_surface_thickness raft_surface_line_width raft_surface_line_spacing +raft_surface_monotonic raft_interface_layers raft_interface_thickness raft_interface_line_width From 22b67f1c2045f0ddcb887c910df74ae6049b0ab6 Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Thu, 18 Jan 2024 15:53:11 +0100 Subject: [PATCH 110/269] Increase small skin width from 0.8mm to 4mm to prevent jerky moves in small skin areas. Increase wipe distance to 0.8mm to improve seam quality. PP-423 --- resources/definitions/ultimaker_method_base.def.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/definitions/ultimaker_method_base.def.json b/resources/definitions/ultimaker_method_base.def.json index 1ceb05a43a..f0808c529e 100644 --- a/resources/definitions/ultimaker_method_base.def.json +++ b/resources/definitions/ultimaker_method_base.def.json @@ -386,6 +386,7 @@ "skin_preshrink": { "value": 0 }, "skirt_brim_material_flow": { "value": "material_flow" }, "skirt_brim_minimal_length": { "value": 500 }, + "small_skin_width": { "value": 4 }, "speed_equalize_flow_width_factor": { "value": 0 }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_print": { "value": 50 }, @@ -426,7 +427,7 @@ "travel_avoid_other_parts": { "value": false }, "wall_0_inset": { "value": 0 }, "wall_0_material_flow": { "value": "material_flow" }, - "wall_0_wipe_dist": { "value": 0 }, + "wall_0_wipe_dist": { "value": 0.8 }, "wall_material_flow": { "value": "material_flow" }, "wall_x_material_flow": { "value": "material_flow" }, "xy_offset": { "value": 0 }, From b8d1c885c7b3e642e44ba47476bb4f5962111f13 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Fri, 19 Jan 2024 08:31:49 +0100 Subject: [PATCH 111/269] Remove comment Mostly to force a build from a push action --- conanfile.py | 1 - 1 file changed, 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index ca8427ad70..87e3377687 100644 --- a/conanfile.py +++ b/conanfile.py @@ -420,7 +420,6 @@ class CuraConan(ConanFile): ) if self.options.get_safe("enable_i18n", False) and self._i18n_options["extract"]: - # Update the po and pot files vb = VirtualBuildEnv(self) vb.generate() From 68aad33b5ddd664d364e02b2423f61a77d93afc2 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Fri, 19 Jan 2024 11:10:24 +0100 Subject: [PATCH 112/269] Bump version --- conandata.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conandata.yml b/conandata.yml index 9b0e2e337b..29976c0764 100644 --- a/conandata.yml +++ b/conandata.yml @@ -1,4 +1,4 @@ -version: "5.7.0-alpha.0" +version: "5.7.0-alpha.1" requirements: - "uranium/(latest)@ultimaker/testing" - "curaengine/(latest)@ultimaker/testing" From 54be46821dd27ddde593f06033ca5e1bb56f142b Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Fri, 19 Jan 2024 13:12:02 +0100 Subject: [PATCH 113/269] Fix profile dropdown CURA-11559 --- resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml index 4cc1e3034a..94e7a93442 100644 --- a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml @@ -160,7 +160,6 @@ Item ProfileWarningReset { id: profileWarningReset - width: parent.width anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter fullWarning: false From 7afa2fc94a2d97a9d27ddc4d5c6c3dd5958e978f Mon Sep 17 00:00:00 2001 From: Sophist <3001893+Sophist-UK@users.noreply.github.com> Date: Fri, 19 Jan 2024 13:27:30 +0000 Subject: [PATCH 114/269] Stop Esc key from exiting full screen mode --- resources/qml/Actions.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index 3717e778d3..a788c443af 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -109,7 +109,8 @@ Item Action { id: exitFullScreenAction - shortcut: StandardKey.Cancel + // Stop Esc key from exiting full screen mode + // shortcut: StandardKey.Cancel text: catalog.i18nc("@action:inmenu", "Exit Full Screen") icon.name: "view-fullscreen" } From d9a641faa3261417d645cd33f0787b187249ae2e Mon Sep 17 00:00:00 2001 From: Mariska <40423138+MariMakes@users.noreply.github.com> Date: Fri, 19 Jan 2024 15:18:20 +0100 Subject: [PATCH 115/269] Update Slicing Crash Template It now refers to the 5.7 Alpha that has Sentry to analyze slicing crashes --- .github/ISSUE_TEMPLATE/SlicingCrash.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/SlicingCrash.yaml b/.github/ISSUE_TEMPLATE/SlicingCrash.yaml index 2fe0a2f63b..37a70354c6 100644 --- a/.github/ISSUE_TEMPLATE/SlicingCrash.yaml +++ b/.github/ISSUE_TEMPLATE/SlicingCrash.yaml @@ -5,6 +5,13 @@ body: - type: markdown attributes: value: | + ### 💥 Slicing Crash Analysis Tool 💥 + We are taking steps to analyze an increase in reported crashes more systematically. We'll need some help with that. 😇 + Before filling out the report below, we want you to try a special Cura 5.7 Alpha. + This version of Cura has an updated slicing engine that will automatically send a report to the Cura Team for analysis. + #### [You can find the downloads here](https://github.com/Ultimaker/Cura/discussions/18080) #### + If you still encounter a crash you are still welcome to report the issue so we can use your model as a test case, you can find instructions on how to do that below. + ### Project File **⚠️ Before you continue, we need your project file to troubleshoot a slicing crash.** It contains the printer and settings we need for troubleshooting. @@ -68,4 +75,3 @@ body: description: You can add the zip file and additional information that is relevant to the issue in the comments below. validations: required: true - From dc7e8998b43599208fa86c4432caef2eddd3aef0 Mon Sep 17 00:00:00 2001 From: Sophist <3001893+Sophist-UK@users.noreply.github.com> Date: Sat, 20 Jan 2024 09:53:39 +0000 Subject: [PATCH 116/269] Delete line rather than commenting --- resources/qml/Actions.qml | 2 -- 1 file changed, 2 deletions(-) diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index a788c443af..1be715164c 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -109,8 +109,6 @@ Item Action { id: exitFullScreenAction - // Stop Esc key from exiting full screen mode - // shortcut: StandardKey.Cancel text: catalog.i18nc("@action:inmenu", "Exit Full Screen") icon.name: "view-fullscreen" } From 86d5c945d0b2271f8c826ff9693833cfef189a39 Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Mon, 22 Jan 2024 11:42:30 +0100 Subject: [PATCH 117/269] Add cool fan speed = 0 to the initial layer of Ultimaker ABS. Fix high speed profile T-PLA (was still generic profile). Mistake in PP-391, but taken along in this PR. PP-422 --- .../um_s3_aa0.25_um-abs_0.1mm.inst.cfg | 1 + .../um_s3_aa0.25_um-tough-pla_0.1mm.inst.cfg | 64 +++++++++++++++---- .../um_s5_aa0.25_um-abs_0.1mm.inst.cfg | 1 + .../um_s5_aa0.25_um-tough-pla_0.1mm.inst.cfg | 64 +++++++++++++++---- 4 files changed, 108 insertions(+), 22 deletions(-) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg index 3fc09bbc49..8557b08b1b 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg @@ -27,6 +27,7 @@ acceleration_wall_x = =acceleration_wall bridge_skin_speed = =bridge_wall_speed bridge_sparse_infill_max_density = 50 bridge_wall_speed = 30 +cool_fan_speed_0 = 0 cool_min_layer_time = 4 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' infill_sparse_density = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-tough-pla_0.1mm.inst.cfg index 4ffc038ac5..d0d532f410 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-tough-pla_0.1mm.inst.cfg @@ -12,20 +12,62 @@ variant = AA 0.25 weight = 0 [values] -brim_width = 8 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 2 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' -machine_nozzle_cool_down_speed = 0.9 -machine_nozzle_heat_up_speed = 1.4 -material_print_temperature = =default_material_print_temperature - 5 -speed_print = 30 -speed_topbottom = =math.ceil(speed_print * 20 / 30) -speed_wall = =math.ceil(speed_print * 25 / 30) -speed_wall_0 = =math.ceil(speed_print * 20 / 30) +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +optimize_wall_printing_order = False +prime_tower_enable = False +raft_airgap = 0.25 +retraction_amount = 6.5 +retraction_prime_speed = =retraction_speed +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 26 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height -top_bottom_thickness = 0.72 -wall_0_inset = 0.015 -wall_0_wipe_dist = 0.25 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg index 39ceb39dce..d725b5aa15 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg @@ -27,6 +27,7 @@ acceleration_wall_x = =acceleration_wall bridge_skin_speed = =bridge_wall_speed bridge_sparse_infill_max_density = 50 bridge_wall_speed = 30 +cool_fan_speed_0 = 0 cool_min_layer_time = 4 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' infill_sparse_density = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-tough-pla_0.1mm.inst.cfg index a28e41553f..307869d494 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-tough-pla_0.1mm.inst.cfg @@ -12,20 +12,62 @@ variant = AA 0.25 weight = 0 [values] -brim_width = 8 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size = 0.2 +_plugin__curaenginegradualflow__0_1_0__gradual_flow_enabled = True +_plugin__curaenginegradualflow__0_1_0__max_flow_acceleration = 2 +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' -machine_nozzle_cool_down_speed = 0.9 -machine_nozzle_heat_up_speed = 1.4 -material_print_temperature = =default_material_print_temperature - 5 -speed_print = 30 -speed_topbottom = =math.ceil(speed_print * 20 / 30) -speed_wall = =math.ceil(speed_print * 25 / 30) -speed_wall_0 = =math.ceil(speed_print * 20 / 30) +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +optimize_wall_printing_order = False +prime_tower_enable = False +raft_airgap = 0.25 +retraction_amount = 6.5 +retraction_prime_speed = =retraction_speed +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 26 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing support_bottom_distance = =support_z_distance support_interface_enable = True +support_structure = tree support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height -top_bottom_thickness = 0.72 -wall_0_inset = 0.015 -wall_0_wipe_dist = 0.25 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +z_seam_relative = True +z_seam_type = back +zig_zaggify_infill = True From 3f21bec38cac6b07ac2db17aba5bdc2f2cecbbfc Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Mon, 22 Jan 2024 13:35:58 +0100 Subject: [PATCH 118/269] pin gradual flow plugin --- conandata.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conandata.yml b/conandata.yml index 29976c0764..486a64c26e 100644 --- a/conandata.yml +++ b/conandata.yml @@ -4,7 +4,7 @@ requirements: - "curaengine/(latest)@ultimaker/testing" - "cura_binary_data/(latest)@ultimaker/testing" - "fdm_materials/(latest)@ultimaker/testing" - - "curaengine_plugin_gradual_flow/(latest)@ultimaker/stable" + - "curaengine_plugin_gradual_flow/0.1.0-beta.2" - "dulcificum/latest@ultimaker/testing" - "pysavitar/5.3.0" - "pynest2d/5.3.0" From 09a34f5155a9f5a6e71090ba5e33df3c16232313 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Mon, 22 Jan 2024 14:21:35 +0100 Subject: [PATCH 119/269] Fixed Unnecessary default_values Contributes to CURA-11575 --- resources/definitions/elegoo_neptune_4.def.json | 1 - resources/definitions/elegoo_neptune_4max.def.json | 1 - resources/definitions/elegoo_neptune_4plus.def.json | 1 - 3 files changed, 3 deletions(-) diff --git a/resources/definitions/elegoo_neptune_4.def.json b/resources/definitions/elegoo_neptune_4.def.json index ed4856f540..4484133bdb 100644 --- a/resources/definitions/elegoo_neptune_4.def.json +++ b/resources/definitions/elegoo_neptune_4.def.json @@ -11,7 +11,6 @@ { "acceleration_print": { - "default_value": 10000, "maximum_value_warning": "20000", "value": 10000 }, diff --git a/resources/definitions/elegoo_neptune_4max.def.json b/resources/definitions/elegoo_neptune_4max.def.json index c2f6aa708c..c12953959b 100644 --- a/resources/definitions/elegoo_neptune_4max.def.json +++ b/resources/definitions/elegoo_neptune_4max.def.json @@ -18,7 +18,6 @@ { "acceleration_print": { - "default_value": 2500, "maximum_value_warning": "15000", "value": 2500 }, diff --git a/resources/definitions/elegoo_neptune_4plus.def.json b/resources/definitions/elegoo_neptune_4plus.def.json index 0038e49641..7be4d1de97 100644 --- a/resources/definitions/elegoo_neptune_4plus.def.json +++ b/resources/definitions/elegoo_neptune_4plus.def.json @@ -18,7 +18,6 @@ { "acceleration_print": { - "default_value": 4000, "value": 4000 }, "machine_acceleration": { "value": 4000 }, From a41d8aae7f45683db2e8ac105ccfce7fa9bf32be Mon Sep 17 00:00:00 2001 From: jellespijker Date: Mon, 22 Jan 2024 13:22:32 +0000 Subject: [PATCH 120/269] Applied printer-linter format --- resources/definitions/elegoo_neptune_4plus.def.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/resources/definitions/elegoo_neptune_4plus.def.json b/resources/definitions/elegoo_neptune_4plus.def.json index 7be4d1de97..c11b99956f 100644 --- a/resources/definitions/elegoo_neptune_4plus.def.json +++ b/resources/definitions/elegoo_neptune_4plus.def.json @@ -16,10 +16,7 @@ }, "overrides": { - "acceleration_print": - { - "value": 4000 - }, + "acceleration_print": { "value": 4000 }, "machine_acceleration": { "value": 4000 }, "machine_depth": { "default_value": 330 }, "machine_height": { "default_value": 387 }, From 8af3de2178cee6dc7fb547c75d82b1c4de0bac85 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 23 Jan 2024 20:48:02 +0100 Subject: [PATCH 121/269] Fix `getInitialExtruder` code For the `skirt_brim_extruder_nr` setting it is possible for the setting to be -1; this means that we have no preference for extruder. This allowed us to implement the "multi-material brim". When we were requesting the initial extruder, and this value was set to -1 we were default to the 0-th extruder. However, this was incorrect in the situation where the first extruder is not used. Fixes #17501 --- cura/Settings/ExtruderManager.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 6a152ab51b..3ce83d27e3 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -316,7 +316,13 @@ class ExtruderManager(QObject): # Starts with the adhesion extruder. adhesion_type = global_stack.getProperty("adhesion_type", "value") if adhesion_type in {"skirt", "brim"}: - return max(0, int(global_stack.getProperty("skirt_brim_extruder_nr", "value"))) # optional skirt/brim extruder defaults to zero + skirt_brim_extruder_nr = global_stack.getProperty("skirt_brim_extruder_nr", "value") + # if the skirt_brim_extruder_nr is -1, then we use the first used extruder + if skirt_brim_extruder_nr == -1: + used_extruders = self.getUsedExtruderStacks() + return used_extruders[0].position + else: + return skirt_brim_extruder_nr if adhesion_type == "raft": return global_stack.getProperty("raft_base_extruder_nr", "value") From 6bafd13eaf8f688b9358eb7f155cdf4c673cb51e Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Wed, 24 Jan 2024 12:46:25 +0100 Subject: [PATCH 122/269] Set proper value for raft monotonic surface CURA-11438 --- 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 be44eb7bb2..03850a7344 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6459,6 +6459,7 @@ "description": "Print raft top surface lines in an ordering that causes them to always overlap with adjacent lines in a single direction. This takes slightly more time to print, but makes the surface look more consistent, which is also visible on the model bottom surface.", "type": "bool", "default_value": false, + "value": "skin_monotonic", "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", "settable_per_mesh": false, "settable_per_extruder": true, From c9449030290073aa80409cb1e9d33f8fe3db9429 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Wed, 24 Jan 2024 12:49:17 +0100 Subject: [PATCH 123/269] Fix crash after re-slicing CURA-11438 --- plugins/SimulationView/SimulationView.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/SimulationView/SimulationView.py b/plugins/SimulationView/SimulationView.py index c070c69939..2573c84cb9 100644 --- a/plugins/SimulationView/SimulationView.py +++ b/plugins/SimulationView/SimulationView.py @@ -372,7 +372,10 @@ class SimulationView(CuraView): self._minimum_path_num = min(self._minimum_path_num, self._current_path_num) # update _current time when the path is changed by user if self._current_path_num < self._max_paths and round(self._current_path_num)== self._current_path_num: - self._current_time = self.cumulativeLineDuration()[int(self._current_path_num)] + actual_path_num = int(self._current_path_num) + cumulative_line_duration = self.cumulativeLineDuration() + if actual_path_num < len(cumulative_line_duration): + self._current_time = cumulative_line_duration[actual_path_num] self._startUpdateTopLayers() self.currentPathNumChanged.emit() From 54af5bca3c5e9b5700ce106f854f97e3ed102842 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Thu, 25 Jan 2024 13:30:56 +0100 Subject: [PATCH 124/269] Add export sub-menu CURA-11561 --- resources/qml/Menus/ExportMenu.qml | 44 ++++++++++++++++++++++++++++++ resources/qml/Menus/FileMenu.qml | 26 +++++++++--------- 2 files changed, 57 insertions(+), 13 deletions(-) create mode 100644 resources/qml/Menus/ExportMenu.qml diff --git a/resources/qml/Menus/ExportMenu.qml b/resources/qml/Menus/ExportMenu.qml new file mode 100644 index 0000000000..70560f0772 --- /dev/null +++ b/resources/qml/Menus/ExportMenu.qml @@ -0,0 +1,44 @@ +// Copyright (c) 2024 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 2.1 + +import UM 1.5 as UM +import Cura 1.1 as Cura + +import "../Dialogs" + +Cura.Menu +{ + id: exportMenu + property alias model: meshWriters.model + property bool selectionOnly: false + + Instantiator + { + id: meshWriters + Cura.MenuItem + { + text: model.description + onTriggered: + { + var localDeviceId = "local_file" + var file_name = PrintInformation.jobName + var args = { "filter_by_machine": false, "limit_mimetypes": model.mime_type} + if(exportMenu.selectionOnly) + { + UM.OutputDeviceManager.requestWriteSelectionToDevice(localDeviceId, file_name, args) + } + else + { + UM.OutputDeviceManager.requestWriteToDevice(localDeviceId, file_name, args) + } + } + shortcut: model.shortcut + enabled: exportMenu.shouldBeVisible + } + onObjectAdded: function(index, object) { exportMenu.insertItem(index, object)} + onObjectRemoved: function(index, object) { exportMenu.removeItem(object)} + } +} diff --git a/resources/qml/Menus/FileMenu.qml b/resources/qml/Menus/FileMenu.qml index 0884053ef3..254c0d5468 100644 --- a/resources/qml/Menus/FileMenu.qml +++ b/resources/qml/Menus/FileMenu.qml @@ -4,7 +4,7 @@ import QtQuick 2.2 import QtQuick.Controls 2.1 -import UM 1.6 as UM +import UM 1.7 as UM import Cura 1.0 as Cura Cura.Menu @@ -72,24 +72,24 @@ Cura.Menu Cura.MenuSeparator { } - Cura.MenuItem + UM.MeshWritersModel { id: meshWritersModel } + + ExportMenu { - id: saveAsMenu - text: catalog.i18nc("@title:menu menubar:file", "&Export...") - onTriggered: - { - var localDeviceId = "local_file" - UM.OutputDeviceManager.requestWriteToDevice(localDeviceId, PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}) - } + id: exportMenu + title: catalog.i18nc("@title:menu menubar:file", "&Export...") + model: meshWritersModel + shouldBeVisible: model.count > 0 } - Cura.MenuItem + ExportMenu { id: exportSelectionMenu - text: catalog.i18nc("@action:inmenu menubar:file", "Export Selection...") + title: catalog.i18nc("@action:inmenu menubar:file", "Export Selection...") + model: meshWritersModel + shouldBeVisible: model.count > 0 enabled: UM.Selection.hasSelection - icon.name: "document-save-as" - onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}) + selectionOnly: true } Cura.MenuSeparator { } From edd5cee41a770bc844a262a3079e1f3618c0b228 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Thu, 25 Jan 2024 14:04:47 +0100 Subject: [PATCH 125/269] Fix exporting binary/ascii STL CURA-11561 --- resources/qml/Menus/ExportMenu.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ExportMenu.qml b/resources/qml/Menus/ExportMenu.qml index 70560f0772..5c08b04f0f 100644 --- a/resources/qml/Menus/ExportMenu.qml +++ b/resources/qml/Menus/ExportMenu.qml @@ -25,7 +25,7 @@ Cura.Menu { var localDeviceId = "local_file" var file_name = PrintInformation.jobName - var args = { "filter_by_machine": false, "limit_mimetypes": model.mime_type} + var args = { "filter_by_machine": false, "limit_mimetypes": [model.mime_type], "limit_modes": [model.mode]} if(exportMenu.selectionOnly) { UM.OutputDeviceManager.requestWriteSelectionToDevice(localDeviceId, file_name, args) From 1bf789f6f495a7986182854e85d3e3810b92879f Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Fri, 26 Jan 2024 10:36:13 +0100 Subject: [PATCH 126/269] Update pyinstaller for mac --- UltiMaker-Cura.spec.jinja | 186 +------------------------------------- conandata.yml | 1 - conanfile.py | 4 +- cura/CuraApplication.py | 3 + requirements-dev.txt | 2 +- 5 files changed, 10 insertions(+), 186 deletions(-) diff --git a/UltiMaker-Cura.spec.jinja b/UltiMaker-Cura.spec.jinja index cd939cf736..2c930e6ed6 100644 --- a/UltiMaker-Cura.spec.jinja +++ b/UltiMaker-Cura.spec.jinja @@ -70,188 +70,7 @@ coll = COLLECT( ) {% if macos == true %} -# PyInstaller seems to copy everything in the resource folder for the MacOS, this causes issues with codesigning and notarizing -# The folder structure should adhere to the one specified in Table 2-5 -# https://developer.apple.com/library/archive/documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW1 -# The class below is basically ducktyping the BUNDLE class of PyInstaller and using our own `assemble` method for more fine-grain and specific -# control. Some code of the method below is copied from: -# https://github.com/pyinstaller/pyinstaller/blob/22d1d2a5378228744cc95f14904dae1664df32c4/PyInstaller/building/osx.py#L115 -#----------------------------------------------------------------------------- -# Copyright (c) 2005-2022, PyInstaller Development Team. -# -# Distributed under the terms of the GNU General Public License (version 2 -# or later) with exception for distributing the bootloader. -# -# The full license is in the file COPYING.txt, distributed with this software. -# -# SPDX-License-Identifier: (GPL-2.0-or-later WITH Bootloader-exception) -#----------------------------------------------------------------------------- - -import plistlib -import shutil -import PyInstaller.utils.osx as osxutils -from pathlib import Path -from PyInstaller.building.osx import BUNDLE -from PyInstaller.building.utils import (_check_path_overlap, _rmtree, add_suffix_to_extension, checkCache) -from PyInstaller.building.datastruct import logger -from PyInstaller.building.icon import normalize_icon_type - - -class UMBUNDLE(BUNDLE): - def assemble(self): - from PyInstaller.config import CONF - - if _check_path_overlap(self.name) and os.path.isdir(self.name): - _rmtree(self.name) - logger.info("Building BUNDLE %s", self.tocbasename) - - # Create a minimal Mac bundle structure. - macos_path = Path(self.name, "Contents", "MacOS") - resources_path = Path(self.name, "Contents", "Resources") - frameworks_path = Path(self.name, "Contents", "Frameworks") - os.makedirs(macos_path) - os.makedirs(resources_path) - os.makedirs(frameworks_path) - - # Makes sure the icon exists and attempts to convert to the proper format if applicable - self.icon = normalize_icon_type(self.icon, ("icns",), "icns", CONF["workpath"]) - - # Ensure icon path is absolute - self.icon = os.path.abspath(self.icon) - - # Copy icns icon to Resources directory. - shutil.copy(self.icon, os.path.join(self.name, 'Contents', 'Resources')) - - # Key/values for a minimal Info.plist file - info_plist_dict = { - "CFBundleDisplayName": self.appname, - "CFBundleName": self.appname, - - # Required by 'codesign' utility. - # The value for CFBundleIdentifier is used as the default unique name of your program for Code Signing - # purposes. It even identifies the APP for access to restricted OS X areas like Keychain. - # - # The identifier used for signing must be globally unique. The usual form for this identifier is a - # hierarchical name in reverse DNS notation, starting with the toplevel domain, followed by the company - # name, followed by the department within the company, and ending with the product name. Usually in the - # form: com.mycompany.department.appname - # CLI option --osx-bundle-identifier sets this value. - "CFBundleIdentifier": self.bundle_identifier, - "CFBundleExecutable": os.path.basename(self.exename), - "CFBundleIconFile": os.path.basename(self.icon), - "CFBundleInfoDictionaryVersion": "6.0", - "CFBundlePackageType": "APPL", - "CFBundleVersionString": self.version, - "CFBundleShortVersionString": self.version, - } - - # Set some default values. But they still can be overwritten by the user. - if self.console: - # Setting EXE console=True implies LSBackgroundOnly=True. - info_plist_dict['LSBackgroundOnly'] = True - else: - # Let's use high resolution by default. - info_plist_dict['NSHighResolutionCapable'] = True - - # Merge info_plist settings from spec file - if isinstance(self.info_plist, dict) and self.info_plist: - info_plist_dict.update(self.info_plist) - - plist_filename = os.path.join(self.name, "Contents", "Info.plist") - with open(plist_filename, "wb") as plist_fh: - plistlib.dump(info_plist_dict, plist_fh) - - links = [] - _QT_BASE_PATH = {'PySide2', 'PySide6', 'PyQt5', 'PyQt6', 'PySide6'} - for inm, fnm, typ in self.toc: - # Adjust name for extensions, if applicable - inm, fnm, typ = add_suffix_to_extension(inm, fnm, typ) - inm = Path(inm) - fnm = Path(fnm) - # Copy files from cache. This ensures that are used files with relative paths to dynamic library - # dependencies (@executable_path) - if typ in ('EXTENSION', 'BINARY') or (typ == 'DATA' and inm.suffix == '.so'): - if any(['.' in p for p in inm.parent.parts]): - inm = Path(inm.name) - fnm = Path(checkCache( - str(fnm), - strip = self.strip, - upx = self.upx, - upx_exclude = self.upx_exclude, - dist_nm = str(inm), - target_arch = self.target_arch, - codesign_identity = self.codesign_identity, - entitlements_file = self.entitlements_file, - strict_arch_validation = (typ == 'EXTENSION'), - )) - frame_dst = frameworks_path.joinpath(inm) - if not frame_dst.exists(): - if frame_dst.is_dir(): - os.makedirs(frame_dst, exist_ok = True) - else: - os.makedirs(frame_dst.parent, exist_ok = True) - shutil.copy(fnm, frame_dst, follow_symlinks = True) - macos_dst = macos_path.joinpath(inm) - if not macos_dst.exists(): - if macos_dst.is_dir(): - os.makedirs(macos_dst, exist_ok = True) - else: - os.makedirs(macos_dst.parent, exist_ok = True) - - # Create relative symlink to the framework - symlink_to = Path(*[".." for p in macos_dst.relative_to(macos_path).parts], "Frameworks").joinpath( - frame_dst.relative_to(frameworks_path)) - try: - macos_dst.symlink_to(symlink_to) - except FileExistsError: - pass - else: - if typ == 'DATA': - if any(['.' in p for p in inm.parent.parts]) or inm.suffix == '.so': - # Skip info dist egg and some not needed folders in tcl and tk, since they all contain dots in their files - logger.warning(f"Skipping DATA file {inm}") - continue - res_dst = resources_path.joinpath(inm) - if not res_dst.exists(): - if res_dst.is_dir(): - os.makedirs(res_dst, exist_ok = True) - else: - os.makedirs(res_dst.parent, exist_ok = True) - shutil.copy(fnm, res_dst, follow_symlinks = True) - macos_dst = macos_path.joinpath(inm) - if not macos_dst.exists(): - if macos_dst.is_dir(): - os.makedirs(macos_dst, exist_ok = True) - else: - os.makedirs(macos_dst.parent, exist_ok = True) - - # Create relative symlink to the resource - symlink_to = Path(*[".." for p in macos_dst.relative_to(macos_path).parts], "Resources").joinpath( - res_dst.relative_to(resources_path)) - try: - macos_dst.symlink_to(symlink_to) - except FileExistsError: - pass - else: - macos_dst = macos_path.joinpath(inm) - if not macos_dst.exists(): - if macos_dst.is_dir(): - os.makedirs(macos_dst, exist_ok = True) - else: - os.makedirs(macos_dst.parent, exist_ok = True) - shutil.copy(fnm, macos_dst, follow_symlinks = True) - - # Sign the bundle - logger.info('Signing the BUNDLE...') - try: - osxutils.sign_binary(self.name, self.codesign_identity, self.entitlements_file, deep = True) - except Exception as e: - logger.warning(f"Error while signing the bundle: {e}") - logger.warning("You will need to sign the bundle manually!") - - logger.info(f"Building BUNDLE {self.tocbasename} completed successfully.") - -app = UMBUNDLE( +app = BUNDLE( coll, name='{{ display_name }}.app', icon={{ icon }}, @@ -276,4 +95,5 @@ app = UMBUNDLE( 'CFBundleTypeName': 'Model Files', }] }, -){% endif %} +) +{% endif %} diff --git a/conandata.yml b/conandata.yml index 486a64c26e..2485dd8bd0 100644 --- a/conandata.yml +++ b/conandata.yml @@ -118,7 +118,6 @@ pyinstaller: - "sqlite3" - "trimesh" - "win32ctypes" - - "PyQt6" - "PyQt6.QtNetwork" - "PyQt6.sip" - "stl" diff --git a/conanfile.py b/conanfile.py index 87e3377687..6f0c598b22 100644 --- a/conanfile.py +++ b/conanfile.py @@ -163,8 +163,10 @@ class CuraConan(ConanFile): def _python_installs(self): python_installs = {} + python_executable = "python3" if self.settings.os == "Macos" else "python" + # list of python installs - python_ins_cmd = f"python -c \"import pkg_resources; print(';'.join([(s.key+','+ s.version) for s in pkg_resources.working_set]))\"" + python_ins_cmd = f"{python_executable} -c \"import pkg_resources; print(';'.join([(s.key+','+ s.version) for s in pkg_resources.working_set]))\"" from six import StringIO buffer = StringIO() self.run(python_ins_cmd, run_environment= True, env = "conanrun", output=buffer) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 67c420028b..ddc080d748 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -374,8 +374,10 @@ class CuraApplication(QtApplication): app_root = os.path.abspath(os.path.join(os.path.dirname(sys.executable))) Resources.addSecureSearchPath(os.path.join(app_root, "share", "cura", "resources")) + Resources.addSecureSearchPath(os.path.join(app_root, "Resources", "share", "cura", "resources")) Resources.addSecureSearchPath(os.path.join(self._app_install_dir, "share", "cura", "resources")) + Resources.addSecureSearchPath(os.path.join(self._app_install_dir, "Resources", "share", "cura", "resources")) if not hasattr(sys, "frozen"): cura_data_root = os.environ.get('CURA_DATA_ROOT', None) if cura_data_root: @@ -389,6 +391,7 @@ class CuraApplication(QtApplication): # venv site-packages Resources.addSearchPath(os.path.join(app_root, "..", "share", "cura", "resources")) + Resources.addSearchPath(os.path.join(app_root, "..", "Resources", "share", "cura", "resources")) @classmethod def _initializeSettingDefinitions(cls): diff --git a/requirements-dev.txt b/requirements-dev.txt index a1b191009a..162b33bf15 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,5 +1,5 @@ pytest -pyinstaller==5.8.0 +pyinstaller==6.3.0 pyinstaller-hooks-contrib pyyaml sip==6.5.1 From 18fabe468be1b3b215de67fd68473e0c210d5c19 Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Fri, 26 Jan 2024 12:38:09 +0100 Subject: [PATCH 127/269] Increase part strength of high speed modes by compensating for the slip at high flow rates. PP-386 --- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg | 4 ++++ .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg | 4 ++++ .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg | 4 ++++ .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg | 4 ++++ .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg | 4 ++++ .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg | 4 ++++ .../quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg | 4 ++++ .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg | 4 ++++ 8 files changed, 32 insertions(+) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg index 57413c4b30..435af40ae9 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg @@ -28,6 +28,7 @@ bridge_skin_speed = =bridge_wall_speed bridge_sparse_infill_max_density = 50 bridge_wall_speed = 30 cool_min_layer_time = 4 +infill_material_flow = =1.05 * material_flow infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' infill_sparse_density = 15 jerk_infill = =jerk_print @@ -49,6 +50,7 @@ raft_airgap = 0.15 retraction_amount = 6.5 retraction_prime_speed = 15 retraction_speed = 45 +skin_material_flow = =material_flow small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print @@ -70,6 +72,8 @@ support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 +wall_x_material_flow = =1.05 * wall_material_flow +wall_x_material_flow_roofing = =wall_material_flow z_seam_relative = True z_seam_type = back zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg index e7e50350c0..29138b1fa1 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg @@ -28,6 +28,7 @@ bridge_skin_speed = =bridge_wall_speed bridge_sparse_infill_max_density = 50 bridge_wall_speed = 30 cool_min_layer_time = 4 +infill_material_flow = =1.1 * material_flow infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' infill_sparse_density = 15 jerk_infill = =jerk_print @@ -48,6 +49,7 @@ prime_tower_enable = False retraction_amount = 8 retraction_prime_speed = 15 retraction_speed = 45 +skin_material_flow = =1.05 * material_flow small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print @@ -69,6 +71,8 @@ support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 +wall_x_material_flow = =1.1 * wall_material_flow +wall_x_material_flow_roofing = =wall_material_flow z_seam_relative = True z_seam_type = back zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg index dcbb580edb..859289d447 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg @@ -28,6 +28,7 @@ bridge_skin_speed = =bridge_wall_speed bridge_sparse_infill_max_density = 50 bridge_wall_speed = 30 cool_min_layer_time = 6 +infill_material_flow = =1.1 * material_flow infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' infill_sparse_density = 15 jerk_infill = =jerk_print @@ -49,6 +50,7 @@ raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed retraction_speed = 45 +skin_material_flow = =1.05 * material_flow small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print @@ -70,6 +72,8 @@ support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 +wall_x_material_flow = =1.1 * wall_material_flow +wall_x_material_flow_roofing = =wall_material_flow z_seam_relative = True z_seam_type = back zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg index 151af3ed50..8b6af78965 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg @@ -28,6 +28,7 @@ bridge_skin_speed = =bridge_wall_speed bridge_sparse_infill_max_density = 50 bridge_wall_speed = 30 cool_min_layer_time = 6 +infill_material_flow = =1.1 * material_flow infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' infill_sparse_density = 15 jerk_infill = =jerk_print @@ -48,6 +49,7 @@ raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed retraction_speed = 45 +skin_material_flow = =1.05 * material_flow small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print @@ -69,6 +71,8 @@ support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 +wall_x_material_flow = =1.1 * wall_material_flow +wall_x_material_flow_roofing = =wall_material_flow z_seam_relative = True z_seam_type = back zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg index f430e6bc16..c700c42674 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg @@ -28,6 +28,7 @@ bridge_skin_speed = =bridge_wall_speed bridge_sparse_infill_max_density = 50 bridge_wall_speed = 30 cool_min_layer_time = 4 +infill_material_flow = =1.05 * material_flow infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' infill_sparse_density = 15 jerk_infill = =jerk_print @@ -49,6 +50,7 @@ raft_airgap = 0.15 retraction_amount = 6.5 retraction_prime_speed = 15 retraction_speed = 45 +skin_material_flow = =material_flow small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print @@ -70,6 +72,8 @@ support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 +wall_x_material_flow = =1.05 * wall_material_flow +wall_x_material_flow_roofing = =wall_material_flow z_seam_relative = True z_seam_type = back zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg index 55696eccb4..cb3419dadc 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg @@ -28,6 +28,7 @@ bridge_skin_speed = =bridge_wall_speed bridge_sparse_infill_max_density = 50 bridge_wall_speed = 30 cool_min_layer_time = 4 +infill_material_flow = =1.1 * material_flow infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' infill_sparse_density = 15 jerk_infill = =jerk_print @@ -48,6 +49,7 @@ prime_tower_enable = False retraction_amount = 8 retraction_prime_speed = 15 retraction_speed = 45 +skin_material_flow = =1.05 * material_flow small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print @@ -69,6 +71,8 @@ support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 +wall_x_material_flow = =1.1 * wall_material_flow +wall_x_material_flow_roofing = =wall_material_flow z_seam_relative = True z_seam_type = back zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg index 02d22b06b8..ba379b1b05 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg @@ -28,6 +28,7 @@ bridge_skin_speed = =bridge_wall_speed bridge_sparse_infill_max_density = 50 bridge_wall_speed = 30 cool_min_layer_time = 6 +infill_material_flow = =1.1 * material_flow infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' infill_sparse_density = 15 jerk_infill = =jerk_print @@ -49,6 +50,7 @@ raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed retraction_speed = 45 +skin_material_flow = =1.05 * material_flow small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print @@ -70,6 +72,8 @@ support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 +wall_x_material_flow = =1.1 * wall_material_flow +wall_x_material_flow_roofing = =wall_material_flow z_seam_relative = True z_seam_type = back zig_zaggify_infill = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg index ee0ee279e6..6f4efb905b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg @@ -28,6 +28,7 @@ bridge_skin_speed = =bridge_wall_speed bridge_sparse_infill_max_density = 50 bridge_wall_speed = 30 cool_min_layer_time = 6 +infill_material_flow = =1.1 * material_flow infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' infill_sparse_density = 15 jerk_infill = =jerk_print @@ -48,6 +49,7 @@ raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed retraction_speed = 45 +skin_material_flow = =1.05 * material_flow small_skin_on_surface = False small_skin_width = 4 speed_infill = =speed_print @@ -69,6 +71,8 @@ support_top_distance = =support_z_distance support_z_distance = =math.ceil(0.3/layer_height)*layer_height top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 +wall_x_material_flow = =1.1 * wall_material_flow +wall_x_material_flow_roofing = =wall_material_flow z_seam_relative = True z_seam_type = back zig_zaggify_infill = True From 20becc170057b7ee1c972a218805e00c6ff8bd78 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Fri, 26 Jan 2024 12:49:37 +0100 Subject: [PATCH 128/269] Fix Python Installs about dialog It will now use the Python Virtual env --- conanfile.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/conanfile.py b/conanfile.py index 87e3377687..3b48442fa0 100644 --- a/conanfile.py +++ b/conanfile.py @@ -1,4 +1,5 @@ import os +from io import StringIO from pathlib import Path from jinja2 import Template @@ -150,6 +151,7 @@ class CuraConan(ConanFile): return "None" def _conan_installs(self): + self.output.info("Collecting conan installs") conan_installs = {} # list of conan installs @@ -161,13 +163,22 @@ class CuraConan(ConanFile): return conan_installs def _python_installs(self): + self.output.info("Collecting python installs") python_installs = {} # list of python installs - python_ins_cmd = f"python -c \"import pkg_resources; print(';'.join([(s.key+','+ s.version) for s in pkg_resources.working_set]))\"" - from six import StringIO + run_env = VirtualRunEnv(self) + env = run_env.environment() + env.prepend_path("PYTHONPATH", str(self._site_packages.as_posix())) + venv_vars = env.vars(self, scope = "run") + + outer = '"' if self.settings.os == "Windows" else "'" + inner = "'" if self.settings.os == "Windows" else '"' buffer = StringIO() - self.run(python_ins_cmd, run_environment= True, env = "conanrun", output=buffer) + with venv_vars.apply(): + self.run(f"""python -c {outer}import pkg_resources; print({inner};{inner}.join([(s.key+{inner},{inner}+ s.version) for s in pkg_resources.working_set])){outer}""", + env = "conanrun", + output = buffer) packages = str(buffer.getvalue()).split("-----------------\n") packages = packages[1].strip('\r\n').split(";") @@ -504,10 +515,14 @@ echo "CURA_APP_NAME={{ cura_app_name }}" >> ${{ env_prefix }}GITHUB_ENV if self.in_local_cache: self.runenv_info.append_path("PYTHONPATH", os.path.join(self.package_folder, "site-packages")) + self.env_info.PYTHONPATH.append(os.path.join(self.package_folder, "site-packages")) self.runenv_info.append_path("PYTHONPATH", os.path.join(self.package_folder, "plugins")) + self.env_info.PYTHONPATH.append(os.path.join(self.package_folder, "plugins")) else: self.runenv_info.append_path("PYTHONPATH", self.source_folder) + self.env_info.PYTHONPATH.append(self.source_folder) self.runenv_info.append_path("PYTHONPATH", os.path.join(self.source_folder, "plugins")) + self.env_info.PYTHONPATH.append(os.path.join(self.source_folder, "plugins")) def package_id(self): self.info.clear() From b5b0575baf505d4902d4aa1b72c940485914419a Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 26 Jan 2024 14:01:26 +0100 Subject: [PATCH 129/269] Display (uncomplete) configuration UI to export PCB file CURA-11561 --- plugins/PCBWriter/PCBDialog.py | 37 +++++ plugins/PCBWriter/PCBDialog.qml | 148 +++++++++++++++++++ plugins/PCBWriter/PCBWriter.py | 67 +++++++++ plugins/PCBWriter/SettingExport.py | 24 +++ plugins/PCBWriter/SettingsExportGroup.py | 59 ++++++++ plugins/PCBWriter/SettingsExportModel.py | 31 ++++ plugins/PCBWriter/SettingsSelectionGroup.qml | 70 +++++++++ plugins/PCBWriter/__init__.py | 21 +++ plugins/PCBWriter/plugin.json | 8 + resources/qml/ExtruderIcon.qml | 1 + 10 files changed, 466 insertions(+) create mode 100644 plugins/PCBWriter/PCBDialog.py create mode 100644 plugins/PCBWriter/PCBDialog.qml create mode 100644 plugins/PCBWriter/PCBWriter.py create mode 100644 plugins/PCBWriter/SettingExport.py create mode 100644 plugins/PCBWriter/SettingsExportGroup.py create mode 100644 plugins/PCBWriter/SettingsExportModel.py create mode 100644 plugins/PCBWriter/SettingsSelectionGroup.qml create mode 100644 plugins/PCBWriter/__init__.py create mode 100644 plugins/PCBWriter/plugin.json diff --git a/plugins/PCBWriter/PCBDialog.py b/plugins/PCBWriter/PCBDialog.py new file mode 100644 index 0000000000..f31c87a61b --- /dev/null +++ b/plugins/PCBWriter/PCBDialog.py @@ -0,0 +1,37 @@ +# Copyright (c) 2024 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from PyQt6.QtCore import pyqtSignal, QObject, pyqtProperty, QCoreApplication, QUrl +from PyQt6.QtGui import QDesktopServices +from typing import List, Optional, Dict, cast + +from cura.Machines.Models.MachineListModel import MachineListModel +from cura.Machines.Models.IntentTranslations import intent_translations +from cura.Settings.GlobalStack import GlobalStack +from UM.Application import Application +from UM.FlameProfiler import pyqtSlot +from UM.i18n import i18nCatalog +from UM.Logger import Logger +from UM.Message import Message +from UM.PluginRegistry import PluginRegistry +from UM.Settings.ContainerRegistry import ContainerRegistry + +import os +import threading +import time + +from cura.CuraApplication import CuraApplication + +i18n_catalog = i18nCatalog("cura") + + +class PCBDialog(QObject): + def __init__(self, parent = None) -> None: + super().__init__(parent) + + plugin_path = os.path.dirname(__file__) + dialog_path = os.path.join(plugin_path, 'PCBDialog.qml') + self._view = CuraApplication.getInstance().createQmlComponent(dialog_path, {"manager": self}) + + def show(self) -> None: + self._view.show() diff --git a/plugins/PCBWriter/PCBDialog.qml b/plugins/PCBWriter/PCBDialog.qml new file mode 100644 index 0000000000..1937c00828 --- /dev/null +++ b/plugins/PCBWriter/PCBDialog.qml @@ -0,0 +1,148 @@ +// Copyright (c) 2024 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Layouts 1.3 +import QtQuick.Window 2.2 + +import UM 1.5 as UM +import Cura 1.1 as Cura +import PCBWriter 1.0 as PCBWriter + +UM.Dialog +{ + id: workspaceDialog + title: catalog.i18nc("@title:window", "Export pre-configured build batch") + + margin: UM.Theme.getSize("default_margin").width + minimumWidth: UM.Theme.getSize("modal_window_minimum").width + minimumHeight: UM.Theme.getSize("modal_window_minimum").height + + backgroundColor: UM.Theme.getColor("detail_background") + + headerComponent: Rectangle + { + UM.I18nCatalog { id: catalog; name: "cura" } + + height: childrenRect.height + 2 * UM.Theme.getSize("default_margin").height + color: UM.Theme.getColor("main_background") + + ColumnLayout + { + id: headerColumn + + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.rightMargin: anchors.leftMargin + + UM.Label + { + id: titleLabel + text: catalog.i18nc("@action:title", "Summary - Pre-configured build batch") + font: UM.Theme.getFont("large") + } + + UM.Label + { + id: descriptionLabel + text: catalog.i18nc("@action:description", "When exporting a build batch, all the models present on the build plate will be included with their current position, orientation and scale. You can also select which per-extruder or per-model settings should be included to ensure a proper printing of the batch, even on different printers.") + font: UM.Theme.getFont("default") + wrapMode: Text.Wrap + Layout.maximumWidth: headerColumn.width + } + } + } + + Rectangle + { + anchors.fill: parent + color: UM.Theme.getColor("main_background") + + PCBWriter.SettingsExportModel{ id: settingsExportModel } + + ListView + { + id: settingsExportList + anchors.fill: parent + anchors.margins: UM.Theme.getSize("default_margin").width + spacing: UM.Theme.getSize("default_margin").height + model: settingsExportModel.settingsGroups + clip: true + + ScrollBar.vertical: UM.ScrollBar { id: verticalScrollBar } + + delegate: SettingsSelectionGroup { Layout.margins: 0 } + } + + // Flickable + // { + // Column + // { + // width: parent.width - scrollbar.width - UM.Theme.getSize("default_margin").width + // height: childrenRect.height + // + // spacing: UM.Theme.getSize("default_margin").height + // leftPadding: UM.Theme.getSize("default_margin").width + // rightPadding: leftPadding + // topPadding: UM.Theme.getSize("default_margin").height + // bottomPadding: topPadding + // } + // } + } + + footerComponent: Rectangle + { + color: warning ? UM.Theme.getColor("warning") : "transparent" + anchors.bottom: parent.bottom + width: parent.width + height: childrenRect.height + (warning ? 2 * workspaceDialog.margin : workspaceDialog.margin) + + Column + { + height: childrenRect.height + spacing: workspaceDialog.margin + + anchors.leftMargin: workspaceDialog.margin + anchors.rightMargin: workspaceDialog.margin + anchors.bottomMargin: workspaceDialog.margin + anchors.topMargin: warning ? workspaceDialog.margin : 0 + + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + + RowLayout + { + id: warningRow + height: childrenRect.height + visible: warning + spacing: workspaceDialog.margin + UM.ColorImage + { + width: UM.Theme.getSize("extruder_icon").width + height: UM.Theme.getSize("extruder_icon").height + source: UM.Theme.getIcon("Warning") + } + + UM.Label + { + id: warningText + text: catalog.i18nc("@label", "This project contains materials or plugins that are currently not installed in Cura.
Install the missing packages and reopen the project.") + } + } + + Loader + { + width: parent.width + height: childrenRect.height + sourceComponent: buttonRow + } + } + } + + buttonSpacing: UM.Theme.getSize("wide_margin").width +} diff --git a/plugins/PCBWriter/PCBWriter.py b/plugins/PCBWriter/PCBWriter.py new file mode 100644 index 0000000000..6391493ae3 --- /dev/null +++ b/plugins/PCBWriter/PCBWriter.py @@ -0,0 +1,67 @@ +# Copyright (c) 2024 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. +import json +import re + +from threading import Lock + +from typing import Optional, cast, List, Dict, Pattern, Set + +from UM.Mesh.MeshWriter import MeshWriter +from UM.Math.Vector import Vector +from UM.Logger import Logger +from UM.Math.Matrix import Matrix +from UM.Application import Application +from UM.Message import Message +from UM.Resources import Resources +from UM.Scene.SceneNode import SceneNode +from UM.Settings.ContainerRegistry import ContainerRegistry +from UM.Settings.EmptyInstanceContainer import EmptyInstanceContainer +from PyQt6.QtQml import qmlRegisterType + +from cura.CuraApplication import CuraApplication +from cura.CuraPackageManager import CuraPackageManager +from cura.Settings import CuraContainerStack +from cura.Utils.Threading import call_on_qt_thread +from cura.Snapshot import Snapshot + +from PyQt6.QtCore import QBuffer + +import pySavitar as Savitar + +import numpy +import datetime + +import zipfile +import UM.Application + +from .PCBDialog import PCBDialog +from .SettingsExportModel import SettingsExportModel +from .SettingsExportGroup import SettingsExportGroup + +from UM.i18n import i18nCatalog +catalog = i18nCatalog("cura") + +class PCBWriter(MeshWriter): + def __init__(self): + super().__init__() + + qmlRegisterType(SettingsExportModel, "PCBWriter", 1, 0, "SettingsExportModel") + qmlRegisterType(SettingsExportGroup, "PCBWriter", 1, 0, "SettingsExportGroup") + #qmlRegisterUncreatableType(SettingsExportGroup.Category, "PCBWriter", 1, 0, "SettingsExportGroup.Category") + + self._config_dialog = None + self._main_thread_lock = Lock() + + def write(self, stream, nodes, mode = MeshWriter.OutputMode.BinaryMode) -> bool: + self._main_thread_lock.acquire() + # Start configuration window in main application thread + CuraApplication.getInstance().callLater(self._write, stream, nodes, mode) + self._main_thread_lock.acquire() # Block until lock has been released, meaning the config is over + + self._main_thread_lock.release() + return True + + def _write(self, stream, nodes, mode): + self._config_dialog = PCBDialog() + self._config_dialog.show() diff --git a/plugins/PCBWriter/SettingExport.py b/plugins/PCBWriter/SettingExport.py new file mode 100644 index 0000000000..901dcdc804 --- /dev/null +++ b/plugins/PCBWriter/SettingExport.py @@ -0,0 +1,24 @@ +# Copyright (c) 2024 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from PyQt6.QtCore import Qt, QObject, pyqtProperty +from UM.FlameProfiler import pyqtSlot +from UM.Application import Application +from UM.Qt.ListModel import ListModel +from UM.Logger import Logger + + +class SettingsExport(): + + def __init__(self): + super().__init__() + self._name = "Generate Support" + self._value = "Enabled" + + @pyqtProperty(str, constant=True) + def name(self): + return self._name + + @pyqtProperty(str, constant=True) + def value(self): + return self._value diff --git a/plugins/PCBWriter/SettingsExportGroup.py b/plugins/PCBWriter/SettingsExportGroup.py new file mode 100644 index 0000000000..355b2347f6 --- /dev/null +++ b/plugins/PCBWriter/SettingsExportGroup.py @@ -0,0 +1,59 @@ +# Copyright (c) 2024 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from enum import IntEnum + +from PyQt6.QtCore import Qt, QObject, pyqtProperty, pyqtEnum +from UM.FlameProfiler import pyqtSlot +from UM.Application import Application +from UM.Qt.ListModel import ListModel +from UM.Logger import Logger + +from .SettingExport import SettingsExport + + +class SettingsExportGroup(QObject): + + @pyqtEnum + class Category(IntEnum): + Global = 0 + Extruder = 1 + Model = 2 + + def __init__(self, name, category, category_details = '', extruder_index = 0, extruder_color = ''): + super().__init__() + self._name = name + self._settings = [] + self._category = category + self._category_details = category_details + self._extruder_index = extruder_index + self._extruder_color = extruder_color + self._updateSettings() + + @pyqtProperty(str, constant=True) + def name(self): + return self._name + + @pyqtProperty(list, constant=True) + def settings(self): + return self._settings + + @pyqtProperty(int, constant=True) + def category(self): + return self._category + + @pyqtProperty(str, constant=True) + def category_details(self): + return self._category_details + + @pyqtProperty(int, constant=True) + def extruder_index(self): + return self._extruder_index + + @pyqtProperty(str, constant=True) + def extruder_color(self): + return self._extruder_color + + def _updateSettings(self): + self._settings.append(SettingsExport()) + self._settings.append(SettingsExport()) \ No newline at end of file diff --git a/plugins/PCBWriter/SettingsExportModel.py b/plugins/PCBWriter/SettingsExportModel.py new file mode 100644 index 0000000000..3351e22b59 --- /dev/null +++ b/plugins/PCBWriter/SettingsExportModel.py @@ -0,0 +1,31 @@ +# Copyright (c) 2024 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from PyQt6.QtCore import QObject, Qt, pyqtProperty +from UM.FlameProfiler import pyqtSlot +from UM.Application import Application +from UM.Qt.ListModel import ListModel +from UM.Logger import Logger + +from .SettingsExportGroup import SettingsExportGroup + + +class SettingsExportModel(QObject): + + def __init__(self, parent = None): + super().__init__(parent) + self._settingsGroups = [] + self._updateSettingsExportGroups() + + @pyqtProperty(list, constant=True) + def settingsGroups(self): + return self._settingsGroups + + def _updateSettingsExportGroups(self): + self._settingsGroups.append(SettingsExportGroup("Global settings", SettingsExportGroup.Category.Global)) + self._settingsGroups.append(SettingsExportGroup("Extruder settings", SettingsExportGroup.Category.Extruder, extruder_index=1, extruder_color='#ff0000')) + self._settingsGroups.append(SettingsExportGroup("Extruder settings", SettingsExportGroup.Category.Extruder, extruder_index=8, extruder_color='#008fff')) + self._settingsGroups.append(SettingsExportGroup("Model settings", + SettingsExportGroup.Category.Model, 'hypercube.stl')) + self._settingsGroups.append(SettingsExportGroup("Model settings", + SettingsExportGroup.Category.Model, 'homer-simpson.stl')) diff --git a/plugins/PCBWriter/SettingsSelectionGroup.qml b/plugins/PCBWriter/SettingsSelectionGroup.qml new file mode 100644 index 0000000000..12829c96d4 --- /dev/null +++ b/plugins/PCBWriter/SettingsSelectionGroup.qml @@ -0,0 +1,70 @@ +// Copyright (c) 2024 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Layouts 1.3 +import QtQuick.Window 2.2 + +import UM 1.5 as UM +import Cura 1.1 as Cura +import PCBWriter 1.0 as PCBWriter + +Column +{ + id: settingsGroup + + UM.I18nCatalog { id: catalog; name: "cura" } + + Row + { + id: settingsGroupTitleRow + spacing: UM.Theme.getSize("default_margin").width + + Item + { + id: icon + anchors.verticalCenter: parent.verticalCenter + height: UM.Theme.getSize("medium_button_icon").height + width: height + + UM.ColorImage + { + id: settingsMainImage + anchors.fill: parent + source: + { + switch(modelData.category) + { + case PCBWriter.SettingsExportGroup.Global: + return UM.Theme.getIcon("Sliders") + case PCBWriter.SettingsExportGroup.Model: + return UM.Theme.getIcon("View3D") + default: + return "" + } + } + + color: UM.Theme.getColor("text") + } + + Cura.ExtruderIcon + { + id: settingsExtruderIcon + anchors.fill: parent + visible: modelData.category === PCBWriter.SettingsExportGroup.Extruder + text: (modelData.extruder_index + 1).toString() + font: UM.Theme.getFont("tiny_emphasis") + materialColor: modelData.extruder_color + } + } + + UM.Label + { + id: settingsTitle + text: modelData.name + (modelData.category_details ? ' (%1)'.arg(modelData.category_details) : '') + anchors.verticalCenter: parent.verticalCenter + font: UM.Theme.getFont("default_bold") + } + } +} diff --git a/plugins/PCBWriter/__init__.py b/plugins/PCBWriter/__init__.py new file mode 100644 index 0000000000..3ec2eba95f --- /dev/null +++ b/plugins/PCBWriter/__init__.py @@ -0,0 +1,21 @@ +# Copyright (c) 2024 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. +import sys + +from . import PCBWriter +from UM.i18n import i18nCatalog + +i18n_catalog = i18nCatalog("cura") + +def getMetaData(): + return {"mesh_writer": { + "output": [{ + "extension": "pcb", + "description": i18n_catalog.i18nc("@item:inlistbox", "Pre-Configured Batch file"), + "mime_type": "application/vnd.um.preconfigured-batch+3mf", + "mode": PCBWriter.PCBWriter.OutputMode.BinaryMode + }] + }} + +def register(app): + return {"mesh_writer": PCBWriter.PCBWriter() } diff --git a/plugins/PCBWriter/plugin.json b/plugins/PCBWriter/plugin.json new file mode 100644 index 0000000000..6571185779 --- /dev/null +++ b/plugins/PCBWriter/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Pre-Configured Batch Writer", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Provides support for writing Pre-Configured Batch files.", + "api": 8, + "i18n-catalog": "cura" +} diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index 3231d924ee..bd15df7848 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -15,6 +15,7 @@ Item property int iconSize: UM.Theme.getSize("extruder_icon").width property string iconVariant: "medium" property alias font: extruderNumberText.font + property alias text: extruderNumberText.text implicitWidth: iconSize implicitHeight: iconSize From 2aef33f52143f210be44f4f4a84712c68ee1d1b1 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Tue, 30 Jan 2024 14:35:55 +0100 Subject: [PATCH 130/269] Completed configuration UI to export PCB file CURA-11561 --- plugins/PCBWriter/PCBDialog.qml | 17 +----------- plugins/PCBWriter/SettingExport.py | 8 +++--- plugins/PCBWriter/SettingSelection.qml | 27 ++++++++++++++++++ plugins/PCBWriter/SettingsExportGroup.py | 9 ++---- plugins/PCBWriter/SettingsExportModel.py | 28 +++++++++++++++---- plugins/PCBWriter/SettingsSelectionGroup.qml | 29 ++++++++++++++++---- 6 files changed, 80 insertions(+), 38 deletions(-) create mode 100644 plugins/PCBWriter/SettingSelection.qml diff --git a/plugins/PCBWriter/PCBDialog.qml b/plugins/PCBWriter/PCBDialog.qml index 1937c00828..213bed108c 100644 --- a/plugins/PCBWriter/PCBDialog.qml +++ b/plugins/PCBWriter/PCBDialog.qml @@ -69,7 +69,7 @@ UM.Dialog id: settingsExportList anchors.fill: parent anchors.margins: UM.Theme.getSize("default_margin").width - spacing: UM.Theme.getSize("default_margin").height + spacing: UM.Theme.getSize("thick_margin").height model: settingsExportModel.settingsGroups clip: true @@ -77,21 +77,6 @@ UM.Dialog delegate: SettingsSelectionGroup { Layout.margins: 0 } } - - // Flickable - // { - // Column - // { - // width: parent.width - scrollbar.width - UM.Theme.getSize("default_margin").width - // height: childrenRect.height - // - // spacing: UM.Theme.getSize("default_margin").height - // leftPadding: UM.Theme.getSize("default_margin").width - // rightPadding: leftPadding - // topPadding: UM.Theme.getSize("default_margin").height - // bottomPadding: topPadding - // } - // } } footerComponent: Rectangle diff --git a/plugins/PCBWriter/SettingExport.py b/plugins/PCBWriter/SettingExport.py index 901dcdc804..2c230f9ab3 100644 --- a/plugins/PCBWriter/SettingExport.py +++ b/plugins/PCBWriter/SettingExport.py @@ -8,12 +8,12 @@ from UM.Qt.ListModel import ListModel from UM.Logger import Logger -class SettingsExport(): +class SettingsExport(QObject): - def __init__(self): + def __init__(self, name, value): super().__init__() - self._name = "Generate Support" - self._value = "Enabled" + self._name = name + self._value = value @pyqtProperty(str, constant=True) def name(self): diff --git a/plugins/PCBWriter/SettingSelection.qml b/plugins/PCBWriter/SettingSelection.qml new file mode 100644 index 0000000000..9b09593a7d --- /dev/null +++ b/plugins/PCBWriter/SettingSelection.qml @@ -0,0 +1,27 @@ +// Copyright (c) 2024 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Layouts 1.3 +import QtQuick.Window 2.2 + +import UM 1.5 as UM +import Cura 1.1 as Cura + +RowLayout +{ + id: settingSelection + + UM.CheckBox + { + text: modelData.name + Layout.preferredWidth: UM.Theme.getSize("setting").width + checked: true + } + + UM.Label + { + text: modelData.value + } +} diff --git a/plugins/PCBWriter/SettingsExportGroup.py b/plugins/PCBWriter/SettingsExportGroup.py index 355b2347f6..0a721a7fb8 100644 --- a/plugins/PCBWriter/SettingsExportGroup.py +++ b/plugins/PCBWriter/SettingsExportGroup.py @@ -20,15 +20,14 @@ class SettingsExportGroup(QObject): Extruder = 1 Model = 2 - def __init__(self, name, category, category_details = '', extruder_index = 0, extruder_color = ''): + def __init__(self, name, category, settings, category_details = '', extruder_index = 0, extruder_color = ''): super().__init__() self._name = name - self._settings = [] + self._settings = settings self._category = category self._category_details = category_details self._extruder_index = extruder_index self._extruder_color = extruder_color - self._updateSettings() @pyqtProperty(str, constant=True) def name(self): @@ -53,7 +52,3 @@ class SettingsExportGroup(QObject): @pyqtProperty(str, constant=True) def extruder_color(self): return self._extruder_color - - def _updateSettings(self): - self._settings.append(SettingsExport()) - self._settings.append(SettingsExport()) \ No newline at end of file diff --git a/plugins/PCBWriter/SettingsExportModel.py b/plugins/PCBWriter/SettingsExportModel.py index 3351e22b59..0f1ec5113a 100644 --- a/plugins/PCBWriter/SettingsExportModel.py +++ b/plugins/PCBWriter/SettingsExportModel.py @@ -8,6 +8,7 @@ from UM.Qt.ListModel import ListModel from UM.Logger import Logger from .SettingsExportGroup import SettingsExportGroup +from .SettingExport import SettingsExport class SettingsExportModel(QObject): @@ -22,10 +23,27 @@ class SettingsExportModel(QObject): return self._settingsGroups def _updateSettingsExportGroups(self): - self._settingsGroups.append(SettingsExportGroup("Global settings", SettingsExportGroup.Category.Global)) - self._settingsGroups.append(SettingsExportGroup("Extruder settings", SettingsExportGroup.Category.Extruder, extruder_index=1, extruder_color='#ff0000')) - self._settingsGroups.append(SettingsExportGroup("Extruder settings", SettingsExportGroup.Category.Extruder, extruder_index=8, extruder_color='#008fff')) + self._settingsGroups.append(SettingsExportGroup("Global settings", + SettingsExportGroup.Category.Global, + [SettingsExport("Generate Support", "Enabled"), + SettingsExport("Support Type", "Tree")])) + self._settingsGroups.append(SettingsExportGroup("Extruder settings", + SettingsExportGroup.Category.Extruder, + [SettingsExport("Brim Width", "0.7mm")], + extruder_index=1, + extruder_color='#ff0000')) + self._settingsGroups.append(SettingsExportGroup("Extruder settings", + SettingsExportGroup.Category.Extruder, + [], + extruder_index=8, + extruder_color='#008fff')) self._settingsGroups.append(SettingsExportGroup("Model settings", - SettingsExportGroup.Category.Model, 'hypercube.stl')) + SettingsExportGroup.Category.Model, + [SettingsExport("Brim Width", "20.0 mm"), + SettingsExport("Z Hop when retracted", "Disabled")], + 'hypercube.stl')) self._settingsGroups.append(SettingsExportGroup("Model settings", - SettingsExportGroup.Category.Model, 'homer-simpson.stl')) + SettingsExportGroup.Category.Model, + [SettingsExport("Walls Thickness", "3.0 mm"), + SettingsExport("Enable Ironing", "Enabled")], + 'homer-simpson.stl')) diff --git a/plugins/PCBWriter/SettingsSelectionGroup.qml b/plugins/PCBWriter/SettingsSelectionGroup.qml index 12829c96d4..39299ab7c3 100644 --- a/plugins/PCBWriter/SettingsSelectionGroup.qml +++ b/plugins/PCBWriter/SettingsSelectionGroup.qml @@ -10,13 +10,12 @@ import UM 1.5 as UM import Cura 1.1 as Cura import PCBWriter 1.0 as PCBWriter -Column +ColumnLayout { id: settingsGroup + spacing: UM.Theme.getSize("narrow_margin").width - UM.I18nCatalog { id: catalog; name: "cura" } - - Row + RowLayout { id: settingsGroupTitleRow spacing: UM.Theme.getSize("default_margin").width @@ -24,7 +23,6 @@ Column Item { id: icon - anchors.verticalCenter: parent.verticalCenter height: UM.Theme.getSize("medium_button_icon").height width: height @@ -63,8 +61,27 @@ Column { id: settingsTitle text: modelData.name + (modelData.category_details ? ' (%1)'.arg(modelData.category_details) : '') - anchors.verticalCenter: parent.verticalCenter font: UM.Theme.getFont("default_bold") } } + + ListView + { + id: settingsExportList + Layout.fillWidth: true + Layout.preferredHeight: contentHeight + spacing: 0 + model: modelData.settings + visible: modelData.settings.length > 0 + + delegate: SettingSelection { } + } + + UM.Label + { + UM.I18nCatalog { id: catalog; name: "cura" } + + text: catalog.i18nc("@label", "No specific value has been set") + visible: modelData.settings.length === 0 + } } From 8ad4ab90a8e90a173f6e1aa08b02d75a0b822fb2 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Wed, 31 Jan 2024 09:26:49 +0100 Subject: [PATCH 131/269] User settings are now properly proposed for export CURA-11561 --- plugins/PCBWriter/PCBDialog.py | 8 +- plugins/PCBWriter/PCBDialog.qml | 2 + plugins/PCBWriter/PCBWriter.py | 4 + plugins/PCBWriter/SettingExport.py | 6 +- plugins/PCBWriter/SettingsExportGroup.py | 8 +- plugins/PCBWriter/SettingsExportModel.py | 132 +++++++++++++++++------ 6 files changed, 114 insertions(+), 46 deletions(-) diff --git a/plugins/PCBWriter/PCBDialog.py b/plugins/PCBWriter/PCBDialog.py index f31c87a61b..385b60272e 100644 --- a/plugins/PCBWriter/PCBDialog.py +++ b/plugins/PCBWriter/PCBDialog.py @@ -1,7 +1,7 @@ # Copyright (c) 2024 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -from PyQt6.QtCore import pyqtSignal, QObject, pyqtProperty, QCoreApplication, QUrl +from PyQt6.QtCore import pyqtSignal, QObject, pyqtProperty, QCoreApplication, QUrl, pyqtSlot from PyQt6.QtGui import QDesktopServices from typing import List, Optional, Dict, cast @@ -26,6 +26,8 @@ i18n_catalog = i18nCatalog("cura") class PCBDialog(QObject): + finished = pyqtSignal() + def __init__(self, parent = None) -> None: super().__init__(parent) @@ -35,3 +37,7 @@ class PCBDialog(QObject): def show(self) -> None: self._view.show() + + @pyqtSlot() + def notifyClosed(self): + self.finished.emit() diff --git a/plugins/PCBWriter/PCBDialog.qml b/plugins/PCBWriter/PCBDialog.qml index 213bed108c..ddf99d5e1f 100644 --- a/plugins/PCBWriter/PCBDialog.qml +++ b/plugins/PCBWriter/PCBDialog.qml @@ -130,4 +130,6 @@ UM.Dialog } buttonSpacing: UM.Theme.getSize("wide_margin").width + + onClosing: manager.notifyClosed() } diff --git a/plugins/PCBWriter/PCBWriter.py b/plugins/PCBWriter/PCBWriter.py index 6391493ae3..26e552f583 100644 --- a/plugins/PCBWriter/PCBWriter.py +++ b/plugins/PCBWriter/PCBWriter.py @@ -64,4 +64,8 @@ class PCBWriter(MeshWriter): def _write(self, stream, nodes, mode): self._config_dialog = PCBDialog() + self._config_dialog.finished.connect(self._onDialogClosed) self._config_dialog.show() + + def _onDialogClosed(self): + self._main_thread_lock.release() diff --git a/plugins/PCBWriter/SettingExport.py b/plugins/PCBWriter/SettingExport.py index 2c230f9ab3..0a761bb6b9 100644 --- a/plugins/PCBWriter/SettingExport.py +++ b/plugins/PCBWriter/SettingExport.py @@ -1,11 +1,7 @@ # Copyright (c) 2024 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -from PyQt6.QtCore import Qt, QObject, pyqtProperty -from UM.FlameProfiler import pyqtSlot -from UM.Application import Application -from UM.Qt.ListModel import ListModel -from UM.Logger import Logger +from PyQt6.QtCore import QObject, pyqtProperty class SettingsExport(QObject): diff --git a/plugins/PCBWriter/SettingsExportGroup.py b/plugins/PCBWriter/SettingsExportGroup.py index 0a721a7fb8..2b21c42b78 100644 --- a/plugins/PCBWriter/SettingsExportGroup.py +++ b/plugins/PCBWriter/SettingsExportGroup.py @@ -3,13 +3,7 @@ from enum import IntEnum -from PyQt6.QtCore import Qt, QObject, pyqtProperty, pyqtEnum -from UM.FlameProfiler import pyqtSlot -from UM.Application import Application -from UM.Qt.ListModel import ListModel -from UM.Logger import Logger - -from .SettingExport import SettingsExport +from PyQt6.QtCore import QObject, pyqtProperty, pyqtEnum class SettingsExportGroup(QObject): diff --git a/plugins/PCBWriter/SettingsExportModel.py b/plugins/PCBWriter/SettingsExportModel.py index 0f1ec5113a..b09717298a 100644 --- a/plugins/PCBWriter/SettingsExportModel.py +++ b/plugins/PCBWriter/SettingsExportModel.py @@ -1,49 +1,115 @@ # Copyright (c) 2024 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -from PyQt6.QtCore import QObject, Qt, pyqtProperty -from UM.FlameProfiler import pyqtSlot -from UM.Application import Application -from UM.Qt.ListModel import ListModel -from UM.Logger import Logger +from PyQt6.QtCore import QObject, pyqtProperty from .SettingsExportGroup import SettingsExportGroup from .SettingExport import SettingsExport +from cura.CuraApplication import CuraApplication +from UM.Settings.SettingDefinition import SettingDefinition +from cura.Settings.ExtruderManager import ExtruderManager class SettingsExportModel(QObject): + EXPORTABLE_SETTINGS = {'infill_sparse_density', + 'adhesion_type', + 'support_enable', + 'infill_pattern', + 'support_type', + 'support_structure', + 'support_angle', + 'support_infill_rate', + 'ironing_enabled', + 'fill_outline_gaps', + 'coasting_enable', + 'skin_monotonic', + 'z_seam_position', + 'infill_before_walls', + 'ironing_only_highest_layer', + 'xy_offset', + 'adaptive_layer_height_enabled', + 'brim_gap', + 'support_offset', + 'brim_outside_only', + 'magic_spiralize', + 'slicing_tolerance', + 'outer_inset_first', + 'magic_fuzzy_skin_outside_only', + 'conical_overhang_enabled', + 'min_infill_area', + 'small_hole_max_size', + 'magic_mesh_surface_mode', + 'carve_multiple_volumes', + 'meshfix_union_all_remove_holes', + 'support_tree_rest_preference', + 'small_feature_max_length', + 'draft_shield_enabled', + 'brim_smart_ordering', + 'ooze_shield_enabled', + 'bottom_skin_preshrink', + 'skin_edge_support_thickness', + 'alternate_carve_order', + 'top_skin_preshrink', + 'interlocking_enable'} + def __init__(self, parent = None): super().__init__(parent) - self._settingsGroups = [] - self._updateSettingsExportGroups() + self._settings_groups = [] + + application = CuraApplication.getInstance() + + # Display global settings + global_stack = application.getGlobalContainerStack() + self._settings_groups.append(SettingsExportGroup("Global settings", + SettingsExportGroup.Category.Global, + self._exportSettings(global_stack))) + + # Display per-extruder settings + extruders_stacks = ExtruderManager.getInstance().getUsedExtruderStacks() + for extruder_stack in extruders_stacks: + color = "" + if extruder_stack.material: + color = extruder_stack.material.getMetaDataEntry("color_code") + + self._settings_groups.append(SettingsExportGroup("Extruder settings", + SettingsExportGroup.Category.Extruder, + self._exportSettings(extruder_stack), + extruder_index=extruder_stack.position, + extruder_color=color)) + + # Display per-model settings + scene_root = application.getController().getScene().getRoot() + for scene_node in scene_root.getChildren(): + per_model_stack = scene_node.callDecoration("getStack") + if per_model_stack is not None: + self._settings_groups.append(SettingsExportGroup("Model settings", + SettingsExportGroup.Category.Model, + self._exportSettings(per_model_stack), + scene_node.getName())) @pyqtProperty(list, constant=True) def settingsGroups(self): - return self._settingsGroups + return self._settings_groups - def _updateSettingsExportGroups(self): - self._settingsGroups.append(SettingsExportGroup("Global settings", - SettingsExportGroup.Category.Global, - [SettingsExport("Generate Support", "Enabled"), - SettingsExport("Support Type", "Tree")])) - self._settingsGroups.append(SettingsExportGroup("Extruder settings", - SettingsExportGroup.Category.Extruder, - [SettingsExport("Brim Width", "0.7mm")], - extruder_index=1, - extruder_color='#ff0000')) - self._settingsGroups.append(SettingsExportGroup("Extruder settings", - SettingsExportGroup.Category.Extruder, - [], - extruder_index=8, - extruder_color='#008fff')) - self._settingsGroups.append(SettingsExportGroup("Model settings", - SettingsExportGroup.Category.Model, - [SettingsExport("Brim Width", "20.0 mm"), - SettingsExport("Z Hop when retracted", "Disabled")], - 'hypercube.stl')) - self._settingsGroups.append(SettingsExportGroup("Model settings", - SettingsExportGroup.Category.Model, - [SettingsExport("Walls Thickness", "3.0 mm"), - SettingsExport("Enable Ironing", "Enabled")], - 'homer-simpson.stl')) + @staticmethod + def _exportSettings(settings_stack): + user_settings_container = settings_stack.getTop() + user_keys = user_settings_container.getAllKeys() + + settings_export = [] + + for setting_to_export in user_keys.intersection(SettingsExportModel.EXPORTABLE_SETTINGS): + label = settings_stack.getProperty(setting_to_export, "label") + value = settings_stack.getProperty(setting_to_export, "value") + + setting_type = settings_stack.getProperty(setting_to_export, "type") + if setting_type is not None: + # This is not very good looking, but will do for now + value = SettingDefinition.settingValueToString(setting_type, value) + else: + value = str(value) + + settings_export.append(SettingsExport(label, value)) + + return settings_export \ No newline at end of file From 3793d4acbef4b901d7c2c7b877016b0775192b28 Mon Sep 17 00:00:00 2001 From: nallath Date: Wed, 31 Jan 2024 12:38:21 +0000 Subject: [PATCH 132/269] Applied printer-linter format --- .../flashforge_adventurer3.def.json | 28 ++++---- .../flashforge_adventurer3c.def.json | 55 +++++++++------- .../flashforge_adventurer4.def.json | 56 +++++++++------- .../flashforge_adventurer4lite.def.json | 26 ++++---- .../flashforge_adventurer_base.def.json | 66 +++++++++---------- .../flashforge_adventurer_extruder_0.def.json | 30 ++++----- ...ashforge_adventurer3_abs_0.3_fine.inst.cfg | 33 +++++----- ...shforge_adventurer3_abs_0.3_vfine.inst.cfg | 33 +++++----- ...shforge_adventurer3_abs_0.4_draft.inst.cfg | 33 +++++----- ...ashforge_adventurer3_abs_0.4_fast.inst.cfg | 33 +++++----- ...ashforge_adventurer3_abs_0.4_fine.inst.cfg | 33 +++++----- ...hforge_adventurer3_abs_0.4_normal.inst.cfg | 33 +++++----- ...shforge_adventurer3_abs_0.4_vfast.inst.cfg | 33 +++++----- ...shforge_adventurer3_abs_0.4_vfine.inst.cfg | 33 +++++----- ...shforge_adventurer3_abs_0.6_draft.inst.cfg | 33 +++++----- ...ashforge_adventurer3_abs_0.6_fast.inst.cfg | 33 +++++----- ...shforge_adventurer3_abs_0.6_vfast.inst.cfg | 33 +++++----- ...ashforge_adventurer4_abs_0.3_fine.inst.cfg | 37 ++++++----- ...shforge_adventurer4_abs_0.3_vfine.inst.cfg | 37 ++++++----- ...shforge_adventurer4_abs_0.4_draft.inst.cfg | 37 ++++++----- ...ashforge_adventurer4_abs_0.4_fast.inst.cfg | 37 ++++++----- ...ashforge_adventurer4_abs_0.4_fine.inst.cfg | 37 ++++++----- ...hforge_adventurer4_abs_0.4_normal.inst.cfg | 37 ++++++----- ...shforge_adventurer4_abs_0.4_vfast.inst.cfg | 37 ++++++----- ...shforge_adventurer4_abs_0.4_vfine.inst.cfg | 37 ++++++----- ...shforge_adventurer4_abs_0.6_draft.inst.cfg | 37 ++++++----- ...ashforge_adventurer4_abs_0.6_fast.inst.cfg | 37 ++++++----- ...shforge_adventurer4_abs_0.6_vfast.inst.cfg | 37 ++++++----- ...ashforge_adventurer4_asa_0.4_fast.inst.cfg | 37 ++++++----- ...ashforge_adventurer4_asa_0.4_fine.inst.cfg | 37 ++++++----- ...hforge_adventurer4_asa_0.4_normal.inst.cfg | 37 ++++++----- .../flashforge_adventurer3_draft.inst.cfg | 41 ++++++------ .../flashforge_adventurer3_fast.inst.cfg | 41 ++++++------ .../flashforge_adventurer3_fine.inst.cfg | 41 ++++++------ .../flashforge_adventurer3_normal.inst.cfg | 41 ++++++------ .../flashforge_adventurer3_vfast.inst.cfg | 41 ++++++------ .../flashforge_adventurer3_vfine.inst.cfg | 41 ++++++------ .../flashforge_adventurer4_draft.inst.cfg | 37 ++++++----- .../flashforge_adventurer4_fast.inst.cfg | 37 ++++++----- .../flashforge_adventurer4_fine.inst.cfg | 37 ++++++----- .../flashforge_adventurer4_normal.inst.cfg | 37 ++++++----- .../flashforge_adventurer4_vfast.inst.cfg | 37 ++++++----- .../flashforge_adventurer4_vfine.inst.cfg | 37 ++++++----- ...ashforge_adventurer3_pc_0.4_draft.inst.cfg | 33 +++++----- ...lashforge_adventurer3_pc_0.4_fast.inst.cfg | 33 +++++----- ...shforge_adventurer3_pc_0.4_normal.inst.cfg | 33 +++++----- ...ashforge_adventurer3_pc_0.4_vfast.inst.cfg | 33 +++++----- ...ashforge_adventurer3_pc_0.6_draft.inst.cfg | 33 +++++----- ...lashforge_adventurer3_pc_0.6_fast.inst.cfg | 33 +++++----- ...ashforge_adventurer3_pc_0.6_vfast.inst.cfg | 33 +++++----- ...ashforge_adventurer4_pc_0.4_draft.inst.cfg | 37 ++++++----- ...lashforge_adventurer4_pc_0.4_fast.inst.cfg | 37 ++++++----- ...shforge_adventurer4_pc_0.4_normal.inst.cfg | 37 ++++++----- ...ashforge_adventurer4_pc_0.4_vfast.inst.cfg | 37 ++++++----- ...ashforge_adventurer4_pc_0.6_draft.inst.cfg | 37 ++++++----- ...lashforge_adventurer4_pc_0.6_fast.inst.cfg | 37 ++++++----- ...ashforge_adventurer4_pc_0.6_vfast.inst.cfg | 37 ++++++----- ...shforge_adventurer3_petg_0.3_fine.inst.cfg | 33 +++++----- ...hforge_adventurer3_petg_0.3_vfine.inst.cfg | 33 +++++----- ...hforge_adventurer3_petg_0.4_draft.inst.cfg | 33 +++++----- ...shforge_adventurer3_petg_0.4_fast.inst.cfg | 33 +++++----- ...shforge_adventurer3_petg_0.4_fine.inst.cfg | 33 +++++----- ...forge_adventurer3_petg_0.4_normal.inst.cfg | 33 +++++----- ...hforge_adventurer3_petg_0.4_vfast.inst.cfg | 33 +++++----- ...hforge_adventurer3_petg_0.4_vfine.inst.cfg | 33 +++++----- ...hforge_adventurer3_petg_0.6_draft.inst.cfg | 33 +++++----- ...shforge_adventurer3_petg_0.6_fast.inst.cfg | 33 +++++----- ...hforge_adventurer3_petg_0.6_vfast.inst.cfg | 33 +++++----- ...shforge_adventurer4_petg_0.3_fine.inst.cfg | 37 ++++++----- ...hforge_adventurer4_petg_0.3_vfine.inst.cfg | 37 ++++++----- ...hforge_adventurer4_petg_0.4_draft.inst.cfg | 37 ++++++----- ...shforge_adventurer4_petg_0.4_fast.inst.cfg | 37 ++++++----- ...shforge_adventurer4_petg_0.4_fine.inst.cfg | 37 ++++++----- ...forge_adventurer4_petg_0.4_normal.inst.cfg | 37 ++++++----- ...hforge_adventurer4_petg_0.4_vfast.inst.cfg | 37 ++++++----- ...hforge_adventurer4_petg_0.4_vfine.inst.cfg | 37 ++++++----- ...hforge_adventurer4_petg_0.6_draft.inst.cfg | 37 ++++++----- ...shforge_adventurer4_petg_0.6_fast.inst.cfg | 37 ++++++----- ...hforge_adventurer4_petg_0.6_vfast.inst.cfg | 37 ++++++----- ...ashforge_adventurer3_pla_0.3_fine.inst.cfg | 33 +++++----- ...shforge_adventurer3_pla_0.3_vfine.inst.cfg | 33 +++++----- ...shforge_adventurer3_pla_0.4_draft.inst.cfg | 33 +++++----- ...ashforge_adventurer3_pla_0.4_fast.inst.cfg | 33 +++++----- ...ashforge_adventurer3_pla_0.4_fine.inst.cfg | 33 +++++----- ...hforge_adventurer3_pla_0.4_normal.inst.cfg | 33 +++++----- ...shforge_adventurer3_pla_0.4_vfast.inst.cfg | 33 +++++----- ...shforge_adventurer3_pla_0.4_vfine.inst.cfg | 33 +++++----- ...shforge_adventurer3_pla_0.6_draft.inst.cfg | 33 +++++----- ...ashforge_adventurer3_pla_0.6_fast.inst.cfg | 33 +++++----- ...shforge_adventurer3_pla_0.6_vfast.inst.cfg | 33 +++++----- ...ashforge_adventurer4_pla_0.3_fine.inst.cfg | 37 ++++++----- ...shforge_adventurer4_pla_0.3_vfine.inst.cfg | 37 ++++++----- ...shforge_adventurer4_pla_0.4_draft.inst.cfg | 37 ++++++----- ...ashforge_adventurer4_pla_0.4_fast.inst.cfg | 37 ++++++----- ...ashforge_adventurer4_pla_0.4_fine.inst.cfg | 37 ++++++----- ...hforge_adventurer4_pla_0.4_normal.inst.cfg | 37 ++++++----- ...shforge_adventurer4_pla_0.4_vfast.inst.cfg | 37 ++++++----- ...shforge_adventurer4_pla_0.4_vfine.inst.cfg | 37 ++++++----- ...shforge_adventurer4_pla_0.6_draft.inst.cfg | 37 ++++++----- ...ashforge_adventurer4_pla_0.6_fast.inst.cfg | 37 ++++++----- ...shforge_adventurer4_pla_0.6_vfast.inst.cfg | 37 ++++++----- .../flashforge_adventurer3_0.3.inst.cfg | 25 +++---- .../flashforge_adventurer3_0.4.inst.cfg | 25 +++---- .../flashforge_adventurer3_0.6.inst.cfg | 25 +++---- .../flashforge_adventurer3c_0.3.inst.cfg | 25 +++---- .../flashforge_adventurer3c_0.4.inst.cfg | 25 +++---- .../flashforge_adventurer3c_0.6.inst.cfg | 25 +++---- .../flashforge_adventurer4_0.3.inst.cfg | 25 +++---- .../flashforge_adventurer4_0.4.inst.cfg | 25 +++---- .../flashforge_adventurer4_0.6.inst.cfg | 25 +++---- .../flashforge_adventurer4lite_0.3.inst.cfg | 25 +++---- .../flashforge_adventurer4lite_0.4.inst.cfg | 25 +++---- .../flashforge_adventurer4lite_0.6.inst.cfg | 25 +++---- 113 files changed, 2032 insertions(+), 1908 deletions(-) diff --git a/resources/definitions/flashforge_adventurer3.def.json b/resources/definitions/flashforge_adventurer3.def.json index 5787958401..a05a7d5b8f 100644 --- a/resources/definitions/flashforge_adventurer3.def.json +++ b/resources/definitions/flashforge_adventurer3.def.json @@ -1,15 +1,15 @@ -{ - "version": 2, - "name": "Adventurer 3", - "inherits": "flashforge_adventurer3c", - "metadata": - { - "author": "Jeremie-C", - "visible": true, - "supports_network_connection": true - }, - "overrides": - { - "machine_name": {"default_value": "Adventurer 3"} - } +{ + "version": 2, + "name": "Adventurer 3", + "inherits": "flashforge_adventurer3c", + "metadata": + { + "visible": true, + "author": "Jeremie-C", + "supports_network_connection": true + }, + "overrides": + { + "machine_name": { "default_value": "Adventurer 3" } + } } \ No newline at end of file diff --git a/resources/definitions/flashforge_adventurer3c.def.json b/resources/definitions/flashforge_adventurer3c.def.json index 9321c2ca40..f66e542591 100644 --- a/resources/definitions/flashforge_adventurer3c.def.json +++ b/resources/definitions/flashforge_adventurer3c.def.json @@ -1,24 +1,33 @@ -{ - "version": 2, - "name": "Adventurer 3C", - "inherits": "flashforge_adventurer_base", - "metadata": { - "author": "Jeremie-C", - "visible": true, - "quality_definition": "flashforge_adventurer3" - }, - "overrides": - { - "default_material_bed_temperature": {"maximum_value_warning": "100"}, - "gantry_height": {"value": "150"}, - "machine_center_is_zero": {"default_value": true}, - "machine_depth": {"default_value": 150}, - "machine_end_gcode": {"default_value": ";end gcode\nM104 S0 T0\nM140 S0 T0\nG162 Z F1800\nG28 X Y\nM132 X Y A B\nM652\nG91\nM18"}, - "machine_head_with_fans_polygon": {"default_value": [[-20, 10], [-20, -10], [10, 10], [10, -10]]}, - "machine_height": {"default_value": 150}, - "machine_name": {"default_value": "Adventurer 3C"}, - "machine_start_gcode": {"default_value": ";Start Gcode\nG28\nM132 X Y Z A B\nG1 Z50.000 F420\nG161 X Y F3300\nM7 T0\nM6 T0\nM651 S255\n;End Start"}, - "machine_width": {"default_value": 150}, - "speed_print": {"maximum_value_warning": 100} - } +{ + "version": 2, + "name": "Adventurer 3C", + "inherits": "flashforge_adventurer_base", + "metadata": + { + "visible": true, + "author": "Jeremie-C", + "quality_definition": "flashforge_adventurer3" + }, + "overrides": + { + "default_material_bed_temperature": { "maximum_value_warning": "100" }, + "gantry_height": { "value": "150" }, + "machine_center_is_zero": { "default_value": true }, + "machine_depth": { "default_value": 150 }, + "machine_end_gcode": { "default_value": ";end gcode\nM104 S0 T0\nM140 S0 T0\nG162 Z F1800\nG28 X Y\nM132 X Y A B\nM652\nG91\nM18" }, + "machine_head_with_fans_polygon": + { + "default_value": [ + [-20, 10], + [-20, -10], + [10, 10], + [10, -10] + ] + }, + "machine_height": { "default_value": 150 }, + "machine_name": { "default_value": "Adventurer 3C" }, + "machine_start_gcode": { "default_value": ";Start Gcode\nG28\nM132 X Y Z A B\nG1 Z50.000 F420\nG161 X Y F3300\nM7 T0\nM6 T0\nM651 S255\n;End Start" }, + "machine_width": { "default_value": 150 }, + "speed_print": { "maximum_value_warning": 100 } + } } \ No newline at end of file diff --git a/resources/definitions/flashforge_adventurer4.def.json b/resources/definitions/flashforge_adventurer4.def.json index d3b29c4f4a..2460051a9d 100644 --- a/resources/definitions/flashforge_adventurer4.def.json +++ b/resources/definitions/flashforge_adventurer4.def.json @@ -1,25 +1,33 @@ -{ - "version": 2, - "name": "Adventurer 4", - "inherits": "flashforge_adventurer_base", - "metadata": - { - "author": "Jeremie-C", - "visible": true, - "quality_definition": "flashforge_adventurer4", - "supports_network_connection": true - }, - "overrides": - { - "default_material_bed_temperature": {"maximum_value_warning": "110"}, - "gantry_height": {"value": "250"}, - "machine_depth": {"default_value": 200}, - "machine_end_gcode": {"default_value": ";End Gcode\nM104 S0 T0\nM140 S0 T0\nG162 Z F1800\nG28 X Y\nM132 X Y A B\nM652\nG91\nM18"}, - "machine_head_with_fans_polygon": {"default_value": [[-20, 10], [-20, -10], [10, 10], [10, -10]]}, - "machine_height": {"default_value": 250}, - "machine_name": {"default_value": "Adventurer 4"}, - "machine_start_gcode": {"default_value": ";Start Gcode\nG28\nM132 X Y Z A B\nG1 Z50.000 F420\nG161 X Y F3300\nM7 T0\nM6 T0\nM651 S255\n;End Start"}, - "machine_use_extruder_offset_to_offset_coords": {"default_value": false}, - "machine_width": {"default_value": 220} - } +{ + "version": 2, + "name": "Adventurer 4", + "inherits": "flashforge_adventurer_base", + "metadata": + { + "visible": true, + "author": "Jeremie-C", + "quality_definition": "flashforge_adventurer4", + "supports_network_connection": true + }, + "overrides": + { + "default_material_bed_temperature": { "maximum_value_warning": "110" }, + "gantry_height": { "value": "250" }, + "machine_depth": { "default_value": 200 }, + "machine_end_gcode": { "default_value": ";End Gcode\nM104 S0 T0\nM140 S0 T0\nG162 Z F1800\nG28 X Y\nM132 X Y A B\nM652\nG91\nM18" }, + "machine_head_with_fans_polygon": + { + "default_value": [ + [-20, 10], + [-20, -10], + [10, 10], + [10, -10] + ] + }, + "machine_height": { "default_value": 250 }, + "machine_name": { "default_value": "Adventurer 4" }, + "machine_start_gcode": { "default_value": ";Start Gcode\nG28\nM132 X Y Z A B\nG1 Z50.000 F420\nG161 X Y F3300\nM7 T0\nM6 T0\nM651 S255\n;End Start" }, + "machine_use_extruder_offset_to_offset_coords": { "default_value": false }, + "machine_width": { "default_value": 220 } + } } \ No newline at end of file diff --git a/resources/definitions/flashforge_adventurer4lite.def.json b/resources/definitions/flashforge_adventurer4lite.def.json index 05534793d8..f5b1975601 100644 --- a/resources/definitions/flashforge_adventurer4lite.def.json +++ b/resources/definitions/flashforge_adventurer4lite.def.json @@ -1,14 +1,14 @@ -{ - "version": 2, - "name": "Adventurer 4 Lite", - "inherits": "flashforge_adventurer4", - "metadata": - { - "author": "Jeremie-C", - "visible": true - }, - "overrides": - { - "machine_name": { "default_value": "Adventurer 4 Lite" } - } +{ + "version": 2, + "name": "Adventurer 4 Lite", + "inherits": "flashforge_adventurer4", + "metadata": + { + "visible": true, + "author": "Jeremie-C" + }, + "overrides": + { + "machine_name": { "default_value": "Adventurer 4 Lite" } + } } \ No newline at end of file diff --git a/resources/definitions/flashforge_adventurer_base.def.json b/resources/definitions/flashforge_adventurer_base.def.json index 7a31d6400f..c077a4584c 100644 --- a/resources/definitions/flashforge_adventurer_base.def.json +++ b/resources/definitions/flashforge_adventurer_base.def.json @@ -1,34 +1,34 @@ -{ - "version": 2, - "name": "Flashforge Adventurer Base", - "inherits": "fdmprinter", - "metadata": - { - "author": "Jeremie-C", - "manufacturer": "Flashforge", - "visible": false, - "file_formats": "application/gx;text/x-gcode", - "first_start_actions": ["MachineSettingsAction"], - "has_machine_quality": true, - "has_materials": true, - "has_variants": true, - "machine_extruder_trains": {"0": "flashforge_adventurer_extruder_0"}, - "preferred_material": "generic_pla", - "preferred_quality_type": "normal", - "preferred_variant_name": "0.4mm Nozzle", - "variants_name": "Nozzle Size" - }, - "overrides": - { - "adhesion_type": {"default_value": "skirt"}, - "default_material_print_temperature": {"maximum_value_warning": "265"}, - "layer_height": - { - "minimum_value_warning": "0.1", - "maximum_value_warning": "0.4" - }, - "machine_center_is_zero": {"default_value": true}, - "machine_gcode_flavor": {"default_value": "RepRap (Marlin/Sprinter)"}, - "machine_heated_bed": {"default_value": true} - } +{ + "version": 2, + "name": "Flashforge Adventurer Base", + "inherits": "fdmprinter", + "metadata": + { + "visible": false, + "author": "Jeremie-C", + "manufacturer": "Flashforge", + "file_formats": "application/gx;text/x-gcode", + "first_start_actions": [ "MachineSettingsAction" ], + "has_machine_quality": true, + "has_materials": true, + "has_variants": true, + "machine_extruder_trains": { "0": "flashforge_adventurer_extruder_0" }, + "preferred_material": "generic_pla", + "preferred_quality_type": "normal", + "preferred_variant_name": "0.4mm Nozzle", + "variants_name": "Nozzle Size" + }, + "overrides": + { + "adhesion_type": { "default_value": "skirt" }, + "default_material_print_temperature": { "maximum_value_warning": "265" }, + "layer_height": + { + "maximum_value_warning": "0.4", + "minimum_value_warning": "0.1" + }, + "machine_center_is_zero": { "default_value": true }, + "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, + "machine_heated_bed": { "default_value": true } + } } \ No newline at end of file diff --git a/resources/extruders/flashforge_adventurer_extruder_0.def.json b/resources/extruders/flashforge_adventurer_extruder_0.def.json index d8b902a97b..232cf3f901 100644 --- a/resources/extruders/flashforge_adventurer_extruder_0.def.json +++ b/resources/extruders/flashforge_adventurer_extruder_0.def.json @@ -1,16 +1,16 @@ -{ - "version": 2, - "name": "Extruder", - "inherits": "fdmextruder", - "metadata": - { - "machine": "flashforge_adventurer_base", - "position": "0" - }, - "overrides": - { - "extruder_nr": { "default_value": 0 }, - "machine_nozzle_size": { "default_value": 0.4 }, - "material_diameter": { "default_value": 1.75 } - } +{ + "version": 2, + "name": "Extruder", + "inherits": "fdmextruder", + "metadata": + { + "machine": "flashforge_adventurer_base", + "position": "0" + }, + "overrides": + { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + } } \ No newline at end of file diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_fine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_fine.inst.cfg index 63488b25cf..a5a800486f 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_fine.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_fine.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Fine -version = 4 - -[metadata] -material = generic_abs -quality_type = fine -setting_version = 22 -type = quality -variant = 0.3mm Nozzle -weight = 1 - -[values] -speed_print = 50 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = fine +setting_version = 22 +type = quality +variant = 0.3mm Nozzle +weight = 1 + +[values] +speed_print = 50 +speed_travel = 100 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_vfine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_vfine.inst.cfg index 466e76686a..316f5872a7 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_vfine.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.3_vfine.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Very Fine -version = 4 - -[metadata] -material = generic_abs -quality_type = veryfine -setting_version = 22 -type = quality -variant = 0.3mm Nozzle -weight = 2 - -[values] -speed_print = 45 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Very Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = veryfine +setting_version = 22 +type = quality +variant = 0.3mm Nozzle +weight = 2 + +[values] +speed_print = 45 +speed_travel = 100 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_draft.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_draft.inst.cfg index 678ab9d371..b322c2784a 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_draft.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_draft.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Draft -version = 4 - -[metadata] -material = generic_abs -quality_type = draft -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -3 - -[values] -speed_print = 70 -speed_travel = 90 +[general] +definition = flashforge_adventurer3 +name = Draft +version = 4 + +[metadata] +material = generic_abs +quality_type = draft +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -3 + +[values] +speed_print = 70 +speed_travel = 90 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fast.inst.cfg index 0b2e235d92..d329ebb4d9 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fast.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fast.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Fast -version = 4 - -[metadata] -material = generic_abs -quality_type = fast -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -1 - -[values] -speed_print = 60 -speed_travel = 80 +[general] +definition = flashforge_adventurer3 +name = Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = fast +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +speed_print = 60 +speed_travel = 80 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fine.inst.cfg index b71dc27d96..0aacffffcc 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fine.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_fine.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Fine -version = 4 - -[metadata] -material = generic_abs -quality_type = fine -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 1 - -[values] -speed_print = 40 -speed_travel = 70 +[general] +definition = flashforge_adventurer3 +name = Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = fine +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 1 + +[values] +speed_print = 40 +speed_travel = 70 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_normal.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_normal.inst.cfg index 9641fb7bef..0a62fdc664 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_normal.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_normal.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Standard -version = 4 - -[metadata] -material = generic_abs -quality_type = normal -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 0 - -[values] -speed_print = 60 -speed_travel = 80 +[general] +definition = flashforge_adventurer3 +name = Standard +version = 4 + +[metadata] +material = generic_abs +quality_type = normal +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 0 + +[values] +speed_print = 60 +speed_travel = 80 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfast.inst.cfg index 5c1c0138e8..9ea811006d 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfast.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfast.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Very Fast -version = 4 - -[metadata] -material = generic_abs -quality_type = veryfast -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -2 - -[values] -speed_print = 60 -speed_travel = 90 +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = veryfast +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -2 + +[values] +speed_print = 60 +speed_travel = 90 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfine.inst.cfg index 465ee99c88..9d0d042d37 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfine.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.4_vfine.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Very Fine -version = 4 - -[metadata] -material = generic_abs -quality_type = veryfine -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 2 - -[values] -speed_print = 35 -speed_travel = 70 +[general] +definition = flashforge_adventurer3 +name = Very Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = veryfine +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 2 + +[values] +speed_print = 35 +speed_travel = 70 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_draft.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_draft.inst.cfg index 7fae92a487..469930cd21 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_draft.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_draft.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Draft -version = 4 - -[metadata] -material = generic_abs -quality_type = draft -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -3 - -[values] -speed_print = 55 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Draft +version = 4 + +[metadata] +material = generic_abs +quality_type = draft +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -3 + +[values] +speed_print = 55 +speed_travel = 100 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_fast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_fast.inst.cfg index 7f99640845..bd25742c2a 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_fast.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_fast.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Fast -version = 4 - -[metadata] -material = generic_abs -quality_type = fast -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -1 - -[values] -speed_print = 50 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = fast +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -1 + +[values] +speed_print = 50 +speed_travel = 100 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_vfast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_vfast.inst.cfg index c0212259a1..691770bca3 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_vfast.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer3_abs_0.6_vfast.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Very Fast -version = 4 - -[metadata] -material = generic_abs -quality_type = veryfast -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -2 - -[values] -speed_print = 50 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = veryfast +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +speed_print = 50 +speed_travel = 100 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_fine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_fine.inst.cfg index ac6dfe5a33..9ad2fc4d39 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_fine.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_fine.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Fine -version = 4 - -[metadata] -material = generic_abs -quality_type = fine -setting_version = 22 -type = quality -variant = 0.3mm Nozzle -weight = 1 - -[values] -speed_print = 50 -speed_travel = 100 -retraction_amount = 5 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = fine +setting_version = 22 +type = quality +variant = 0.3mm Nozzle +weight = 1 + +[values] +retraction_amount = 5 +retraction_speed = 30 +speed_print = 50 +speed_travel = 100 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_vfine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_vfine.inst.cfg index 4c4a0873d3..69c626d03f 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_vfine.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.3_vfine.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Very Fine -version = 4 - -[metadata] -material = generic_abs -quality_type = veryfine -setting_version = 22 -type = quality -variant = 0.3mm Nozzle -weight = 2 - -[values] -speed_print = 45 -speed_travel = 100 -retraction_amount = 5 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Very Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = veryfine +setting_version = 22 +type = quality +variant = 0.3mm Nozzle +weight = 2 + +[values] +retraction_amount = 5 +retraction_speed = 30 +speed_print = 45 +speed_travel = 100 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_draft.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_draft.inst.cfg index 62ad84398c..8d7a92f553 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_draft.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_draft.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Draft -version = 4 - -[metadata] -material = generic_abs -quality_type = draft -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -3 - -[values] -speed_print = 70 -speed_travel = 90 -retraction_amount = 5 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Draft +version = 4 + +[metadata] +material = generic_abs +quality_type = draft +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -3 + +[values] +retraction_amount = 5 +retraction_speed = 30 +speed_print = 70 +speed_travel = 90 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fast.inst.cfg index b15ad40f22..115387a815 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fast.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Fast -version = 4 - -[metadata] -material = generic_abs -quality_type = fast -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -1 - -[values] -speed_print = 60 -speed_travel = 80 -retraction_amount = 5 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = fast +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +retraction_amount = 5 +retraction_speed = 30 +speed_print = 60 +speed_travel = 80 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fine.inst.cfg index 1d325765ff..46f3f2673b 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fine.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_fine.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer3 -name = Fine -version = 4 - -[metadata] -material = generic_abs -quality_type = fine -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 1 - -[values] -speed_print = 40 -speed_travel = 70 -retraction_amount = 5 -retraction_speed = 30 +[general] +definition = flashforge_adventurer3 +name = Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = fine +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 1 + +[values] +retraction_amount = 5 +retraction_speed = 30 +speed_print = 40 +speed_travel = 70 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_normal.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_normal.inst.cfg index c4e43d5eac..c0bc64550d 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_normal.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_normal.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Standard -version = 4 - -[metadata] -material = generic_abs -quality_type = normal -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 0 - -[values] -speed_print = 60 -speed_travel = 80 -retraction_amount = 5 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Standard +version = 4 + +[metadata] +material = generic_abs +quality_type = normal +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 0 + +[values] +retraction_amount = 5 +retraction_speed = 30 +speed_print = 60 +speed_travel = 80 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfast.inst.cfg index f3f8ada9d9..14ce91d9f3 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfast.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Very Fast -version = 4 - -[metadata] -material = generic_abs -quality_type = veryfast -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -2 - -[values] -speed_print = 60 -speed_travel = 90 -retraction_amount = 5 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Very Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = veryfast +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -2 + +[values] +retraction_amount = 5 +retraction_speed = 30 +speed_print = 60 +speed_travel = 90 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfine.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfine.inst.cfg index 5eefe21407..cdb13c71d1 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfine.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.4_vfine.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Very Fine -version = 4 - -[metadata] -material = generic_abs -quality_type = veryfine -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 2 - -[values] -speed_print = 35 -speed_travel = 70 -retraction_amount = 5 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Very Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = veryfine +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 2 + +[values] +retraction_amount = 5 +retraction_speed = 30 +speed_print = 35 +speed_travel = 70 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_draft.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_draft.inst.cfg index bf7f894937..77e222ddcd 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_draft.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_draft.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Draft -version = 4 - -[metadata] -material = generic_abs -quality_type = draft -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -3 - -[values] -speed_print = 55 -speed_travel = 100 -retraction_amount = 6 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Draft +version = 4 + +[metadata] +material = generic_abs +quality_type = draft +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -3 + +[values] +retraction_amount = 6 +retraction_speed = 30 +speed_print = 55 +speed_travel = 100 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_fast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_fast.inst.cfg index e97b00157b..cb0dd441c2 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_fast.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_fast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Fast -version = 4 - -[metadata] -material = generic_abs -quality_type = fast -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -1 - -[values] -speed_print = 50 -speed_travel = 100 -retraction_amount = 6 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = fast +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -1 + +[values] +retraction_amount = 6 +retraction_speed = 30 +speed_print = 50 +speed_travel = 100 + diff --git a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_vfast.inst.cfg b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_vfast.inst.cfg index 4ccdd81053..10055e2fa0 100644 --- a/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_vfast.inst.cfg +++ b/resources/quality/flashforge/abs/flashforge_adventurer4_abs_0.6_vfast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer3 -name = Very Fast -version = 4 - -[metadata] -material = generic_abs -quality_type = veryfast -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -2 - -[values] -speed_print = 50 -speed_travel = 100 -retraction_amount = 6 -retraction_speed = 30 +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = veryfast +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +retraction_amount = 6 +retraction_speed = 30 +speed_print = 50 +speed_travel = 100 + diff --git a/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fast.inst.cfg b/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fast.inst.cfg index 5677c663f1..b85163b595 100644 --- a/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fast.inst.cfg +++ b/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Fast -version = 4 - -[metadata] -material = generic_asa -quality_type = fast -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -1 - -[values] -speed_print = 45 -speed_travel = 100 -retraction_amount = 4.5 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Fast +version = 4 + +[metadata] +material = generic_asa +quality_type = fast +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +retraction_amount = 4.5 +retraction_speed = 30 +speed_print = 45 +speed_travel = 100 + diff --git a/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fine.inst.cfg b/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fine.inst.cfg index f9f6c6287d..a584b97724 100644 --- a/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fine.inst.cfg +++ b/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_fine.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Fine -version = 4 - -[metadata] -material = generic_asa -quality_type = fine -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -1 - -[values] -speed_print = 35 -speed_travel = 100 -retraction_amount = 4.5 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Fine +version = 4 + +[metadata] +material = generic_asa +quality_type = fine +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +retraction_amount = 4.5 +retraction_speed = 30 +speed_print = 35 +speed_travel = 100 + diff --git a/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_normal.inst.cfg b/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_normal.inst.cfg index ba9bb86f37..e976f9f7b4 100644 --- a/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_normal.inst.cfg +++ b/resources/quality/flashforge/asa/flashforge_adventurer4_asa_0.4_normal.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Standard -version = 4 - -[metadata] -material = generic_asa -quality_type = normal -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 0 - -[values] -speed_print = 40 -speed_travel = 100 -retraction_amount = 4.5 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Standard +version = 4 + +[metadata] +material = generic_asa +quality_type = normal +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 0 + +[values] +retraction_amount = 4.5 +retraction_speed = 30 +speed_print = 40 +speed_travel = 100 + diff --git a/resources/quality/flashforge/flashforge_adventurer3_draft.inst.cfg b/resources/quality/flashforge/flashforge_adventurer3_draft.inst.cfg index 61123554fb..f1dd467a2b 100644 --- a/resources/quality/flashforge/flashforge_adventurer3_draft.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer3_draft.inst.cfg @@ -1,20 +1,21 @@ -[general] -definition = flashforge_adventurer3 -name = Draft -version = 4 - -[metadata] -global_quality = True -quality_type = draft -setting_version = 22 -type = quality -weight = -3 - -[values] -layer_height = 0.4 -layer_height_0 = 0.4 -retraction_amount = 5 -retraction_speed = 25 -speed_infill = =speed_print -speed_layer_0 = 10 -speed_support = =math.ceil(speed_print * 0.6) +[general] +definition = flashforge_adventurer3 +name = Draft +version = 4 + +[metadata] +global_quality = True +quality_type = draft +setting_version = 22 +type = quality +weight = -3 + +[values] +layer_height = 0.4 +layer_height_0 = 0.4 +retraction_amount = 5 +retraction_speed = 25 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) + diff --git a/resources/quality/flashforge/flashforge_adventurer3_fast.inst.cfg b/resources/quality/flashforge/flashforge_adventurer3_fast.inst.cfg index f9d1cda998..300481cd3d 100644 --- a/resources/quality/flashforge/flashforge_adventurer3_fast.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer3_fast.inst.cfg @@ -1,20 +1,21 @@ -[general] -definition = flashforge_adventurer3 -name = Fast -version = 4 - -[metadata] -global_quality = True -quality_type = fast -setting_version = 22 -type = quality -weight = -1 - -[values] -layer_height = 0.25 -layer_height_0 = 0.3 -retraction_amount = 5 -retraction_speed = 25 -speed_infill = =speed_print -speed_layer_0 = 10 -speed_support = =math.ceil(speed_print * 0.6) +[general] +definition = flashforge_adventurer3 +name = Fast +version = 4 + +[metadata] +global_quality = True +quality_type = fast +setting_version = 22 +type = quality +weight = -1 + +[values] +layer_height = 0.25 +layer_height_0 = 0.3 +retraction_amount = 5 +retraction_speed = 25 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) + diff --git a/resources/quality/flashforge/flashforge_adventurer3_fine.inst.cfg b/resources/quality/flashforge/flashforge_adventurer3_fine.inst.cfg index 2d0d2d5b81..553091b10a 100644 --- a/resources/quality/flashforge/flashforge_adventurer3_fine.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer3_fine.inst.cfg @@ -1,20 +1,21 @@ -[general] -definition = flashforge_adventurer3 -name = Fine -version = 4 - -[metadata] -global_quality = True -quality_type = fine -setting_version = 22 -type = quality -weight = 1 - -[values] -layer_height = 0.15 -layer_height_0 = 0.23 -retraction_amount = 5 -retraction_speed = 25 -speed_infill = =speed_print -speed_layer_0 = 10 -speed_support = =math.ceil(speed_print * 0.6) +[general] +definition = flashforge_adventurer3 +name = Fine +version = 4 + +[metadata] +global_quality = True +quality_type = fine +setting_version = 22 +type = quality +weight = 1 + +[values] +layer_height = 0.15 +layer_height_0 = 0.23 +retraction_amount = 5 +retraction_speed = 25 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) + diff --git a/resources/quality/flashforge/flashforge_adventurer3_normal.inst.cfg b/resources/quality/flashforge/flashforge_adventurer3_normal.inst.cfg index b70f28c86f..438b2cc9fa 100644 --- a/resources/quality/flashforge/flashforge_adventurer3_normal.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer3_normal.inst.cfg @@ -1,20 +1,21 @@ -[general] -definition = flashforge_adventurer3 -name = Standard -version = 4 - -[metadata] -global_quality = True -quality_type = normal -setting_version = 22 -type = quality -weight = 0 - -[values] -layer_height = 0.2 -layer_height_0 = 0.3 -retraction_amount = 5 -retraction_speed = 25 -speed_infill = =speed_print -speed_layer_0 = 10 -speed_support = =math.ceil(speed_print * 0.6) +[general] +definition = flashforge_adventurer3 +name = Standard +version = 4 + +[metadata] +global_quality = True +quality_type = normal +setting_version = 22 +type = quality +weight = 0 + +[values] +layer_height = 0.2 +layer_height_0 = 0.3 +retraction_amount = 5 +retraction_speed = 25 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) + diff --git a/resources/quality/flashforge/flashforge_adventurer3_vfast.inst.cfg b/resources/quality/flashforge/flashforge_adventurer3_vfast.inst.cfg index 3f6379a6f5..fba4eb1091 100644 --- a/resources/quality/flashforge/flashforge_adventurer3_vfast.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer3_vfast.inst.cfg @@ -1,20 +1,21 @@ -[general] -definition = flashforge_adventurer3 -name = Very Fast -version = 4 - -[metadata] -global_quality = True -quality_type = veryfast -setting_version = 22 -type = quality -weight = -2 - -[values] -layer_height = 0.3 -layer_height_0 = 0.3 -retraction_amount = 5 -retraction_speed = 25 -speed_infill = =speed_print -speed_layer_0 = 10 -speed_support = =math.ceil(speed_print * 0.6) +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +global_quality = True +quality_type = veryfast +setting_version = 22 +type = quality +weight = -2 + +[values] +layer_height = 0.3 +layer_height_0 = 0.3 +retraction_amount = 5 +retraction_speed = 25 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) + diff --git a/resources/quality/flashforge/flashforge_adventurer3_vfine.inst.cfg b/resources/quality/flashforge/flashforge_adventurer3_vfine.inst.cfg index b2015d40ea..6ea52128be 100644 --- a/resources/quality/flashforge/flashforge_adventurer3_vfine.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer3_vfine.inst.cfg @@ -1,20 +1,21 @@ -[general] -definition = flashforge_adventurer3 -name = Very Fine -version = 4 - -[metadata] -global_quality = True -quality_type = veryfine -setting_version = 22 -type = quality -weight = 2 - -[values] -layer_height = 0.1 -layer_height_0 = 0.18 -retraction_amount = 5 -retraction_speed = 25 -speed_infill = =speed_print -speed_layer_0 = 10 -speed_support = =math.ceil(speed_print * 0.6) +[general] +definition = flashforge_adventurer3 +name = Very Fine +version = 4 + +[metadata] +global_quality = True +quality_type = veryfine +setting_version = 22 +type = quality +weight = 2 + +[values] +layer_height = 0.1 +layer_height_0 = 0.18 +retraction_amount = 5 +retraction_speed = 25 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) + diff --git a/resources/quality/flashforge/flashforge_adventurer4_draft.inst.cfg b/resources/quality/flashforge/flashforge_adventurer4_draft.inst.cfg index b2f6dc976c..7ee52ca8a3 100644 --- a/resources/quality/flashforge/flashforge_adventurer4_draft.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer4_draft.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Draft -version = 4 - -[metadata] -global_quality = True -quality_type = draft -setting_version = 22 -type = quality -weight = -3 - -[values] -layer_height = 0.4 -layer_height_0 = 0.4 -speed_infill = =speed_print -speed_layer_0 = 10 -speed_support = =math.ceil(speed_print * 0.6) +[general] +definition = flashforge_adventurer4 +name = Draft +version = 4 + +[metadata] +global_quality = True +quality_type = draft +setting_version = 22 +type = quality +weight = -3 + +[values] +layer_height = 0.4 +layer_height_0 = 0.4 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) + diff --git a/resources/quality/flashforge/flashforge_adventurer4_fast.inst.cfg b/resources/quality/flashforge/flashforge_adventurer4_fast.inst.cfg index a0a38c3655..8be5e02e72 100644 --- a/resources/quality/flashforge/flashforge_adventurer4_fast.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer4_fast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Fast -version = 4 - -[metadata] -global_quality = True -quality_type = fast -setting_version = 22 -type = quality -weight = -1 - -[values] -layer_height = 0.25 -layer_height_0 = 0.3 -speed_infill = =speed_print -speed_layer_0 = 10 -speed_support = =math.ceil(speed_print * 0.6) +[general] +definition = flashforge_adventurer4 +name = Fast +version = 4 + +[metadata] +global_quality = True +quality_type = fast +setting_version = 22 +type = quality +weight = -1 + +[values] +layer_height = 0.25 +layer_height_0 = 0.3 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) + diff --git a/resources/quality/flashforge/flashforge_adventurer4_fine.inst.cfg b/resources/quality/flashforge/flashforge_adventurer4_fine.inst.cfg index 8a5615287b..272e5bc69d 100644 --- a/resources/quality/flashforge/flashforge_adventurer4_fine.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer4_fine.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Fine -version = 4 - -[metadata] -global_quality = True -quality_type = fine -setting_version = 22 -type = quality -weight = 1 - -[values] -layer_height = 0.15 -layer_height_0 = 0.23 -speed_infill = =speed_print -speed_layer_0 = 10 -speed_support = =math.ceil(speed_print * 0.6) +[general] +definition = flashforge_adventurer4 +name = Fine +version = 4 + +[metadata] +global_quality = True +quality_type = fine +setting_version = 22 +type = quality +weight = 1 + +[values] +layer_height = 0.15 +layer_height_0 = 0.23 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) + diff --git a/resources/quality/flashforge/flashforge_adventurer4_normal.inst.cfg b/resources/quality/flashforge/flashforge_adventurer4_normal.inst.cfg index 64d0df68fc..4eb11924fe 100644 --- a/resources/quality/flashforge/flashforge_adventurer4_normal.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer4_normal.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Standard -version = 4 - -[metadata] -global_quality = True -quality_type = normal -setting_version = 22 -type = quality -weight = 0 - -[values] -layer_height = 0.2 -layer_height_0 = 0.3 -speed_infill = =speed_print -speed_layer_0 = 10 -speed_support = =math.ceil(speed_print * 0.6) +[general] +definition = flashforge_adventurer4 +name = Standard +version = 4 + +[metadata] +global_quality = True +quality_type = normal +setting_version = 22 +type = quality +weight = 0 + +[values] +layer_height = 0.2 +layer_height_0 = 0.3 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) + diff --git a/resources/quality/flashforge/flashforge_adventurer4_vfast.inst.cfg b/resources/quality/flashforge/flashforge_adventurer4_vfast.inst.cfg index 0b78e0e23e..a2e3718bd2 100644 --- a/resources/quality/flashforge/flashforge_adventurer4_vfast.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer4_vfast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Very Fast -version = 4 - -[metadata] -global_quality = True -quality_type = veryfast -setting_version = 22 -type = quality -weight = -2 - -[values] -layer_height = 0.3 -layer_height_0 = 0.3 -speed_infill = =speed_print -speed_layer_0 = 10 -speed_support = =math.ceil(speed_print * 0.6) +[general] +definition = flashforge_adventurer4 +name = Very Fast +version = 4 + +[metadata] +global_quality = True +quality_type = veryfast +setting_version = 22 +type = quality +weight = -2 + +[values] +layer_height = 0.3 +layer_height_0 = 0.3 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) + diff --git a/resources/quality/flashforge/flashforge_adventurer4_vfine.inst.cfg b/resources/quality/flashforge/flashforge_adventurer4_vfine.inst.cfg index d3012d5975..f7eda2f194 100644 --- a/resources/quality/flashforge/flashforge_adventurer4_vfine.inst.cfg +++ b/resources/quality/flashforge/flashforge_adventurer4_vfine.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Very Fine -version = 4 - -[metadata] -global_quality = True -quality_type = veryfine -setting_version = 22 -type = quality -weight = 2 - -[values] -layer_height = 0.1 -layer_height_0 = 0.18 -speed_infill = =speed_print -speed_layer_0 = 10 -speed_support = =math.ceil(speed_print * 0.6) +[general] +definition = flashforge_adventurer4 +name = Very Fine +version = 4 + +[metadata] +global_quality = True +quality_type = veryfine +setting_version = 22 +type = quality +weight = 2 + +[values] +layer_height = 0.1 +layer_height_0 = 0.18 +speed_infill = =speed_print +speed_layer_0 = 10 +speed_support = =math.ceil(speed_print * 0.6) + diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_draft.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_draft.inst.cfg index 92467d9d57..03b8d5f74e 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_draft.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_draft.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Draft -version = 4 - -[metadata] -material = generic_pc -quality_type = draft -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -3 - -[values] -speed_print = 50 -speed_travel = 90 +[general] +definition = flashforge_adventurer3 +name = Draft +version = 4 + +[metadata] +material = generic_pc +quality_type = draft +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -3 + +[values] +speed_print = 50 +speed_travel = 90 + diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_fast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_fast.inst.cfg index 85811430f4..0c4322dfee 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_fast.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_fast.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Fast -version = 4 - -[metadata] -material = generic_pc -quality_type = fast -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -1 - -[values] -speed_print = 40 -speed_travel = 80 +[general] +definition = flashforge_adventurer3 +name = Fast +version = 4 + +[metadata] +material = generic_pc +quality_type = fast +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +speed_print = 40 +speed_travel = 80 + diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_normal.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_normal.inst.cfg index 53431e511b..1047360ee7 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_normal.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_normal.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Standard -version = 4 - -[metadata] -material = generic_pc -quality_type = normal -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 0 - -[values] -speed_print = 40 -speed_travel = 80 +[general] +definition = flashforge_adventurer3 +name = Standard +version = 4 + +[metadata] +material = generic_pc +quality_type = normal +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 0 + +[values] +speed_print = 40 +speed_travel = 80 + diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_vfast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_vfast.inst.cfg index 6d35450f90..cddd593db6 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_vfast.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.4_vfast.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Very Fast -version = 4 - -[metadata] -material = generic_pc -quality_type = veryfast -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -2 - -[values] -speed_print = 50 -speed_travel = 90 +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +material = generic_pc +quality_type = veryfast +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -2 + +[values] +speed_print = 50 +speed_travel = 90 + diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_draft.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_draft.inst.cfg index bf0c0cce2d..1742dbd9c3 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_draft.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_draft.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Draft -version = 4 - -[metadata] -material = generic_pc -quality_type = draft -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -3 - -[values] -speed_print = 60 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Draft +version = 4 + +[metadata] +material = generic_pc +quality_type = draft +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -3 + +[values] +speed_print = 60 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_fast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_fast.inst.cfg index c7599784fa..7e67c9f178 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_fast.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_fast.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Fast -version = 4 - -[metadata] -material = generic_pc -quality_type = fast -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -2 - -[values] -speed_print = 50 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Fast +version = 4 + +[metadata] +material = generic_pc +quality_type = fast +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +speed_print = 50 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_vfast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_vfast.inst.cfg index 7efde414c2..c3aecf6625 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_vfast.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer3_pc_0.6_vfast.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Very Fast -version = 4 - -[metadata] -material = generic_pc -quality_type = veryfast -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -2 - -[values] -speed_print = 50 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +material = generic_pc +quality_type = veryfast +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +speed_print = 50 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_draft.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_draft.inst.cfg index a593db1ef2..c60aab1383 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_draft.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_draft.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Draft -version = 4 - -[metadata] -material = generic_pc -quality_type = draft -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -3 - -[values] -speed_print = 50 -speed_travel = 90 -retraction_amount = 6 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Draft +version = 4 + +[metadata] +material = generic_pc +quality_type = draft +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -3 + +[values] +retraction_amount = 6 +retraction_speed = 30 +speed_print = 50 +speed_travel = 90 + diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_fast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_fast.inst.cfg index 7d7e937726..4a532fe98b 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_fast.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_fast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Fast -version = 4 - -[metadata] -material = generic_pc -quality_type = fast -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -1 - -[values] -speed_print = 40 -speed_travel = 80 -retraction_amount = 6 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Fast +version = 4 + +[metadata] +material = generic_pc +quality_type = fast +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +retraction_amount = 6 +retraction_speed = 30 +speed_print = 40 +speed_travel = 80 + diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_normal.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_normal.inst.cfg index 0806db424e..b44810bae8 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_normal.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_normal.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Standard -version = 4 - -[metadata] -material = generic_pc -quality_type = normal -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 0 - -[values] -speed_print = 40 -speed_travel = 80 -retraction_amount = 6 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Standard +version = 4 + +[metadata] +material = generic_pc +quality_type = normal +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 0 + +[values] +retraction_amount = 6 +retraction_speed = 30 +speed_print = 40 +speed_travel = 80 + diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_vfast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_vfast.inst.cfg index 3556c8bf06..042d303522 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_vfast.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.4_vfast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Very Fast -version = 4 - -[metadata] -material = generic_pc -quality_type = veryfast -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -2 - -[values] -speed_print = 50 -speed_travel = 90 -retraction_amount = 6 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Very Fast +version = 4 + +[metadata] +material = generic_pc +quality_type = veryfast +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -2 + +[values] +retraction_amount = 6 +retraction_speed = 30 +speed_print = 50 +speed_travel = 90 + diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_draft.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_draft.inst.cfg index 4cd2861cbe..cb40e63d8c 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_draft.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_draft.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Draft -version = 4 - -[metadata] -material = generic_pc -quality_type = draft -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -3 - -[values] -speed_print = 60 -speed_travel = 100 -retraction_amount = 6 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Draft +version = 4 + +[metadata] +material = generic_pc +quality_type = draft +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -3 + +[values] +retraction_amount = 6 +retraction_speed = 30 +speed_print = 60 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_fast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_fast.inst.cfg index 14e162a1fc..e66be5bc7e 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_fast.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_fast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Fast -version = 4 - -[metadata] -material = generic_pc -quality_type = fast -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -2 - -[values] -speed_print = 50 -speed_travel = 100 -retraction_amount = 6 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Fast +version = 4 + +[metadata] +material = generic_pc +quality_type = fast +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +retraction_amount = 6 +retraction_speed = 30 +speed_print = 50 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_vfast.inst.cfg b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_vfast.inst.cfg index f5a918d859..2d2d8bdbdc 100644 --- a/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_vfast.inst.cfg +++ b/resources/quality/flashforge/pc/flashforge_adventurer4_pc_0.6_vfast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Very Fast -version = 4 - -[metadata] -material = generic_pc -quality_type = veryfast -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -2 - -[values] -speed_print = 50 -speed_travel = 100 -retraction_amount = 6 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Very Fast +version = 4 + +[metadata] +material = generic_pc +quality_type = veryfast +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +retraction_amount = 6 +retraction_speed = 30 +speed_print = 50 +speed_travel = 100 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_fine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_fine.inst.cfg index e640d316fe..3405adaae5 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_fine.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_fine.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Fine -version = 4 - -[metadata] -material = generic_petg -quality_type = fine -setting_version = 22 -type = quality -variant = 0.3mm Nozzle -weight = 1 - -[values] -speed_print = 50 -speed_travel = 80 +[general] +definition = flashforge_adventurer3 +name = Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = fine +setting_version = 22 +type = quality +variant = 0.3mm Nozzle +weight = 1 + +[values] +speed_print = 50 +speed_travel = 80 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_vfine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_vfine.inst.cfg index 7ef3d79fe8..20e2ba9ce5 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_vfine.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.3_vfine.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Very Fine -version = 4 - -[metadata] -material = generic_petg -quality_type = veryfine -setting_version = 22 -type = quality -variant = 0.3mm Nozzle -weight = 2 - -[values] -speed_print = 50 -speed_travel = 80 +[general] +definition = flashforge_adventurer3 +name = Very Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = veryfine +setting_version = 22 +type = quality +variant = 0.3mm Nozzle +weight = 2 + +[values] +speed_print = 50 +speed_travel = 80 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_draft.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_draft.inst.cfg index c51711ca2d..45aebad245 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_draft.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_draft.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Draft -version = 4 - -[metadata] -material = generic_petg -quality_type = draft -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -3 - -[values] -speed_print = 65 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Draft +version = 4 + +[metadata] +material = generic_petg +quality_type = draft +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -3 + +[values] +speed_print = 65 +speed_travel = 100 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fast.inst.cfg index abc16dfcb7..85ef922ea7 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fast.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fast.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Fast -version = 4 - -[metadata] -material = generic_petg -quality_type = fast -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -1 - -[values] -speed_print = 55 -speed_travel = 85 +[general] +definition = flashforge_adventurer3 +name = Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = fast +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +speed_print = 55 +speed_travel = 85 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fine.inst.cfg index 6c39de897c..ec8d0e4d04 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fine.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_fine.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Fine -version = 4 - -[metadata] -material = generic_petg -quality_type = fine -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 1 - -[values] -speed_print = 40 -speed_travel = 80 +[general] +definition = flashforge_adventurer3 +name = Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = fine +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 1 + +[values] +speed_print = 40 +speed_travel = 80 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_normal.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_normal.inst.cfg index be51926c7a..074d4864ce 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_normal.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_normal.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Standard -version = 4 - -[metadata] -material = generic_petg -quality_type = normal -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 0 - -[values] -speed_print = 50 -speed_travel = 80 +[general] +definition = flashforge_adventurer3 +name = Standard +version = 4 + +[metadata] +material = generic_petg +quality_type = normal +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 0 + +[values] +speed_print = 50 +speed_travel = 80 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfast.inst.cfg index 1d8286d204..66d2184562 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfast.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfast.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Very Fast -version = 4 - -[metadata] -material = generic_petg -quality_type = veryfast -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -2 - -[values] -speed_print = 60 -speed_travel = 90 +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = veryfast +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -2 + +[values] +speed_print = 60 +speed_travel = 90 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfine.inst.cfg index d06baed13c..4f7d0da1c2 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfine.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.4_vfine.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Very Fine -version = 4 - -[metadata] -material = generic_petg -quality_type = veryfine -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 2 - -[values] -speed_print = 40 -speed_travel = 80 +[general] +definition = flashforge_adventurer3 +name = Very Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = veryfine +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 2 + +[values] +speed_print = 40 +speed_travel = 80 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_draft.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_draft.inst.cfg index 2f54c96ea4..2f486d4d5d 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_draft.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_draft.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Draft -version = 4 - -[metadata] -material = generic_petg -quality_type = draft -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -3 - -[values] -speed_print = 65 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Draft +version = 4 + +[metadata] +material = generic_petg +quality_type = draft +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -3 + +[values] +speed_print = 65 +speed_travel = 100 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_fast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_fast.inst.cfg index aa55c43ad7..9ac7372049 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_fast.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_fast.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Fast -version = 4 - -[metadata] -material = generic_petg -quality_type = fast -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -1 - -[values] -speed_print = 50 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = fast +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -1 + +[values] +speed_print = 50 +speed_travel = 100 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_vfast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_vfast.inst.cfg index cb226be3c4..744527c139 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_vfast.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer3_petg_0.6_vfast.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Very Fast -version = 4 - -[metadata] -material = generic_petg -quality_type = veryfast -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -2 - -[values] -speed_print = 50 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = veryfast +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +speed_print = 50 +speed_travel = 100 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_fine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_fine.inst.cfg index a17c8d9648..aeb666c82d 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_fine.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_fine.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Fine -version = 4 - -[metadata] -material = generic_petg -quality_type = fine -setting_version = 22 -type = quality -variant = 0.3mm Nozzle -weight = 1 - -[values] -speed_print = 50 -speed_travel = 80 -retraction_amount = 5 -retraction_speed = 25 +[general] +definition = flashforge_adventurer4 +name = Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = fine +setting_version = 22 +type = quality +variant = 0.3mm Nozzle +weight = 1 + +[values] +retraction_amount = 5 +retraction_speed = 25 +speed_print = 50 +speed_travel = 80 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_vfine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_vfine.inst.cfg index 5091364e72..cb0b7fba37 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_vfine.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.3_vfine.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Very Fine -version = 4 - -[metadata] -material = generic_petg -quality_type = veryfine -setting_version = 22 -type = quality -variant = 0.3mm Nozzle -weight = 2 - -[values] -speed_print = 50 -speed_travel = 80 -retraction_amount = 5 -retraction_speed = 25 +[general] +definition = flashforge_adventurer4 +name = Very Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = veryfine +setting_version = 22 +type = quality +variant = 0.3mm Nozzle +weight = 2 + +[values] +retraction_amount = 5 +retraction_speed = 25 +speed_print = 50 +speed_travel = 80 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_draft.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_draft.inst.cfg index 3a14489559..ec08773052 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_draft.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_draft.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Draft -version = 4 - -[metadata] -material = generic_petg -quality_type = draft -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -3 - -[values] -speed_print = 65 -speed_travel = 100 -retraction_amount = 5 -retraction_speed = 25 +[general] +definition = flashforge_adventurer4 +name = Draft +version = 4 + +[metadata] +material = generic_petg +quality_type = draft +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -3 + +[values] +retraction_amount = 5 +retraction_speed = 25 +speed_print = 65 +speed_travel = 100 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fast.inst.cfg index b573bf5ea6..84be0afa3b 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fast.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Fast -version = 4 - -[metadata] -material = generic_petg -quality_type = fast -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -1 - -[values] -speed_print = 55 -speed_travel = 85 -retraction_amount = 5 -retraction_speed = 25 +[general] +definition = flashforge_adventurer4 +name = Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = fast +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +retraction_amount = 5 +retraction_speed = 25 +speed_print = 55 +speed_travel = 85 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fine.inst.cfg index e00ff6968a..75bde3cd43 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fine.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_fine.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Fine -version = 4 - -[metadata] -material = generic_petg -quality_type = fine -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 1 - -[values] -speed_print = 40 -speed_travel = 80 -retraction_amount = 5 -retraction_speed = 25 +[general] +definition = flashforge_adventurer4 +name = Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = fine +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 1 + +[values] +retraction_amount = 5 +retraction_speed = 25 +speed_print = 40 +speed_travel = 80 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_normal.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_normal.inst.cfg index 56df96187f..5f37b1e812 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_normal.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_normal.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Standard -version = 4 - -[metadata] -material = generic_petg -quality_type = normal -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 0 - -[values] -speed_print = 50 -speed_travel = 80 -retraction_amount = 5 -retraction_speed = 25 +[general] +definition = flashforge_adventurer4 +name = Standard +version = 4 + +[metadata] +material = generic_petg +quality_type = normal +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 0 + +[values] +retraction_amount = 5 +retraction_speed = 25 +speed_print = 50 +speed_travel = 80 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfast.inst.cfg index 7001124129..844195d2df 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfast.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Very Fast -version = 4 - -[metadata] -material = generic_petg -quality_type = veryfast -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -2 - -[values] -speed_print = 60 -speed_travel = 90 -retraction_amount = 5 -retraction_speed = 25 +[general] +definition = flashforge_adventurer4 +name = Very Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = veryfast +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -2 + +[values] +retraction_amount = 5 +retraction_speed = 25 +speed_print = 60 +speed_travel = 90 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfine.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfine.inst.cfg index a624956934..2eb93f1216 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfine.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.4_vfine.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Very Fine -version = 4 - -[metadata] -material = generic_petg -quality_type = veryfine -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 2 - -[values] -speed_print = 40 -speed_travel = 80 -retraction_amount = 5 -retraction_speed = 25 +[general] +definition = flashforge_adventurer4 +name = Very Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = veryfine +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 2 + +[values] +retraction_amount = 5 +retraction_speed = 25 +speed_print = 40 +speed_travel = 80 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_draft.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_draft.inst.cfg index 5976fdf225..ff190b0e23 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_draft.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_draft.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Draft -version = 4 - -[metadata] -material = generic_petg -quality_type = draft -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -3 - -[values] -speed_print = 65 -speed_travel = 100 -retraction_amount = 5 -retraction_speed = 20 +[general] +definition = flashforge_adventurer4 +name = Draft +version = 4 + +[metadata] +material = generic_petg +quality_type = draft +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -3 + +[values] +retraction_amount = 5 +retraction_speed = 20 +speed_print = 65 +speed_travel = 100 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_fast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_fast.inst.cfg index 39d500ea83..91d617d234 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_fast.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_fast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Fast -version = 4 - -[metadata] -material = generic_petg -quality_type = fast -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -1 - -[values] -speed_print = 50 -speed_travel = 100 -retraction_amount = 5 -retraction_speed = 20 +[general] +definition = flashforge_adventurer4 +name = Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = fast +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -1 + +[values] +retraction_amount = 5 +retraction_speed = 20 +speed_print = 50 +speed_travel = 100 + diff --git a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_vfast.inst.cfg b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_vfast.inst.cfg index 0d7f397d7e..22647877b8 100644 --- a/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_vfast.inst.cfg +++ b/resources/quality/flashforge/petg/flashforge_adventurer4_petg_0.6_vfast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Very Fast -version = 4 - -[metadata] -material = generic_petg -quality_type = veryfast -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -2 - -[values] -speed_print = 50 -speed_travel = 100 -retraction_amount = 5 -retraction_speed = 20 +[general] +definition = flashforge_adventurer4 +name = Very Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = veryfast +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +retraction_amount = 5 +retraction_speed = 20 +speed_print = 50 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_fine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_fine.inst.cfg index ee221f5814..6dbc8c55db 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_fine.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_fine.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Fine -version = 4 - -[metadata] -material = generic_pla -quality_type = fine -setting_version = 22 -type = quality -variant = 0.3mm Nozzle -weight = 1 - -[values] -speed_print = 50 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = fine +setting_version = 22 +type = quality +variant = 0.3mm Nozzle +weight = 1 + +[values] +speed_print = 50 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_vfine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_vfine.inst.cfg index 10861d3ac8..690c3e6b84 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_vfine.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.3_vfine.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Very Fine -version = 4 - -[metadata] -material = generic_pla -quality_type = veryfine -setting_version = 22 -type = quality -variant = 0.3mm Nozzle -weight = 2 - -[values] -speed_print = 45 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Very Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = veryfine +setting_version = 22 +type = quality +variant = 0.3mm Nozzle +weight = 2 + +[values] +speed_print = 45 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_draft.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_draft.inst.cfg index b31667ce5f..6a4342197e 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_draft.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_draft.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Draft -version = 4 - -[metadata] -material = generic_pla -quality_type = draft -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -3 - -[values] -speed_print = 75 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Draft +version = 4 + +[metadata] +material = generic_pla +quality_type = draft +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -3 + +[values] +speed_print = 75 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fast.inst.cfg index 1517fb9086..180e648dfd 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fast.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fast.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Fast -version = 4 - -[metadata] -material = generic_pla -quality_type = fast -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -1 - -[values] -speed_print = 65 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Fast +version = 4 + +[metadata] +material = generic_pla +quality_type = fast +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +speed_print = 65 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fine.inst.cfg index b92f15246c..7e6dee0b1e 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fine.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_fine.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Fine -version = 4 - -[metadata] -material = generic_pla -quality_type = fine -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 1 - -[values] -speed_print = 50 -speed_travel = 80 +[general] +definition = flashforge_adventurer3 +name = Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = fine +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 1 + +[values] +speed_print = 50 +speed_travel = 80 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_normal.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_normal.inst.cfg index cb7476638b..06e24e078d 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_normal.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_normal.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Standard -version = 4 - -[metadata] -material = generic_pla -quality_type = normal -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 0 - -[values] -speed_print = 60 -speed_travel = 80 +[general] +definition = flashforge_adventurer3 +name = Standard +version = 4 + +[metadata] +material = generic_pla +quality_type = normal +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 0 + +[values] +speed_print = 60 +speed_travel = 80 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfast.inst.cfg index 970670b211..d82fb0cdad 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfast.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfast.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Very Fast -version = 4 - -[metadata] -material = generic_pla -quality_type = veryfast -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -2 - -[values] -speed_print = 70 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +material = generic_pla +quality_type = veryfast +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -2 + +[values] +speed_print = 70 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfine.inst.cfg index a38658883b..dfd442d63c 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfine.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.4_vfine.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Very Fine -version = 4 - -[metadata] -material = generic_pla -quality_type = veryfine -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 2 - -[values] -speed_print = 40 -speed_travel = 70 +[general] +definition = flashforge_adventurer3 +name = Very Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = veryfine +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 2 + +[values] +speed_print = 40 +speed_travel = 70 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_draft.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_draft.inst.cfg index 620302a481..4508444055 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_draft.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_draft.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Draft -version = 4 - -[metadata] -material = generic_pla -quality_type = draft -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -2 - -[values] -speed_print = 60 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Draft +version = 4 + +[metadata] +material = generic_pla +quality_type = draft +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +speed_print = 60 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_fast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_fast.inst.cfg index e2f91de812..782b74a7dc 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_fast.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_fast.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Fast -version = 4 - -[metadata] -material = generic_pla -quality_type = fast -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -1 - -[values] -speed_print = 50 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Fast +version = 4 + +[metadata] +material = generic_pla +quality_type = fast +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -1 + +[values] +speed_print = 50 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_vfast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_vfast.inst.cfg index b9f6ae4e88..22b74b6a25 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_vfast.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer3_pla_0.6_vfast.inst.cfg @@ -1,16 +1,17 @@ -[general] -definition = flashforge_adventurer3 -name = Very Fast -version = 4 - -[metadata] -material = generic_pla -quality_type = veryfast -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -2 - -[values] -speed_print = 55 -speed_travel = 100 +[general] +definition = flashforge_adventurer3 +name = Very Fast +version = 4 + +[metadata] +material = generic_pla +quality_type = veryfast +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +speed_print = 55 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_fine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_fine.inst.cfg index 3ef15e1736..747f8a0076 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_fine.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_fine.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Fine -version = 4 - -[metadata] -material = generic_pla -quality_type = fine -setting_version = 22 -type = quality -variant = 0.3mm Nozzle -weight = 1 - -[values] -speed_print = 50 -speed_travel = 100 -retraction_amount = 5 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = fine +setting_version = 22 +type = quality +variant = 0.3mm Nozzle +weight = 1 + +[values] +retraction_amount = 5 +retraction_speed = 30 +speed_print = 50 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_vfine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_vfine.inst.cfg index cdd22c946f..e7a6ef72cd 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_vfine.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.3_vfine.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Very Fine -version = 4 - -[metadata] -material = generic_pla -quality_type = veryfine -setting_version = 22 -type = quality -variant = 0.3mm Nozzle -weight = 2 - -[values] -speed_print = 45 -speed_travel = 100 -retraction_amount = 5 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Very Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = veryfine +setting_version = 22 +type = quality +variant = 0.3mm Nozzle +weight = 2 + +[values] +retraction_amount = 5 +retraction_speed = 30 +speed_print = 45 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_draft.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_draft.inst.cfg index 993064a6df..18bd03e2fa 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_draft.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_draft.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Draft -version = 4 - -[metadata] -material = generic_pla -quality_type = draft -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -2 - -[values] -speed_print = 65 -speed_travel = 100 -retraction_amount = 5.5 -retraction_speed = 25 +[general] +definition = flashforge_adventurer4 +name = Draft +version = 4 + +[metadata] +material = generic_pla +quality_type = draft +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -2 + +[values] +retraction_amount = 5.5 +retraction_speed = 25 +speed_print = 65 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fast.inst.cfg index 2d4aff0fe6..a40571318d 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fast.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Fine -version = 4 - -[metadata] -material = generic_pla -quality_type = fine -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -1 - -[values] -speed_print = 55 -speed_travel = 100 -retraction_amount = 5.5 -retraction_speed = 25 +[general] +definition = flashforge_adventurer4 +name = Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = fine +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -1 + +[values] +retraction_amount = 5.5 +retraction_speed = 25 +speed_print = 55 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fine.inst.cfg index 37e0731f50..b81f729ed7 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fine.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_fine.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Fine -version = 4 - -[metadata] -material = generic_pla -quality_type = fine -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 1 - -[values] -speed_print = 45 -speed_travel = 90 -retraction_amount = 5.5 -retraction_speed = 25 +[general] +definition = flashforge_adventurer4 +name = Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = fine +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 1 + +[values] +retraction_amount = 5.5 +retraction_speed = 25 +speed_print = 45 +speed_travel = 90 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_normal.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_normal.inst.cfg index 8e2fe1b043..6e3486a031 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_normal.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_normal.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Standard -version = 4 - -[metadata] -material = generic_pla -quality_type = normal -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 0 - -[values] -speed_print = 50 -speed_travel = 100 -retraction_amount = 5.5 -retraction_speed = 25 +[general] +definition = flashforge_adventurer4 +name = Standard +version = 4 + +[metadata] +material = generic_pla +quality_type = normal +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 0 + +[values] +retraction_amount = 5.5 +retraction_speed = 25 +speed_print = 50 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfast.inst.cfg index dc887117c0..7635f68944 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfast.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Very Fast -version = 4 - -[metadata] -material = generic_pla -quality_type = veryfast -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = -2 - -[values] -speed_print = 60 -speed_travel = 100 -retraction_amount = 5.5 -retraction_speed = 25 +[general] +definition = flashforge_adventurer4 +name = Very Fast +version = 4 + +[metadata] +material = generic_pla +quality_type = veryfast +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = -2 + +[values] +retraction_amount = 5.5 +retraction_speed = 25 +speed_print = 60 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfine.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfine.inst.cfg index cdd5aae558..718dd4d4c7 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfine.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.4_vfine.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Very Fine -version = 4 - -[metadata] -material = generic_pla -quality_type = veryfine -setting_version = 22 -type = quality -variant = 0.4mm Nozzle -weight = 2 - -[values] -speed_print = 40 -speed_travel = 80 -retraction_amount = 5.5 -retraction_speed = 25 +[general] +definition = flashforge_adventurer4 +name = Very Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = veryfine +setting_version = 22 +type = quality +variant = 0.4mm Nozzle +weight = 2 + +[values] +retraction_amount = 5.5 +retraction_speed = 25 +speed_print = 40 +speed_travel = 80 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_draft.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_draft.inst.cfg index ac4966df73..50e5223045 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_draft.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_draft.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Draft -version = 4 - -[metadata] -material = generic_pla -quality_type = draft -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -2 - -[values] -speed_print = 65 -speed_travel = 100 -retraction_amount = 6 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Draft +version = 4 + +[metadata] +material = generic_pla +quality_type = draft +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +retraction_amount = 6 +retraction_speed = 30 +speed_print = 65 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_fast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_fast.inst.cfg index 77538fb95e..f81ed66155 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_fast.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_fast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Fast -version = 4 - -[metadata] -material = generic_pla -quality_type = fast -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -1 - -[values] -speed_print = 60 -speed_travel = 100 -retraction_amount = 6 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Fast +version = 4 + +[metadata] +material = generic_pla +quality_type = fast +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -1 + +[values] +retraction_amount = 6 +retraction_speed = 30 +speed_print = 60 +speed_travel = 100 + diff --git a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_vfast.inst.cfg b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_vfast.inst.cfg index 923d526e69..aa065e31f0 100644 --- a/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_vfast.inst.cfg +++ b/resources/quality/flashforge/pla/flashforge_adventurer4_pla_0.6_vfast.inst.cfg @@ -1,18 +1,19 @@ -[general] -definition = flashforge_adventurer4 -name = Very Fast -version = 4 - -[metadata] -material = generic_pla -quality_type = veryfast -setting_version = 22 -type = quality -variant = 0.6mm Nozzle -weight = -2 - -[values] -speed_print = 60 -speed_travel = 100 -retraction_amount = 6 -retraction_speed = 30 +[general] +definition = flashforge_adventurer4 +name = Very Fast +version = 4 + +[metadata] +material = generic_pla +quality_type = veryfast +setting_version = 22 +type = quality +variant = 0.6mm Nozzle +weight = -2 + +[values] +retraction_amount = 6 +retraction_speed = 30 +speed_print = 60 +speed_travel = 100 + diff --git a/resources/variants/flashforge/flashforge_adventurer3_0.3.inst.cfg b/resources/variants/flashforge/flashforge_adventurer3_0.3.inst.cfg index 9233d066d2..fdaea7e9f0 100644 --- a/resources/variants/flashforge/flashforge_adventurer3_0.3.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer3_0.3.inst.cfg @@ -1,12 +1,13 @@ -[general] -definition = flashforge_adventurer3 -name = 0.3mm Nozzle -version = 4 - -[metadata] -hardware_type = nozzle -setting_version = 22 -type = variant - -[values] -machine_nozzle_size = 0.3 +[general] +definition = flashforge_adventurer3 +name = 0.3mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.3 + diff --git a/resources/variants/flashforge/flashforge_adventurer3_0.4.inst.cfg b/resources/variants/flashforge/flashforge_adventurer3_0.4.inst.cfg index 9217a0a518..5a7a2520ad 100644 --- a/resources/variants/flashforge/flashforge_adventurer3_0.4.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer3_0.4.inst.cfg @@ -1,12 +1,13 @@ -[general] -definition = flashforge_adventurer3 -name = 0.4mm Nozzle -version = 4 - -[metadata] -hardware_type = nozzle -setting_version = 22 -type = variant - -[values] -machine_nozzle_size = 0.4 +[general] +definition = flashforge_adventurer3 +name = 0.4mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/flashforge/flashforge_adventurer3_0.6.inst.cfg b/resources/variants/flashforge/flashforge_adventurer3_0.6.inst.cfg index 5e712bb0f5..bee4393cc9 100644 --- a/resources/variants/flashforge/flashforge_adventurer3_0.6.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer3_0.6.inst.cfg @@ -1,12 +1,13 @@ -[general] -definition = flashforge_adventurer3 -name = 0.6mm Nozzle -version = 4 - -[metadata] -hardware_type = nozzle -setting_version = 22 -type = variant - -[values] -machine_nozzle_size = 0.6 +[general] +definition = flashforge_adventurer3 +name = 0.6mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.6 + diff --git a/resources/variants/flashforge/flashforge_adventurer3c_0.3.inst.cfg b/resources/variants/flashforge/flashforge_adventurer3c_0.3.inst.cfg index c7162ed63b..404c0efb06 100644 --- a/resources/variants/flashforge/flashforge_adventurer3c_0.3.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer3c_0.3.inst.cfg @@ -1,12 +1,13 @@ -[general] -definition = flashforge_adventurer3c -name = 0.3mm Nozzle -version = 4 - -[metadata] -hardware_type = nozzle -setting_version = 22 -type = variant - -[values] -machine_nozzle_size = 0.3 +[general] +definition = flashforge_adventurer3c +name = 0.3mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.3 + diff --git a/resources/variants/flashforge/flashforge_adventurer3c_0.4.inst.cfg b/resources/variants/flashforge/flashforge_adventurer3c_0.4.inst.cfg index 75b8cf227d..20cb91c62e 100644 --- a/resources/variants/flashforge/flashforge_adventurer3c_0.4.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer3c_0.4.inst.cfg @@ -1,12 +1,13 @@ -[general] -definition = flashforge_adventurer3c -name = 0.4mm Nozzle -version = 4 - -[metadata] -hardware_type = nozzle -setting_version = 22 -type = variant - -[values] -machine_nozzle_size = 0.4 +[general] +definition = flashforge_adventurer3c +name = 0.4mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/flashforge/flashforge_adventurer3c_0.6.inst.cfg b/resources/variants/flashforge/flashforge_adventurer3c_0.6.inst.cfg index 07898deed7..531763721a 100644 --- a/resources/variants/flashforge/flashforge_adventurer3c_0.6.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer3c_0.6.inst.cfg @@ -1,12 +1,13 @@ -[general] -definition = flashforge_adventurer3c -name = 0.6mm Nozzle -version = 4 - -[metadata] -hardware_type = nozzle -setting_version = 22 -type = variant - -[values] -machine_nozzle_size = 0.6 +[general] +definition = flashforge_adventurer3c +name = 0.6mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.6 + diff --git a/resources/variants/flashforge/flashforge_adventurer4_0.3.inst.cfg b/resources/variants/flashforge/flashforge_adventurer4_0.3.inst.cfg index 36902259f1..661de9a802 100644 --- a/resources/variants/flashforge/flashforge_adventurer4_0.3.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer4_0.3.inst.cfg @@ -1,12 +1,13 @@ -[general] -definition = flashforge_adventurer4 -name = 0.3mm Nozzle -version = 4 - -[metadata] -hardware_type = nozzle -setting_version = 22 -type = variant - -[values] -machine_nozzle_size = 0.3 +[general] +definition = flashforge_adventurer4 +name = 0.3mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.3 + diff --git a/resources/variants/flashforge/flashforge_adventurer4_0.4.inst.cfg b/resources/variants/flashforge/flashforge_adventurer4_0.4.inst.cfg index 8433cc42d8..7944ab4d6a 100644 --- a/resources/variants/flashforge/flashforge_adventurer4_0.4.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer4_0.4.inst.cfg @@ -1,12 +1,13 @@ -[general] -definition = flashforge_adventurer4 -name = 0.4mm Nozzle -version = 4 - -[metadata] -hardware_type = nozzle -setting_version = 22 -type = variant - -[values] -machine_nozzle_size = 0.4 +[general] +definition = flashforge_adventurer4 +name = 0.4mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/flashforge/flashforge_adventurer4_0.6.inst.cfg b/resources/variants/flashforge/flashforge_adventurer4_0.6.inst.cfg index 39604fef55..2e0bb4d36a 100644 --- a/resources/variants/flashforge/flashforge_adventurer4_0.6.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer4_0.6.inst.cfg @@ -1,12 +1,13 @@ -[general] -definition = flashforge_adventurer4 -name = 0.6mm Nozzle -version = 4 - -[metadata] -hardware_type = nozzle -setting_version = 22 -type = variant - -[values] -machine_nozzle_size = 0.6 +[general] +definition = flashforge_adventurer4 +name = 0.6mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.6 + diff --git a/resources/variants/flashforge/flashforge_adventurer4lite_0.3.inst.cfg b/resources/variants/flashforge/flashforge_adventurer4lite_0.3.inst.cfg index 8c1a1d6e2f..25f6eba9bf 100644 --- a/resources/variants/flashforge/flashforge_adventurer4lite_0.3.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer4lite_0.3.inst.cfg @@ -1,12 +1,13 @@ -[general] -definition = flashforge_adventurer4lite -name = 0.3mm Nozzle -version = 4 - -[metadata] -hardware_type = nozzle -setting_version = 22 -type = variant - -[values] -machine_nozzle_size = 0.3 +[general] +definition = flashforge_adventurer4lite +name = 0.3mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.3 + diff --git a/resources/variants/flashforge/flashforge_adventurer4lite_0.4.inst.cfg b/resources/variants/flashforge/flashforge_adventurer4lite_0.4.inst.cfg index 16d8876485..c073e05831 100644 --- a/resources/variants/flashforge/flashforge_adventurer4lite_0.4.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer4lite_0.4.inst.cfg @@ -1,12 +1,13 @@ -[general] -definition = flashforge_adventurer4lite -name = 0.4mm Nozzle -version = 4 - -[metadata] -hardware_type = nozzle -setting_version = 22 -type = variant - -[values] -machine_nozzle_size = 0.4 +[general] +definition = flashforge_adventurer4lite +name = 0.4mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/flashforge/flashforge_adventurer4lite_0.6.inst.cfg b/resources/variants/flashforge/flashforge_adventurer4lite_0.6.inst.cfg index b9832c7d84..5801637f40 100644 --- a/resources/variants/flashforge/flashforge_adventurer4lite_0.6.inst.cfg +++ b/resources/variants/flashforge/flashforge_adventurer4lite_0.6.inst.cfg @@ -1,12 +1,13 @@ -[general] -definition = flashforge_adventurer4lite -name = 0.6mm Nozzle -version = 4 - -[metadata] -hardware_type = nozzle -setting_version = 22 -type = variant - -[values] -machine_nozzle_size = 0.6 +[general] +definition = flashforge_adventurer4lite +name = 0.6mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 22 +type = variant + +[values] +machine_nozzle_size = 0.6 + From d490effcbd2062424a485198c38e0a90a22963b9 Mon Sep 17 00:00:00 2001 From: nallath Date: Wed, 31 Jan 2024 12:46:58 +0000 Subject: [PATCH 133/269] Applied printer-linter format --- resources/definitions/ratrig_base.def.json | 2 +- resources/definitions/ratrig_vcore3_200.def.json | 2 +- resources/definitions/ratrig_vcore3_300.def.json | 2 +- resources/definitions/ratrig_vcore3_400.def.json | 2 +- resources/definitions/ratrig_vcore3_500.def.json | 2 +- resources/definitions/ratrig_vcore3_base.def.json | 2 +- resources/definitions/ratrig_vminion.def.json | 2 +- .../extruders/ratrig_base_extruder_0.def.json | 9 +++++---- .../nylon/ratrig_base_0.2_Nylon_super.inst.cfg | 9 +++++---- .../nylon/ratrig_base_0.2_Nylon_ultra.inst.cfg | 9 +++++---- .../nylon/ratrig_base_0.3_Nylon_adaptive.inst.cfg | 9 +++++---- .../nylon/ratrig_base_0.3_Nylon_low.inst.cfg | 9 +++++---- .../nylon/ratrig_base_0.3_Nylon_standard.inst.cfg | 9 +++++---- .../nylon/ratrig_base_0.3_Nylon_super.inst.cfg | 9 +++++---- .../nylon/ratrig_base_0.4_Nylon_adaptive.inst.cfg | 15 ++++++++------- .../nylon/ratrig_base_0.4_Nylon_low.inst.cfg | 15 ++++++++------- .../nylon/ratrig_base_0.4_Nylon_standard.inst.cfg | 15 ++++++++------- .../nylon/ratrig_base_0.4_Nylon_super.inst.cfg | 15 ++++++++------- .../nylon/ratrig_base_0.5_Nylon_adaptive.inst.cfg | 9 +++++---- .../nylon/ratrig_base_0.5_Nylon_low.inst.cfg | 9 +++++---- .../nylon/ratrig_base_0.5_Nylon_standard.inst.cfg | 9 +++++---- .../nylon/ratrig_base_0.5_Nylon_super.inst.cfg | 9 +++++---- .../nylon/ratrig_base_0.6_Nylon_standard.inst.cfg | 9 +++++---- .../nylon/ratrig_base_0.8_Nylon_draft.inst.cfg | 11 ++++++----- .../nylon/ratrig_base_1.0_Nylon_draft.inst.cfg | 9 +++++---- .../petg/ratrig_base_0.2_PETG_super.inst.cfg | 9 +++++---- .../petg/ratrig_base_0.2_PETG_ultra.inst.cfg | 9 +++++---- .../petg/ratrig_base_0.3_PETG_adaptive.inst.cfg | 9 +++++---- .../petg/ratrig_base_0.3_PETG_low.inst.cfg | 9 +++++---- .../petg/ratrig_base_0.3_PETG_standard.inst.cfg | 9 +++++---- .../petg/ratrig_base_0.3_PETG_super.inst.cfg | 9 +++++---- .../petg/ratrig_base_0.4_PETG_adaptive.inst.cfg | 15 ++++++++------- .../petg/ratrig_base_0.4_PETG_low.inst.cfg | 15 ++++++++------- .../petg/ratrig_base_0.4_PETG_standard.inst.cfg | 15 ++++++++------- .../petg/ratrig_base_0.4_PETG_super.inst.cfg | 15 ++++++++------- .../petg/ratrig_base_0.5_PETG_adaptive.inst.cfg | 9 +++++---- .../petg/ratrig_base_0.5_PETG_low.inst.cfg | 9 +++++---- .../petg/ratrig_base_0.5_PETG_standard.inst.cfg | 9 +++++---- .../petg/ratrig_base_0.5_PETG_super.inst.cfg | 9 +++++---- .../petg/ratrig_base_0.6_PETG_standard.inst.cfg | 9 +++++---- .../petg/ratrig_base_0.8_PETG_draft.inst.cfg | 11 ++++++----- .../petg/ratrig_base_1.0_PETG_draft.inst.cfg | 9 +++++---- .../pla/ratrig_base_0.2_PLA_super.inst.cfg | 9 +++++---- .../pla/ratrig_base_0.2_PLA_ultra.inst.cfg | 9 +++++---- .../pla/ratrig_base_0.3_PLA_adaptive.inst.cfg | 9 +++++---- .../pla/ratrig_base_0.3_PLA_low.inst.cfg | 9 +++++---- .../pla/ratrig_base_0.3_PLA_standard.inst.cfg | 9 +++++---- .../pla/ratrig_base_0.3_PLA_super.inst.cfg | 9 +++++---- .../pla/ratrig_base_0.4_PLA_adaptive.inst.cfg | 9 +++++---- .../pla/ratrig_base_0.4_PLA_low.inst.cfg | 9 +++++---- .../pla/ratrig_base_0.4_PLA_standard.inst.cfg | 9 +++++---- .../pla/ratrig_base_0.4_PLA_super.inst.cfg | 9 +++++---- .../pla/ratrig_base_0.5_PLA_adaptive.inst.cfg | 9 +++++---- .../pla/ratrig_base_0.5_PLA_low.inst.cfg | 9 +++++---- .../pla/ratrig_base_0.5_PLA_standard.inst.cfg | 9 +++++---- .../pla/ratrig_base_0.5_PLA_super.inst.cfg | 9 +++++---- .../pla/ratrig_base_0.6_PLA_draft.inst.cfg | 9 +++++---- .../pla/ratrig_base_0.6_PLA_low.inst.cfg | 9 +++++---- .../pla/ratrig_base_0.6_PLA_standard.inst.cfg | 9 +++++---- .../pla/ratrig_base_0.8_PLA_draft.inst.cfg | 9 +++++---- .../pla/ratrig_base_1.0_PLA_draft.inst.cfg | 9 +++++---- .../ratrig_base_global_adaptive.inst.cfg | 13 +++++++------ .../ratrig_base/ratrig_base_global_draft.inst.cfg | 11 ++++++----- .../ratrig_base/ratrig_base_global_low.inst.cfg | 11 ++++++----- .../ratrig_base_global_standard.inst.cfg | 11 ++++++----- .../ratrig_base/ratrig_base_global_super.inst.cfg | 11 ++++++----- .../ratrig_base/ratrig_base_global_ultra.inst.cfg | 11 ++++++----- .../tpu/ratrig_base_0.3_TPU_adaptive.inst.cfg | 9 +++++---- .../tpu/ratrig_base_0.3_TPU_standard.inst.cfg | 9 +++++---- .../tpu/ratrig_base_0.3_TPU_super.inst.cfg | 9 +++++---- .../tpu/ratrig_base_0.4_TPU_adaptive.inst.cfg | 9 +++++---- .../tpu/ratrig_base_0.4_TPU_standard.inst.cfg | 9 +++++---- .../tpu/ratrig_base_0.4_TPU_super.inst.cfg | 9 +++++---- .../tpu/ratrig_base_0.5_TPU_adaptive.inst.cfg | 9 +++++---- .../tpu/ratrig_base_0.5_TPU_standard.inst.cfg | 9 +++++---- .../tpu/ratrig_base_0.5_TPU_super.inst.cfg | 9 +++++---- .../tpu/ratrig_base_0.6_TPU_standard.inst.cfg | 9 +++++---- .../tpu/ratrig_base_0.8_TPU_draft.inst.cfg | 9 +++++---- .../tpu/ratrig_base_1.0_TPU_draft.inst.cfg | 9 +++++---- .../variants/ratrig/ratrig_base_0.2.inst.cfg | 5 +++-- .../variants/ratrig/ratrig_base_0.3.inst.cfg | 5 +++-- .../variants/ratrig/ratrig_base_0.4.inst.cfg | 5 +++-- .../variants/ratrig/ratrig_base_0.6.inst.cfg | 5 +++-- .../variants/ratrig/ratrig_base_0.8.inst.cfg | 5 +++-- .../variants/ratrig/ratrig_base_1.0.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_200_0.2.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_200_0.3.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_200_0.4.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_200_0.6.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_200_0.8.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_200_1.0.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_300_0.2.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_300_0.3.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_300_0.4.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_300_0.6.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_300_0.8.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_300_1.0.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_400_0.2.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_400_0.3.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_400_0.4.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_400_0.6.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_400_0.8.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_400_1.0.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_500_0.2.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_500_0.3.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_500_0.4.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_500_0.6.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_500_0.8.inst.cfg | 5 +++-- .../ratrig/ratrig_vcore3_500_1.0.inst.cfg | 5 +++-- .../variants/ratrig/ratrig_vminion_0.2.inst.cfg | 5 +++-- .../variants/ratrig/ratrig_vminion_0.3.inst.cfg | 5 +++-- .../variants/ratrig/ratrig_vminion_0.4.inst.cfg | 5 +++-- .../variants/ratrig/ratrig_vminion_0.6.inst.cfg | 5 +++-- .../variants/ratrig/ratrig_vminion_0.8.inst.cfg | 5 +++-- .../variants/ratrig/ratrig_vminion_1.0.inst.cfg | 5 +++-- 115 files changed, 508 insertions(+), 400 deletions(-) diff --git a/resources/definitions/ratrig_base.def.json b/resources/definitions/ratrig_base.def.json index 22c01c8bc3..ab8f4dccf4 100644 --- a/resources/definitions/ratrig_base.def.json +++ b/resources/definitions/ratrig_base.def.json @@ -16,4 +16,4 @@ "quality_definition": "ratrig_base", "supported_actions": [ "MachineSettingsAction" ] } -} +} \ No newline at end of file diff --git a/resources/definitions/ratrig_vcore3_200.def.json b/resources/definitions/ratrig_vcore3_200.def.json index 22738f6ce1..d16f15b476 100644 --- a/resources/definitions/ratrig_vcore3_200.def.json +++ b/resources/definitions/ratrig_vcore3_200.def.json @@ -20,4 +20,4 @@ "machine_name": { "default_value": "RatRig V-Core 3 200mm" }, "machine_width": { "default_value": 200 } } -} +} \ No newline at end of file diff --git a/resources/definitions/ratrig_vcore3_300.def.json b/resources/definitions/ratrig_vcore3_300.def.json index b139f3b105..c96860e90b 100644 --- a/resources/definitions/ratrig_vcore3_300.def.json +++ b/resources/definitions/ratrig_vcore3_300.def.json @@ -20,4 +20,4 @@ "machine_name": { "default_value": "RatRig V-Core 3 300mm" }, "machine_width": { "default_value": 300 } } -} +} \ No newline at end of file diff --git a/resources/definitions/ratrig_vcore3_400.def.json b/resources/definitions/ratrig_vcore3_400.def.json index a61e4570bc..fcd51686e8 100644 --- a/resources/definitions/ratrig_vcore3_400.def.json +++ b/resources/definitions/ratrig_vcore3_400.def.json @@ -20,4 +20,4 @@ "machine_name": { "default_value": "RatRig V-Core 3 400mm" }, "machine_width": { "default_value": 400 } } -} +} \ No newline at end of file diff --git a/resources/definitions/ratrig_vcore3_500.def.json b/resources/definitions/ratrig_vcore3_500.def.json index 93483af33a..97798bc4ce 100644 --- a/resources/definitions/ratrig_vcore3_500.def.json +++ b/resources/definitions/ratrig_vcore3_500.def.json @@ -20,4 +20,4 @@ "machine_name": { "default_value": "RatRig V-Core 3 500mm" }, "machine_width": { "default_value": 500 } } -} +} \ No newline at end of file diff --git a/resources/definitions/ratrig_vcore3_base.def.json b/resources/definitions/ratrig_vcore3_base.def.json index a736da4506..f52f6b9b1a 100644 --- a/resources/definitions/ratrig_vcore3_base.def.json +++ b/resources/definitions/ratrig_vcore3_base.def.json @@ -114,4 +114,4 @@ "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, "z_seam_type": { "value": "'back'" } } -} +} \ No newline at end of file diff --git a/resources/definitions/ratrig_vminion.def.json b/resources/definitions/ratrig_vminion.def.json index 3cfb3baad6..8c20c3c49f 100644 --- a/resources/definitions/ratrig_vminion.def.json +++ b/resources/definitions/ratrig_vminion.def.json @@ -125,4 +125,4 @@ "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, "z_seam_type": { "value": "'back'" } } -} +} \ No newline at end of file diff --git a/resources/extruders/ratrig_base_extruder_0.def.json b/resources/extruders/ratrig_base_extruder_0.def.json index 0c621c9a06..e5afcbdb54 100644 --- a/resources/extruders/ratrig_base_extruder_0.def.json +++ b/resources/extruders/ratrig_base_extruder_0.def.json @@ -2,14 +2,15 @@ "version": 2, "name": "Extruder 1", "inherits": "fdmextruder", - "metadata": { + "metadata": + { "machine": "ratrig_base", "position": "0" }, - - "overrides": { + "overrides": + { "extruder_nr": { "default_value": 0 }, "machine_nozzle_size": { "default_value": 0.4 }, "material_diameter": { "default_value": 1.75 } } -} +} \ No newline at end of file diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.2_Nylon_super.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.2_Nylon_super.inst.cfg index 986c594aa8..adfe0e26a5 100644 --- a/resources/quality/ratrig_base/nylon/ratrig_base_0.2_Nylon_super.inst.cfg +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.2_Nylon_super.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Super Quality definition = ratrig_base +name = Super Quality +version = 4 [metadata] +material = generic_nylon +quality_type = super setting_version = 22 type = quality -quality_type = super -material = generic_nylon variant = 0.2mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*8 + diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.2_Nylon_ultra.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.2_Nylon_ultra.inst.cfg index 8e857ee97c..d0ed1bfc29 100644 --- a/resources/quality/ratrig_base/nylon/ratrig_base_0.2_Nylon_ultra.inst.cfg +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.2_Nylon_ultra.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Ultra Quality definition = ratrig_base +name = Ultra Quality +version = 4 [metadata] +material = generic_nylon +quality_type = ultra setting_version = 22 type = quality -quality_type = ultra -material = generic_nylon variant = 0.2mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*8 + diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_adaptive.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_adaptive.inst.cfg index a63a0ecc02..98bf867ce5 100644 --- a/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_adaptive.inst.cfg +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_adaptive.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Dynamic Quality definition = ratrig_base +name = Dynamic Quality +version = 4 [metadata] +material = generic_nylon +quality_type = adaptive setting_version = 22 type = quality -quality_type = adaptive -material = generic_nylon variant = 0.3mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_low.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_low.inst.cfg index 968ad34432..8af3672269 100644 --- a/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_low.inst.cfg +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_low.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Low Quality definition = ratrig_base +name = Low Quality +version = 4 [metadata] +material = generic_nylon +quality_type = low setting_version = 22 type = quality -quality_type = low -material = generic_nylon variant = 0.3mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_standard.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_standard.inst.cfg index f139cc0aa7..5c70c697a6 100644 --- a/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_standard.inst.cfg +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_standard.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Standard Quality definition = ratrig_base +name = Standard Quality +version = 4 [metadata] +material = generic_nylon +quality_type = standard setting_version = 22 type = quality -quality_type = standard -material = generic_nylon variant = 0.3mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_super.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_super.inst.cfg index b09d167aa3..af8ea00735 100644 --- a/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_super.inst.cfg +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.3_Nylon_super.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Super Quality definition = ratrig_base +name = Super Quality +version = 4 [metadata] +material = generic_nylon +quality_type = super setting_version = 22 type = quality -quality_type = super -material = generic_nylon variant = 0.3mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_adaptive.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_adaptive.inst.cfg index c686218598..3b4589bd78 100644 --- a/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_adaptive.inst.cfg +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_adaptive.inst.cfg @@ -1,18 +1,19 @@ [general] -version = 4 -name = Dynamic Quality definition = ratrig_base +name = Dynamic Quality +version = 4 [metadata] +material = generic_nylon +quality_type = adaptive setting_version = 22 type = quality -quality_type = adaptive -material = generic_nylon variant = 0.4mm Nozzle [values] -wall_thickness = =line_width*4 cool_fan_speed = 40 -retraction_speed = 20 -retraction_amount = 1.6 material_flow = 94.0 +retraction_amount = 1.6 +retraction_speed = 20 +wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_low.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_low.inst.cfg index 7daca8bac7..addc6f2c1c 100644 --- a/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_low.inst.cfg +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_low.inst.cfg @@ -1,18 +1,19 @@ [general] -version = 4 -name = Low Quality definition = ratrig_base +name = Low Quality +version = 4 [metadata] +material = generic_nylon +quality_type = low setting_version = 22 type = quality -quality_type = low -material = generic_nylon variant = 0.4mm Nozzle [values] -wall_thickness = =line_width*4 cool_fan_speed = 40 -retraction_speed = 20 -retraction_amount = 1.6 material_flow = 94.0 +retraction_amount = 1.6 +retraction_speed = 20 +wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_standard.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_standard.inst.cfg index 9f414288e9..e74e3c9015 100644 --- a/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_standard.inst.cfg +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_standard.inst.cfg @@ -1,18 +1,19 @@ [general] -version = 4 -name = Standard Quality definition = ratrig_base +name = Standard Quality +version = 4 [metadata] +material = generic_nylon +quality_type = standard setting_version = 22 type = quality -quality_type = standard -material = generic_nylon variant = 0.4mm Nozzle [values] -wall_thickness = =line_width*4 cool_fan_speed = 40 -retraction_speed = 20 -retraction_amount = 1.6 material_flow = 94.0 +retraction_amount = 1.6 +retraction_speed = 20 +wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_super.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_super.inst.cfg index ef3b84f810..957d89d2bf 100644 --- a/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_super.inst.cfg +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.4_Nylon_super.inst.cfg @@ -1,18 +1,19 @@ [general] -version = 4 -name = Super Quality definition = ratrig_base +name = Super Quality +version = 4 [metadata] +material = generic_nylon +quality_type = super setting_version = 22 type = quality -quality_type = super -material = generic_nylon variant = 0.4mm Nozzle [values] -wall_thickness = =line_width*4 cool_fan_speed = 40 -retraction_speed = 20 -retraction_amount = 1.6 material_flow = 94.0 +retraction_amount = 1.6 +retraction_speed = 20 +wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_adaptive.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_adaptive.inst.cfg index e3d64001f0..46766b94c2 100644 --- a/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_adaptive.inst.cfg +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_adaptive.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Dynamic Quality definition = ratrig_base +name = Dynamic Quality +version = 4 [metadata] +material = generic_nylon +quality_type = adaptive setting_version = 22 type = quality -quality_type = adaptive -material = generic_nylon variant = 0.5mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_low.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_low.inst.cfg index 7468690a7e..22e93d8876 100644 --- a/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_low.inst.cfg +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_low.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Low Quality definition = ratrig_base +name = Low Quality +version = 4 [metadata] +material = generic_nylon +quality_type = low setting_version = 22 type = quality -quality_type = low -material = generic_nylon variant = 0.5mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_standard.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_standard.inst.cfg index 0a7c369edd..0d9b6ae5c1 100644 --- a/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_standard.inst.cfg +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_standard.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Standard Quality definition = ratrig_base +name = Standard Quality +version = 4 [metadata] +material = generic_nylon +quality_type = standard setting_version = 22 type = quality -quality_type = standard -material = generic_nylon variant = 0.5mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_super.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_super.inst.cfg index d7cc617a74..372d066d4c 100644 --- a/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_super.inst.cfg +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.5_Nylon_super.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Super Quality definition = ratrig_base +name = Super Quality +version = 4 [metadata] +material = generic_nylon +quality_type = super setting_version = 22 type = quality -quality_type = super -material = generic_nylon variant = 0.5mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.6_Nylon_standard.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.6_Nylon_standard.inst.cfg index bf34041d96..a57d8e22ca 100644 --- a/resources/quality/ratrig_base/nylon/ratrig_base_0.6_Nylon_standard.inst.cfg +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.6_Nylon_standard.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Standard Quality definition = ratrig_base +name = Standard Quality +version = 4 [metadata] +material = generic_nylon +quality_type = standard setting_version = 22 type = quality -quality_type = standard -material = generic_nylon variant = 0.6mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*3 + diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_0.8_Nylon_draft.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_0.8_Nylon_draft.inst.cfg index 92bc80ceb3..1fc2e48eed 100644 --- a/resources/quality/ratrig_base/nylon/ratrig_base_0.8_Nylon_draft.inst.cfg +++ b/resources/quality/ratrig_base/nylon/ratrig_base_0.8_Nylon_draft.inst.cfg @@ -1,16 +1,17 @@ [general] -version = 4 -name = Draft Quality definition = ratrig_base +name = Draft Quality +version = 4 [metadata] +material = generic_nylon +quality_type = draft setting_version = 22 type = quality -quality_type = draft -material = generic_nylon variant = 0.8mm Nozzle [values] +cool_fan_speed = 40 speed_layer_0 = 30 wall_thickness = =line_width*2 -cool_fan_speed = 40 + diff --git a/resources/quality/ratrig_base/nylon/ratrig_base_1.0_Nylon_draft.inst.cfg b/resources/quality/ratrig_base/nylon/ratrig_base_1.0_Nylon_draft.inst.cfg index 860980c0a1..bcc88a598c 100644 --- a/resources/quality/ratrig_base/nylon/ratrig_base_1.0_Nylon_draft.inst.cfg +++ b/resources/quality/ratrig_base/nylon/ratrig_base_1.0_Nylon_draft.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Draft Quality definition = ratrig_base +name = Draft Quality +version = 4 [metadata] +material = generic_nylon +quality_type = draft setting_version = 22 type = quality -quality_type = draft -material = generic_nylon variant = 1.0mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*3 + diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.2_PETG_super.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.2_PETG_super.inst.cfg index 6b0d6caff2..24419b5302 100644 --- a/resources/quality/ratrig_base/petg/ratrig_base_0.2_PETG_super.inst.cfg +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.2_PETG_super.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Super Quality definition = ratrig_base +name = Super Quality +version = 4 [metadata] +material = generic_petg +quality_type = super setting_version = 22 type = quality -quality_type = super -material = generic_petg variant = 0.2mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*8 + diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.2_PETG_ultra.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.2_PETG_ultra.inst.cfg index 784001a294..a55a6ad76a 100644 --- a/resources/quality/ratrig_base/petg/ratrig_base_0.2_PETG_ultra.inst.cfg +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.2_PETG_ultra.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Ultra Quality definition = ratrig_base +name = Ultra Quality +version = 4 [metadata] +material = generic_petg +quality_type = ultra setting_version = 22 type = quality -quality_type = ultra -material = generic_petg variant = 0.2mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*8 + diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_adaptive.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_adaptive.inst.cfg index 4033896592..890652591b 100644 --- a/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_adaptive.inst.cfg +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_adaptive.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Dynamic Quality definition = ratrig_base +name = Dynamic Quality +version = 4 [metadata] +material = generic_petg +quality_type = adaptive setting_version = 22 type = quality -quality_type = adaptive -material = generic_petg variant = 0.3mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_low.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_low.inst.cfg index aaab545e84..aa3787c278 100644 --- a/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_low.inst.cfg +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_low.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Low Quality definition = ratrig_base +name = Low Quality +version = 4 [metadata] +material = generic_petg +quality_type = low setting_version = 22 type = quality -quality_type = low -material = generic_petg variant = 0.3mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_standard.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_standard.inst.cfg index 6c56665241..a2afefe69c 100644 --- a/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_standard.inst.cfg +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_standard.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Standard Quality definition = ratrig_base +name = Standard Quality +version = 4 [metadata] +material = generic_petg +quality_type = standard setting_version = 22 type = quality -quality_type = standard -material = generic_petg variant = 0.3mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_super.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_super.inst.cfg index 5b838bbcb7..a90915b50c 100644 --- a/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_super.inst.cfg +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.3_PETG_super.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Super Quality definition = ratrig_base +name = Super Quality +version = 4 [metadata] +material = generic_petg +quality_type = super setting_version = 22 type = quality -quality_type = super -material = generic_petg variant = 0.3mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_adaptive.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_adaptive.inst.cfg index 5e941ca011..765547d692 100644 --- a/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_adaptive.inst.cfg +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_adaptive.inst.cfg @@ -1,18 +1,19 @@ [general] -version = 4 -name = Dynamic Quality definition = ratrig_base +name = Dynamic Quality +version = 4 [metadata] +material = generic_petg +quality_type = adaptive setting_version = 22 type = quality -quality_type = adaptive -material = generic_petg variant = 0.4mm Nozzle [values] -wall_thickness = =line_width*4 cool_fan_speed = 40 -retraction_speed = 20 -retraction_amount = 1.6 material_flow = 94.0 +retraction_amount = 1.6 +retraction_speed = 20 +wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_low.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_low.inst.cfg index 4052b22d10..d5afe46994 100644 --- a/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_low.inst.cfg +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_low.inst.cfg @@ -1,18 +1,19 @@ [general] -version = 4 -name = Low Quality definition = ratrig_base +name = Low Quality +version = 4 [metadata] +material = generic_petg +quality_type = low setting_version = 22 type = quality -quality_type = low -material = generic_petg variant = 0.4mm Nozzle [values] -wall_thickness = =line_width*4 cool_fan_speed = 40 -retraction_speed = 20 -retraction_amount = 1.6 material_flow = 94.0 +retraction_amount = 1.6 +retraction_speed = 20 +wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_standard.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_standard.inst.cfg index eff9ddabf2..ea0ff5ab6b 100644 --- a/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_standard.inst.cfg +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_standard.inst.cfg @@ -1,18 +1,19 @@ [general] -version = 4 -name = Standard Quality definition = ratrig_base +name = Standard Quality +version = 4 [metadata] +material = generic_petg +quality_type = standard setting_version = 22 type = quality -quality_type = standard -material = generic_petg variant = 0.4mm Nozzle [values] -wall_thickness = =line_width*4 cool_fan_speed = 40 -retraction_speed = 20 -retraction_amount = 1.6 material_flow = 94.0 +retraction_amount = 1.6 +retraction_speed = 20 +wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_super.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_super.inst.cfg index 53cd3e7041..49245f85b2 100644 --- a/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_super.inst.cfg +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.4_PETG_super.inst.cfg @@ -1,18 +1,19 @@ [general] -version = 4 -name = Super Quality definition = ratrig_base +name = Super Quality +version = 4 [metadata] +material = generic_petg +quality_type = super setting_version = 22 type = quality -quality_type = super -material = generic_petg variant = 0.4mm Nozzle [values] -wall_thickness = =line_width*4 cool_fan_speed = 40 -retraction_speed = 20 -retraction_amount = 1.6 material_flow = 94.0 +retraction_amount = 1.6 +retraction_speed = 20 +wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_adaptive.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_adaptive.inst.cfg index 58c3531f80..7147deb58f 100644 --- a/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_adaptive.inst.cfg +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_adaptive.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Dynamic Quality definition = ratrig_base +name = Dynamic Quality +version = 4 [metadata] +material = generic_petg +quality_type = adaptive setting_version = 22 type = quality -quality_type = adaptive -material = generic_petg variant = 0.5mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_low.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_low.inst.cfg index e2c1328fb2..e930a9415e 100644 --- a/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_low.inst.cfg +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_low.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Low Quality definition = ratrig_base +name = Low Quality +version = 4 [metadata] +material = generic_petg +quality_type = low setting_version = 22 type = quality -quality_type = low -material = generic_petg variant = 0.5mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_standard.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_standard.inst.cfg index 35f4a1a08f..92611f4b71 100644 --- a/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_standard.inst.cfg +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_standard.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Standard Quality definition = ratrig_base +name = Standard Quality +version = 4 [metadata] +material = generic_petg +quality_type = standard setting_version = 22 type = quality -quality_type = standard -material = generic_petg variant = 0.5mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_super.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_super.inst.cfg index 6b7995b239..d147d87728 100644 --- a/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_super.inst.cfg +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.5_PETG_super.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Super Quality definition = ratrig_base +name = Super Quality +version = 4 [metadata] +material = generic_petg +quality_type = super setting_version = 22 type = quality -quality_type = super -material = generic_petg variant = 0.5mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*4 + diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.6_PETG_standard.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.6_PETG_standard.inst.cfg index 895fdcacb9..80dcecfe21 100644 --- a/resources/quality/ratrig_base/petg/ratrig_base_0.6_PETG_standard.inst.cfg +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.6_PETG_standard.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Standard Quality definition = ratrig_base +name = Standard Quality +version = 4 [metadata] +material = generic_petg +quality_type = standard setting_version = 22 type = quality -quality_type = standard -material = generic_petg variant = 0.6mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*3 + diff --git a/resources/quality/ratrig_base/petg/ratrig_base_0.8_PETG_draft.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_0.8_PETG_draft.inst.cfg index a7d04cb10b..4d6a9a5671 100644 --- a/resources/quality/ratrig_base/petg/ratrig_base_0.8_PETG_draft.inst.cfg +++ b/resources/quality/ratrig_base/petg/ratrig_base_0.8_PETG_draft.inst.cfg @@ -1,16 +1,17 @@ [general] -version = 4 -name = Draft Quality definition = ratrig_base +name = Draft Quality +version = 4 [metadata] +material = generic_petg +quality_type = draft setting_version = 22 type = quality -quality_type = draft -material = generic_petg variant = 0.8mm Nozzle [values] +cool_fan_speed = 40 speed_layer_0 = 30 wall_thickness = =line_width*2 -cool_fan_speed = 40 + diff --git a/resources/quality/ratrig_base/petg/ratrig_base_1.0_PETG_draft.inst.cfg b/resources/quality/ratrig_base/petg/ratrig_base_1.0_PETG_draft.inst.cfg index 8ce4a9fef6..bce8d9ccba 100644 --- a/resources/quality/ratrig_base/petg/ratrig_base_1.0_PETG_draft.inst.cfg +++ b/resources/quality/ratrig_base/petg/ratrig_base_1.0_PETG_draft.inst.cfg @@ -1,15 +1,16 @@ [general] -version = 4 -name = Draft Quality definition = ratrig_base +name = Draft Quality +version = 4 [metadata] +material = generic_petg +quality_type = draft setting_version = 22 type = quality -quality_type = draft -material = generic_petg variant = 1.0mm Nozzle [values] speed_layer_0 = 15 wall_thickness = =line_width*3 + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.2_PLA_super.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.2_PLA_super.inst.cfg index 7b009267e3..ff81d0d74e 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_0.2_PLA_super.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.2_PLA_super.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Super Quality definition = ratrig_base +name = Super Quality +version = 4 [metadata] +material = generic_pla +quality_type = super setting_version = 22 type = quality -quality_type = super -material = generic_pla variant = 0.2mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.2_PLA_ultra.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.2_PLA_ultra.inst.cfg index 1a401148d5..10465057cf 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_0.2_PLA_ultra.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.2_PLA_ultra.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Ultra Quality definition = ratrig_base +name = Ultra Quality +version = 4 [metadata] +material = generic_pla +quality_type = ultra setting_version = 22 type = quality -quality_type = ultra -material = generic_pla variant = 0.2mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_adaptive.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_adaptive.inst.cfg index de0067706e..58b51ebf4a 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_adaptive.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_adaptive.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Dynamic Quality definition = ratrig_base +name = Dynamic Quality +version = 4 [metadata] +material = generic_pla +quality_type = adaptive setting_version = 22 type = quality -quality_type = adaptive -material = generic_pla variant = 0.3mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_low.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_low.inst.cfg index 31747bda1c..3622a5927b 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_low.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_low.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Low Quality definition = ratrig_base +name = Low Quality +version = 4 [metadata] +material = generic_pla +quality_type = low setting_version = 22 type = quality -quality_type = low -material = generic_pla variant = 0.3mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_standard.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_standard.inst.cfg index 06000474af..39c3d77674 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_standard.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_standard.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Standard Quality definition = ratrig_base +name = Standard Quality +version = 4 [metadata] +material = generic_pla +quality_type = standard setting_version = 22 type = quality -quality_type = standard -material = generic_pla variant = 0.3mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_super.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_super.inst.cfg index 24efb55980..5a6b3bd348 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_super.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.3_PLA_super.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Super Quality definition = ratrig_base +name = Super Quality +version = 4 [metadata] +material = generic_pla +quality_type = super setting_version = 22 type = quality -quality_type = super -material = generic_pla variant = 0.3mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_adaptive.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_adaptive.inst.cfg index de96e7d5fb..4ca7bf94d4 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_adaptive.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_adaptive.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Dynamic Quality definition = ratrig_base +name = Dynamic Quality +version = 4 [metadata] +material = generic_pla +quality_type = adaptive setting_version = 22 type = quality -quality_type = adaptive -material = generic_pla variant = 0.4mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_low.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_low.inst.cfg index 2e608f8d5c..0c29c77bde 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_low.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_low.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Low Quality definition = ratrig_base +name = Low Quality +version = 4 [metadata] +material = generic_pla +quality_type = low setting_version = 22 type = quality -quality_type = low -material = generic_pla variant = 0.4mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_standard.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_standard.inst.cfg index 5f18e1281b..3211f4be86 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_standard.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_standard.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Standard Quality definition = ratrig_base +name = Standard Quality +version = 4 [metadata] +material = generic_pla +quality_type = standard setting_version = 22 type = quality -quality_type = standard -material = generic_pla variant = 0.4mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_super.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_super.inst.cfg index 121be5d3cf..da6ea197b2 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_super.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.4_PLA_super.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Super Quality definition = ratrig_base +name = Super Quality +version = 4 [metadata] +material = generic_pla +quality_type = super setting_version = 22 type = quality -quality_type = super -material = generic_pla variant = 0.4mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_adaptive.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_adaptive.inst.cfg index 07dadf89dd..f9d0649016 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_adaptive.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_adaptive.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Dynamic Quality definition = ratrig_base +name = Dynamic Quality +version = 4 [metadata] +material = generic_pla +quality_type = adaptive setting_version = 22 type = quality -quality_type = adaptive -material = generic_pla variant = 0.5mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_low.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_low.inst.cfg index 7d92038aee..8f55fe30a4 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_low.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_low.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Low Quality definition = ratrig_base +name = Low Quality +version = 4 [metadata] +material = generic_pla +quality_type = low setting_version = 22 type = quality -quality_type = low -material = generic_pla variant = 0.5mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_standard.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_standard.inst.cfg index ed786fb574..f6c42831e3 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_standard.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_standard.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Standard Quality definition = ratrig_base +name = Standard Quality +version = 4 [metadata] +material = generic_pla +quality_type = standard setting_version = 22 type = quality -quality_type = standard -material = generic_pla variant = 0.5mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_super.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_super.inst.cfg index ec1c18b046..67637bcfea 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_super.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.5_PLA_super.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Super Quality definition = ratrig_base +name = Super Quality +version = 4 [metadata] +material = generic_pla +quality_type = super setting_version = 22 type = quality -quality_type = super -material = generic_pla variant = 0.5mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_draft.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_draft.inst.cfg index 816eaa0e0b..bbafe934fe 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_draft.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_draft.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Draft Quality definition = ratrig_base +name = Draft Quality +version = 4 [metadata] +material = generic_pla +quality_type = draft setting_version = 22 type = quality -quality_type = draft -material = generic_pla variant = 0.6mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_low.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_low.inst.cfg index 0b92dbf172..115341b00d 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_low.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_low.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Low Quality definition = ratrig_base +name = Low Quality +version = 4 [metadata] +material = generic_pla +quality_type = low setting_version = 22 type = quality -quality_type = low -material = generic_pla variant = 0.6mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_standard.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_standard.inst.cfg index ddd87bec72..f365b98c5a 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_standard.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.6_PLA_standard.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Standard Quality definition = ratrig_base +name = Standard Quality +version = 4 [metadata] +material = generic_pla +quality_type = standard setting_version = 22 type = quality -quality_type = standard -material = generic_pla variant = 0.6mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_0.8_PLA_draft.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_0.8_PLA_draft.inst.cfg index e1ab1dcab7..eba25456a9 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_0.8_PLA_draft.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_0.8_PLA_draft.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Draft Quality definition = ratrig_base +name = Draft Quality +version = 4 [metadata] +material = generic_pla +quality_type = draft setting_version = 22 type = quality -quality_type = draft -material = generic_pla variant = 0.8mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/pla/ratrig_base_1.0_PLA_draft.inst.cfg b/resources/quality/ratrig_base/pla/ratrig_base_1.0_PLA_draft.inst.cfg index 3dbb26c6ec..ffe30e68ec 100644 --- a/resources/quality/ratrig_base/pla/ratrig_base_1.0_PLA_draft.inst.cfg +++ b/resources/quality/ratrig_base/pla/ratrig_base_1.0_PLA_draft.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Draft Quality definition = ratrig_base +name = Draft Quality +version = 4 [metadata] +material = generic_pla +quality_type = draft setting_version = 22 type = quality -quality_type = draft -material = generic_pla variant = 1.0mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/ratrig_base_global_adaptive.inst.cfg b/resources/quality/ratrig_base/ratrig_base_global_adaptive.inst.cfg index 29786dcdbe..7dc5adffbc 100644 --- a/resources/quality/ratrig_base/ratrig_base_global_adaptive.inst.cfg +++ b/resources/quality/ratrig_base/ratrig_base_global_adaptive.inst.cfg @@ -1,19 +1,20 @@ [general] -version = 4 -name = Dynamic Quality definition = ratrig_base +name = Dynamic Quality +version = 4 [metadata] +global_quality = True +quality_type = adaptive setting_version = 22 type = quality -quality_type = adaptive weight = -2 -global_quality = True [values] +adaptive_layer_height_enabled = true layer_height = 0.16 layer_height_0 = 0.20 +support_interface_height = =layer_height*6 top_bottom_thickness = =layer_height_0+layer_height*4 wall_thickness = =line_width*3 -support_interface_height = =layer_height*6 -adaptive_layer_height_enabled = true + diff --git a/resources/quality/ratrig_base/ratrig_base_global_draft.inst.cfg b/resources/quality/ratrig_base/ratrig_base_global_draft.inst.cfg index f6fcbb8348..6300ade8f6 100644 --- a/resources/quality/ratrig_base/ratrig_base_global_draft.inst.cfg +++ b/resources/quality/ratrig_base/ratrig_base_global_draft.inst.cfg @@ -1,18 +1,19 @@ [general] -version = 4 -name = Draft Quality definition = ratrig_base +name = Draft Quality +version = 4 [metadata] +global_quality = True +quality_type = draft setting_version = 22 type = quality -quality_type = draft weight = -5 -global_quality = True [values] layer_height = 0.32 layer_height_0 = 0.32 +support_interface_height = =layer_height*4 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/ratrig_base/ratrig_base_global_low.inst.cfg b/resources/quality/ratrig_base/ratrig_base_global_low.inst.cfg index ad32dcf779..5cd4519ac2 100644 --- a/resources/quality/ratrig_base/ratrig_base_global_low.inst.cfg +++ b/resources/quality/ratrig_base/ratrig_base_global_low.inst.cfg @@ -1,18 +1,19 @@ [general] -version = 4 -name = Low Quality definition = ratrig_base +name = Low Quality +version = 4 [metadata] +global_quality = True +quality_type = low setting_version = 22 type = quality -quality_type = low weight = -4 -global_quality = True [values] layer_height = 0.28 layer_height_0 = 0.28 +support_interface_height = =layer_height*4 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/ratrig_base/ratrig_base_global_standard.inst.cfg b/resources/quality/ratrig_base/ratrig_base_global_standard.inst.cfg index 5f31222e11..d1bbff61ed 100644 --- a/resources/quality/ratrig_base/ratrig_base_global_standard.inst.cfg +++ b/resources/quality/ratrig_base/ratrig_base_global_standard.inst.cfg @@ -1,18 +1,19 @@ [general] -version = 4 -name = Standard Quality definition = ratrig_base +name = Standard Quality +version = 4 [metadata] +global_quality = True +quality_type = standard setting_version = 22 type = quality -quality_type = standard weight = -3 -global_quality = True [values] layer_height = 0.2 layer_height_0 = 0.2 +support_interface_height = =layer_height*4 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/ratrig_base/ratrig_base_global_super.inst.cfg b/resources/quality/ratrig_base/ratrig_base_global_super.inst.cfg index 3c6460675d..e73f314a27 100644 --- a/resources/quality/ratrig_base/ratrig_base_global_super.inst.cfg +++ b/resources/quality/ratrig_base/ratrig_base_global_super.inst.cfg @@ -1,18 +1,19 @@ [general] -version = 4 -name = Super Quality definition = ratrig_base +name = Super Quality +version = 4 [metadata] +global_quality = True +quality_type = super setting_version = 22 type = quality -quality_type = super weight = -1 -global_quality = True [values] layer_height = 0.12 layer_height_0 = 0.12 +support_interface_height = =layer_height*8 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/ratrig_base/ratrig_base_global_ultra.inst.cfg b/resources/quality/ratrig_base/ratrig_base_global_ultra.inst.cfg index c1257af094..3864f61858 100644 --- a/resources/quality/ratrig_base/ratrig_base_global_ultra.inst.cfg +++ b/resources/quality/ratrig_base/ratrig_base_global_ultra.inst.cfg @@ -1,18 +1,19 @@ [general] -version = 4 -name = Ultra Quality definition = ratrig_base +name = Ultra Quality +version = 4 [metadata] +global_quality = True +quality_type = ultra setting_version = 22 type = quality -quality_type = ultra weight = 0 -global_quality = True [values] layer_height = 0.08 layer_height_0 = 0.12 +support_interface_height = =layer_height*12 top_bottom_thickness = =layer_height_0+layer_height*10 wall_thickness = =line_width*3 -support_interface_height = =layer_height*12 + diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_adaptive.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_adaptive.inst.cfg index a7feb4f3e0..6425ec7666 100644 --- a/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_adaptive.inst.cfg +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_adaptive.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Dynamic Quality definition = ratrig_base +name = Dynamic Quality +version = 4 [metadata] +material = generic_tpu +quality_type = adaptive setting_version = 22 type = quality -quality_type = adaptive -material = generic_tpu variant = 0.3mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_standard.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_standard.inst.cfg index de56d84ba8..8f7b5f7cfa 100644 --- a/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_standard.inst.cfg +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_standard.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Standard Quality definition = ratrig_base +name = Standard Quality +version = 4 [metadata] +material = generic_tpu +quality_type = standard setting_version = 22 type = quality -quality_type = standard -material = generic_tpu variant = 0.3mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_super.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_super.inst.cfg index 2b7b1e711e..4b92df6df6 100644 --- a/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_super.inst.cfg +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.3_TPU_super.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Super Quality definition = ratrig_base +name = Super Quality +version = 4 [metadata] +material = generic_tpu +quality_type = super setting_version = 22 type = quality -quality_type = super -material = generic_tpu variant = 0.3mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_adaptive.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_adaptive.inst.cfg index dcfc502bae..d89b488ce6 100644 --- a/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_adaptive.inst.cfg +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_adaptive.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Dynamic Quality definition = ratrig_base +name = Dynamic Quality +version = 4 [metadata] +material = generic_tpu +quality_type = adaptive setting_version = 22 type = quality -quality_type = adaptive -material = generic_tpu variant = 0.4mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_standard.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_standard.inst.cfg index 7ff523b68e..caa88e072a 100644 --- a/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_standard.inst.cfg +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_standard.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Standard Quality definition = ratrig_base +name = Standard Quality +version = 4 [metadata] +material = generic_tpu +quality_type = standard setting_version = 22 type = quality -quality_type = standard -material = generic_tpu variant = 0.4mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_super.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_super.inst.cfg index a65ad09744..c37bd5df99 100644 --- a/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_super.inst.cfg +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.4_TPU_super.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Super Quality definition = ratrig_base +name = Super Quality +version = 4 [metadata] +material = generic_tpu +quality_type = super setting_version = 22 type = quality -quality_type = super -material = generic_tpu variant = 0.4mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_adaptive.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_adaptive.inst.cfg index 63e465243d..4622803d56 100644 --- a/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_adaptive.inst.cfg +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_adaptive.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Dynamic Quality definition = ratrig_base +name = Dynamic Quality +version = 4 [metadata] +material = generic_tpu +quality_type = adaptive setting_version = 22 type = quality -quality_type = adaptive -material = generic_tpu variant = 0.5mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_standard.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_standard.inst.cfg index f568375f4c..11b90f79a1 100644 --- a/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_standard.inst.cfg +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_standard.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Standard Quality definition = ratrig_base +name = Standard Quality +version = 4 [metadata] +material = generic_tpu +quality_type = standard setting_version = 22 type = quality -quality_type = standard -material = generic_tpu variant = 0.5mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_super.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_super.inst.cfg index 1265c32061..d3762fd839 100644 --- a/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_super.inst.cfg +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.5_TPU_super.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Super Quality definition = ratrig_base +name = Super Quality +version = 4 [metadata] +material = generic_tpu +quality_type = super setting_version = 22 type = quality -quality_type = super -material = generic_tpu variant = 0.5mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.6_TPU_standard.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.6_TPU_standard.inst.cfg index df3d194177..11a0e7cd4e 100644 --- a/resources/quality/ratrig_base/tpu/ratrig_base_0.6_TPU_standard.inst.cfg +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.6_TPU_standard.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Standard Quality definition = ratrig_base +name = Standard Quality +version = 4 [metadata] +material = generic_tpu +quality_type = standard setting_version = 22 type = quality -quality_type = standard -material = generic_tpu variant = 0.6mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_0.8_TPU_draft.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_0.8_TPU_draft.inst.cfg index 1db288b6b9..fb82909a5d 100644 --- a/resources/quality/ratrig_base/tpu/ratrig_base_0.8_TPU_draft.inst.cfg +++ b/resources/quality/ratrig_base/tpu/ratrig_base_0.8_TPU_draft.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Draft Quality definition = ratrig_base +name = Draft Quality +version = 4 [metadata] +material = generic_tpu +quality_type = draft setting_version = 22 type = quality -quality_type = draft -material = generic_tpu variant = 0.8mm Nozzle [values] + diff --git a/resources/quality/ratrig_base/tpu/ratrig_base_1.0_TPU_draft.inst.cfg b/resources/quality/ratrig_base/tpu/ratrig_base_1.0_TPU_draft.inst.cfg index 3149efda36..013dbfdcbc 100644 --- a/resources/quality/ratrig_base/tpu/ratrig_base_1.0_TPU_draft.inst.cfg +++ b/resources/quality/ratrig_base/tpu/ratrig_base_1.0_TPU_draft.inst.cfg @@ -1,13 +1,14 @@ [general] -version = 4 -name = Draft Quality definition = ratrig_base +name = Draft Quality +version = 4 [metadata] +material = generic_tpu +quality_type = draft setting_version = 22 type = quality -quality_type = draft -material = generic_tpu variant = 1.0mm Nozzle [values] + diff --git a/resources/variants/ratrig/ratrig_base_0.2.inst.cfg b/resources/variants/ratrig/ratrig_base_0.2.inst.cfg index 752f0fc7b3..bb337f309a 100644 --- a/resources/variants/ratrig/ratrig_base_0.2.inst.cfg +++ b/resources/variants/ratrig/ratrig_base_0.2.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_base name = 0.2mm Nozzle version = 4 -definition = ratrig_base [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.2 + diff --git a/resources/variants/ratrig/ratrig_base_0.3.inst.cfg b/resources/variants/ratrig/ratrig_base_0.3.inst.cfg index 2ad677756d..ba4d9f74b9 100644 --- a/resources/variants/ratrig/ratrig_base_0.3.inst.cfg +++ b/resources/variants/ratrig/ratrig_base_0.3.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_base name = 0.3mm Nozzle version = 4 -definition = ratrig_base [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.3 + diff --git a/resources/variants/ratrig/ratrig_base_0.4.inst.cfg b/resources/variants/ratrig/ratrig_base_0.4.inst.cfg index 652ae2b4c7..e784998708 100644 --- a/resources/variants/ratrig/ratrig_base_0.4.inst.cfg +++ b/resources/variants/ratrig/ratrig_base_0.4.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_base name = 0.4mm Nozzle version = 4 -definition = ratrig_base [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.4 + diff --git a/resources/variants/ratrig/ratrig_base_0.6.inst.cfg b/resources/variants/ratrig/ratrig_base_0.6.inst.cfg index 9316e0d850..da6595ad28 100644 --- a/resources/variants/ratrig/ratrig_base_0.6.inst.cfg +++ b/resources/variants/ratrig/ratrig_base_0.6.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_base name = 0.6mm Nozzle version = 4 -definition = ratrig_base [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.6 + diff --git a/resources/variants/ratrig/ratrig_base_0.8.inst.cfg b/resources/variants/ratrig/ratrig_base_0.8.inst.cfg index ce329c7d6d..d710879bd0 100644 --- a/resources/variants/ratrig/ratrig_base_0.8.inst.cfg +++ b/resources/variants/ratrig/ratrig_base_0.8.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_base name = 0.8mm Nozzle version = 4 -definition = ratrig_base [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.8 + diff --git a/resources/variants/ratrig/ratrig_base_1.0.inst.cfg b/resources/variants/ratrig/ratrig_base_1.0.inst.cfg index c1b643b60e..3a8241c15a 100644 --- a/resources/variants/ratrig/ratrig_base_1.0.inst.cfg +++ b/resources/variants/ratrig/ratrig_base_1.0.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_base name = 1.0mm Nozzle version = 4 -definition = ratrig_base [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 1.0 + diff --git a/resources/variants/ratrig/ratrig_vcore3_200_0.2.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_200_0.2.inst.cfg index d3ae97b4d4..495d2ba3a3 100644 --- a/resources/variants/ratrig/ratrig_vcore3_200_0.2.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_200_0.2.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_200 name = 0.2mm Nozzle version = 4 -definition = ratrig_vcore3_200 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.2 + diff --git a/resources/variants/ratrig/ratrig_vcore3_200_0.3.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_200_0.3.inst.cfg index ad5127866b..890d7bf30f 100644 --- a/resources/variants/ratrig/ratrig_vcore3_200_0.3.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_200_0.3.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_200 name = 0.3mm Nozzle version = 4 -definition = ratrig_vcore3_200 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.3 + diff --git a/resources/variants/ratrig/ratrig_vcore3_200_0.4.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_200_0.4.inst.cfg index dc46c98586..e640ef7adf 100644 --- a/resources/variants/ratrig/ratrig_vcore3_200_0.4.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_200_0.4.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_200 name = 0.4mm Nozzle version = 4 -definition = ratrig_vcore3_200 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.4 + diff --git a/resources/variants/ratrig/ratrig_vcore3_200_0.6.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_200_0.6.inst.cfg index 24bcfdf234..b25e6ee64a 100644 --- a/resources/variants/ratrig/ratrig_vcore3_200_0.6.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_200_0.6.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_200 name = 0.6mm Nozzle version = 4 -definition = ratrig_vcore3_200 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.6 + diff --git a/resources/variants/ratrig/ratrig_vcore3_200_0.8.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_200_0.8.inst.cfg index dc0d5b87e6..9462fa7748 100644 --- a/resources/variants/ratrig/ratrig_vcore3_200_0.8.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_200_0.8.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_200 name = 0.8mm Nozzle version = 4 -definition = ratrig_vcore3_200 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.8 + diff --git a/resources/variants/ratrig/ratrig_vcore3_200_1.0.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_200_1.0.inst.cfg index fa07e194ee..f817ee13a8 100644 --- a/resources/variants/ratrig/ratrig_vcore3_200_1.0.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_200_1.0.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_200 name = 1.0mm Nozzle version = 4 -definition = ratrig_vcore3_200 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 1.0 + diff --git a/resources/variants/ratrig/ratrig_vcore3_300_0.2.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_300_0.2.inst.cfg index f7e73d584d..a39e02aab2 100644 --- a/resources/variants/ratrig/ratrig_vcore3_300_0.2.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_300_0.2.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_300 name = 0.2mm Nozzle version = 4 -definition = ratrig_vcore3_300 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.2 + diff --git a/resources/variants/ratrig/ratrig_vcore3_300_0.3.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_300_0.3.inst.cfg index a3d8ccc385..a49459aac3 100644 --- a/resources/variants/ratrig/ratrig_vcore3_300_0.3.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_300_0.3.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_300 name = 0.3mm Nozzle version = 4 -definition = ratrig_vcore3_300 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.3 + diff --git a/resources/variants/ratrig/ratrig_vcore3_300_0.4.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_300_0.4.inst.cfg index aa60d45930..e0bf634a2c 100644 --- a/resources/variants/ratrig/ratrig_vcore3_300_0.4.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_300_0.4.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_300 name = 0.4mm Nozzle version = 4 -definition = ratrig_vcore3_300 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.4 + diff --git a/resources/variants/ratrig/ratrig_vcore3_300_0.6.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_300_0.6.inst.cfg index cd036160ee..c2026ce463 100644 --- a/resources/variants/ratrig/ratrig_vcore3_300_0.6.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_300_0.6.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_300 name = 0.6mm Nozzle version = 4 -definition = ratrig_vcore3_300 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.6 + diff --git a/resources/variants/ratrig/ratrig_vcore3_300_0.8.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_300_0.8.inst.cfg index a9c568738f..99d6d7e38b 100644 --- a/resources/variants/ratrig/ratrig_vcore3_300_0.8.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_300_0.8.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_300 name = 0.8mm Nozzle version = 4 -definition = ratrig_vcore3_300 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.8 + diff --git a/resources/variants/ratrig/ratrig_vcore3_300_1.0.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_300_1.0.inst.cfg index 96216c6679..7ad21e8c09 100644 --- a/resources/variants/ratrig/ratrig_vcore3_300_1.0.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_300_1.0.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_300 name = 1.0mm Nozzle version = 4 -definition = ratrig_vcore3_300 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 1.0 + diff --git a/resources/variants/ratrig/ratrig_vcore3_400_0.2.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_400_0.2.inst.cfg index 73cf813b9e..bd02a12125 100644 --- a/resources/variants/ratrig/ratrig_vcore3_400_0.2.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_400_0.2.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_400 name = 0.2mm Nozzle version = 4 -definition = ratrig_vcore3_400 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.2 + diff --git a/resources/variants/ratrig/ratrig_vcore3_400_0.3.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_400_0.3.inst.cfg index 97a30ccae3..85a585d692 100644 --- a/resources/variants/ratrig/ratrig_vcore3_400_0.3.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_400_0.3.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_400 name = 0.3mm Nozzle version = 4 -definition = ratrig_vcore3_400 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.3 + diff --git a/resources/variants/ratrig/ratrig_vcore3_400_0.4.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_400_0.4.inst.cfg index 3872109417..0bcee4f011 100644 --- a/resources/variants/ratrig/ratrig_vcore3_400_0.4.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_400_0.4.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_400 name = 0.4mm Nozzle version = 4 -definition = ratrig_vcore3_400 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.4 + diff --git a/resources/variants/ratrig/ratrig_vcore3_400_0.6.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_400_0.6.inst.cfg index bacbc75279..0b7ea7fc2e 100644 --- a/resources/variants/ratrig/ratrig_vcore3_400_0.6.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_400_0.6.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_400 name = 0.6mm Nozzle version = 4 -definition = ratrig_vcore3_400 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.6 + diff --git a/resources/variants/ratrig/ratrig_vcore3_400_0.8.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_400_0.8.inst.cfg index 96e1f89d1a..e5baf012f0 100644 --- a/resources/variants/ratrig/ratrig_vcore3_400_0.8.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_400_0.8.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_400 name = 0.8mm Nozzle version = 4 -definition = ratrig_vcore3_400 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.8 + diff --git a/resources/variants/ratrig/ratrig_vcore3_400_1.0.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_400_1.0.inst.cfg index 516ab97275..4b13608cf1 100644 --- a/resources/variants/ratrig/ratrig_vcore3_400_1.0.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_400_1.0.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_400 name = 1.0mm Nozzle version = 4 -definition = ratrig_vcore3_400 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 1.0 + diff --git a/resources/variants/ratrig/ratrig_vcore3_500_0.2.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_500_0.2.inst.cfg index 5d8f552d62..3866031f65 100644 --- a/resources/variants/ratrig/ratrig_vcore3_500_0.2.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_500_0.2.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_500 name = 0.2mm Nozzle version = 4 -definition = ratrig_vcore3_500 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.2 + diff --git a/resources/variants/ratrig/ratrig_vcore3_500_0.3.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_500_0.3.inst.cfg index 89773c5026..c3dcc2fa25 100644 --- a/resources/variants/ratrig/ratrig_vcore3_500_0.3.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_500_0.3.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_500 name = 0.3mm Nozzle version = 4 -definition = ratrig_vcore3_500 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.3 + diff --git a/resources/variants/ratrig/ratrig_vcore3_500_0.4.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_500_0.4.inst.cfg index 4d97550b3e..8c1911df41 100644 --- a/resources/variants/ratrig/ratrig_vcore3_500_0.4.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_500_0.4.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_500 name = 0.4mm Nozzle version = 4 -definition = ratrig_vcore3_500 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.4 + diff --git a/resources/variants/ratrig/ratrig_vcore3_500_0.6.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_500_0.6.inst.cfg index 2092d5c76a..fa9170ee16 100644 --- a/resources/variants/ratrig/ratrig_vcore3_500_0.6.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_500_0.6.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_500 name = 0.6mm Nozzle version = 4 -definition = ratrig_vcore3_500 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.6 + diff --git a/resources/variants/ratrig/ratrig_vcore3_500_0.8.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_500_0.8.inst.cfg index 9810346ad6..ee71589ca2 100644 --- a/resources/variants/ratrig/ratrig_vcore3_500_0.8.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_500_0.8.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_500 name = 0.8mm Nozzle version = 4 -definition = ratrig_vcore3_500 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.8 + diff --git a/resources/variants/ratrig/ratrig_vcore3_500_1.0.inst.cfg b/resources/variants/ratrig/ratrig_vcore3_500_1.0.inst.cfg index cc790cc53e..6e91017f1e 100644 --- a/resources/variants/ratrig/ratrig_vcore3_500_1.0.inst.cfg +++ b/resources/variants/ratrig/ratrig_vcore3_500_1.0.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vcore3_500 name = 1.0mm Nozzle version = 4 -definition = ratrig_vcore3_500 [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 1.0 + diff --git a/resources/variants/ratrig/ratrig_vminion_0.2.inst.cfg b/resources/variants/ratrig/ratrig_vminion_0.2.inst.cfg index 0a90304e94..0f9433e1b2 100644 --- a/resources/variants/ratrig/ratrig_vminion_0.2.inst.cfg +++ b/resources/variants/ratrig/ratrig_vminion_0.2.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vminion name = 0.2mm Nozzle version = 4 -definition = ratrig_vminion [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.2 + diff --git a/resources/variants/ratrig/ratrig_vminion_0.3.inst.cfg b/resources/variants/ratrig/ratrig_vminion_0.3.inst.cfg index 36c7d9bbca..0faf86e4d0 100644 --- a/resources/variants/ratrig/ratrig_vminion_0.3.inst.cfg +++ b/resources/variants/ratrig/ratrig_vminion_0.3.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vminion name = 0.3mm Nozzle version = 4 -definition = ratrig_vminion [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.3 + diff --git a/resources/variants/ratrig/ratrig_vminion_0.4.inst.cfg b/resources/variants/ratrig/ratrig_vminion_0.4.inst.cfg index 50bcd8f69b..0d126748d1 100644 --- a/resources/variants/ratrig/ratrig_vminion_0.4.inst.cfg +++ b/resources/variants/ratrig/ratrig_vminion_0.4.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vminion name = 0.4mm Nozzle version = 4 -definition = ratrig_vminion [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.4 + diff --git a/resources/variants/ratrig/ratrig_vminion_0.6.inst.cfg b/resources/variants/ratrig/ratrig_vminion_0.6.inst.cfg index c4ab87616a..189218b151 100644 --- a/resources/variants/ratrig/ratrig_vminion_0.6.inst.cfg +++ b/resources/variants/ratrig/ratrig_vminion_0.6.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vminion name = 0.6mm Nozzle version = 4 -definition = ratrig_vminion [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.6 + diff --git a/resources/variants/ratrig/ratrig_vminion_0.8.inst.cfg b/resources/variants/ratrig/ratrig_vminion_0.8.inst.cfg index 8fb2a33b60..e8a6437abd 100644 --- a/resources/variants/ratrig/ratrig_vminion_0.8.inst.cfg +++ b/resources/variants/ratrig/ratrig_vminion_0.8.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vminion name = 0.8mm Nozzle version = 4 -definition = ratrig_vminion [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 0.8 + diff --git a/resources/variants/ratrig/ratrig_vminion_1.0.inst.cfg b/resources/variants/ratrig/ratrig_vminion_1.0.inst.cfg index c946cfd5f0..9a55294853 100644 --- a/resources/variants/ratrig/ratrig_vminion_1.0.inst.cfg +++ b/resources/variants/ratrig/ratrig_vminion_1.0.inst.cfg @@ -1,12 +1,13 @@ [general] +definition = ratrig_vminion name = 1.0mm Nozzle version = 4 -definition = ratrig_vminion [metadata] +hardware_type = nozzle setting_version = 22 type = variant -hardware_type = nozzle [values] machine_nozzle_size = 1.0 + From fcf1e63160007a894b8dddf8cf0a32438f95b6cb Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Thu, 1 Feb 2024 09:29:47 +0100 Subject: [PATCH 134/269] It is now possible to generate the PCB file CURA-11561 --- plugins/PCBWriter/PCBDialog.py | 49 ++- plugins/PCBWriter/PCBDialog.qml | 64 +--- plugins/PCBWriter/PCBWriter.py | 443 +++++++++++++++++++++-- plugins/PCBWriter/SettingExport.py | 19 +- plugins/PCBWriter/SettingSelection.qml | 3 +- plugins/PCBWriter/SettingsExportGroup.py | 3 +- plugins/PCBWriter/SettingsExportModel.py | 29 +- plugins/PCBWriter/__init__.py | 12 +- 8 files changed, 510 insertions(+), 112 deletions(-) diff --git a/plugins/PCBWriter/PCBDialog.py b/plugins/PCBWriter/PCBDialog.py index 385b60272e..089fa259ac 100644 --- a/plugins/PCBWriter/PCBDialog.py +++ b/plugins/PCBWriter/PCBDialog.py @@ -1,43 +1,56 @@ # Copyright (c) 2024 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -from PyQt6.QtCore import pyqtSignal, QObject, pyqtProperty, QCoreApplication, QUrl, pyqtSlot -from PyQt6.QtGui import QDesktopServices -from typing import List, Optional, Dict, cast +import os -from cura.Machines.Models.MachineListModel import MachineListModel -from cura.Machines.Models.IntentTranslations import intent_translations -from cura.Settings.GlobalStack import GlobalStack -from UM.Application import Application +from PyQt6.QtCore import pyqtSignal, QObject from UM.FlameProfiler import pyqtSlot from UM.i18n import i18nCatalog -from UM.Logger import Logger -from UM.Message import Message -from UM.PluginRegistry import PluginRegistry -from UM.Settings.ContainerRegistry import ContainerRegistry - -import os -import threading -import time from cura.CuraApplication import CuraApplication +from .SettingsExportModel import SettingsExportModel + i18n_catalog = i18nCatalog("cura") class PCBDialog(QObject): - finished = pyqtSignal() + finished = pyqtSignal(bool) def __init__(self, parent = None) -> None: super().__init__(parent) plugin_path = os.path.dirname(__file__) dialog_path = os.path.join(plugin_path, 'PCBDialog.qml') - self._view = CuraApplication.getInstance().createQmlComponent(dialog_path, {"manager": self}) + self._model = SettingsExportModel() + self._view = CuraApplication.getInstance().createQmlComponent(dialog_path, + {"manager": self, + "settingsExportModel": self._model}) + self._view.accepted.connect(self._onAccepted) + self._view.rejected.connect(self._onRejected) + self._finished = False + self._accepted = False def show(self) -> None: self._view.show() + def getModel(self) -> SettingsExportModel: + return self._model + @pyqtSlot() def notifyClosed(self): - self.finished.emit() + self._onFinished() + + @pyqtSlot() + def _onAccepted(self): + self._accepted = True + self._onFinished() + + @pyqtSlot() + def _onRejected(self): + self._onFinished() + + def _onFinished(self): + if not self._finished: # Make sure we don't send the finished signal twice, whatever happens + self._finished = True + self.finished.emit(self._accepted) diff --git a/plugins/PCBWriter/PCBDialog.qml b/plugins/PCBWriter/PCBDialog.qml index ddf99d5e1f..8264e3ee96 100644 --- a/plugins/PCBWriter/PCBDialog.qml +++ b/plugins/PCBWriter/PCBDialog.qml @@ -12,7 +12,7 @@ import PCBWriter 1.0 as PCBWriter UM.Dialog { - id: workspaceDialog + id: exportDialog title: catalog.i18nc("@title:window", "Export pre-configured build batch") margin: UM.Theme.getSize("default_margin").width @@ -23,8 +23,6 @@ UM.Dialog headerComponent: Rectangle { - UM.I18nCatalog { id: catalog; name: "cura" } - height: childrenRect.height + 2 * UM.Theme.getSize("default_margin").height color: UM.Theme.getColor("main_background") @@ -62,7 +60,7 @@ UM.Dialog anchors.fill: parent color: UM.Theme.getColor("main_background") - PCBWriter.SettingsExportModel{ id: settingsExportModel } + UM.I18nCatalog { id: catalog; name: "cura" } ListView { @@ -79,55 +77,19 @@ UM.Dialog } } - footerComponent: Rectangle - { - color: warning ? UM.Theme.getColor("warning") : "transparent" - anchors.bottom: parent.bottom - width: parent.width - height: childrenRect.height + (warning ? 2 * workspaceDialog.margin : workspaceDialog.margin) - - Column + rightButtons: + [ + Cura.TertiaryButton { - height: childrenRect.height - spacing: workspaceDialog.margin - - anchors.leftMargin: workspaceDialog.margin - anchors.rightMargin: workspaceDialog.margin - anchors.bottomMargin: workspaceDialog.margin - anchors.topMargin: warning ? workspaceDialog.margin : 0 - - anchors.left: parent.left - anchors.right: parent.right - anchors.top: parent.top - - RowLayout - { - id: warningRow - height: childrenRect.height - visible: warning - spacing: workspaceDialog.margin - UM.ColorImage - { - width: UM.Theme.getSize("extruder_icon").width - height: UM.Theme.getSize("extruder_icon").height - source: UM.Theme.getIcon("Warning") - } - - UM.Label - { - id: warningText - text: catalog.i18nc("@label", "This project contains materials or plugins that are currently not installed in Cura.
Install the missing packages and reopen the project.") - } - } - - Loader - { - width: parent.width - height: childrenRect.height - sourceComponent: buttonRow - } + text: catalog.i18nc("@action:button", "Cancel") + onClicked: reject() + }, + Cura.PrimaryButton + { + text: catalog.i18nc("@action:button", "Save project") + onClicked: accept() } - } + ] buttonSpacing: UM.Theme.getSize("wide_margin").width diff --git a/plugins/PCBWriter/PCBWriter.py b/plugins/PCBWriter/PCBWriter.py index 26e552f583..794eac9d4a 100644 --- a/plugins/PCBWriter/PCBWriter.py +++ b/plugins/PCBWriter/PCBWriter.py @@ -1,71 +1,460 @@ # Copyright (c) 2024 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import json +import zipfile +import datetime +import numpy import re - +from dataclasses import asdict +from typing import Optional, cast, List, Dict, Pattern, Set, Union, Mapping, Any from threading import Lock +from io import StringIO # For converting g-code to bytes. -from typing import Optional, cast, List, Dict, Pattern, Set +import pySavitar as Savitar + +from PyQt6.QtCore import QBuffer from UM.Mesh.MeshWriter import MeshWriter -from UM.Math.Vector import Vector from UM.Logger import Logger -from UM.Math.Matrix import Matrix -from UM.Application import Application -from UM.Message import Message -from UM.Resources import Resources from UM.Scene.SceneNode import SceneNode +from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator +from UM.i18n import i18nCatalog +from UM.Settings.InstanceContainer import InstanceContainer +from UM.Settings.SettingFunction import SettingFunction from UM.Settings.ContainerRegistry import ContainerRegistry -from UM.Settings.EmptyInstanceContainer import EmptyInstanceContainer -from PyQt6.QtQml import qmlRegisterType +from UM.Math.Matrix import Matrix +from UM.Math.Vector import Vector from cura.CuraApplication import CuraApplication from cura.CuraPackageManager import CuraPackageManager from cura.Settings import CuraContainerStack +from cura.Settings.GlobalStack import GlobalStack from cura.Utils.Threading import call_on_qt_thread from cura.Snapshot import Snapshot -from PyQt6.QtCore import QBuffer - -import pySavitar as Savitar - -import numpy -import datetime - -import zipfile -import UM.Application - from .PCBDialog import PCBDialog from .SettingsExportModel import SettingsExportModel from .SettingsExportGroup import SettingsExportGroup -from UM.i18n import i18nCatalog +MYPY = False +try: + if not MYPY: + import xml.etree.cElementTree as ET +except ImportError: + Logger.log("w", "Unable to load cElementTree, switching to slower version") + import xml.etree.ElementTree as ET + catalog = i18nCatalog("cura") +THUMBNAIL_PATH = "Metadata/thumbnail.png" +MODEL_PATH = "3D/3dmodel.model" +PACKAGE_METADATA_PATH = "Cura/packages.json" +USER_SETTINGS_PATH = "Cura/user-settings.json" + class PCBWriter(MeshWriter): def __init__(self): super().__init__() - - qmlRegisterType(SettingsExportModel, "PCBWriter", 1, 0, "SettingsExportModel") - qmlRegisterType(SettingsExportGroup, "PCBWriter", 1, 0, "SettingsExportGroup") - #qmlRegisterUncreatableType(SettingsExportGroup.Category, "PCBWriter", 1, 0, "SettingsExportGroup.Category") + self._namespaces = { + "3mf": "http://schemas.microsoft.com/3dmanufacturing/core/2015/02", + "content-types": "http://schemas.openxmlformats.org/package/2006/content-types", + "relationships": "http://schemas.openxmlformats.org/package/2006/relationships", + "cura": "http://software.ultimaker.com/xml/cura/3mf/2015/10" + } self._config_dialog = None self._main_thread_lock = Lock() + self._success = False + self._export_model = None def write(self, stream, nodes, mode = MeshWriter.OutputMode.BinaryMode) -> bool: + self._success = False + self._export_model = None + self._main_thread_lock.acquire() # Start configuration window in main application thread CuraApplication.getInstance().callLater(self._write, stream, nodes, mode) self._main_thread_lock.acquire() # Block until lock has been released, meaning the config is over self._main_thread_lock.release() - return True + + if self._export_model is not None: + archive = zipfile.ZipFile(stream, "w", compression=zipfile.ZIP_DEFLATED) + try: + model_file = zipfile.ZipInfo(MODEL_PATH) + # Because zipfile is stupid and ignores archive-level compression settings when writing with ZipInfo. + model_file.compress_type = zipfile.ZIP_DEFLATED + + # Create content types file + content_types_file = zipfile.ZipInfo("[Content_Types].xml") + content_types_file.compress_type = zipfile.ZIP_DEFLATED + content_types = ET.Element("Types", xmlns=self._namespaces["content-types"]) + rels_type = ET.SubElement(content_types, "Default", Extension="rels", + ContentType="application/vnd.openxmlformats-package.relationships+xml") + model_type = ET.SubElement(content_types, "Default", Extension="model", + ContentType="application/vnd.ms-package.3dmanufacturing-3dmodel+xml") + + # Create _rels/.rels file + relations_file = zipfile.ZipInfo("_rels/.rels") + relations_file.compress_type = zipfile.ZIP_DEFLATED + relations_element = ET.Element("Relationships", xmlns=self._namespaces["relationships"]) + model_relation_element = ET.SubElement(relations_element, "Relationship", Target="/" + MODEL_PATH, + Id="rel0", + Type="http://schemas.microsoft.com/3dmanufacturing/2013/01/3dmodel") + + # Attempt to add a thumbnail + snapshot = self._createSnapshot() + if snapshot: + thumbnail_buffer = QBuffer() + thumbnail_buffer.open(QBuffer.OpenModeFlag.ReadWrite) + snapshot.save(thumbnail_buffer, "PNG") + + thumbnail_file = zipfile.ZipInfo(THUMBNAIL_PATH) + # Don't try to compress snapshot file, because the PNG is pretty much as compact as it will get + archive.writestr(thumbnail_file, thumbnail_buffer.data()) + + # Add PNG to content types file + thumbnail_type = ET.SubElement(content_types, "Default", Extension="png", ContentType="image/png") + # Add thumbnail relation to _rels/.rels file + thumbnail_relation_element = ET.SubElement(relations_element, "Relationship", + Target="/" + THUMBNAIL_PATH, Id="rel1", + Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail") + + # Write material metadata + packages_metadata = self._getMaterialPackageMetadata() + self._getPluginPackageMetadata() + self._storeMetadataJson({"packages": packages_metadata}, archive, PACKAGE_METADATA_PATH) + + # Write user settings data + user_settings_data = self._getUserSettings(self._export_model) + self._storeMetadataJson(user_settings_data, archive, USER_SETTINGS_PATH) + + savitar_scene = Savitar.Scene() + + scene_metadata = CuraApplication.getInstance().getController().getScene().getMetaData() + + for key, value in scene_metadata.items(): + savitar_scene.setMetaDataEntry(key, value) + + current_time_string = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") + if "Application" not in scene_metadata: + # This might sound a bit strange, but this field should store the original application that created + # the 3mf. So if it was already set, leave it to whatever it was. + savitar_scene.setMetaDataEntry("Application", + CuraApplication.getInstance().getApplicationDisplayName()) + if "CreationDate" not in scene_metadata: + savitar_scene.setMetaDataEntry("CreationDate", current_time_string) + + savitar_scene.setMetaDataEntry("ModificationDate", current_time_string) + + transformation_matrix = Matrix() + transformation_matrix._data[1, 1] = 0 + transformation_matrix._data[1, 2] = -1 + transformation_matrix._data[2, 1] = 1 + transformation_matrix._data[2, 2] = 0 + + global_container_stack = CuraApplication.getInstance().getGlobalContainerStack() + # Second step: 3MF defines the left corner of the machine as center, whereas cura uses the center of the + # build volume. + if global_container_stack: + translation_vector = Vector(x=global_container_stack.getProperty("machine_width", "value") / 2, + y=global_container_stack.getProperty("machine_depth", "value") / 2, + z=0) + translation_matrix = Matrix() + translation_matrix.setByTranslation(translation_vector) + transformation_matrix.preMultiply(translation_matrix) + + root_node = CuraApplication.getInstance().getController().getScene().getRoot() + exported_model_settings = PCBWriter._extractModelExportedSettings(self._export_model) + for node in nodes: + if node == root_node: + for root_child in node.getChildren(): + savitar_node = PCBWriter._convertUMNodeToSavitarNode(root_child, + transformation_matrix, + exported_model_settings) + if savitar_node: + savitar_scene.addSceneNode(savitar_node) + else: + savitar_node = self._convertUMNodeToSavitarNode(node, + transformation_matrix, + exported_model_settings) + if savitar_node: + savitar_scene.addSceneNode(savitar_node) + + parser = Savitar.ThreeMFParser() + scene_string = parser.sceneToString(savitar_scene) + + archive.writestr(model_file, scene_string) + archive.writestr(content_types_file, + b' \n' + ET.tostring(content_types)) + archive.writestr(relations_file, + b' \n' + ET.tostring(relations_element)) + except Exception as error: + Logger.logException("e", "Error writing zip file") + self.setInformation(str(error)) + return False + finally: + archive.close() + + return True + else: + return False def _write(self, stream, nodes, mode): self._config_dialog = PCBDialog() - self._config_dialog.finished.connect(self._onDialogClosed) + self._config_dialog.finished.connect(self._onDialogFinished) self._config_dialog.show() - def _onDialogClosed(self): + def _onDialogFinished(self, accepted: bool): + if accepted: + self._export_model = self._config_dialog.getModel() + self._main_thread_lock.release() + + @staticmethod + def _extractModelExportedSettings(model: SettingsExportModel) -> Mapping[str, Set[str]]: + extra_settings = {} + + for group in model.settingsGroups: + if group.category == SettingsExportGroup.Category.Model: + exported_model_settings = set() + + for exported_setting in group.settings: + if exported_setting.selected: + exported_model_settings.add(exported_setting.id) + + extra_settings[group.category_details] = exported_model_settings + + return extra_settings + + @staticmethod + def _convertUMNodeToSavitarNode(um_node, + transformation: Matrix = Matrix(), + exported_settings: Mapping[str, Set[str]] = None): + """Convenience function that converts an Uranium SceneNode object to a SavitarSceneNode + + :returns: Uranium Scene node. + """ + if not isinstance(um_node, SceneNode): + return None + + active_build_plate_nr = CuraApplication.getInstance().getMultiBuildPlateModel().activeBuildPlate + if um_node.callDecoration("getBuildPlateNumber") != active_build_plate_nr: + return + + savitar_node = Savitar.SceneNode() + savitar_node.setName(um_node.getName()) + + node_matrix = Matrix() + mesh_data = um_node.getMeshData() + # compensate for original center position, if object(s) is/are not around its zero position + if mesh_data is not None: + extents = mesh_data.getExtents() + if extents is not None: + # We use a different coordinate space while writing, so flip Z and Y + center_vector = Vector(extents.center.x, extents.center.z, extents.center.y) + node_matrix.setByTranslation(center_vector) + node_matrix.multiply(um_node.getLocalTransformation()) + + matrix_string = PCBWriter._convertMatrixToString(node_matrix.preMultiply(transformation)) + + savitar_node.setTransformation(matrix_string) + if mesh_data is not None: + savitar_node.getMeshData().setVerticesFromBytes(mesh_data.getVerticesAsByteArray()) + indices_array = mesh_data.getIndicesAsByteArray() + if indices_array is not None: + savitar_node.getMeshData().setFacesFromBytes(indices_array) + else: + savitar_node.getMeshData().setFacesFromBytes( + numpy.arange(mesh_data.getVertices().size / 3, dtype=numpy.int32).tostring()) + + # Handle per object settings (if any) + stack = um_node.callDecoration("getStack") + if stack is not None: + if um_node.getName() in exported_settings: + model_exported_settings = exported_settings[um_node.getName()] + + # Get values for all exported settings & save them. + for key in model_exported_settings: + savitar_node.setSetting("cura:" + key, str(stack.getProperty(key, "value"))) + + # Store the metadata. + for key, value in um_node.metadata.items(): + savitar_node.setSetting(key, value) + + for child_node in um_node.getChildren(): + # only save the nodes on the active build plate + if child_node.callDecoration("getBuildPlateNumber") != active_build_plate_nr: + continue + savitar_child_node = PCBWriter._convertUMNodeToSavitarNode(child_node, + exported_settings = exported_settings) + if savitar_child_node is not None: + savitar_node.addChild(savitar_child_node) + + return savitar_node + + @call_on_qt_thread # must be called from the main thread because of OpenGL + def _createSnapshot(self): + Logger.log("d", "Creating thumbnail image...") + if not CuraApplication.getInstance().isVisible: + Logger.log("w", "Can't create snapshot when renderer not initialized.") + return None + try: + snapshot = Snapshot.snapshot(width=300, height=300) + except: + Logger.logException("w", "Failed to create snapshot image") + return None + + return snapshot + + @staticmethod + def _storeMetadataJson(metadata: Union[Dict[str, List[Dict[str, str]]], Dict[str, Dict[str, Any]]], + archive: zipfile.ZipFile, path + : str) -> None: + """Stores metadata inside archive path as json file""" + metadata_file = zipfile.ZipInfo(path) + # We have to set the compress type of each file as well (it doesn't keep the type of the entire archive) + metadata_file.compress_type = zipfile.ZIP_DEFLATED + archive.writestr(metadata_file, + json.dumps(metadata, separators=(", ", ": "), indent=4, skipkeys=True, ensure_ascii=False)) + + @staticmethod + def _getUserSettings(model: SettingsExportModel) -> Dict[str, Dict[str, Any]]: + user_settings = {} + + for group in model.settingsGroups: + category = '' + if group.category == SettingsExportGroup.Category.Global: + category = 'global' + elif group.category == SettingsExportGroup.Category.Extruder: + category = f"extruder_{group.extruder_index}" + + if len(category) > 0: + settings_values = {} + stack = group.stack + + for setting in group.settings: + if setting.selected: + settings_values[setting.id] = stack.getProperty(setting.id, "value") + + user_settings[category] = settings_values + + return user_settings + + @staticmethod + def _getPluginPackageMetadata() -> List[Dict[str, str]]: + """Get metadata for all backend plugins that are used in the project. + + :return: List of material metadata dictionaries. + """ + + backend_plugin_enum_value_regex = re.compile( + r"PLUGIN::(?P\w+)@(?P\d+.\d+.\d+)::(?P\w+)") + # This regex parses enum values to find if they contain custom + # backend engine values. These custom enum values are in the format + # PLUGIN::@:: + # where + # - plugin_id is the id of the plugin + # - version is in the semver format + # - value is the value of the enum + + plugin_ids = set() + + def addPluginIdsInStack(stack: CuraContainerStack) -> None: + for key in stack.getAllKeys(): + value = str(stack.getProperty(key, "value")) + for plugin_id, _version, _value in backend_plugin_enum_value_regex.findall(value): + plugin_ids.add(plugin_id) + + # Go through all stacks and find all the plugin id contained in the project + global_stack = CuraApplication.getInstance().getMachineManager().activeMachine + addPluginIdsInStack(global_stack) + + for container in global_stack.getContainers(): + addPluginIdsInStack(container) + + for extruder_stack in global_stack.extruderList: + addPluginIdsInStack(extruder_stack) + + for container in extruder_stack.getContainers(): + addPluginIdsInStack(container) + + metadata = {} + + package_manager = cast(CuraPackageManager, CuraApplication.getInstance().getPackageManager()) + for plugin_id in plugin_ids: + package_data = package_manager.getInstalledPackageInfo(plugin_id) + + metadata[plugin_id] = { + "id": plugin_id, + "display_name": package_data.get("display_name") if package_data.get("display_name") else "", + "package_version": package_data.get("package_version") if package_data.get("package_version") else "", + "sdk_version_semver": package_data.get("sdk_version_semver") if package_data.get( + "sdk_version_semver") else "", + "type": "plugin", + } + + # Storing in a dict and fetching values to avoid duplicates + return list(metadata.values()) + + @staticmethod + def _getMaterialPackageMetadata() -> List[Dict[str, str]]: + """Get metadata for installed materials in active extruder stack, this does not include bundled materials. + + :return: List of material metadata dictionaries. + """ + metadata = {} + + package_manager = cast(CuraPackageManager, CuraApplication.getInstance().getPackageManager()) + + for extruder in CuraApplication.getInstance().getExtruderManager().getActiveExtruderStacks(): + if not extruder.isEnabled: + # Don't export materials not in use + continue + + if isinstance(extruder.material, type(ContainerRegistry.getInstance().getEmptyInstanceContainer())): + # This is an empty material container, no material to export + continue + + if package_manager.isMaterialBundled(extruder.material.getFileName(), + extruder.material.getMetaDataEntry("GUID")): + # Don't export bundled materials + continue + + package_id = package_manager.getMaterialFilePackageId(extruder.material.getFileName(), + extruder.material.getMetaDataEntry("GUID")) + package_data = package_manager.getInstalledPackageInfo(package_id) + + # We failed to find the package for this material + if not package_data: + Logger.info(f"Could not find package for material in extruder {extruder.id}, skipping.") + continue + + material_metadata = { + "id": package_id, + "display_name": package_data.get("display_name") if package_data.get("display_name") else "", + "package_version": package_data.get("package_version") if package_data.get("package_version") else "", + "sdk_version_semver": package_data.get("sdk_version_semver") if package_data.get( + "sdk_version_semver") else "", + "type": "material", + } + + metadata[package_id] = material_metadata + + # Storing in a dict and fetching values to avoid duplicates + return list(metadata.values()) + + @staticmethod + def _convertMatrixToString(matrix): + result = "" + result += str(matrix._data[0, 0]) + " " + result += str(matrix._data[1, 0]) + " " + result += str(matrix._data[2, 0]) + " " + result += str(matrix._data[0, 1]) + " " + result += str(matrix._data[1, 1]) + " " + result += str(matrix._data[2, 1]) + " " + result += str(matrix._data[0, 2]) + " " + result += str(matrix._data[1, 2]) + " " + result += str(matrix._data[2, 2]) + " " + result += str(matrix._data[0, 3]) + " " + result += str(matrix._data[1, 3]) + " " + result += str(matrix._data[2, 3]) + return result \ No newline at end of file diff --git a/plugins/PCBWriter/SettingExport.py b/plugins/PCBWriter/SettingExport.py index 0a761bb6b9..73dd818897 100644 --- a/plugins/PCBWriter/SettingExport.py +++ b/plugins/PCBWriter/SettingExport.py @@ -1,15 +1,17 @@ # Copyright (c) 2024 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -from PyQt6.QtCore import QObject, pyqtProperty +from PyQt6.QtCore import QObject, pyqtProperty, pyqtSignal -class SettingsExport(QObject): +class SettingExport(QObject): - def __init__(self, name, value): + def __init__(self, id, name, value): super().__init__() + self.id = id self._name = name self._value = value + self._selected = True @pyqtProperty(str, constant=True) def name(self): @@ -18,3 +20,14 @@ class SettingsExport(QObject): @pyqtProperty(str, constant=True) def value(self): return self._value + + selectedChanged = pyqtSignal(bool) + + def setSelected(self, selected): + if selected != self._selected: + self._selected = selected + self.selectedChanged.emit(self._selected) + + @pyqtProperty(bool, fset = setSelected, notify = selectedChanged) + def selected(self): + return self._selected diff --git a/plugins/PCBWriter/SettingSelection.qml b/plugins/PCBWriter/SettingSelection.qml index 9b09593a7d..6439542f3f 100644 --- a/plugins/PCBWriter/SettingSelection.qml +++ b/plugins/PCBWriter/SettingSelection.qml @@ -17,7 +17,8 @@ RowLayout { text: modelData.name Layout.preferredWidth: UM.Theme.getSize("setting").width - checked: true + checked: modelData.selected + onClicked: modelData.selected = checked } UM.Label diff --git a/plugins/PCBWriter/SettingsExportGroup.py b/plugins/PCBWriter/SettingsExportGroup.py index 2b21c42b78..cc3fc7b4f5 100644 --- a/plugins/PCBWriter/SettingsExportGroup.py +++ b/plugins/PCBWriter/SettingsExportGroup.py @@ -14,8 +14,9 @@ class SettingsExportGroup(QObject): Extruder = 1 Model = 2 - def __init__(self, name, category, settings, category_details = '', extruder_index = 0, extruder_color = ''): + def __init__(self, stack, name, category, settings, category_details = '', extruder_index = 0, extruder_color = ''): super().__init__() + self.stack = stack self._name = name self._settings = settings self._category = category diff --git a/plugins/PCBWriter/SettingsExportModel.py b/plugins/PCBWriter/SettingsExportModel.py index b09717298a..992adeb089 100644 --- a/plugins/PCBWriter/SettingsExportModel.py +++ b/plugins/PCBWriter/SettingsExportModel.py @@ -1,13 +1,21 @@ # Copyright (c) 2024 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +from dataclasses import asdict +from typing import Optional, cast, List, Dict, Pattern, Set + from PyQt6.QtCore import QObject, pyqtProperty -from .SettingsExportGroup import SettingsExportGroup -from .SettingExport import SettingsExport -from cura.CuraApplication import CuraApplication from UM.Settings.SettingDefinition import SettingDefinition +from UM.Settings.InstanceContainer import InstanceContainer +from UM.Settings.SettingFunction import SettingFunction + +from cura.CuraApplication import CuraApplication from cura.Settings.ExtruderManager import ExtruderManager +from cura.Settings.GlobalStack import GlobalStack + +from .SettingsExportGroup import SettingsExportGroup +from .SettingExport import SettingExport class SettingsExportModel(QObject): @@ -61,7 +69,8 @@ class SettingsExportModel(QObject): # Display global settings global_stack = application.getGlobalContainerStack() - self._settings_groups.append(SettingsExportGroup("Global settings", + self._settings_groups.append(SettingsExportGroup(global_stack, + "Global settings", SettingsExportGroup.Category.Global, self._exportSettings(global_stack))) @@ -72,7 +81,8 @@ class SettingsExportModel(QObject): if extruder_stack.material: color = extruder_stack.material.getMetaDataEntry("color_code") - self._settings_groups.append(SettingsExportGroup("Extruder settings", + self._settings_groups.append(SettingsExportGroup(extruder_stack, + "Extruder settings", SettingsExportGroup.Category.Extruder, self._exportSettings(extruder_stack), extruder_index=extruder_stack.position, @@ -83,13 +93,14 @@ class SettingsExportModel(QObject): for scene_node in scene_root.getChildren(): per_model_stack = scene_node.callDecoration("getStack") if per_model_stack is not None: - self._settings_groups.append(SettingsExportGroup("Model settings", + self._settings_groups.append(SettingsExportGroup(per_model_stack, + "Model settings", SettingsExportGroup.Category.Model, self._exportSettings(per_model_stack), scene_node.getName())) @pyqtProperty(list, constant=True) - def settingsGroups(self): + def settingsGroups(self) -> List[SettingsExportGroup]: return self._settings_groups @staticmethod @@ -110,6 +121,6 @@ class SettingsExportModel(QObject): else: value = str(value) - settings_export.append(SettingsExport(label, value)) + settings_export.append(SettingExport(setting_to_export, label, value)) - return settings_export \ No newline at end of file + return settings_export diff --git a/plugins/PCBWriter/__init__.py b/plugins/PCBWriter/__init__.py index 3ec2eba95f..da4205a7d7 100644 --- a/plugins/PCBWriter/__init__.py +++ b/plugins/PCBWriter/__init__.py @@ -2,9 +2,14 @@ # Cura is released under the terms of the LGPLv3 or higher. import sys -from . import PCBWriter +from PyQt6.QtQml import qmlRegisterType + from UM.i18n import i18nCatalog +from . import PCBWriter +from .SettingsExportModel import SettingsExportModel +from .SettingsExportGroup import SettingsExportGroup + i18n_catalog = i18nCatalog("cura") def getMetaData(): @@ -12,10 +17,13 @@ def getMetaData(): "output": [{ "extension": "pcb", "description": i18n_catalog.i18nc("@item:inlistbox", "Pre-Configured Batch file"), - "mime_type": "application/vnd.um.preconfigured-batch+3mf", + "mime_type": "application/x-pcb", "mode": PCBWriter.PCBWriter.OutputMode.BinaryMode }] }} def register(app): + qmlRegisterType(SettingsExportModel, "PCBWriter", 1, 0, "SettingsExportModel") + qmlRegisterType(SettingsExportGroup, "PCBWriter", 1, 0, "SettingsExportGroup") + return {"mesh_writer": PCBWriter.PCBWriter() } From 38b67f8015e508c162c65ba35e25cdbe760d51cb Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Thu, 1 Feb 2024 10:34:19 +0100 Subject: [PATCH 135/269] Now displaying a help icon and value units CURA-11561 --- plugins/3MFReader/WorkspaceSection.qml | 29 ++++-------------------- plugins/PCBWriter/SettingExport.py | 9 ++++++-- plugins/PCBWriter/SettingSelection.qml | 12 +++++++++- plugins/PCBWriter/SettingsExportModel.py | 10 +++++--- 4 files changed, 29 insertions(+), 31 deletions(-) diff --git a/plugins/3MFReader/WorkspaceSection.qml b/plugins/3MFReader/WorkspaceSection.qml index 0c94ab5d6a..63b5e89b41 100644 --- a/plugins/3MFReader/WorkspaceSection.qml +++ b/plugins/3MFReader/WorkspaceSection.qml @@ -5,7 +5,7 @@ import QtQuick 2.10 import QtQuick.Controls 2.3 -import UM 1.5 as UM +import UM 1.8 as UM Item @@ -80,34 +80,13 @@ Item sourceComponent: combobox } - MouseArea + UM.HelpIcon { - id: helpIconMouseArea anchors.right: parent.right anchors.verticalCenter: comboboxLabel.verticalCenter - width: childrenRect.width - height: childrenRect.height - hoverEnabled: true - UM.ColorImage - { - width: UM.Theme.getSize("section_icon").width - height: width - - visible: comboboxTooltipText != "" - source: UM.Theme.getIcon("Help") - color: UM.Theme.getColor("text") - - UM.ToolTip - { - text: comboboxTooltipText - visible: helpIconMouseArea.containsMouse - targetPoint: Qt.point(parent.x + Math.round(parent.width / 2), parent.y) - x: 0 - y: parent.y + parent.height + UM.Theme.getSize("default_margin").height - width: UM.Theme.getSize("tooltip").width - } - } + text: comboboxTooltipText + visible: comboboxTooltipText != "" } } diff --git a/plugins/PCBWriter/SettingExport.py b/plugins/PCBWriter/SettingExport.py index 73dd818897..6702aa1f68 100644 --- a/plugins/PCBWriter/SettingExport.py +++ b/plugins/PCBWriter/SettingExport.py @@ -6,12 +6,13 @@ from PyQt6.QtCore import QObject, pyqtProperty, pyqtSignal class SettingExport(QObject): - def __init__(self, id, name, value): + def __init__(self, id, name, value, selectable): super().__init__() self.id = id self._name = name self._value = value - self._selected = True + self._selected = selectable + self._selectable = selectable @pyqtProperty(str, constant=True) def name(self): @@ -31,3 +32,7 @@ class SettingExport(QObject): @pyqtProperty(bool, fset = setSelected, notify = selectedChanged) def selected(self): return self._selected + + @pyqtProperty(bool, constant=True) + def selectable(self): + return self._selectable diff --git a/plugins/PCBWriter/SettingSelection.qml b/plugins/PCBWriter/SettingSelection.qml index 6439542f3f..636b67fb37 100644 --- a/plugins/PCBWriter/SettingSelection.qml +++ b/plugins/PCBWriter/SettingSelection.qml @@ -6,7 +6,7 @@ import QtQuick.Controls 2.3 import QtQuick.Layouts 1.3 import QtQuick.Window 2.2 -import UM 1.5 as UM +import UM 1.8 as UM import Cura 1.1 as Cura RowLayout @@ -19,10 +19,20 @@ RowLayout Layout.preferredWidth: UM.Theme.getSize("setting").width checked: modelData.selected onClicked: modelData.selected = checked + enabled: modelData.selectable } UM.Label { text: modelData.value } + + UM.HelpIcon + { + UM.I18nCatalog { id: catalog; name: "cura" } + + text: catalog.i18nc("@tooltip", + "This setting can't be exported because it depends too much on the used printer capacities") + visible: !modelData.selectable + } } diff --git a/plugins/PCBWriter/SettingsExportModel.py b/plugins/PCBWriter/SettingsExportModel.py index 992adeb089..a4acaf02f7 100644 --- a/plugins/PCBWriter/SettingsExportModel.py +++ b/plugins/PCBWriter/SettingsExportModel.py @@ -110,17 +110,21 @@ class SettingsExportModel(QObject): settings_export = [] - for setting_to_export in user_keys.intersection(SettingsExportModel.EXPORTABLE_SETTINGS): + for setting_to_export in user_keys: label = settings_stack.getProperty(setting_to_export, "label") value = settings_stack.getProperty(setting_to_export, "value") + unit = settings_stack.getProperty(setting_to_export, "unit") setting_type = settings_stack.getProperty(setting_to_export, "type") if setting_type is not None: # This is not very good looking, but will do for now - value = SettingDefinition.settingValueToString(setting_type, value) + value = SettingDefinition.settingValueToString(setting_type, value) + " " + unit else: value = str(value) - settings_export.append(SettingExport(setting_to_export, label, value)) + settings_export.append(SettingExport(setting_to_export, + label, + value, + setting_to_export in SettingsExportModel.EXPORTABLE_SETTINGS)) return settings_export From 3fc859c76bb17e7792692fb75c16dba0d288a548 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Thu, 1 Feb 2024 11:34:19 +0100 Subject: [PATCH 136/269] crash while opening printer setting It happened because of creating MachineActionManager as a singleton. Code is refractored to make it work. CURA-11558 --- cura/CuraApplication.py | 17 ++++++++--------- resources/qml/Preferences/MachinesPage.qml | 4 ++-- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 67c420028b..08fec4479e 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -104,7 +104,8 @@ from cura.Settings.SettingInheritanceManager import SettingInheritanceManager from cura.Settings.SidebarCustomMenuItemsModel import SidebarCustomMenuItemsModel from cura.Settings.SimpleModeSettingsManager import SimpleModeSettingsManager from cura.TaskManagement.OnExitCallbackManager import OnExitCallbackManager -from cura.UI import CuraSplashScreen, MachineActionManager, PrintInformation +from cura.UI import CuraSplashScreen, PrintInformation +from cura.UI.MachineActionManager import MachineActionManager from cura.UI.AddPrinterPagesModel import AddPrinterPagesModel from cura.UI.MachineSettingsManager import MachineSettingsManager from cura.UI.ObjectsModel import ObjectsModel @@ -186,7 +187,7 @@ class CuraApplication(QtApplication): self._cura_formula_functions = None # type: Optional[CuraFormulaFunctions] - self._machine_action_manager = None # type: Optional[MachineActionManager.MachineActionManager] + self._machine_action_manager = None # type: Optional[MachineActionManager] self.empty_container = None # type: EmptyInstanceContainer self.empty_definition_changes_container = None # type: EmptyInstanceContainer @@ -352,7 +353,7 @@ class CuraApplication(QtApplication): self.__addAllEmptyContainers() self.__setLatestResouceVersionsForVersionUpgrade() - self._machine_action_manager = MachineActionManager.MachineActionManager(self) + self._machine_action_manager = MachineActionManager(self) self._machine_action_manager.initialize() def __sendCommandToSingleInstance(self): @@ -1129,18 +1130,16 @@ class CuraApplication(QtApplication): self._setting_inheritance_manager = SettingInheritanceManager.createSettingInheritanceManager() return self._setting_inheritance_manager - def getMachineActionManager(self, *args: Any) -> MachineActionManager.MachineActionManager: + @pyqtSlot(result = QObject) + def getMachineActionManager(self, *args: Any) -> MachineActionManager: """Get the machine action manager We ignore any *args given to this, as we also register the machine manager as qml singleton. It wants to give this function an engine and script engine, but we don't care about that. """ - return cast(MachineActionManager.MachineActionManager, self._machine_action_manager) + return self._machine_action_manager - @pyqtSlot(result = QObject) - def getMachineActionManagerQml(self)-> MachineActionManager.MachineActionManager: - return cast(QObject, self._machine_action_manager) @pyqtSlot(result = QObject) def getMaterialManagementModel(self) -> MaterialManagementModel: @@ -1264,7 +1263,7 @@ class CuraApplication(QtApplication): qmlRegisterSingletonType(IntentManager, "Cura", 1, 6, self.getIntentManager, "IntentManager") qmlRegisterSingletonType(SettingInheritanceManager, "Cura", 1, 0, self.getSettingInheritanceManager, "SettingInheritanceManager") qmlRegisterSingletonType(SimpleModeSettingsManager, "Cura", 1, 0, self.getSimpleModeSettingsManagerWrapper, "SimpleModeSettingsManager") - qmlRegisterSingletonType(MachineActionManager.MachineActionManager, "Cura", 1, 0, self.getMachineActionManagerWrapper, "MachineActionManager") + qmlRegisterSingletonType(MachineActionManager, "Cura", 1, 0, self.getMachineActionManagerWrapper, "MachineActionManager") self.processEvents() qmlRegisterType(NetworkingUtil, "Cura", 1, 5, "NetworkingUtil") diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index 971de03696..845c6cf492 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -12,7 +12,7 @@ import Cura 1.0 as Cura UM.ManagementPage { id: base - property var machineActionManager: CuraApplication.getMachineActionManagerQml() + property var machineActionManager: CuraApplication.getMachineActionManager() Item { enabled: false; UM.I18nCatalog { id: catalog; name: "cura"} } title: catalog.i18nc("@title:tab", "Printers") @@ -63,7 +63,7 @@ UM.ManagementPage Repeater { id: machineActionRepeater - model: base.currentItem ? machineActionManager.getSupportedActions(Cura.MachineManager.getDefinitionByMachineId(base.currentItem.id)) : null + model: base.currentItem.id ? machineActionManager.getSupportedActions(Cura.MachineManager.getDefinitionByMachineId(base.currentItem.id)) : null Item { From b931029f1c6c165bf841e512281d3c770df40c55 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 2 Feb 2024 10:03:48 +0100 Subject: [PATCH 137/269] Now using ThreeMFWriter to save PCB files CURA-11561 --- plugins/{PCBWriter => 3MFWriter}/PCBDialog.py | 0 .../{PCBWriter => 3MFWriter}/PCBDialog.qml | 1 - .../{PCBWriter => 3MFWriter}/SettingExport.py | 0 .../SettingSelection.qml | 2 +- .../SettingsExportGroup.py | 0 .../SettingsExportModel.py | 0 .../SettingsSelectionGroup.qml | 8 +- plugins/3MFWriter/ThreeMFWorkspaceWriter.py | 128 ++++- plugins/3MFWriter/ThreeMFWriter.py | 59 ++- plugins/3MFWriter/__init__.py | 45 +- plugins/PCBWriter/PCBWriter.py | 460 ------------------ plugins/PCBWriter/__init__.py | 29 -- plugins/PCBWriter/plugin.json | 8 - resources/qml/Menus/FileMenu.qml | 12 + 14 files changed, 207 insertions(+), 545 deletions(-) rename plugins/{PCBWriter => 3MFWriter}/PCBDialog.py (100%) rename plugins/{PCBWriter => 3MFWriter}/PCBDialog.qml (98%) rename plugins/{PCBWriter => 3MFWriter}/SettingExport.py (100%) rename plugins/{PCBWriter => 3MFWriter}/SettingSelection.qml (93%) rename plugins/{PCBWriter => 3MFWriter}/SettingsExportGroup.py (100%) rename plugins/{PCBWriter => 3MFWriter}/SettingsExportModel.py (100%) rename plugins/{PCBWriter => 3MFWriter}/SettingsSelectionGroup.qml (88%) delete mode 100644 plugins/PCBWriter/PCBWriter.py delete mode 100644 plugins/PCBWriter/__init__.py delete mode 100644 plugins/PCBWriter/plugin.json diff --git a/plugins/PCBWriter/PCBDialog.py b/plugins/3MFWriter/PCBDialog.py similarity index 100% rename from plugins/PCBWriter/PCBDialog.py rename to plugins/3MFWriter/PCBDialog.py diff --git a/plugins/PCBWriter/PCBDialog.qml b/plugins/3MFWriter/PCBDialog.qml similarity index 98% rename from plugins/PCBWriter/PCBDialog.qml rename to plugins/3MFWriter/PCBDialog.qml index 8264e3ee96..b65520961b 100644 --- a/plugins/PCBWriter/PCBDialog.qml +++ b/plugins/3MFWriter/PCBDialog.qml @@ -8,7 +8,6 @@ import QtQuick.Window 2.2 import UM 1.5 as UM import Cura 1.1 as Cura -import PCBWriter 1.0 as PCBWriter UM.Dialog { diff --git a/plugins/PCBWriter/SettingExport.py b/plugins/3MFWriter/SettingExport.py similarity index 100% rename from plugins/PCBWriter/SettingExport.py rename to plugins/3MFWriter/SettingExport.py diff --git a/plugins/PCBWriter/SettingSelection.qml b/plugins/3MFWriter/SettingSelection.qml similarity index 93% rename from plugins/PCBWriter/SettingSelection.qml rename to plugins/3MFWriter/SettingSelection.qml index 636b67fb37..478c2d393c 100644 --- a/plugins/PCBWriter/SettingSelection.qml +++ b/plugins/3MFWriter/SettingSelection.qml @@ -32,7 +32,7 @@ RowLayout UM.I18nCatalog { id: catalog; name: "cura" } text: catalog.i18nc("@tooltip", - "This setting can't be exported because it depends too much on the used printer capacities") + "This setting can't be exported because it depends on the used printer capacities") visible: !modelData.selectable } } diff --git a/plugins/PCBWriter/SettingsExportGroup.py b/plugins/3MFWriter/SettingsExportGroup.py similarity index 100% rename from plugins/PCBWriter/SettingsExportGroup.py rename to plugins/3MFWriter/SettingsExportGroup.py diff --git a/plugins/PCBWriter/SettingsExportModel.py b/plugins/3MFWriter/SettingsExportModel.py similarity index 100% rename from plugins/PCBWriter/SettingsExportModel.py rename to plugins/3MFWriter/SettingsExportModel.py diff --git a/plugins/PCBWriter/SettingsSelectionGroup.qml b/plugins/3MFWriter/SettingsSelectionGroup.qml similarity index 88% rename from plugins/PCBWriter/SettingsSelectionGroup.qml rename to plugins/3MFWriter/SettingsSelectionGroup.qml index 39299ab7c3..e77ba692bc 100644 --- a/plugins/PCBWriter/SettingsSelectionGroup.qml +++ b/plugins/3MFWriter/SettingsSelectionGroup.qml @@ -8,7 +8,7 @@ import QtQuick.Window 2.2 import UM 1.5 as UM import Cura 1.1 as Cura -import PCBWriter 1.0 as PCBWriter +import ThreeMFWriter 1.0 as ThreeMFWriter ColumnLayout { @@ -34,9 +34,9 @@ ColumnLayout { switch(modelData.category) { - case PCBWriter.SettingsExportGroup.Global: + case ThreeMFWriter.SettingsExportGroup.Global: return UM.Theme.getIcon("Sliders") - case PCBWriter.SettingsExportGroup.Model: + case ThreeMFWriter.SettingsExportGroup.Model: return UM.Theme.getIcon("View3D") default: return "" @@ -50,7 +50,7 @@ ColumnLayout { id: settingsExtruderIcon anchors.fill: parent - visible: modelData.category === PCBWriter.SettingsExportGroup.Extruder + visible: modelData.category === ThreeMFWriter.SettingsExportGroup.Extruder text: (modelData.extruder_index + 1).toString() font: UM.Theme.getFont("tiny_emphasis") materialColor: modelData.extruder_color diff --git a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py index e89af5c70a..9715e9ac98 100644 --- a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py +++ b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py @@ -3,7 +3,9 @@ import configparser from io import StringIO +from threading import Lock import zipfile +from typing import Dict, Any from UM.Application import Application from UM.Logger import Logger @@ -13,15 +15,50 @@ from UM.Workspace.WorkspaceWriter import WorkspaceWriter from UM.i18n import i18nCatalog catalog = i18nCatalog("cura") -from cura.Utils.Threading import call_on_qt_thread +from .PCBDialog import PCBDialog +from .ThreeMFWriter import ThreeMFWriter +from .SettingsExportModel import SettingsExportModel +from .SettingsExportGroup import SettingsExportGroup + +USER_SETTINGS_PATH = "Cura/user-settings.json" class ThreeMFWorkspaceWriter(WorkspaceWriter): def __init__(self): super().__init__() + self._main_thread_lock = Lock() + self._success = False + self._export_model = None + self._stream = None + self._nodes = None + self._mode = None + self._config_dialog = None - @call_on_qt_thread - def write(self, stream, nodes, mode=WorkspaceWriter.OutputMode.BinaryMode): + def _preWrite(self): + is_pcb = False + if hasattr(self._stream, 'name'): + # This only works with local file, but we don't want remote PCB files yet + is_pcb = self._stream.name.endswith('.pcb') + + if is_pcb: + self._config_dialog = PCBDialog() + self._config_dialog.finished.connect(self._onPCBConfigFinished) + self._config_dialog.show() + else: + self._doWrite() + + def _onPCBConfigFinished(self, accepted: bool): + if accepted: + self._export_model = self._config_dialog.getModel() + self._doWrite() + else: + self._main_thread_lock.release() + + def _doWrite(self): + self._write() + self._main_thread_lock.release() + + def _write(self): application = Application.getInstance() machine_manager = application.getMachineManager() @@ -30,24 +67,24 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): if not mesh_writer: # We need to have the 3mf mesh writer, otherwise we can't save the entire workspace self.setInformation(catalog.i18nc("@error:zip", "3MF Writer plug-in is corrupt.")) Logger.error("3MF Writer class is unavailable. Can't write workspace.") - return False + return global_stack = machine_manager.activeMachine if global_stack is None: - self.setInformation(catalog.i18nc("@error", "There is no workspace yet to write. Please add a printer first.")) + self.setInformation( + catalog.i18nc("@error", "There is no workspace yet to write. Please add a printer first.")) Logger.error("Tried to write a 3MF workspace before there was a global stack.") - return False + return # Indicate that the 3mf mesh writer should not close the archive just yet (we still need to add stuff to it). mesh_writer.setStoreArchive(True) - if not mesh_writer.write(stream, nodes, mode): + if not mesh_writer.write(self._stream, self._nodes, self._mode, self._export_model): self.setInformation(mesh_writer.getInformation()) - return False + return archive = mesh_writer.getArchive() if archive is None: # This happens if there was no mesh data to write. - archive = zipfile.ZipFile(stream, "w", compression = zipfile.ZIP_DEFLATED) - + archive = zipfile.ZipFile(self._stream, "w", compression=zipfile.ZIP_DEFLATED) try: # Add global container stack data to the archive. @@ -62,15 +99,21 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): self._writeContainerToArchive(extruder_stack, archive) for container in extruder_stack.getContainers(): self._writeContainerToArchive(container, archive) + + # Write user settings data + if self._export_model is not None: + user_settings_data = self._getUserSettings(self._export_model) + ThreeMFWriter._storeMetadataJson(user_settings_data, archive, USER_SETTINGS_PATH) except PermissionError: self.setInformation(catalog.i18nc("@error:zip", "No permission to write the workspace here.")) Logger.error("No permission to write workspace to this stream.") - return False + return # Write preferences to archive - original_preferences = Application.getInstance().getPreferences() #Copy only the preferences that we use to the workspace. + original_preferences = Application.getInstance().getPreferences() # Copy only the preferences that we use to the workspace. temp_preferences = Preferences() - for preference in {"general/visible_settings", "cura/active_mode", "cura/categories_expanded", "metadata/setting_version"}: + for preference in {"general/visible_settings", "cura/active_mode", "cura/categories_expanded", + "metadata/setting_version"}: temp_preferences.addPreference(preference, None) temp_preferences.setValue(preference, original_preferences.getValue(preference)) preferences_string = StringIO() @@ -81,7 +124,7 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): # Save Cura version version_file = zipfile.ZipInfo("Cura/version.ini") - version_config_parser = configparser.ConfigParser(interpolation = None) + version_config_parser = configparser.ConfigParser(interpolation=None) version_config_parser.add_section("versions") version_config_parser.set("versions", "cura_version", application.getVersion()) version_config_parser.set("versions", "build_type", application.getBuildType()) @@ -98,13 +141,37 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): except PermissionError: self.setInformation(catalog.i18nc("@error:zip", "No permission to write the workspace here.")) Logger.error("No permission to write workspace to this stream.") - return False + return except EnvironmentError as e: self.setInformation(catalog.i18nc("@error:zip", str(e))) - Logger.error("EnvironmentError when writing workspace to this stream: {err}".format(err = str(e))) - return False + Logger.error("EnvironmentError when writing workspace to this stream: {err}".format(err=str(e))) + return mesh_writer.setStoreArchive(False) - return True + + self._success = True + + def write(self, stream, nodes, mode=WorkspaceWriter.OutputMode.BinaryMode): + self._success = False + self._export_model = None + self._stream = stream + self._nodes = nodes + self._mode = mode + self._config_dialog = None + + self._main_thread_lock.acquire() + # Export is done in main thread because it may require a few asynchronous configuration steps + Application.getInstance().callLater(self._preWrite) + self._main_thread_lock.acquire() # Block until lock has been released, meaning the config+write is over + + self._main_thread_lock.release() + + self._export_model = None + self._stream = None + self._nodes = None + self._mode = None + self._config_dialog = None + + return self._success @staticmethod def _writePluginMetadataToArchive(archive: zipfile.ZipFile) -> None: @@ -165,4 +232,27 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): archive.writestr(file_in_archive, serialized_data) except (FileNotFoundError, EnvironmentError): Logger.error("File became inaccessible while writing to it: {archive_filename}".format(archive_filename = archive.fp.name)) - return \ No newline at end of file + return + + @staticmethod + def _getUserSettings(model: SettingsExportModel) -> Dict[str, Dict[str, Any]]: + user_settings = {} + + for group in model.settingsGroups: + category = '' + if group.category == SettingsExportGroup.Category.Global: + category = 'global' + elif group.category == SettingsExportGroup.Category.Extruder: + category = f"extruder_{group.extruder_index}" + + if len(category) > 0: + settings_values = {} + stack = group.stack + + for setting in group.settings: + if setting.selected: + settings_values[setting.id] = stack.getProperty(setting.id, "value") + + user_settings[category] = settings_values + + return user_settings \ No newline at end of file diff --git a/plugins/3MFWriter/ThreeMFWriter.py b/plugins/3MFWriter/ThreeMFWriter.py index ad4b0d8dad..8924ac0a61 100644 --- a/plugins/3MFWriter/ThreeMFWriter.py +++ b/plugins/3MFWriter/ThreeMFWriter.py @@ -40,6 +40,9 @@ except ImportError: import zipfile import UM.Application +from .SettingsExportModel import SettingsExportModel +from .SettingsExportGroup import SettingsExportGroup + from UM.i18n import i18nCatalog catalog = i18nCatalog("cura") @@ -87,7 +90,9 @@ class ThreeMFWriter(MeshWriter): self._store_archive = store_archive @staticmethod - def _convertUMNodeToSavitarNode(um_node, transformation=Matrix()): + def _convertUMNodeToSavitarNode(um_node, + transformation = Matrix(), + exported_settings: Optional[Dict[str, Set[str]]] = None): """Convenience function that converts an Uranium SceneNode object to a SavitarSceneNode :returns: Uranium Scene node. @@ -129,13 +134,22 @@ class ThreeMFWriter(MeshWriter): if stack is not None: changed_setting_keys = stack.getTop().getAllKeys() - # Ensure that we save the extruder used for this object in a multi-extrusion setup - if stack.getProperty("machine_extruder_count", "value") > 1: - changed_setting_keys.add("extruder_nr") + if exported_settings is None: + # Ensure that we save the extruder used for this object in a multi-extrusion setup + if stack.getProperty("machine_extruder_count", "value") > 1: + changed_setting_keys.add("extruder_nr") - # Get values for all changed settings & save them. - for key in changed_setting_keys: - savitar_node.setSetting("cura:" + key, str(stack.getProperty(key, "value"))) + # Get values for all changed settings & save them. + for key in changed_setting_keys: + savitar_node.setSetting("cura:" + key, str(stack.getProperty(key, "value"))) + else: + # We want to export only the specified settings + if um_node.getName() in exported_settings: + model_exported_settings = exported_settings[um_node.getName()] + + # Get values for all exported settings & save them. + for key in model_exported_settings: + savitar_node.setSetting("cura:" + key, str(stack.getProperty(key, "value"))) # Store the metadata. for key, value in um_node.metadata.items(): @@ -145,7 +159,8 @@ class ThreeMFWriter(MeshWriter): # only save the nodes on the active build plate if child_node.callDecoration("getBuildPlateNumber") != active_build_plate_nr: continue - savitar_child_node = ThreeMFWriter._convertUMNodeToSavitarNode(child_node) + savitar_child_node = ThreeMFWriter._convertUMNodeToSavitarNode(child_node, + exported_settings = exported_settings) if savitar_child_node is not None: savitar_node.addChild(savitar_child_node) @@ -154,7 +169,7 @@ class ThreeMFWriter(MeshWriter): def getArchive(self): return self._archive - def write(self, stream, nodes, mode = MeshWriter.OutputMode.BinaryMode) -> bool: + def write(self, stream, nodes, mode = MeshWriter.OutputMode.BinaryMode, export_settings_model = None) -> bool: self._archive = None # Reset archive archive = zipfile.ZipFile(stream, "w", compression = zipfile.ZIP_DEFLATED) try: @@ -232,14 +247,19 @@ class ThreeMFWriter(MeshWriter): transformation_matrix.preMultiply(translation_matrix) root_node = UM.Application.Application.getInstance().getController().getScene().getRoot() + exported_model_settings = ThreeMFWriter._extractModelExportedSettings(export_settings_model) for node in nodes: if node == root_node: for root_child in node.getChildren(): - savitar_node = ThreeMFWriter._convertUMNodeToSavitarNode(root_child, transformation_matrix) + savitar_node = ThreeMFWriter._convertUMNodeToSavitarNode(root_child, + transformation_matrix, + exported_model_settings) if savitar_node: savitar_scene.addSceneNode(savitar_node) else: - savitar_node = self._convertUMNodeToSavitarNode(node, transformation_matrix) + savitar_node = self._convertUMNodeToSavitarNode(node, + transformation_matrix, + exported_model_settings) if savitar_node: savitar_scene.addSceneNode(savitar_node) @@ -395,3 +415,20 @@ class ThreeMFWriter(MeshWriter): parser = Savitar.ThreeMFParser() scene_string = parser.sceneToString(savitar_scene) return scene_string + + @staticmethod + def _extractModelExportedSettings(model: Optional[SettingsExportModel]) -> Dict[str, Set[str]]: + extra_settings = {} + + if model is not None: + for group in model.settingsGroups: + if group.category == SettingsExportGroup.Category.Model: + exported_model_settings = set() + + for exported_setting in group.settings: + if exported_setting.selected: + exported_model_settings.add(exported_setting.id) + + extra_settings[group.category_details] = exported_model_settings + + return extra_settings diff --git a/plugins/3MFWriter/__init__.py b/plugins/3MFWriter/__init__.py index eb8a596afe..e0d4037603 100644 --- a/plugins/3MFWriter/__init__.py +++ b/plugins/3MFWriter/__init__.py @@ -2,9 +2,12 @@ # Uranium is released under the terms of the LGPLv3 or higher. import sys +from PyQt6.QtQml import qmlRegisterType + from UM.Logger import Logger try: from . import ThreeMFWriter + from .SettingsExportGroup import SettingsExportGroup threemf_writer_was_imported = True except ImportError: Logger.log("w", "Could not import ThreeMFWriter; libSavitar may be missing") @@ -23,20 +26,36 @@ def getMetaData(): if threemf_writer_was_imported: metaData["mesh_writer"] = { - "output": [{ - "extension": "3mf", - "description": i18n_catalog.i18nc("@item:inlistbox", "3MF file"), - "mime_type": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml", - "mode": ThreeMFWriter.ThreeMFWriter.OutputMode.BinaryMode - }] + "output": [ + { + "extension": "3mf", + "description": i18n_catalog.i18nc("@item:inlistbox", "3MF file"), + "mime_type": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml", + "mode": ThreeMFWriter.ThreeMFWriter.OutputMode.BinaryMode + }, + { + "extension": "pcb", + "description": i18n_catalog.i18nc("@item:inlistbox", "PCB file"), + "mime_type": "application/x-pcb", + "mode": ThreeMFWriter.ThreeMFWriter.OutputMode.BinaryMode + } + ] } metaData["workspace_writer"] = { - "output": [{ - "extension": workspace_extension, - "description": i18n_catalog.i18nc("@item:inlistbox", "Cura Project 3MF file"), - "mime_type": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml", - "mode": ThreeMFWorkspaceWriter.ThreeMFWorkspaceWriter.OutputMode.BinaryMode - }] + "output": [ + { + "extension": workspace_extension, + "description": i18n_catalog.i18nc("@item:inlistbox", "Cura Project 3MF file"), + "mime_type": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml", + "mode": ThreeMFWorkspaceWriter.ThreeMFWorkspaceWriter.OutputMode.BinaryMode + }, + { + "extension": "pcb", + "description": i18n_catalog.i18nc("@item:inlistbox", "Pre-Configured Batch file"), + "mime_type": "application/x-pcb", + "mode": ThreeMFWorkspaceWriter.ThreeMFWorkspaceWriter.OutputMode.BinaryMode + } + ] } return metaData @@ -44,6 +63,8 @@ def getMetaData(): def register(app): if "3MFWriter.ThreeMFWriter" in sys.modules: + qmlRegisterType(SettingsExportGroup, "ThreeMFWriter", 1, 0, "SettingsExportGroup") + return {"mesh_writer": ThreeMFWriter.ThreeMFWriter(), "workspace_writer": ThreeMFWorkspaceWriter.ThreeMFWorkspaceWriter()} else: diff --git a/plugins/PCBWriter/PCBWriter.py b/plugins/PCBWriter/PCBWriter.py deleted file mode 100644 index 794eac9d4a..0000000000 --- a/plugins/PCBWriter/PCBWriter.py +++ /dev/null @@ -1,460 +0,0 @@ -# Copyright (c) 2024 Ultimaker B.V. -# Cura is released under the terms of the LGPLv3 or higher. -import json -import zipfile -import datetime -import numpy -import re -from dataclasses import asdict -from typing import Optional, cast, List, Dict, Pattern, Set, Union, Mapping, Any -from threading import Lock -from io import StringIO # For converting g-code to bytes. - -import pySavitar as Savitar - -from PyQt6.QtCore import QBuffer - -from UM.Mesh.MeshWriter import MeshWriter -from UM.Logger import Logger -from UM.Scene.SceneNode import SceneNode -from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator -from UM.i18n import i18nCatalog -from UM.Settings.InstanceContainer import InstanceContainer -from UM.Settings.SettingFunction import SettingFunction -from UM.Settings.ContainerRegistry import ContainerRegistry -from UM.Math.Matrix import Matrix -from UM.Math.Vector import Vector - -from cura.CuraApplication import CuraApplication -from cura.CuraPackageManager import CuraPackageManager -from cura.Settings import CuraContainerStack -from cura.Settings.GlobalStack import GlobalStack -from cura.Utils.Threading import call_on_qt_thread -from cura.Snapshot import Snapshot - -from .PCBDialog import PCBDialog -from .SettingsExportModel import SettingsExportModel -from .SettingsExportGroup import SettingsExportGroup - -MYPY = False -try: - if not MYPY: - import xml.etree.cElementTree as ET -except ImportError: - Logger.log("w", "Unable to load cElementTree, switching to slower version") - import xml.etree.ElementTree as ET - -catalog = i18nCatalog("cura") - -THUMBNAIL_PATH = "Metadata/thumbnail.png" -MODEL_PATH = "3D/3dmodel.model" -PACKAGE_METADATA_PATH = "Cura/packages.json" -USER_SETTINGS_PATH = "Cura/user-settings.json" - -class PCBWriter(MeshWriter): - def __init__(self): - super().__init__() - self._namespaces = { - "3mf": "http://schemas.microsoft.com/3dmanufacturing/core/2015/02", - "content-types": "http://schemas.openxmlformats.org/package/2006/content-types", - "relationships": "http://schemas.openxmlformats.org/package/2006/relationships", - "cura": "http://software.ultimaker.com/xml/cura/3mf/2015/10" - } - - self._config_dialog = None - self._main_thread_lock = Lock() - self._success = False - self._export_model = None - - def write(self, stream, nodes, mode = MeshWriter.OutputMode.BinaryMode) -> bool: - self._success = False - self._export_model = None - - self._main_thread_lock.acquire() - # Start configuration window in main application thread - CuraApplication.getInstance().callLater(self._write, stream, nodes, mode) - self._main_thread_lock.acquire() # Block until lock has been released, meaning the config is over - - self._main_thread_lock.release() - - if self._export_model is not None: - archive = zipfile.ZipFile(stream, "w", compression=zipfile.ZIP_DEFLATED) - try: - model_file = zipfile.ZipInfo(MODEL_PATH) - # Because zipfile is stupid and ignores archive-level compression settings when writing with ZipInfo. - model_file.compress_type = zipfile.ZIP_DEFLATED - - # Create content types file - content_types_file = zipfile.ZipInfo("[Content_Types].xml") - content_types_file.compress_type = zipfile.ZIP_DEFLATED - content_types = ET.Element("Types", xmlns=self._namespaces["content-types"]) - rels_type = ET.SubElement(content_types, "Default", Extension="rels", - ContentType="application/vnd.openxmlformats-package.relationships+xml") - model_type = ET.SubElement(content_types, "Default", Extension="model", - ContentType="application/vnd.ms-package.3dmanufacturing-3dmodel+xml") - - # Create _rels/.rels file - relations_file = zipfile.ZipInfo("_rels/.rels") - relations_file.compress_type = zipfile.ZIP_DEFLATED - relations_element = ET.Element("Relationships", xmlns=self._namespaces["relationships"]) - model_relation_element = ET.SubElement(relations_element, "Relationship", Target="/" + MODEL_PATH, - Id="rel0", - Type="http://schemas.microsoft.com/3dmanufacturing/2013/01/3dmodel") - - # Attempt to add a thumbnail - snapshot = self._createSnapshot() - if snapshot: - thumbnail_buffer = QBuffer() - thumbnail_buffer.open(QBuffer.OpenModeFlag.ReadWrite) - snapshot.save(thumbnail_buffer, "PNG") - - thumbnail_file = zipfile.ZipInfo(THUMBNAIL_PATH) - # Don't try to compress snapshot file, because the PNG is pretty much as compact as it will get - archive.writestr(thumbnail_file, thumbnail_buffer.data()) - - # Add PNG to content types file - thumbnail_type = ET.SubElement(content_types, "Default", Extension="png", ContentType="image/png") - # Add thumbnail relation to _rels/.rels file - thumbnail_relation_element = ET.SubElement(relations_element, "Relationship", - Target="/" + THUMBNAIL_PATH, Id="rel1", - Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail") - - # Write material metadata - packages_metadata = self._getMaterialPackageMetadata() + self._getPluginPackageMetadata() - self._storeMetadataJson({"packages": packages_metadata}, archive, PACKAGE_METADATA_PATH) - - # Write user settings data - user_settings_data = self._getUserSettings(self._export_model) - self._storeMetadataJson(user_settings_data, archive, USER_SETTINGS_PATH) - - savitar_scene = Savitar.Scene() - - scene_metadata = CuraApplication.getInstance().getController().getScene().getMetaData() - - for key, value in scene_metadata.items(): - savitar_scene.setMetaDataEntry(key, value) - - current_time_string = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") - if "Application" not in scene_metadata: - # This might sound a bit strange, but this field should store the original application that created - # the 3mf. So if it was already set, leave it to whatever it was. - savitar_scene.setMetaDataEntry("Application", - CuraApplication.getInstance().getApplicationDisplayName()) - if "CreationDate" not in scene_metadata: - savitar_scene.setMetaDataEntry("CreationDate", current_time_string) - - savitar_scene.setMetaDataEntry("ModificationDate", current_time_string) - - transformation_matrix = Matrix() - transformation_matrix._data[1, 1] = 0 - transformation_matrix._data[1, 2] = -1 - transformation_matrix._data[2, 1] = 1 - transformation_matrix._data[2, 2] = 0 - - global_container_stack = CuraApplication.getInstance().getGlobalContainerStack() - # Second step: 3MF defines the left corner of the machine as center, whereas cura uses the center of the - # build volume. - if global_container_stack: - translation_vector = Vector(x=global_container_stack.getProperty("machine_width", "value") / 2, - y=global_container_stack.getProperty("machine_depth", "value") / 2, - z=0) - translation_matrix = Matrix() - translation_matrix.setByTranslation(translation_vector) - transformation_matrix.preMultiply(translation_matrix) - - root_node = CuraApplication.getInstance().getController().getScene().getRoot() - exported_model_settings = PCBWriter._extractModelExportedSettings(self._export_model) - for node in nodes: - if node == root_node: - for root_child in node.getChildren(): - savitar_node = PCBWriter._convertUMNodeToSavitarNode(root_child, - transformation_matrix, - exported_model_settings) - if savitar_node: - savitar_scene.addSceneNode(savitar_node) - else: - savitar_node = self._convertUMNodeToSavitarNode(node, - transformation_matrix, - exported_model_settings) - if savitar_node: - savitar_scene.addSceneNode(savitar_node) - - parser = Savitar.ThreeMFParser() - scene_string = parser.sceneToString(savitar_scene) - - archive.writestr(model_file, scene_string) - archive.writestr(content_types_file, - b' \n' + ET.tostring(content_types)) - archive.writestr(relations_file, - b' \n' + ET.tostring(relations_element)) - except Exception as error: - Logger.logException("e", "Error writing zip file") - self.setInformation(str(error)) - return False - finally: - archive.close() - - return True - else: - return False - - def _write(self, stream, nodes, mode): - self._config_dialog = PCBDialog() - self._config_dialog.finished.connect(self._onDialogFinished) - self._config_dialog.show() - - def _onDialogFinished(self, accepted: bool): - if accepted: - self._export_model = self._config_dialog.getModel() - - self._main_thread_lock.release() - - @staticmethod - def _extractModelExportedSettings(model: SettingsExportModel) -> Mapping[str, Set[str]]: - extra_settings = {} - - for group in model.settingsGroups: - if group.category == SettingsExportGroup.Category.Model: - exported_model_settings = set() - - for exported_setting in group.settings: - if exported_setting.selected: - exported_model_settings.add(exported_setting.id) - - extra_settings[group.category_details] = exported_model_settings - - return extra_settings - - @staticmethod - def _convertUMNodeToSavitarNode(um_node, - transformation: Matrix = Matrix(), - exported_settings: Mapping[str, Set[str]] = None): - """Convenience function that converts an Uranium SceneNode object to a SavitarSceneNode - - :returns: Uranium Scene node. - """ - if not isinstance(um_node, SceneNode): - return None - - active_build_plate_nr = CuraApplication.getInstance().getMultiBuildPlateModel().activeBuildPlate - if um_node.callDecoration("getBuildPlateNumber") != active_build_plate_nr: - return - - savitar_node = Savitar.SceneNode() - savitar_node.setName(um_node.getName()) - - node_matrix = Matrix() - mesh_data = um_node.getMeshData() - # compensate for original center position, if object(s) is/are not around its zero position - if mesh_data is not None: - extents = mesh_data.getExtents() - if extents is not None: - # We use a different coordinate space while writing, so flip Z and Y - center_vector = Vector(extents.center.x, extents.center.z, extents.center.y) - node_matrix.setByTranslation(center_vector) - node_matrix.multiply(um_node.getLocalTransformation()) - - matrix_string = PCBWriter._convertMatrixToString(node_matrix.preMultiply(transformation)) - - savitar_node.setTransformation(matrix_string) - if mesh_data is not None: - savitar_node.getMeshData().setVerticesFromBytes(mesh_data.getVerticesAsByteArray()) - indices_array = mesh_data.getIndicesAsByteArray() - if indices_array is not None: - savitar_node.getMeshData().setFacesFromBytes(indices_array) - else: - savitar_node.getMeshData().setFacesFromBytes( - numpy.arange(mesh_data.getVertices().size / 3, dtype=numpy.int32).tostring()) - - # Handle per object settings (if any) - stack = um_node.callDecoration("getStack") - if stack is not None: - if um_node.getName() in exported_settings: - model_exported_settings = exported_settings[um_node.getName()] - - # Get values for all exported settings & save them. - for key in model_exported_settings: - savitar_node.setSetting("cura:" + key, str(stack.getProperty(key, "value"))) - - # Store the metadata. - for key, value in um_node.metadata.items(): - savitar_node.setSetting(key, value) - - for child_node in um_node.getChildren(): - # only save the nodes on the active build plate - if child_node.callDecoration("getBuildPlateNumber") != active_build_plate_nr: - continue - savitar_child_node = PCBWriter._convertUMNodeToSavitarNode(child_node, - exported_settings = exported_settings) - if savitar_child_node is not None: - savitar_node.addChild(savitar_child_node) - - return savitar_node - - @call_on_qt_thread # must be called from the main thread because of OpenGL - def _createSnapshot(self): - Logger.log("d", "Creating thumbnail image...") - if not CuraApplication.getInstance().isVisible: - Logger.log("w", "Can't create snapshot when renderer not initialized.") - return None - try: - snapshot = Snapshot.snapshot(width=300, height=300) - except: - Logger.logException("w", "Failed to create snapshot image") - return None - - return snapshot - - @staticmethod - def _storeMetadataJson(metadata: Union[Dict[str, List[Dict[str, str]]], Dict[str, Dict[str, Any]]], - archive: zipfile.ZipFile, path - : str) -> None: - """Stores metadata inside archive path as json file""" - metadata_file = zipfile.ZipInfo(path) - # We have to set the compress type of each file as well (it doesn't keep the type of the entire archive) - metadata_file.compress_type = zipfile.ZIP_DEFLATED - archive.writestr(metadata_file, - json.dumps(metadata, separators=(", ", ": "), indent=4, skipkeys=True, ensure_ascii=False)) - - @staticmethod - def _getUserSettings(model: SettingsExportModel) -> Dict[str, Dict[str, Any]]: - user_settings = {} - - for group in model.settingsGroups: - category = '' - if group.category == SettingsExportGroup.Category.Global: - category = 'global' - elif group.category == SettingsExportGroup.Category.Extruder: - category = f"extruder_{group.extruder_index}" - - if len(category) > 0: - settings_values = {} - stack = group.stack - - for setting in group.settings: - if setting.selected: - settings_values[setting.id] = stack.getProperty(setting.id, "value") - - user_settings[category] = settings_values - - return user_settings - - @staticmethod - def _getPluginPackageMetadata() -> List[Dict[str, str]]: - """Get metadata for all backend plugins that are used in the project. - - :return: List of material metadata dictionaries. - """ - - backend_plugin_enum_value_regex = re.compile( - r"PLUGIN::(?P\w+)@(?P\d+.\d+.\d+)::(?P\w+)") - # This regex parses enum values to find if they contain custom - # backend engine values. These custom enum values are in the format - # PLUGIN::@:: - # where - # - plugin_id is the id of the plugin - # - version is in the semver format - # - value is the value of the enum - - plugin_ids = set() - - def addPluginIdsInStack(stack: CuraContainerStack) -> None: - for key in stack.getAllKeys(): - value = str(stack.getProperty(key, "value")) - for plugin_id, _version, _value in backend_plugin_enum_value_regex.findall(value): - plugin_ids.add(plugin_id) - - # Go through all stacks and find all the plugin id contained in the project - global_stack = CuraApplication.getInstance().getMachineManager().activeMachine - addPluginIdsInStack(global_stack) - - for container in global_stack.getContainers(): - addPluginIdsInStack(container) - - for extruder_stack in global_stack.extruderList: - addPluginIdsInStack(extruder_stack) - - for container in extruder_stack.getContainers(): - addPluginIdsInStack(container) - - metadata = {} - - package_manager = cast(CuraPackageManager, CuraApplication.getInstance().getPackageManager()) - for plugin_id in plugin_ids: - package_data = package_manager.getInstalledPackageInfo(plugin_id) - - metadata[plugin_id] = { - "id": plugin_id, - "display_name": package_data.get("display_name") if package_data.get("display_name") else "", - "package_version": package_data.get("package_version") if package_data.get("package_version") else "", - "sdk_version_semver": package_data.get("sdk_version_semver") if package_data.get( - "sdk_version_semver") else "", - "type": "plugin", - } - - # Storing in a dict and fetching values to avoid duplicates - return list(metadata.values()) - - @staticmethod - def _getMaterialPackageMetadata() -> List[Dict[str, str]]: - """Get metadata for installed materials in active extruder stack, this does not include bundled materials. - - :return: List of material metadata dictionaries. - """ - metadata = {} - - package_manager = cast(CuraPackageManager, CuraApplication.getInstance().getPackageManager()) - - for extruder in CuraApplication.getInstance().getExtruderManager().getActiveExtruderStacks(): - if not extruder.isEnabled: - # Don't export materials not in use - continue - - if isinstance(extruder.material, type(ContainerRegistry.getInstance().getEmptyInstanceContainer())): - # This is an empty material container, no material to export - continue - - if package_manager.isMaterialBundled(extruder.material.getFileName(), - extruder.material.getMetaDataEntry("GUID")): - # Don't export bundled materials - continue - - package_id = package_manager.getMaterialFilePackageId(extruder.material.getFileName(), - extruder.material.getMetaDataEntry("GUID")) - package_data = package_manager.getInstalledPackageInfo(package_id) - - # We failed to find the package for this material - if not package_data: - Logger.info(f"Could not find package for material in extruder {extruder.id}, skipping.") - continue - - material_metadata = { - "id": package_id, - "display_name": package_data.get("display_name") if package_data.get("display_name") else "", - "package_version": package_data.get("package_version") if package_data.get("package_version") else "", - "sdk_version_semver": package_data.get("sdk_version_semver") if package_data.get( - "sdk_version_semver") else "", - "type": "material", - } - - metadata[package_id] = material_metadata - - # Storing in a dict and fetching values to avoid duplicates - return list(metadata.values()) - - @staticmethod - def _convertMatrixToString(matrix): - result = "" - result += str(matrix._data[0, 0]) + " " - result += str(matrix._data[1, 0]) + " " - result += str(matrix._data[2, 0]) + " " - result += str(matrix._data[0, 1]) + " " - result += str(matrix._data[1, 1]) + " " - result += str(matrix._data[2, 1]) + " " - result += str(matrix._data[0, 2]) + " " - result += str(matrix._data[1, 2]) + " " - result += str(matrix._data[2, 2]) + " " - result += str(matrix._data[0, 3]) + " " - result += str(matrix._data[1, 3]) + " " - result += str(matrix._data[2, 3]) - return result \ No newline at end of file diff --git a/plugins/PCBWriter/__init__.py b/plugins/PCBWriter/__init__.py deleted file mode 100644 index da4205a7d7..0000000000 --- a/plugins/PCBWriter/__init__.py +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (c) 2024 Ultimaker B.V. -# Cura is released under the terms of the LGPLv3 or higher. -import sys - -from PyQt6.QtQml import qmlRegisterType - -from UM.i18n import i18nCatalog - -from . import PCBWriter -from .SettingsExportModel import SettingsExportModel -from .SettingsExportGroup import SettingsExportGroup - -i18n_catalog = i18nCatalog("cura") - -def getMetaData(): - return {"mesh_writer": { - "output": [{ - "extension": "pcb", - "description": i18n_catalog.i18nc("@item:inlistbox", "Pre-Configured Batch file"), - "mime_type": "application/x-pcb", - "mode": PCBWriter.PCBWriter.OutputMode.BinaryMode - }] - }} - -def register(app): - qmlRegisterType(SettingsExportModel, "PCBWriter", 1, 0, "SettingsExportModel") - qmlRegisterType(SettingsExportGroup, "PCBWriter", 1, 0, "SettingsExportGroup") - - return {"mesh_writer": PCBWriter.PCBWriter() } diff --git a/plugins/PCBWriter/plugin.json b/plugins/PCBWriter/plugin.json deleted file mode 100644 index 6571185779..0000000000 --- a/plugins/PCBWriter/plugin.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "Pre-Configured Batch Writer", - "author": "Ultimaker B.V.", - "version": "1.0.0", - "description": "Provides support for writing Pre-Configured Batch files.", - "api": 8, - "i18n-catalog": "cura" -} diff --git a/resources/qml/Menus/FileMenu.qml b/resources/qml/Menus/FileMenu.qml index 254c0d5468..850c0d7e73 100644 --- a/resources/qml/Menus/FileMenu.qml +++ b/resources/qml/Menus/FileMenu.qml @@ -70,6 +70,18 @@ Cura.Menu enabled: UM.WorkspaceFileHandler.enabled } + Cura.MenuItem + { + id: savePCBMenu + text: catalog.i18nc("@title:menu menubar:file", "&Save PCB Project...") + enabled: UM.WorkspaceFileHandler.enabled + onTriggered: + { + var args = { "filter_by_machine": false, "file_type": "workspace", "preferred_mimetypes": "application/x-pcb" }; + UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args) + } + } + Cura.MenuSeparator { } UM.MeshWritersModel { id: meshWritersModel } From c6e56202954ef1b7752306a9aac41805920b2428 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 2 Feb 2024 10:07:11 +0100 Subject: [PATCH 138/269] Revert "Add export sub-menu" This reverts commit 54af5bca3c5e9b5700ce106f854f97e3ed102842. --- resources/qml/Menus/ExportMenu.qml | 44 ------------------------------ resources/qml/Menus/FileMenu.qml | 26 +++++++++--------- 2 files changed, 13 insertions(+), 57 deletions(-) delete mode 100644 resources/qml/Menus/ExportMenu.qml diff --git a/resources/qml/Menus/ExportMenu.qml b/resources/qml/Menus/ExportMenu.qml deleted file mode 100644 index 5c08b04f0f..0000000000 --- a/resources/qml/Menus/ExportMenu.qml +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (c) 2024 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.2 -import QtQuick.Controls 2.1 - -import UM 1.5 as UM -import Cura 1.1 as Cura - -import "../Dialogs" - -Cura.Menu -{ - id: exportMenu - property alias model: meshWriters.model - property bool selectionOnly: false - - Instantiator - { - id: meshWriters - Cura.MenuItem - { - text: model.description - onTriggered: - { - var localDeviceId = "local_file" - var file_name = PrintInformation.jobName - var args = { "filter_by_machine": false, "limit_mimetypes": [model.mime_type], "limit_modes": [model.mode]} - if(exportMenu.selectionOnly) - { - UM.OutputDeviceManager.requestWriteSelectionToDevice(localDeviceId, file_name, args) - } - else - { - UM.OutputDeviceManager.requestWriteToDevice(localDeviceId, file_name, args) - } - } - shortcut: model.shortcut - enabled: exportMenu.shouldBeVisible - } - onObjectAdded: function(index, object) { exportMenu.insertItem(index, object)} - onObjectRemoved: function(index, object) { exportMenu.removeItem(object)} - } -} diff --git a/resources/qml/Menus/FileMenu.qml b/resources/qml/Menus/FileMenu.qml index 850c0d7e73..36a2820087 100644 --- a/resources/qml/Menus/FileMenu.qml +++ b/resources/qml/Menus/FileMenu.qml @@ -4,7 +4,7 @@ import QtQuick 2.2 import QtQuick.Controls 2.1 -import UM 1.7 as UM +import UM 1.6 as UM import Cura 1.0 as Cura Cura.Menu @@ -84,24 +84,24 @@ Cura.Menu Cura.MenuSeparator { } - UM.MeshWritersModel { id: meshWritersModel } - - ExportMenu + Cura.MenuItem { - id: exportMenu - title: catalog.i18nc("@title:menu menubar:file", "&Export...") - model: meshWritersModel - shouldBeVisible: model.count > 0 + id: saveAsMenu + text: catalog.i18nc("@title:menu menubar:file", "&Export...") + onTriggered: + { + var localDeviceId = "local_file" + UM.OutputDeviceManager.requestWriteToDevice(localDeviceId, PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}) + } } - ExportMenu + Cura.MenuItem { id: exportSelectionMenu - title: catalog.i18nc("@action:inmenu menubar:file", "Export Selection...") - model: meshWritersModel - shouldBeVisible: model.count > 0 + text: catalog.i18nc("@action:inmenu menubar:file", "Export Selection...") enabled: UM.Selection.hasSelection - selectionOnly: true + icon.name: "document-save-as" + onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}) } Cura.MenuSeparator { } From 733ef4d3d827e11bdcaefe484f17e066f1b0ce89 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 2 Feb 2024 12:17:34 +0100 Subject: [PATCH 139/269] UI now displays an option to select the same profile CURA-11561 --- plugins/3MFReader/ThreeMFReader.py | 9 ++++++- plugins/3MFReader/ThreeMFWorkspaceReader.py | 10 +++++--- plugins/3MFReader/WorkspaceDialog.py | 26 +++++++++++++++++++++ plugins/3MFReader/WorkspaceDialog.qml | 9 +++++++ plugins/3MFReader/__init__.py | 8 +++++++ plugins/3MFReader/plugin.json | 2 +- plugins/3MFWriter/plugin.json | 2 +- resources/qml/Menus/FileMenu.qml | 5 +++- 8 files changed, 64 insertions(+), 7 deletions(-) diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index 13a97d5a89..9f4a4b197b 100755 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -46,8 +46,15 @@ class ThreeMFReader(MeshReader): suffixes=["3mf"] ) ) + MimeTypeDatabase.addMimeType( + MimeType( + name="application/x-pcb", + comment="PCB", + suffixes=["pcb"] + ) + ) - self._supported_extensions = [".3mf"] + self._supported_extensions = [".3mf", ".pcb"] self._root = None self._base_name = "" self._unit = None diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index b97cb34b01..76cd1f386b 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -112,7 +112,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): def __init__(self) -> None: super().__init__() - self._supported_extensions = [".3mf"] + self._supported_extensions = [".3mf", ".pcb"] self._dialog = WorkspaceDialog() self._3mf_mesh_reader = None self._container_registry = ContainerRegistry.getInstance() @@ -228,11 +228,14 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._resolve_strategies = {k: None for k in resolve_strategy_keys} containers_found_dict = {k: False for k in resolve_strategy_keys} + # Check whether the file is a PCB + is_pcb = file_name.endswith('.pcb') + # # Read definition containers # machine_definition_id = None - updatable_machines = [] + updatable_machines = None if is_pcb else [] machine_definition_container_count = 0 extruder_definition_container_count = 0 definition_container_files = [name for name in cura_file_names if name.endswith(self._definition_container_suffix)] @@ -250,7 +253,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): if definition_container_type == "machine": machine_definition_id = container_id machine_definition_containers = self._container_registry.findDefinitionContainers(id = machine_definition_id) - if machine_definition_containers: + if machine_definition_containers and updatable_machines is not None: updatable_machines = [machine for machine in self._container_registry.findContainerStacks(type = "machine") if machine.definition == machine_definition_containers[0]] machine_type = definition_container["name"] variant_type_name = definition_container.get("variants_name", variant_type_name) @@ -617,6 +620,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._dialog.setVariantType(variant_type_name) self._dialog.setHasObjectsOnPlate(Application.getInstance().platformActivity) self._dialog.setMissingPackagesMetadata(missing_package_metadata) + self._dialog.setHasVisibleSelectSameProfileChanged(is_pcb) self._dialog.show() # Choosing the initially selected printer in MachineSelector diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index 0203fc92b5..c5b624d35d 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/plugins/3MFReader/WorkspaceDialog.py @@ -71,6 +71,8 @@ class WorkspaceDialog(QObject): self._install_missing_package_dialog: Optional[QObject] = None self._is_abstract_machine = False self._is_networked_machine = False + self._is_compatible_machine = False + self._has_visible_select_same_profile = False machineConflictChanged = pyqtSignal() qualityChangesConflictChanged = pyqtSignal() @@ -94,6 +96,8 @@ class WorkspaceDialog(QObject): extrudersChanged = pyqtSignal() isPrinterGroupChanged = pyqtSignal() missingPackagesChanged = pyqtSignal() + isCompatibleMachineChanged = pyqtSignal() + hasVisibleSelectSameProfileChanged = pyqtSignal() @pyqtProperty(bool, notify = isPrinterGroupChanged) def isPrinterGroup(self) -> bool: @@ -291,8 +295,30 @@ class WorkspaceDialog(QObject): @pyqtSlot(str) def setMachineToOverride(self, machine_name: str) -> None: + registry = ContainerRegistry.getInstance() + containers_expected = registry.findDefinitionContainers(name = self._machine_type) + containers_selected = registry.findContainerStacks(id = machine_name) + if len(containers_expected) == 1 and len(containers_selected) == 1: + new_compatible_machine = (containers_expected[0] == containers_selected[0].definition) + if new_compatible_machine != self._is_compatible_machine: + self._is_compatible_machine = new_compatible_machine + self.isCompatibleMachineChanged.emit() + self._override_machine = machine_name + @pyqtProperty(bool, notify = isCompatibleMachineChanged) + def isCompatibleMachine(self) -> bool: + return self._is_compatible_machine + + def setHasVisibleSelectSameProfileChanged(self, has_visible_select_same_profile): + if has_visible_select_same_profile != self._has_visible_select_same_profile: + self._has_visible_select_same_profile = has_visible_select_same_profile + self.hasVisibleSelectSameProfileChanged.emit() + + @pyqtProperty(bool, notify = hasVisibleSelectSameProfileChanged) + def hasVisibleSelectSameProfile(self): + return self._has_visible_select_same_profile + @pyqtSlot() def closeBackend(self) -> None: """Close the backend: otherwise one could end up with "Slicing...""" diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index d5f9b1817d..45fe7b6989 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -186,6 +186,15 @@ UM.Dialog rightLabelText: catalog.i18ncp("@action:label", "%1, %2 override", "%1, %2 overrides", manager.numSettingsOverridenByQualityChanges).arg(manager.qualityType).arg(manager.numSettingsOverridenByQualityChanges) visible: manager.numSettingsOverridenByQualityChanges != 0 } + + UM.CheckBox + { + text: catalog.i18nc("@action:checkbox", "Select the same profile") + enabled: manager.isCompatibleMachine + onEnabledChanged: checked = enabled + tooltip: enabled ? "" : catalog.i18nc("@tooltip", "You can use the same profile only if you have the same printer as the project was published with") + visible: manager.hasVisibleSelectSameProfile + } } comboboxVisible: manager.qualityChangesConflict diff --git a/plugins/3MFReader/__init__.py b/plugins/3MFReader/__init__.py index 5e2b68fce0..a07420d2c6 100644 --- a/plugins/3MFReader/__init__.py +++ b/plugins/3MFReader/__init__.py @@ -25,12 +25,20 @@ def getMetaData() -> Dict: { "extension": "3mf", "description": catalog.i18nc("@item:inlistbox", "3MF File") + }, + { + "extension": "pcb", + "description": catalog.i18nc("@item:inlistbox", "PCB File") } ] metaData["workspace_reader"] = [ { "extension": workspace_extension, "description": catalog.i18nc("@item:inlistbox", "3MF File") + }, + { + "extension": "pcb", + "description": catalog.i18nc("@item:inlistbox", "PCB File") } ] diff --git a/plugins/3MFReader/plugin.json b/plugins/3MFReader/plugin.json index bf0bc05364..1611c956d3 100644 --- a/plugins/3MFReader/plugin.json +++ b/plugins/3MFReader/plugin.json @@ -2,7 +2,7 @@ "name": "3MF Reader", "author": "Ultimaker B.V.", "version": "1.0.1", - "description": "Provides support for reading 3MF files.", + "description": "Provides support for reading 3MF and PCB files.", "api": 8, "i18n-catalog": "cura" } diff --git a/plugins/3MFWriter/plugin.json b/plugins/3MFWriter/plugin.json index b59d4ef8e1..be6d50267c 100644 --- a/plugins/3MFWriter/plugin.json +++ b/plugins/3MFWriter/plugin.json @@ -2,7 +2,7 @@ "name": "3MF Writer", "author": "Ultimaker B.V.", "version": "1.0.1", - "description": "Provides support for writing 3MF files.", + "description": "Provides support for writing 3MF and PCB files.", "api": 8, "i18n-catalog": "cura" } diff --git a/resources/qml/Menus/FileMenu.qml b/resources/qml/Menus/FileMenu.qml index 36a2820087..a6fb339faf 100644 --- a/resources/qml/Menus/FileMenu.qml +++ b/resources/qml/Menus/FileMenu.qml @@ -77,7 +77,10 @@ Cura.Menu enabled: UM.WorkspaceFileHandler.enabled onTriggered: { - var args = { "filter_by_machine": false, "file_type": "workspace", "preferred_mimetypes": "application/x-pcb" }; + var args = { "filter_by_machine": false, + "file_type": "workspace", + "preferred_mimetypes": "application/x-pcb", + "limit_mimetypes": "application/x-pcb"}; UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args) } } From ab0a52063d0d0f327b7b7c4ccbc28d35dd61feb1 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 2 Feb 2024 16:05:36 +0100 Subject: [PATCH 140/269] Now loading user settings CURA-11561 --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 222 ++++++++++++-------- plugins/3MFReader/WorkspaceDialog.py | 29 ++- plugins/3MFReader/WorkspaceDialog.qml | 15 +- plugins/3MFWriter/SettingsExportModel.py | 2 +- 4 files changed, 178 insertions(+), 90 deletions(-) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 76cd1f386b..3398b2e7d5 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -5,6 +5,7 @@ from configparser import ConfigParser import zipfile import os import json +import re from typing import cast, Dict, List, Optional, Tuple, Any, Set import xml.etree.ElementTree as ET @@ -141,10 +142,13 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._old_new_materials: Dict[str, str] = {} self._machine_info = None + self._load_profile = False + def _clearState(self): self._id_mapping = {} self._old_new_materials = {} self._machine_info = None + self._load_profile = False def getNewId(self, old_id: str): """Get a unique name based on the old_id. This is different from directly calling the registry in that it caches results. @@ -228,7 +232,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._resolve_strategies = {k: None for k in resolve_strategy_keys} containers_found_dict = {k: False for k in resolve_strategy_keys} - # Check whether the file is a PCB + # Check whether the file is a PCB, which changes some import options is_pcb = file_name.endswith('.pcb') # @@ -621,6 +625,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._dialog.setHasObjectsOnPlate(Application.getInstance().platformActivity) self._dialog.setMissingPackagesMetadata(missing_package_metadata) self._dialog.setHasVisibleSelectSameProfileChanged(is_pcb) + self._dialog.setAllowCreatemachine(not is_pcb) self._dialog.show() # Choosing the initially selected printer in MachineSelector @@ -652,6 +657,8 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._dialog.setIsNetworkedMachine(is_networked_machine) self._dialog.setIsAbstractMachine(is_abstract_machine) self._dialog.setMachineName(machine_name) + self._dialog.updateCompatibleMachine() + self._dialog.setSelectSameProfileChecked(self._dialog.isCompatibleMachine) # Block until the dialog is closed. self._dialog.waitForClose() @@ -659,6 +666,8 @@ class ThreeMFWorkspaceReader(WorkspaceReader): if self._dialog.getResult() == {}: return WorkspaceReader.PreReadResult.cancelled + self._load_profile = not is_pcb or self._dialog.selectSameProfileChecked + self._resolve_strategies = self._dialog.getResult() # # There can be 3 resolve strategies coming from the dialog: @@ -694,16 +703,16 @@ class ThreeMFWorkspaceReader(WorkspaceReader): except EnvironmentError as e: message = Message(i18n_catalog.i18nc("@info:error Don't translate the XML tags or !", "Project file {0} is suddenly inaccessible: {1}.", file_name, str(e)), - title = i18n_catalog.i18nc("@info:title", "Can't Open Project File"), - message_type = Message.MessageType.ERROR) + title = i18n_catalog.i18nc("@info:title", "Can't Open Project File"), + message_type = Message.MessageType.ERROR) message.show() self.setWorkspaceName("") return [], {} except zipfile.BadZipFile as e: 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) + title = i18n_catalog.i18nc("@info:title", "Can't Open Project File"), + message_type = Message.MessageType.ERROR) message.show() self.setWorkspaceName("") return [], {} @@ -765,9 +774,9 @@ class ThreeMFWorkspaceReader(WorkspaceReader): # Find the machine which will be overridden global_stacks = self._container_registry.findContainerStacks(id = self._dialog.getMachineToOverride(), type = "machine") if not global_stacks: - message = Message(i18n_catalog.i18nc("@info:error Don't translate the XML tag !", + message = Message(i18n_catalog.i18nc("@info:error Don't translate the XML tag !", "Project file {0} is made using profiles that are unknown to this version of UltiMaker Cura.", file_name), - message_type = Message.MessageType.ERROR) + message_type = Message.MessageType.ERROR) message.show() self.setWorkspaceName("") return [], {} @@ -781,84 +790,107 @@ class ThreeMFWorkspaceReader(WorkspaceReader): for stack in extruder_stacks: stack.setNextStack(global_stack, connect_signals = False) - Logger.log("d", "Workspace loading is checking definitions...") - # Get all the definition files & check if they exist. If not, add them. - definition_container_files = [name for name in cura_file_names if name.endswith(self._definition_container_suffix)] - for definition_container_file in definition_container_files: - container_id = self._stripFileToId(definition_container_file) + user_settings = {} - definitions = self._container_registry.findDefinitionContainersMetadata(id = container_id) - if not definitions: - definition_container = DefinitionContainer(container_id) - try: - definition_container.deserialize(archive.open(definition_container_file).read().decode("utf-8"), - file_name = definition_container_file) - except ContainerFormatError: - # We cannot just skip the definition file because everything else later will just break if the - # machine definition cannot be found. - Logger.logException("e", "Failed to deserialize definition file %s in project file %s", - definition_container_file, file_name) - definition_container = self._container_registry.findDefinitionContainers(id = "fdmprinter")[0] #Fall back to defaults. - self._container_registry.addContainer(definition_container) - Job.yieldThread() - QCoreApplication.processEvents() # Ensure that the GUI does not freeze. + if self._load_profile: + Logger.log("d", "Workspace loading is checking definitions...") + # Get all the definition files & check if they exist. If not, add them. + definition_container_files = [name for name in cura_file_names if name.endswith(self._definition_container_suffix)] + for definition_container_file in definition_container_files: + container_id = self._stripFileToId(definition_container_file) - Logger.log("d", "Workspace loading is checking materials...") - # Get all the material files and check if they exist. If not, add them. - xml_material_profile = self._getXmlProfileClass() - if self._material_container_suffix is None: - self._material_container_suffix = ContainerRegistry.getMimeTypeForContainer(xml_material_profile).suffixes[0] - if xml_material_profile: - material_container_files = [name for name in cura_file_names if name.endswith(self._material_container_suffix)] - for material_container_file in material_container_files: - to_deserialize_material = False - container_id = self._stripFileToId(material_container_file) - need_new_name = False - materials = self._container_registry.findInstanceContainers(id = container_id) - - if not materials: - # No material found, deserialize this material later and add it - to_deserialize_material = True - else: - material_container = materials[0] - old_material_root_id = material_container.getMetaDataEntry("base_file") - if old_material_root_id is not None and not self._container_registry.isReadOnly(old_material_root_id): # Only create new materials if they are not read only. - to_deserialize_material = True - - if self._resolve_strategies["material"] == "override": - # Remove the old materials and then deserialize the one from the project - root_material_id = material_container.getMetaDataEntry("base_file") - application.getContainerRegistry().removeContainer(root_material_id) - elif self._resolve_strategies["material"] == "new": - # Note that we *must* deserialize it with a new ID, as multiple containers will be - # auto created & added. - container_id = self.getNewId(container_id) - self._old_new_materials[old_material_root_id] = container_id - need_new_name = True - - if to_deserialize_material: - material_container = xml_material_profile(container_id) + definitions = self._container_registry.findDefinitionContainersMetadata(id = container_id) + if not definitions: + definition_container = DefinitionContainer(container_id) try: - material_container.deserialize(archive.open(material_container_file).read().decode("utf-8"), - file_name = container_id + "." + self._material_container_suffix) + definition_container.deserialize(archive.open(definition_container_file).read().decode("utf-8"), + file_name = definition_container_file) except ContainerFormatError: - Logger.logException("e", "Failed to deserialize material file %s in project file %s", - material_container_file, file_name) - continue - if need_new_name: - new_name = ContainerRegistry.getInstance().uniqueName(material_container.getName()) - material_container.setName(new_name) - material_container.setDirty(True) - self._container_registry.addContainer(material_container) + # We cannot just skip the definition file because everything else later will just break if the + # machine definition cannot be found. + Logger.logException("e", "Failed to deserialize definition file %s in project file %s", + definition_container_file, file_name) + definition_container = self._container_registry.findDefinitionContainers(id = "fdmprinter")[0] #Fall back to defaults. + self._container_registry.addContainer(definition_container) Job.yieldThread() QCoreApplication.processEvents() # Ensure that the GUI does not freeze. - if global_stack: - # Handle quality changes if any - self._processQualityChanges(global_stack) + Logger.log("d", "Workspace loading is checking materials...") + # Get all the material files and check if they exist. If not, add them. + xml_material_profile = self._getXmlProfileClass() + if self._material_container_suffix is None: + self._material_container_suffix = ContainerRegistry.getMimeTypeForContainer(xml_material_profile).suffixes[0] + if xml_material_profile: + material_container_files = [name for name in cura_file_names if name.endswith(self._material_container_suffix)] + for material_container_file in material_container_files: + to_deserialize_material = False + container_id = self._stripFileToId(material_container_file) + need_new_name = False + materials = self._container_registry.findInstanceContainers(id = container_id) - # Prepare the machine - self._applyChangesToMachine(global_stack, extruder_stack_dict) + if not materials: + # No material found, deserialize this material later and add it + to_deserialize_material = True + else: + material_container = materials[0] + old_material_root_id = material_container.getMetaDataEntry("base_file") + if old_material_root_id is not None and not self._container_registry.isReadOnly(old_material_root_id): # Only create new materials if they are not read only. + to_deserialize_material = True + + if self._resolve_strategies["material"] == "override": + # Remove the old materials and then deserialize the one from the project + root_material_id = material_container.getMetaDataEntry("base_file") + application.getContainerRegistry().removeContainer(root_material_id) + elif self._resolve_strategies["material"] == "new": + # Note that we *must* deserialize it with a new ID, as multiple containers will be + # auto created & added. + container_id = self.getNewId(container_id) + self._old_new_materials[old_material_root_id] = container_id + need_new_name = True + + if to_deserialize_material: + material_container = xml_material_profile(container_id) + try: + material_container.deserialize(archive.open(material_container_file).read().decode("utf-8"), + file_name = container_id + "." + self._material_container_suffix) + except ContainerFormatError: + Logger.logException("e", "Failed to deserialize material file %s in project file %s", + material_container_file, file_name) + continue + if need_new_name: + new_name = ContainerRegistry.getInstance().uniqueName(material_container.getName()) + material_container.setName(new_name) + material_container.setDirty(True) + self._container_registry.addContainer(material_container) + Job.yieldThread() + QCoreApplication.processEvents() # Ensure that the GUI does not freeze. + else: + Logger.log("d", "Workspace loading user settings...") + try: + user_settings = json.loads(archive.open("Cura/user-settings.json").read().decode("utf-8")) + except KeyError as e: + # If there is no user settings file, it's not a PCB, so notify user of failure. + Logger.log("w", "File %s is not a valid PCB.", 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 [], {} + + + if global_stack: + if self._load_profile: + # Handle quality changes if any + self._processQualityChanges(global_stack) + + # Prepare the machine + self._applyChangesToMachine(global_stack, extruder_stack_dict) + else: + self._applyUserSettings(global_stack, extruder_stack_dict, user_settings) Logger.log("d", "Workspace loading is notifying rest of the code of changes...") # Actually change the active machine. @@ -1181,21 +1213,47 @@ class ThreeMFWorkspaceReader(WorkspaceReader): material_node = machine_node.variants[extruder_stack.variant.getName()].materials[root_material_id] extruder_stack.material = material_node.container - def _applyChangesToMachine(self, global_stack, extruder_stack_dict): - # Clear all first + def _clearMachineSettings(self, global_stack, extruder_stack_dict): self._clearStack(global_stack) for extruder_stack in extruder_stack_dict.values(): self._clearStack(extruder_stack) + self._quality_changes_to_apply = None + self._quality_type_to_apply = None + self._intent_category_to_apply = None + self._user_settings_to_apply = None + + def _applyUserSettings(self, global_stack, extruder_stack_dict, user_settings): + # Clear all first + self._clearMachineSettings(global_stack, extruder_stack_dict) + + for stack_name, settings in user_settings.items(): + if stack_name == 'global': + ThreeMFWorkspaceReader._applyUserSettingsOnStack(global_stack, settings) + else: + extruder_match = re.fullmatch('extruder_([0-9]+)', stack_name) + if extruder_match is not None: + extruder_nr = extruder_match.group(1) + if extruder_nr in extruder_stack_dict: + ThreeMFWorkspaceReader._applyUserSettingsOnStack(extruder_stack_dict[extruder_nr], settings) + + @staticmethod + def _applyUserSettingsOnStack(stack, user_settings): + user_settings_container = stack.userChanges + + for setting_to_import, setting_value in user_settings.items(): + user_settings_container.setProperty(setting_to_import, 'value', setting_value) + + def _applyChangesToMachine(self, global_stack, extruder_stack_dict): + # Clear all first + self._clearMachineSettings(global_stack, extruder_stack_dict) + self._applyDefinitionChanges(global_stack, extruder_stack_dict) self._applyUserChanges(global_stack, extruder_stack_dict) self._applyVariants(global_stack, extruder_stack_dict) self._applyMaterials(global_stack, extruder_stack_dict) # prepare the quality to select - self._quality_changes_to_apply = None - self._quality_type_to_apply = None - self._intent_category_to_apply = None if self._machine_info.quality_changes_info is not None: self._quality_changes_to_apply = self._machine_info.quality_changes_info.name else: diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index c5b624d35d..c0006e21a8 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/plugins/3MFReader/WorkspaceDialog.py @@ -73,6 +73,8 @@ class WorkspaceDialog(QObject): self._is_networked_machine = False self._is_compatible_machine = False self._has_visible_select_same_profile = False + self._select_same_profile_checked = True + self._allow_create_machine = True machineConflictChanged = pyqtSignal() qualityChangesConflictChanged = pyqtSignal() @@ -98,6 +100,7 @@ class WorkspaceDialog(QObject): missingPackagesChanged = pyqtSignal() isCompatibleMachineChanged = pyqtSignal() hasVisibleSelectSameProfileChanged = pyqtSignal() + selectSameProfileCheckedChanged = pyqtSignal() @pyqtProperty(bool, notify = isPrinterGroupChanged) def isPrinterGroup(self) -> bool: @@ -295,17 +298,19 @@ class WorkspaceDialog(QObject): @pyqtSlot(str) def setMachineToOverride(self, machine_name: str) -> None: + self._override_machine = machine_name + self.updateCompatibleMachine() + + def updateCompatibleMachine(self): registry = ContainerRegistry.getInstance() - containers_expected = registry.findDefinitionContainers(name = self._machine_type) - containers_selected = registry.findContainerStacks(id = machine_name) + containers_expected = registry.findDefinitionContainers(name=self._machine_type) + containers_selected = registry.findContainerStacks(id=self._override_machine) if len(containers_expected) == 1 and len(containers_selected) == 1: new_compatible_machine = (containers_expected[0] == containers_selected[0].definition) if new_compatible_machine != self._is_compatible_machine: self._is_compatible_machine = new_compatible_machine self.isCompatibleMachineChanged.emit() - self._override_machine = machine_name - @pyqtProperty(bool, notify = isCompatibleMachineChanged) def isCompatibleMachine(self) -> bool: return self._is_compatible_machine @@ -319,6 +324,22 @@ class WorkspaceDialog(QObject): def hasVisibleSelectSameProfile(self): return self._has_visible_select_same_profile + def setSelectSameProfileChecked(self, select_same_profile_checked): + if select_same_profile_checked != self._select_same_profile_checked: + self._select_same_profile_checked = select_same_profile_checked + self.selectSameProfileCheckedChanged.emit() + + @pyqtProperty(bool, notify = selectSameProfileCheckedChanged, fset = setSelectSameProfileChecked) + def selectSameProfileChecked(self): + return self._select_same_profile_checked + + def setAllowCreatemachine(self, allow_create_machine): + self._allow_create_machine = allow_create_machine + + @pyqtProperty(bool, constant = True) + def allowCreateMachine(self): + return self._allow_create_machine + @pyqtSlot() def closeBackend(self) -> None: """Close the backend: otherwise one could end up with "Slicing...""" diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 45fe7b6989..c7074ce220 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -120,13 +120,17 @@ UM.Dialog minDropDownWidth: machineSelector.width - buttons: [ + Component + { + id: componentNewPrinter + Cura.SecondaryButton { id: createNewPrinter text: catalog.i18nc("@button", "Create new") fixedWidthMode: true width: parent.width - leftPadding * 1.5 + visible: manager.allowCreateMachine onClicked: { toggleContent() @@ -136,7 +140,9 @@ UM.Dialog manager.setIsNetworkedMachine(false) } } - ] + } + + buttons: manager.allowCreateMachine ? [componentNewPrinter.createObject()] : [] onSelectPrinter: function(machine) { @@ -191,9 +197,12 @@ UM.Dialog { text: catalog.i18nc("@action:checkbox", "Select the same profile") enabled: manager.isCompatibleMachine - onEnabledChanged: checked = enabled + onEnabledChanged: manager.selectSameProfileChecked = enabled tooltip: enabled ? "" : catalog.i18nc("@tooltip", "You can use the same profile only if you have the same printer as the project was published with") visible: manager.hasVisibleSelectSameProfile + + checked: manager.selectSameProfileChecked + onCheckedChanged: manager.selectSameProfileChecked = checked } } diff --git a/plugins/3MFWriter/SettingsExportModel.py b/plugins/3MFWriter/SettingsExportModel.py index a4acaf02f7..0c34278067 100644 --- a/plugins/3MFWriter/SettingsExportModel.py +++ b/plugins/3MFWriter/SettingsExportModel.py @@ -105,7 +105,7 @@ class SettingsExportModel(QObject): @staticmethod def _exportSettings(settings_stack): - user_settings_container = settings_stack.getTop() + user_settings_container = settings_stack.userChanges user_keys = user_settings_container.getAllKeys() settings_export = [] From 2d79479a26d25d81ff523e34c346004f969fb12a Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 2 Feb 2024 16:17:27 +0100 Subject: [PATCH 141/269] Avoid displaying the discard changed dialog CURA-11561 --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 3398b2e7d5..57bf4be5bb 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -890,7 +890,8 @@ class ThreeMFWorkspaceReader(WorkspaceReader): # Prepare the machine self._applyChangesToMachine(global_stack, extruder_stack_dict) else: - self._applyUserSettings(global_stack, extruder_stack_dict, user_settings) + # Just clear the settings now, so that we can change the active machine without conflicts + self._clearMachineSettings(global_stack, extruder_stack_dict) Logger.log("d", "Workspace loading is notifying rest of the code of changes...") # Actually change the active machine. @@ -902,6 +903,10 @@ class ThreeMFWorkspaceReader(WorkspaceReader): # To solve this, we schedule _updateActiveMachine() for later so it will have the latest data. self._updateActiveMachine(global_stack) + if not self._load_profile: + # Now we have switched, apply the user settings + self._applyUserSettings(global_stack, extruder_stack_dict, user_settings) + # Load all the nodes / mesh data of the workspace nodes = self._3mf_mesh_reader.read(file_name) if nodes is None: @@ -1224,9 +1229,6 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._user_settings_to_apply = None def _applyUserSettings(self, global_stack, extruder_stack_dict, user_settings): - # Clear all first - self._clearMachineSettings(global_stack, extruder_stack_dict) - for stack_name, settings in user_settings.items(): if stack_name == 'global': ThreeMFWorkspaceReader._applyUserSettingsOnStack(global_stack, settings) From 8a0914c981ad6d3df1a8bcd963b75521f1bcede9 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Fri, 2 Feb 2024 16:38:02 +0100 Subject: [PATCH 142/269] Adding more paths MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🥲 CURA-11483 --- cura/CuraApplication.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index ddc080d748..827f0d8598 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -373,11 +373,16 @@ class CuraApplication(QtApplication): Resources.addExpectedDirNameInData(dir_name) app_root = os.path.abspath(os.path.join(os.path.dirname(sys.executable))) + Resources.addSecureSearchPath(os.path.join(app_root, "share", "cura", "resources")) Resources.addSecureSearchPath(os.path.join(app_root, "Resources", "share", "cura", "resources")) + Resources.addSecureSearchPath(os.path.join(app_root, "..", "Resources", "share", "cura", "resources")) Resources.addSecureSearchPath(os.path.join(self._app_install_dir, "share", "cura", "resources")) Resources.addSecureSearchPath(os.path.join(self._app_install_dir, "Resources", "share", "cura", "resources")) + Resources.addSecureSearchPath( + os.path.join(self._app_install_dir, "..", "Resources", "share", "cura", "resources")) + if not hasattr(sys, "frozen"): cura_data_root = os.environ.get('CURA_DATA_ROOT', None) if cura_data_root: From c29eb49113a18fa1eb29cdcb56f2d173b2d0d327 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Sun, 4 Feb 2024 22:44:21 +0100 Subject: [PATCH 143/269] Add more `paths` --- plugins/CuraEngineBackend/CuraEngineBackend.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 0c4003fadc..66949eeaf5 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -76,6 +76,7 @@ class CuraEngineBackend(QObject, Backend): self._default_engine_location = executable_name search_path = [ + os.path.abspath(os.path.join(os.path.dirname(sys.executable), "..", "Resources")), os.path.abspath(os.path.dirname(sys.executable)), os.path.abspath(os.path.join(os.path.dirname(sys.executable), "bin")), os.path.abspath(os.path.join(os.path.dirname(sys.executable), "..")), From fc081b20e30bc4e978a5103a8a6c6a77e4cf6aed Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Sun, 4 Feb 2024 22:48:55 +0100 Subject: [PATCH 144/269] Remove unused variable --- conanfile.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index 18fe339528..3b48442fa0 100644 --- a/conanfile.py +++ b/conanfile.py @@ -166,8 +166,6 @@ class CuraConan(ConanFile): self.output.info("Collecting python installs") python_installs = {} - python_executable = "python3" if self.settings.os == "Macos" else "python" - # list of python installs run_env = VirtualRunEnv(self) env = run_env.environment() From 7d9a699eb145ee68ada6b793da7584241c564a65 Mon Sep 17 00:00:00 2001 From: Saumya Jain <70144862+saumyaj3@users.noreply.github.com> Date: Mon, 5 Feb 2024 09:07:22 +0100 Subject: [PATCH 145/269] Update cura/CuraApplication.py using modern typing Co-authored-by: Casper Lamboo --- cura/CuraApplication.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 08fec4479e..508c36bf7c 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -187,7 +187,7 @@ class CuraApplication(QtApplication): self._cura_formula_functions = None # type: Optional[CuraFormulaFunctions] - self._machine_action_manager = None # type: Optional[MachineActionManager] + self._machine_action_manager: Optional[MachineActionManager] = None self.empty_container = None # type: EmptyInstanceContainer self.empty_definition_changes_container = None # type: EmptyInstanceContainer From 9d6f80fb86a0d1585bf6d6e86e2053c2a65c4a6b Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 5 Feb 2024 09:27:01 +0100 Subject: [PATCH 146/269] Also make app bundle for linux/windows --- UltiMaker-Cura.spec.jinja | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/UltiMaker-Cura.spec.jinja b/UltiMaker-Cura.spec.jinja index 2c930e6ed6..795de41424 100644 --- a/UltiMaker-Cura.spec.jinja +++ b/UltiMaker-Cura.spec.jinja @@ -69,9 +69,9 @@ coll = COLLECT( name=r'{{ name }}' ) -{% if macos == true %} app = BUNDLE( coll, + {% if macos == true %} name='{{ display_name }}.app', icon={{ icon }}, bundle_identifier={{ osx_bundle_identifier }} + "_" + '{{ display_name }}'.replace(" ", "_") + "_" {{ short_version }}, @@ -90,10 +90,10 @@ app = BUNDLE( 'CFBundleURLSchemes': ['cura', 'slicer'], }], 'CFBundleDocumentTypes': [{ - 'CFBundleTypeRole': 'Viewer', - 'CFBundleTypeExtensions': ['*'], - 'CFBundleTypeName': 'Model Files', - }] - }, + 'CFBundleTypeRole': 'Viewer', + 'CFBundleTypeExtensions': ['*'], + 'CFBundleTypeName': 'Model Files', + }] + }, + {% endif %} ) -{% endif %} From ebea2b46db71f472a7f8080de17ae8c27eb43c87 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 5 Feb 2024 10:46:34 +0100 Subject: [PATCH 147/269] Only bundle for mac CURA-11483 --- UltiMaker-Cura.spec.jinja | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/UltiMaker-Cura.spec.jinja b/UltiMaker-Cura.spec.jinja index 795de41424..ec9820fd57 100644 --- a/UltiMaker-Cura.spec.jinja +++ b/UltiMaker-Cura.spec.jinja @@ -69,9 +69,9 @@ coll = COLLECT( name=r'{{ name }}' ) +{% if macos == true %} app = BUNDLE( coll, - {% if macos == true %} name='{{ display_name }}.app', icon={{ icon }}, bundle_identifier={{ osx_bundle_identifier }} + "_" + '{{ display_name }}'.replace(" ", "_") + "_" {{ short_version }}, @@ -95,5 +95,5 @@ app = BUNDLE( 'CFBundleTypeName': 'Model Files', }] }, - {% endif %} ) +{% endif %} From 54d6315f28f1ff0240aea1b9e63cf6f115542838 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 5 Feb 2024 10:58:19 +0100 Subject: [PATCH 148/269] Fix broken windows/linux builds Due to some breaking changes in pyinstaller upgrade, add option to use old packaging https://github.com/pyinstaller/pyinstaller/pull/7713 CURA-11483 --- UltiMaker-Cura.spec.jinja | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/UltiMaker-Cura.spec.jinja b/UltiMaker-Cura.spec.jinja index ec9820fd57..99bfa80078 100644 --- a/UltiMaker-Cura.spec.jinja +++ b/UltiMaker-Cura.spec.jinja @@ -55,7 +55,8 @@ exe = EXE( target_arch={{ target_arch }}, codesign_identity=os.getenv('CODESIGN_IDENTITY', None), entitlements_file={{ entitlements_file }}, - icon={{ icon }} + icon={{ icon }}, + contents_directory='.' ) coll = COLLECT( From 965f9e5a1cfc1dcab15d1e1ad2fe0b38017ed7d4 Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Mon, 5 Feb 2024 11:15:34 +0100 Subject: [PATCH 149/269] Increased maximum warning value for the small skin width from 3 line widths to 10 line widths. PP-424 --- 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 03850a7344..36590649d0 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1668,7 +1668,7 @@ "value": "skin_line_width * 2", "default_value": 1, "minimum_value": "0", - "maximum_value_warning": "skin_line_width * 3", + "maximum_value_warning": "skin_line_width * 10", "type": "float", "enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'", "limit_to_extruder": "top_bottom_extruder_nr", From 0f6f18e7ddb2db7f9b9851938467070ce5c9ae6b Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 5 Feb 2024 11:30:15 +0100 Subject: [PATCH 150/269] Clean up some paths CURA-11483 --- cura/CuraApplication.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 827f0d8598..241113ece7 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -374,14 +374,15 @@ class CuraApplication(QtApplication): app_root = os.path.abspath(os.path.join(os.path.dirname(sys.executable))) - Resources.addSecureSearchPath(os.path.join(app_root, "share", "cura", "resources")) - Resources.addSecureSearchPath(os.path.join(app_root, "Resources", "share", "cura", "resources")) - Resources.addSecureSearchPath(os.path.join(app_root, "..", "Resources", "share", "cura", "resources")) - - Resources.addSecureSearchPath(os.path.join(self._app_install_dir, "share", "cura", "resources")) - Resources.addSecureSearchPath(os.path.join(self._app_install_dir, "Resources", "share", "cura", "resources")) - Resources.addSecureSearchPath( - os.path.join(self._app_install_dir, "..", "Resources", "share", "cura", "resources")) + if platform.system() == "Darwin": + Resources.addSecureSearchPath(os.path.join(app_root, "Resources", "share", "cura", "resources")) + Resources.addSecureSearchPath(os.path.join(app_root, "..", "Resources", "share", "cura", "resources")) + Resources.addSecureSearchPath( + os.path.join(self._app_install_dir, "..", "Resources", "share", "cura", "resources")) + else: + Resources.addSecureSearchPath(os.path.join(app_root, "share", "cura", "resources")) + Resources.addSecureSearchPath(os.path.join(self._app_install_dir, "share", "cura", "resources")) + Resources.addSecureSearchPath(os.path.join(app_root, "Resources", "share", "cura", "resources")) if not hasattr(sys, "frozen"): cura_data_root = os.environ.get('CURA_DATA_ROOT', None) @@ -396,7 +397,6 @@ class CuraApplication(QtApplication): # venv site-packages Resources.addSearchPath(os.path.join(app_root, "..", "share", "cura", "resources")) - Resources.addSearchPath(os.path.join(app_root, "..", "Resources", "share", "cura", "resources")) @classmethod def _initializeSettingDefinitions(cls): From 03abc91bda185549642666f50f833dd14f95df0d Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Mon, 5 Feb 2024 11:35:44 +0100 Subject: [PATCH 151/269] Improved self support z distance settings for Ultimaker PLA, T-PLA, PETG and ABS PP-424 --- .../quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg | 3 +-- .../quality/ultimaker_s3/um_s3_aa0.25_um-petg_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.25_um-pla_0.1mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.25_um-tough-pla_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg | 1 + .../quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg | 3 +-- .../quality/ultimaker_s5/um_s5_aa0.25_um-petg_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.25_um-pla_0.1mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.25_um-tough-pla_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg | 1 + 50 files changed, 50 insertions(+), 50 deletions(-) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg index 8557b08b1b..24c5a1d9e6 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg @@ -27,7 +27,6 @@ acceleration_wall_x = =acceleration_wall bridge_skin_speed = =bridge_wall_speed bridge_sparse_infill_max_density = 50 bridge_wall_speed = 30 -cool_fan_speed_0 = 0 cool_min_layer_time = 4 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' infill_sparse_density = 15 @@ -65,7 +64,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-petg_0.1mm.inst.cfg index 1aa26ebcfc..e3965d9c5c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-petg_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-petg_0.1mm.inst.cfg @@ -63,7 +63,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-pla_0.1mm.inst.cfg index 3343f7627a..9589f2f915 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-pla_0.1mm.inst.cfg @@ -64,7 +64,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-tough-pla_0.1mm.inst.cfg index d0d532f410..b8aec4972f 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-tough-pla_0.1mm.inst.cfg @@ -64,7 +64,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg index 85dc32801e..de5e0faf2e 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg index ee0525c13e..c39c6d42c8 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg index ca1d9d7afc..08bb2befdf 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg index 57413c4b30..9d67113da0 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg @@ -67,7 +67,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg index 0052ce90cd..cc0da1a253 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg @@ -67,7 +67,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.4 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.06mm.inst.cfg index 0e9ceaf9e3..7eb5de8b64 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.06mm.inst.cfg @@ -64,7 +64,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg index 8732c3ad63..d4431382dd 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.1mm.inst.cfg index 6f8db11141..bb7de56356 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.1mm.inst.cfg @@ -64,7 +64,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg index e7e50350c0..6b333e2f13 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg index 5ecaa739db..854b868259 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.4 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg index 25887f19d7..9678ba9523 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg index 136a3bed42..c53596bc9f 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg index e8820673ea..58a8a1ebb0 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg index dcbb580edb..c3139970db 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg @@ -67,7 +67,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg index fc2a185be4..6f450463b9 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg @@ -67,7 +67,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg index 73f25eae0f..e193aa51c3 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg index 2aa24f805d..622f2030e4 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.35 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg index e51d440c31..09f02aa375 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg index 151af3ed50..91b522349d 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.35 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg index 56c097d890..2fd9e5ef2c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg @@ -67,7 +67,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.4 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg index a76864a1a3..2310f2503f 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg @@ -69,6 +69,7 @@ speed_wall_x_roofing = =speed_roofing support_angle = 70 support_interface_enable = False support_structure = tree +support_z_distance = 0.35 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg index d725b5aa15..7b14730a66 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg @@ -27,7 +27,6 @@ acceleration_wall_x = =acceleration_wall bridge_skin_speed = =bridge_wall_speed bridge_sparse_infill_max_density = 50 bridge_wall_speed = 30 -cool_fan_speed_0 = 0 cool_min_layer_time = 4 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' infill_sparse_density = 15 @@ -65,7 +64,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-petg_0.1mm.inst.cfg index 82e07b6fdf..a2233703d4 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-petg_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-petg_0.1mm.inst.cfg @@ -63,7 +63,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-pla_0.1mm.inst.cfg index 789d186f77..44f6670085 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-pla_0.1mm.inst.cfg @@ -64,7 +64,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-tough-pla_0.1mm.inst.cfg index 307869d494..997f823e51 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-tough-pla_0.1mm.inst.cfg @@ -64,7 +64,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg index fbe230fb2e..c0b4799ca9 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg index 9c7ceca13b..d430f867d8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg index 8ef78a6fb5..b2c25e26c7 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg index f430e6bc16..8a02dfe38c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg @@ -67,7 +67,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg index 98ca8927b6..9a10024813 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg @@ -67,7 +67,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.4 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.06mm.inst.cfg index aea8906877..ef58c14663 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.06mm.inst.cfg @@ -64,7 +64,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg index 201c663d5c..5d14f014b9 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.1mm.inst.cfg index a9d239bf3a..d23a7b8cea 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.1mm.inst.cfg @@ -64,7 +64,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg index 55696eccb4..8bfe117380 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg index fe3eeb67ad..ab66eed0ab 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.4 top_bottom_thickness = =max(1.2 , layer_height * 6) wall_0_wipe_dist = 0.8 wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg index a9043c7372..2b192e8c1c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg index 713f94219f..11301a2990 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm.inst.cfg index 4e451d4165..1d07e0f63c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg index 02d22b06b8..990271dd9e 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg @@ -67,7 +67,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg index b0d5d41d0f..a01b433eb2 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg @@ -67,7 +67,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg index 641c1279e4..f368ac13d8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg index 55e724da9d..b699ebc9f3 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.35 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg index 35e8c0903c..d0ee391c65 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg @@ -65,7 +65,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.3 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg index ee0ee279e6..d9bbd7cc00 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg @@ -66,7 +66,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.35 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg index 875bd5a669..fc8507c42b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg @@ -67,7 +67,7 @@ support_bottom_distance = =support_z_distance support_interface_enable = True support_structure = tree support_top_distance = =support_z_distance -support_z_distance = =math.ceil(0.3/layer_height)*layer_height +support_z_distance = 0.4 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg index 4973ec35bb..b3711c1cbd 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg @@ -69,6 +69,7 @@ speed_wall_x_roofing = =speed_roofing support_angle = 70 support_interface_enable = False support_structure = tree +support_z_distance = 0.35 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True From 9afe5b46dbaf94d5214df9e8f285dcb39b0f3eb6 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 5 Feb 2024 12:39:56 +0100 Subject: [PATCH 152/269] We now display the global and extruder settings in the dialog CURA-11561 --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 54 +++++++++++++-------- plugins/3MFReader/WorkspaceDialog.py | 7 +++ plugins/3MFReader/WorkspaceDialog.qml | 45 ++++++++++++++--- plugins/3MFReader/WorkspaceRow.qml | 20 ++++++-- 4 files changed, 96 insertions(+), 30 deletions(-) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 57bf4be5bb..caf411bc67 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -143,12 +143,14 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._machine_info = None self._load_profile = False + self._user_settings: Dict[str, Dict[str, Any]] = {} def _clearState(self): self._id_mapping = {} self._old_new_materials = {} self._machine_info = None self._load_profile = False + self._user_settings = {} def getNewId(self, old_id: str): """Get a unique name based on the old_id. This is different from directly calling the registry in that it caches results. @@ -604,6 +606,36 @@ class ThreeMFWorkspaceReader(WorkspaceReader): package_metadata = self._parse_packages_metadata(archive) missing_package_metadata = self._filter_missing_package_metadata(package_metadata) + # Load the user specifically exported settings + self._dialog.exportedSettingModel.clear() + if is_pcb: + try: + self._user_settings = json.loads(archive.open("Cura/user-settings.json").read().decode("utf-8")) + any_extruder_stack = ExtruderManager.getInstance().getExtruderStack(0) + + for stack_name, settings in self._user_settings.items(): + if stack_name == 'global': + self._dialog.exportedSettingModel.addSettingsFromStack(global_stack, i18n_catalog.i18nc("@label", "Global"), settings) + else: + extruder_match = re.fullmatch('extruder_([0-9]+)', stack_name) + if extruder_match is not None: + extruder_nr = int(extruder_match.group(1)) + self._dialog.exportedSettingModel.addSettingsFromStack(any_extruder_stack, + i18n_catalog.i18nc("@label", + "Extruder {0}", extruder_nr + 1), + settings) + except KeyError as e: + # If there is no user settings file, it's not a PCB, so notify user of failure. + Logger.log("w", "File %s is not a valid PCB.", 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() + return WorkspaceReader.PreReadResult.failed + # Show the dialog, informing the user what is about to happen. self._dialog.setMachineConflict(machine_conflict) self._dialog.setIsPrinterGroup(is_printer_group) @@ -628,6 +660,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._dialog.setAllowCreatemachine(not is_pcb) self._dialog.show() + # Choosing the initially selected printer in MachineSelector is_networked_machine = False is_abstract_machine = False @@ -790,8 +823,6 @@ class ThreeMFWorkspaceReader(WorkspaceReader): for stack in extruder_stacks: stack.setNextStack(global_stack, connect_signals = False) - user_settings = {} - if self._load_profile: Logger.log("d", "Workspace loading is checking definitions...") # Get all the definition files & check if they exist. If not, add them. @@ -864,23 +895,6 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._container_registry.addContainer(material_container) Job.yieldThread() QCoreApplication.processEvents() # Ensure that the GUI does not freeze. - else: - Logger.log("d", "Workspace loading user settings...") - try: - user_settings = json.loads(archive.open("Cura/user-settings.json").read().decode("utf-8")) - except KeyError as e: - # If there is no user settings file, it's not a PCB, so notify user of failure. - Logger.log("w", "File %s is not a valid PCB.", 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 [], {} - if global_stack: if self._load_profile: @@ -905,7 +919,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): if not self._load_profile: # Now we have switched, apply the user settings - self._applyUserSettings(global_stack, extruder_stack_dict, user_settings) + self._applyUserSettings(global_stack, extruder_stack_dict, self._user_settings) # Load all the nodes / mesh data of the workspace nodes = self._3mf_mesh_reader.read(file_name) diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index c0006e21a8..1fafcf59f5 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/plugins/3MFReader/WorkspaceDialog.py @@ -22,6 +22,8 @@ import time from cura.CuraApplication import CuraApplication +from .SpecificSettingsModel import SpecificSettingsModel + i18n_catalog = i18nCatalog("cura") @@ -75,6 +77,7 @@ class WorkspaceDialog(QObject): self._has_visible_select_same_profile = False self._select_same_profile_checked = True self._allow_create_machine = True + self._exported_settings_model = SpecificSettingsModel() machineConflictChanged = pyqtSignal() qualityChangesConflictChanged = pyqtSignal() @@ -340,6 +343,10 @@ class WorkspaceDialog(QObject): def allowCreateMachine(self): return self._allow_create_machine + @pyqtProperty(QObject, constant = True) + def exportedSettingModel(self): + return self._exported_settings_model + @pyqtSlot() def closeBackend(self) -> None: """Close the backend: otherwise one could end up with "Slicing...""" diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index c7074ce220..b6a9d59751 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -1,12 +1,12 @@ // Copyright (c) 2022 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.10 +import QtQuick 2.14 import QtQuick.Controls 2.3 import QtQuick.Layouts 1.3 import QtQuick.Window 2.2 -import UM 1.5 as UM +import UM 1.6 as UM import Cura 1.1 as Cura UM.Dialog @@ -171,35 +171,68 @@ UM.Dialog { leftLabelText: catalog.i18nc("@action:label", "Name") rightLabelText: manager.qualityName + visible: manager.isCompatibleMachine } WorkspaceRow { leftLabelText: catalog.i18nc("@action:label", "Intent") rightLabelText: manager.intentName + visible: manager.isCompatibleMachine } WorkspaceRow { leftLabelText: catalog.i18nc("@action:label", "Not in profile") rightLabelText: catalog.i18ncp("@action:label", "%1 override", "%1 overrides", manager.numUserSettings).arg(manager.numUserSettings) - visible: manager.numUserSettings != 0 + visible: manager.numUserSettings != 0 && manager.selectSameProfileChecked && manager.isCompatibleMachine } WorkspaceRow { leftLabelText: catalog.i18nc("@action:label", "Derivative from") rightLabelText: catalog.i18ncp("@action:label", "%1, %2 override", "%1, %2 overrides", manager.numSettingsOverridenByQualityChanges).arg(manager.qualityType).arg(manager.numSettingsOverridenByQualityChanges) - visible: manager.numSettingsOverridenByQualityChanges != 0 + visible: manager.numSettingsOverridenByQualityChanges != 0 && manager.selectSameProfileChecked && manager.isCompatibleMachine + } + + WorkspaceRow + { + leftLabelText: catalog.i18nc("@action:label", "Specific settings") + rightLabelText: catalog.i18ncp("@action:label", "%1 override", "%1 overrides", manager.exportedSettingModel.rowCount()).arg(manager.exportedSettingModel.rowCount()) + buttonText: tableViewSpecificSettings.shouldBeVisible ? catalog.i18nc("@action:button", "Hide settings") : catalog.i18nc("@action:button", "Show settings") + visible: !manager.selectSameProfileChecked || !manager.isCompatibleMachine + onButtonClicked: tableViewSpecificSettings.shouldBeVisible = !tableViewSpecificSettings.shouldBeVisible + } + + Cura.TableView + { + id: tableViewSpecificSettings + width: parent.width - parent.leftPadding - UM.Theme.getSize("default_margin").width + height: UM.Theme.getSize("card").height + visible: shouldBeVisible && (!manager.selectSameProfileChecked || !manager.isCompatibleMachine) + property bool shouldBeVisible: false + + columnHeaders: + [ + catalog.i18nc("@title:column", "Applies on"), + catalog.i18nc("@title:column", "Setting"), + catalog.i18nc("@title:column", "Value") + ] + + model: UM.TableModel + { + id: tableModel + headers: ["category", "label", "value"] + rows: manager.exportedSettingModel.items + } } UM.CheckBox { text: catalog.i18nc("@action:checkbox", "Select the same profile") - enabled: manager.isCompatibleMachine onEnabledChanged: manager.selectSameProfileChecked = enabled tooltip: enabled ? "" : catalog.i18nc("@tooltip", "You can use the same profile only if you have the same printer as the project was published with") - visible: manager.hasVisibleSelectSameProfile + visible: manager.hasVisibleSelectSameProfile && manager.isCompatibleMachine checked: manager.selectSameProfileChecked onCheckedChanged: manager.selectSameProfileChecked = checked diff --git a/plugins/3MFReader/WorkspaceRow.qml b/plugins/3MFReader/WorkspaceRow.qml index 8d9f1f25b3..855b8c18b0 100644 --- a/plugins/3MFReader/WorkspaceRow.qml +++ b/plugins/3MFReader/WorkspaceRow.qml @@ -9,26 +9,38 @@ import QtQuick.Window 2.2 import UM 1.5 as UM import Cura 1.1 as Cura -Row +RowLayout { + id: root + property alias leftLabelText: leftLabel.text property alias rightLabelText: rightLabel.text + property alias buttonText: button.text + signal buttonClicked width: parent.width - height: visible ? childrenRect.height : 0 UM.Label { id: leftLabel text: catalog.i18nc("@action:label", "Type") - width: Math.round(parent.width / 4) + Layout.preferredWidth: Math.round(parent.width / 4) wrapMode: Text.WordWrap } + UM.Label { id: rightLabel text: manager.machineType - width: Math.round(parent.width / 3) wrapMode: Text.WordWrap } + + Cura.TertiaryButton + { + id: button + visible: !text.isEmpty + Layout.maximumHeight: leftLabel.implicitHeight + Layout.fillWidth: true + onClicked: root.buttonClicked() + } } \ No newline at end of file From 2ae990833486e035c8291732e211b32d2ff55799 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 5 Feb 2024 12:58:02 +0100 Subject: [PATCH 153/269] Fix crash CURA-11561 --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index caf411bc67..c28880211d 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -699,7 +699,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): if self._dialog.getResult() == {}: return WorkspaceReader.PreReadResult.cancelled - self._load_profile = not is_pcb or self._dialog.selectSameProfileChecked + self._load_profile = not is_pcb or (self._dialog.selectSameProfileChecked and self._dialog.isCompatibleMachine) self._resolve_strategies = self._dialog.getResult() # From bf3f4061df832376ad30e424ad751d972d41964d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 5 Feb 2024 13:12:14 +0100 Subject: [PATCH 154/269] Fix ratrig definitions --- resources/definitions/ratrig_base.def.json | 1 + resources/definitions/ratrig_vcore3_base.def.json | 1 - resources/definitions/ratrig_vminion.def.json | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/definitions/ratrig_base.def.json b/resources/definitions/ratrig_base.def.json index 22c01c8bc3..ebbef821ce 100644 --- a/resources/definitions/ratrig_base.def.json +++ b/resources/definitions/ratrig_base.def.json @@ -9,6 +9,7 @@ "manufacturer": "RatRig", "file_formats": "text/x-gcode", "exclude_materials": [], + "machine_extruder_trains": { "0": "ratrig_base_extruder_0" }, "first_start_actions": [ "MachineSettingsAction" ], "has_materials": true, "preferred_material": "generic_pla", diff --git a/resources/definitions/ratrig_vcore3_base.def.json b/resources/definitions/ratrig_vcore3_base.def.json index a736da4506..7788bf36f8 100644 --- a/resources/definitions/ratrig_vcore3_base.def.json +++ b/resources/definitions/ratrig_vcore3_base.def.json @@ -27,7 +27,6 @@ "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, "cool_min_layer_time": { "value": 2 }, "fill_outline_gaps": { "value": false }, - "filter_out_tiny_gaps": { "value": false }, "gantry_height": { "value": 30 }, "infill_before_walls": { "value": false }, "infill_overlap": { "value": 30 }, diff --git a/resources/definitions/ratrig_vminion.def.json b/resources/definitions/ratrig_vminion.def.json index 3cfb3baad6..425e1e6a15 100644 --- a/resources/definitions/ratrig_vminion.def.json +++ b/resources/definitions/ratrig_vminion.def.json @@ -34,7 +34,6 @@ "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, "cool_min_layer_time": { "value": 2 }, "fill_outline_gaps": { "value": false }, - "filter_out_tiny_gaps": { "value": false }, "gantry_height": { "value": 30 }, "infill_before_walls": { "value": false }, "infill_overlap": { "value": 30 }, From d67f0696cd0cd1759e65dda99ed9439b67562542 Mon Sep 17 00:00:00 2001 From: nallath Date: Mon, 5 Feb 2024 12:14:00 +0000 Subject: [PATCH 155/269] Applied printer-linter format --- resources/definitions/ratrig_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/ratrig_base.def.json b/resources/definitions/ratrig_base.def.json index ac952969c4..69ab0f139d 100644 --- a/resources/definitions/ratrig_base.def.json +++ b/resources/definitions/ratrig_base.def.json @@ -9,9 +9,9 @@ "manufacturer": "RatRig", "file_formats": "text/x-gcode", "exclude_materials": [], - "machine_extruder_trains": { "0": "ratrig_base_extruder_0" }, "first_start_actions": [ "MachineSettingsAction" ], "has_materials": true, + "machine_extruder_trains": { "0": "ratrig_base_extruder_0" }, "preferred_material": "generic_pla", "preferred_quality_type": "standard", "quality_definition": "ratrig_base", From 21517c502589000777d42e0b1c3dcd487e9260bc Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Mon, 5 Feb 2024 13:22:26 +0100 Subject: [PATCH 156/269] Adding openURL in singleinstance --- cura/SingleInstance.py | 6 +++++- packaging/NSIS/Ultimaker-Cura.nsi.jinja | 2 +- packaging/msi/UltiMaker-Cura.wxs.jinja | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/cura/SingleInstance.py b/cura/SingleInstance.py index 61ab1204fe..2c3e816767 100644 --- a/cura/SingleInstance.py +++ b/cura/SingleInstance.py @@ -92,7 +92,11 @@ class SingleInstance: # Command: Load a model or project file elif command == "open": - self._application.callLater(lambda f = payload["filePath"]: self._application._openFile(f)) + if payload["filePath"].file(): + self._application.callLater(lambda f = payload["filePath"]: self._application._openFile(f)) + if payload["filePath"].url(): + self._application.callLater(lambda f= payload["filepath"]: self._application._openUrl(f)) + # Command: Activate the window and bring it to the top. elif command == "focus": diff --git a/packaging/NSIS/Ultimaker-Cura.nsi.jinja b/packaging/NSIS/Ultimaker-Cura.nsi.jinja index 0a2ce0f517..2106c47312 100644 --- a/packaging/NSIS/Ultimaker-Cura.nsi.jinja +++ b/packaging/NSIS/Ultimaker-Cura.nsi.jinja @@ -156,7 +156,7 @@ WriteRegStr HKCR "slicer" "" "URL:slicer" WriteRegStr HKCR "slicer" "URL Protocol" "" WriteRegStr HKCR "slicer\DefaultIcon" "" "$INSTDIR\${MAIN_APP_EXE},1" WriteRegStr HKCR "slicer\shell" "" "open" -WriteRegStr HKCR "slicer\shell\open\command" "" '"$INSTDIR\${MAIN_APP_EXE}" "%1"' +WriteRegStr HKCR "slicer\shell\open\command" "" '"$INSTDIR\${MAIN_APP_EXE}" --single-instance "%1"' SectionEnd ###################################################################### diff --git a/packaging/msi/UltiMaker-Cura.wxs.jinja b/packaging/msi/UltiMaker-Cura.wxs.jinja index 21f017c813..13c5d2842e 100644 --- a/packaging/msi/UltiMaker-Cura.wxs.jinja +++ b/packaging/msi/UltiMaker-Cura.wxs.jinja @@ -165,7 +165,7 @@ - + From 63c1eb8990ff3b86337fddb0331bc8ca24ea1092 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 5 Feb 2024 14:15:43 +0100 Subject: [PATCH 157/269] Rename to Universal Cura Project CURA-11561 --- plugins/3MFReader/ThreeMFReader.py | 8 ++++---- plugins/3MFReader/ThreeMFWorkspaceReader.py | 20 +++++++++---------- plugins/3MFReader/__init__.py | 8 ++++---- plugins/3MFReader/plugin.json | 2 +- plugins/3MFWriter/ThreeMFWorkspaceWriter.py | 16 +++++++-------- .../3MFWriter/{PCBDialog.py => UCPDialog.py} | 4 ++-- .../{PCBDialog.qml => UCPDialog.qml} | 6 +++--- plugins/3MFWriter/__init__.py | 12 +++++------ plugins/3MFWriter/plugin.json | 2 +- resources/qml/Menus/FileMenu.qml | 8 ++++---- 10 files changed, 43 insertions(+), 43 deletions(-) rename plugins/3MFWriter/{PCBDialog.py => UCPDialog.py} (94%) rename plugins/3MFWriter/{PCBDialog.qml => UCPDialog.qml} (86%) diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index 9f4a4b197b..13d069f5a7 100755 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -48,13 +48,13 @@ class ThreeMFReader(MeshReader): ) MimeTypeDatabase.addMimeType( MimeType( - name="application/x-pcb", - comment="PCB", - suffixes=["pcb"] + name="application/x-ucp", + comment="UCP", + suffixes=["ucp"] ) ) - self._supported_extensions = [".3mf", ".pcb"] + self._supported_extensions = [".3mf", ".ucp"] self._root = None self._base_name = "" self._unit = None diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index c28880211d..e3056065a8 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -113,7 +113,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): def __init__(self) -> None: super().__init__() - self._supported_extensions = [".3mf", ".pcb"] + self._supported_extensions = [".3mf", ".ucp"] self._dialog = WorkspaceDialog() self._3mf_mesh_reader = None self._container_registry = ContainerRegistry.getInstance() @@ -234,14 +234,14 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._resolve_strategies = {k: None for k in resolve_strategy_keys} containers_found_dict = {k: False for k in resolve_strategy_keys} - # Check whether the file is a PCB, which changes some import options - is_pcb = file_name.endswith('.pcb') + # Check whether the file is a UCP, which changes some import options + is_ucp = file_name.endswith('.ucp') # # Read definition containers # machine_definition_id = None - updatable_machines = None if is_pcb else [] + updatable_machines = None if is_ucp else [] machine_definition_container_count = 0 extruder_definition_container_count = 0 definition_container_files = [name for name in cura_file_names if name.endswith(self._definition_container_suffix)] @@ -608,7 +608,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): # Load the user specifically exported settings self._dialog.exportedSettingModel.clear() - if is_pcb: + if is_ucp: try: self._user_settings = json.loads(archive.open("Cura/user-settings.json").read().decode("utf-8")) any_extruder_stack = ExtruderManager.getInstance().getExtruderStack(0) @@ -625,8 +625,8 @@ class ThreeMFWorkspaceReader(WorkspaceReader): "Extruder {0}", extruder_nr + 1), settings) except KeyError as e: - # If there is no user settings file, it's not a PCB, so notify user of failure. - Logger.log("w", "File %s is not a valid PCB.", file_name) + # If there is no user settings file, it's not a UCP, so notify user of failure. + Logger.log("w", "File %s is not a valid UCP.", file_name) message = Message( i18n_catalog.i18nc("@info:error Don't translate the XML tags or !", "Project file {0} is corrupt: {1}.", @@ -656,8 +656,8 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._dialog.setVariantType(variant_type_name) self._dialog.setHasObjectsOnPlate(Application.getInstance().platformActivity) self._dialog.setMissingPackagesMetadata(missing_package_metadata) - self._dialog.setHasVisibleSelectSameProfileChanged(is_pcb) - self._dialog.setAllowCreatemachine(not is_pcb) + self._dialog.setHasVisibleSelectSameProfileChanged(is_ucp) + self._dialog.setAllowCreatemachine(not is_ucp) self._dialog.show() @@ -699,7 +699,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): if self._dialog.getResult() == {}: return WorkspaceReader.PreReadResult.cancelled - self._load_profile = not is_pcb or (self._dialog.selectSameProfileChecked and self._dialog.isCompatibleMachine) + self._load_profile = not is_ucp or (self._dialog.selectSameProfileChecked and self._dialog.isCompatibleMachine) self._resolve_strategies = self._dialog.getResult() # diff --git a/plugins/3MFReader/__init__.py b/plugins/3MFReader/__init__.py index a07420d2c6..101337f05f 100644 --- a/plugins/3MFReader/__init__.py +++ b/plugins/3MFReader/__init__.py @@ -27,8 +27,8 @@ def getMetaData() -> Dict: "description": catalog.i18nc("@item:inlistbox", "3MF File") }, { - "extension": "pcb", - "description": catalog.i18nc("@item:inlistbox", "PCB File") + "extension": "ucp", + "description": catalog.i18nc("@item:inlistbox", "UCP File") } ] metaData["workspace_reader"] = [ @@ -37,8 +37,8 @@ def getMetaData() -> Dict: "description": catalog.i18nc("@item:inlistbox", "3MF File") }, { - "extension": "pcb", - "description": catalog.i18nc("@item:inlistbox", "PCB File") + "extension": "ucp", + "description": catalog.i18nc("@item:inlistbox", "UCP File") } ] diff --git a/plugins/3MFReader/plugin.json b/plugins/3MFReader/plugin.json index 1611c956d3..010adbb501 100644 --- a/plugins/3MFReader/plugin.json +++ b/plugins/3MFReader/plugin.json @@ -2,7 +2,7 @@ "name": "3MF Reader", "author": "Ultimaker B.V.", "version": "1.0.1", - "description": "Provides support for reading 3MF and PCB files.", + "description": "Provides support for reading 3MF and UCP files.", "api": 8, "i18n-catalog": "cura" } diff --git a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py index 9715e9ac98..7cdf884709 100644 --- a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py +++ b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py @@ -15,7 +15,7 @@ from UM.Workspace.WorkspaceWriter import WorkspaceWriter from UM.i18n import i18nCatalog catalog = i18nCatalog("cura") -from .PCBDialog import PCBDialog +from .UCPDialog import UCPDialog from .ThreeMFWriter import ThreeMFWriter from .SettingsExportModel import SettingsExportModel from .SettingsExportGroup import SettingsExportGroup @@ -35,19 +35,19 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): self._config_dialog = None def _preWrite(self): - is_pcb = False + is_ucp = False if hasattr(self._stream, 'name'): - # This only works with local file, but we don't want remote PCB files yet - is_pcb = self._stream.name.endswith('.pcb') + # This only works with local file, but we don't want remote UCP files yet + is_ucp = self._stream.name.endswith('.ucp') - if is_pcb: - self._config_dialog = PCBDialog() - self._config_dialog.finished.connect(self._onPCBConfigFinished) + if is_ucp: + self._config_dialog = UCPDialog() + self._config_dialog.finished.connect(self._onUCPConfigFinished) self._config_dialog.show() else: self._doWrite() - def _onPCBConfigFinished(self, accepted: bool): + def _onUCPConfigFinished(self, accepted: bool): if accepted: self._export_model = self._config_dialog.getModel() self._doWrite() diff --git a/plugins/3MFWriter/PCBDialog.py b/plugins/3MFWriter/UCPDialog.py similarity index 94% rename from plugins/3MFWriter/PCBDialog.py rename to plugins/3MFWriter/UCPDialog.py index 089fa259ac..fb214aded0 100644 --- a/plugins/3MFWriter/PCBDialog.py +++ b/plugins/3MFWriter/UCPDialog.py @@ -14,14 +14,14 @@ from .SettingsExportModel import SettingsExportModel i18n_catalog = i18nCatalog("cura") -class PCBDialog(QObject): +class UCPDialog(QObject): finished = pyqtSignal(bool) def __init__(self, parent = None) -> None: super().__init__(parent) plugin_path = os.path.dirname(__file__) - dialog_path = os.path.join(plugin_path, 'PCBDialog.qml') + dialog_path = os.path.join(plugin_path, 'UCPDialog.qml') self._model = SettingsExportModel() self._view = CuraApplication.getInstance().createQmlComponent(dialog_path, {"manager": self, diff --git a/plugins/3MFWriter/PCBDialog.qml b/plugins/3MFWriter/UCPDialog.qml similarity index 86% rename from plugins/3MFWriter/PCBDialog.qml rename to plugins/3MFWriter/UCPDialog.qml index b65520961b..88552cc292 100644 --- a/plugins/3MFWriter/PCBDialog.qml +++ b/plugins/3MFWriter/UCPDialog.qml @@ -12,7 +12,7 @@ import Cura 1.1 as Cura UM.Dialog { id: exportDialog - title: catalog.i18nc("@title:window", "Export pre-configured build batch") + title: catalog.i18nc("@title:window", "Export Universal Cura Project") margin: UM.Theme.getSize("default_margin").width minimumWidth: UM.Theme.getSize("modal_window_minimum").width @@ -39,14 +39,14 @@ UM.Dialog UM.Label { id: titleLabel - text: catalog.i18nc("@action:title", "Summary - Pre-configured build batch") + text: catalog.i18nc("@action:title", "Summary - Universal Cura Project") font: UM.Theme.getFont("large") } UM.Label { id: descriptionLabel - text: catalog.i18nc("@action:description", "When exporting a build batch, all the models present on the build plate will be included with their current position, orientation and scale. You can also select which per-extruder or per-model settings should be included to ensure a proper printing of the batch, even on different printers.") + text: catalog.i18nc("@action:description", "When exporting a Universal Cura Project, all the models present on the build plate will be included with their current position, orientation and scale. You can also select which per-extruder or per-model settings should be included to ensure a proper printing of the batch, even on different printers.") font: UM.Theme.getFont("default") wrapMode: Text.Wrap Layout.maximumWidth: headerColumn.width diff --git a/plugins/3MFWriter/__init__.py b/plugins/3MFWriter/__init__.py index e0d4037603..40fd42b199 100644 --- a/plugins/3MFWriter/__init__.py +++ b/plugins/3MFWriter/__init__.py @@ -34,9 +34,9 @@ def getMetaData(): "mode": ThreeMFWriter.ThreeMFWriter.OutputMode.BinaryMode }, { - "extension": "pcb", - "description": i18n_catalog.i18nc("@item:inlistbox", "PCB file"), - "mime_type": "application/x-pcb", + "extension": "ucp", + "description": i18n_catalog.i18nc("@item:inlistbox", "Universal Cura Project"), + "mime_type": "application/x-ucp", "mode": ThreeMFWriter.ThreeMFWriter.OutputMode.BinaryMode } ] @@ -50,9 +50,9 @@ def getMetaData(): "mode": ThreeMFWorkspaceWriter.ThreeMFWorkspaceWriter.OutputMode.BinaryMode }, { - "extension": "pcb", - "description": i18n_catalog.i18nc("@item:inlistbox", "Pre-Configured Batch file"), - "mime_type": "application/x-pcb", + "extension": "ucp", + "description": i18n_catalog.i18nc("@item:inlistbox", "Universal Cura Project"), + "mime_type": "application/x-ucp", "mode": ThreeMFWorkspaceWriter.ThreeMFWorkspaceWriter.OutputMode.BinaryMode } ] diff --git a/plugins/3MFWriter/plugin.json b/plugins/3MFWriter/plugin.json index be6d50267c..254384dc25 100644 --- a/plugins/3MFWriter/plugin.json +++ b/plugins/3MFWriter/plugin.json @@ -2,7 +2,7 @@ "name": "3MF Writer", "author": "Ultimaker B.V.", "version": "1.0.1", - "description": "Provides support for writing 3MF and PCB files.", + "description": "Provides support for writing 3MF and UCP files.", "api": 8, "i18n-catalog": "cura" } diff --git a/resources/qml/Menus/FileMenu.qml b/resources/qml/Menus/FileMenu.qml index a6fb339faf..4f7734cb11 100644 --- a/resources/qml/Menus/FileMenu.qml +++ b/resources/qml/Menus/FileMenu.qml @@ -72,15 +72,15 @@ Cura.Menu Cura.MenuItem { - id: savePCBMenu - text: catalog.i18nc("@title:menu menubar:file", "&Save PCB Project...") + id: saveUCPMenu + text: catalog.i18nc("@title:menu menubar:file", "&Save Universal Cura Project...") enabled: UM.WorkspaceFileHandler.enabled onTriggered: { var args = { "filter_by_machine": false, "file_type": "workspace", - "preferred_mimetypes": "application/x-pcb", - "limit_mimetypes": "application/x-pcb"}; + "preferred_mimetypes": "application/x-ucp", + "limit_mimetypes": "application/x-ucp"}; UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args) } } From e554eb264e4e3f44752addcd9079c0257fdb24c3 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Mon, 5 Feb 2024 15:44:46 +0100 Subject: [PATCH 158/269] adding logging for debugging CURA-11596 --- cura/SingleInstance.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cura/SingleInstance.py b/cura/SingleInstance.py index 2c3e816767..ef04ef5ddc 100644 --- a/cura/SingleInstance.py +++ b/cura/SingleInstance.py @@ -52,6 +52,7 @@ class SingleInstance: single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding = "ascii")) for filename in self._files_to_open: + Logger.log("i",f"Filename isxxx {os.path(filename)}") payload = {"command": "open", "filePath": os.path.abspath(filename)} single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding = "ascii")) @@ -73,14 +74,18 @@ class SingleInstance: def _onClientConnected(self) -> None: Logger.log("i", "New connection received on our single-instance server") connection = None #type: Optional[QLocalSocket] + Logger.log("i","getting connection") if self._single_instance_server: connection = self._single_instance_server.nextPendingConnection() + Logger.log("i", f"here: {connection}") if connection is not None: + Logger.log("i","here2") connection.readyRead.connect(lambda c = connection: self.__readCommands(c)) def __readCommands(self, connection: QLocalSocket) -> None: line = connection.readLine() + Logger.log("i", f"line read is {line}") while len(line) != 0: # There is also a .canReadLine() try: payload = json.loads(str(line, encoding = "ascii").strip()) From a5d6ae1c97290a24a6598b0c1d9432028f0b61ee Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Tue, 6 Feb 2024 10:55:33 +0100 Subject: [PATCH 159/269] Bug fix: Do not sett the z distance for the AA0.8 cores of T-PLA. PP-424 --- resources/definitions/fdmprinter.def.json | 12 ------------ .../um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg | 1 - .../um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg | 1 - 3 files changed, 14 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 03850a7344..31a67d0122 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6453,18 +6453,6 @@ "settable_per_extruder": true, "limit_to_extruder": "raft_surface_extruder_nr" }, - "raft_surface_monotonic": - { - "label": "Monotonic Raft Top Surface Order", - "description": "Print raft top surface lines in an ordering that causes them to always overlap with adjacent lines in a single direction. This takes slightly more time to print, but makes the surface look more consistent, which is also visible on the model bottom surface.", - "type": "bool", - "default_value": false, - "value": "skin_monotonic", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_surface_extruder_nr" - }, "raft_wall_count": { "label": "Raft Wall Count", diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg index 2310f2503f..a76864a1a3 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg @@ -69,7 +69,6 @@ speed_wall_x_roofing = =speed_roofing support_angle = 70 support_interface_enable = False support_structure = tree -support_z_distance = 0.35 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg index b3711c1cbd..4973ec35bb 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg @@ -69,7 +69,6 @@ speed_wall_x_roofing = =speed_roofing support_angle = 70 support_interface_enable = False support_structure = tree -support_z_distance = 0.35 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True From 4bb5eed97e13f3f178d32f9112a79959d6ef9e25 Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Tue, 6 Feb 2024 10:57:25 +0100 Subject: [PATCH 160/269] Bug fix: Do not sett the z distance for the AA0.8 cores of T-PLA. PP-424 --- .../quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg | 1 - 2 files changed, 2 deletions(-) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg index 2310f2503f..a76864a1a3 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg @@ -69,7 +69,6 @@ speed_wall_x_roofing = =speed_roofing support_angle = 70 support_interface_enable = False support_structure = tree -support_z_distance = 0.35 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg index b3711c1cbd..4973ec35bb 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg @@ -69,7 +69,6 @@ speed_wall_x_roofing = =speed_roofing support_angle = 70 support_interface_enable = False support_structure = tree -support_z_distance = 0.35 top_bottom_thickness = =max(1 , layer_height * 5) wall_0_wipe_dist = 0.8 z_seam_relative = True From 87cd7a47f5380c7292c4a79eabec6a1a348da6aa Mon Sep 17 00:00:00 2001 From: Frederic Meeuwissen <13856291+Frederic98@users.noreply.github.com> Date: Tue, 6 Feb 2024 11:05:11 +0100 Subject: [PATCH 161/269] Revert "Merge remote-tracking branch 'origin/PP-424-Improve-self-support' into PP-424-Improve-self-support" This reverts commit 0e18407286f9ec1e83548a2bf11386f6667f20fd, reversing changes made to 4bb5eed97e13f3f178d32f9112a79959d6ef9e25. --- resources/definitions/fdmprinter.def.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 31a67d0122..03850a7344 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6453,6 +6453,18 @@ "settable_per_extruder": true, "limit_to_extruder": "raft_surface_extruder_nr" }, + "raft_surface_monotonic": + { + "label": "Monotonic Raft Top Surface Order", + "description": "Print raft top surface lines in an ordering that causes them to always overlap with adjacent lines in a single direction. This takes slightly more time to print, but makes the surface look more consistent, which is also visible on the model bottom surface.", + "type": "bool", + "default_value": false, + "value": "skin_monotonic", + "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", + "settable_per_mesh": false, + "settable_per_extruder": true, + "limit_to_extruder": "raft_surface_extruder_nr" + }, "raft_wall_count": { "label": "Raft Wall Count", From 9c57627a8828d45b2336396b29a572eebc9d5a44 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Tue, 6 Feb 2024 12:17:38 +0100 Subject: [PATCH 162/269] Adding command for opening url CURA-11596 --- cura/SingleInstance.py | 3 --- packaging/msi/UltiMaker-Cura.wxs.jinja | 2 ++ 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/cura/SingleInstance.py b/cura/SingleInstance.py index ef04ef5ddc..fb85e258db 100644 --- a/cura/SingleInstance.py +++ b/cura/SingleInstance.py @@ -74,13 +74,10 @@ class SingleInstance: def _onClientConnected(self) -> None: Logger.log("i", "New connection received on our single-instance server") connection = None #type: Optional[QLocalSocket] - Logger.log("i","getting connection") if self._single_instance_server: connection = self._single_instance_server.nextPendingConnection() - Logger.log("i", f"here: {connection}") if connection is not None: - Logger.log("i","here2") connection.readyRead.connect(lambda c = connection: self.__readCommands(c)) def __readCommands(self, connection: QLocalSocket) -> None: diff --git a/packaging/msi/UltiMaker-Cura.wxs.jinja b/packaging/msi/UltiMaker-Cura.wxs.jinja index 13c5d2842e..1f22dcc8bc 100644 --- a/packaging/msi/UltiMaker-Cura.wxs.jinja +++ b/packaging/msi/UltiMaker-Cura.wxs.jinja @@ -166,6 +166,8 @@ + + From d8cc99bf0deb951d32059e47b7690a0c76babfcb Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 6 Feb 2024 13:00:31 +0100 Subject: [PATCH 163/269] Remove duplicate paths CURA-11483 --- cura/CuraApplication.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 241113ece7..0cc3d20d58 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -376,13 +376,11 @@ class CuraApplication(QtApplication): if platform.system() == "Darwin": Resources.addSecureSearchPath(os.path.join(app_root, "Resources", "share", "cura", "resources")) - Resources.addSecureSearchPath(os.path.join(app_root, "..", "Resources", "share", "cura", "resources")) Resources.addSecureSearchPath( - os.path.join(self._app_install_dir, "..", "Resources", "share", "cura", "resources")) + os.path.join(self._app_install_dir, "Resources", "share", "cura", "resources")) else: Resources.addSecureSearchPath(os.path.join(app_root, "share", "cura", "resources")) Resources.addSecureSearchPath(os.path.join(self._app_install_dir, "share", "cura", "resources")) - Resources.addSecureSearchPath(os.path.join(app_root, "Resources", "share", "cura", "resources")) if not hasattr(sys, "frozen"): cura_data_root = os.environ.get('CURA_DATA_ROOT', None) From 31f3d6161d764e66c469f9c1d3d6de5cff1c8b76 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Tue, 6 Feb 2024 13:19:42 +0100 Subject: [PATCH 164/269] Add missing file CURA-11561 --- plugins/3MFReader/SpecificSettingsModel.py | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 plugins/3MFReader/SpecificSettingsModel.py diff --git a/plugins/3MFReader/SpecificSettingsModel.py b/plugins/3MFReader/SpecificSettingsModel.py new file mode 100644 index 0000000000..fd5719d6b3 --- /dev/null +++ b/plugins/3MFReader/SpecificSettingsModel.py @@ -0,0 +1,38 @@ +# Copyright (c) 2024 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from PyQt6.QtCore import Qt + +from UM.Settings.SettingDefinition import SettingDefinition +from UM.Qt.ListModel import ListModel + + +class SpecificSettingsModel(ListModel): + CategoryRole = Qt.ItemDataRole.UserRole + 1 + LabelRole = Qt.ItemDataRole.UserRole + 2 + ValueRole = Qt.ItemDataRole.UserRole + 3 + + def __init__(self, parent = None): + super().__init__(parent = parent) + self.addRoleName(self.CategoryRole, "category") + self.addRoleName(self.LabelRole, "label") + self.addRoleName(self.ValueRole, "value") + + self._i18n_catalog = None + + def addSettingsFromStack(self, stack, category, settings): + for setting, value in settings.items(): + unit = stack.getProperty(setting, "unit") + + setting_type = stack.getProperty(setting, "type") + if setting_type is not None: + # This is not very good looking, but will do for now + value = SettingDefinition.settingValueToString(setting_type, value) + " " + unit + else: + value = str(value) + + self.appendItem({ + "category": category, + "label": stack.getProperty(setting, "label"), + "value": value + }) From 8073bc0e50473ada7828d707674c9d3822f59b70 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Tue, 6 Feb 2024 16:04:08 +0100 Subject: [PATCH 165/269] adding this preference in mac-os doesn't work. It always opens it up in singlenstance CURA-11596 --- resources/qml/Preferences/GeneralPage.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index 8871944523..0a430eda5d 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -627,6 +627,7 @@ UM.PreferencesPage UM.TooltipArea { width: childrenRect.width + visible: Qt.platform.os !== "osx" height: childrenRect.height text: catalog.i18nc("@info:tooltip","Should opening files from the desktop or external applications open in the same instance of Cura?") From eff45842038373ab436ca67e9fc2173458a09eb5 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Tue, 6 Feb 2024 16:05:34 +0100 Subject: [PATCH 166/269] adding files in single instance in case of url CURA-11596 --- cura/CuraApplication.py | 2 +- cura/SingleInstance.py | 33 ++++++++++++++----------- packaging/NSIS/Ultimaker-Cura.nsi.jinja | 2 +- packaging/msi/UltiMaker-Cura.wxs.jinja | 4 +-- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 67c420028b..bae609c07b 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -356,7 +356,7 @@ class CuraApplication(QtApplication): self._machine_action_manager.initialize() def __sendCommandToSingleInstance(self): - self._single_instance = SingleInstance(self, self._files_to_open) + self._single_instance = SingleInstance(self, self._files_to_open, self._open_url_queue) # If we use single instance, try to connect to the single instance server, send commands, and then exit. # If we cannot find an existing single instance server, this is the only instance, so just keep going. diff --git a/cura/SingleInstance.py b/cura/SingleInstance.py index fb85e258db..02fa6622aa 100644 --- a/cura/SingleInstance.py +++ b/cura/SingleInstance.py @@ -7,14 +7,15 @@ from typing import List, Optional from PyQt6.QtNetwork import QLocalServer, QLocalSocket -from UM.Qt.QtApplication import QtApplication #For typing. +from UM.Qt.QtApplication import QtApplication # For typing. from UM.Logger import Logger class SingleInstance: - def __init__(self, application: QtApplication, files_to_open: Optional[List[str]]) -> None: + def __init__(self, application: QtApplication, files_to_open: Optional[List[str]], url_to_open: Optional[List[str]]) -> None: self._application = application self._files_to_open = files_to_open + self._url_to_open = url_to_open self._single_instance_server = None @@ -33,7 +34,7 @@ class SingleInstance: return False # We only send the files that need to be opened. - if not self._files_to_open: + if not self._files_to_open or not self._url_to_open: Logger.log("i", "No file need to be opened, do nothing.") return True @@ -46,18 +47,21 @@ class SingleInstance: if self._application.getPreferences().getValue("cura/single_instance_clear_before_load"): payload = {"command": "clear-all"} - single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding = "ascii")) + single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding="ascii")) payload = {"command": "focus"} - single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding = "ascii")) + single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding="ascii")) for filename in self._files_to_open: - Logger.log("i",f"Filename isxxx {os.path(filename)}") payload = {"command": "open", "filePath": os.path.abspath(filename)} - single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding = "ascii")) + single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding="ascii")) + + for filename in self._url_to_open: + payload = {"command": "open", "urlPath": os.path.abspath(filename)} + single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding="ascii")) payload = {"command": "close-connection"} - single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding = "ascii")) + single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding="ascii")) single_instance_socket.flush() single_instance_socket.waitForDisconnected() @@ -73,7 +77,7 @@ class SingleInstance: def _onClientConnected(self) -> None: Logger.log("i", "New connection received on our single-instance server") - connection = None #type: Optional[QLocalSocket] + connection = None # type: Optional[QLocalSocket] if self._single_instance_server: connection = self._single_instance_server.nextPendingConnection() @@ -82,10 +86,9 @@ class SingleInstance: def __readCommands(self, connection: QLocalSocket) -> None: line = connection.readLine() - Logger.log("i", f"line read is {line}") - while len(line) != 0: # There is also a .canReadLine() + while len(line) != 0: # There is also a .canReadLine() try: - payload = json.loads(str(line, encoding = "ascii").strip()) + payload = json.loads(str(line, encoding="ascii").strip()) command = payload["command"] # Command: Remove all models from the build plate. @@ -96,8 +99,8 @@ class SingleInstance: elif command == "open": if payload["filePath"].file(): self._application.callLater(lambda f = payload["filePath"]: self._application._openFile(f)) - if payload["filePath"].url(): - self._application.callLater(lambda f= payload["filepath"]: self._application._openUrl(f)) + if payload["urlPath"].url(): + self._application.callLater(lambda f = payload["urlPath"]: self._application._openUrl(f)) # Command: Activate the window and bring it to the top. @@ -106,7 +109,7 @@ class SingleInstance: # 'alert' or flashing the icon in the taskbar is the best thing we do now. main_window = self._application.getMainWindow() if main_window is not None: - self._application.callLater(lambda: main_window.alert(0)) # type: ignore # I don't know why MyPy complains here + self._application.callLater(lambda: main_window.alert(0)) # type: ignore # I don't know why MyPy complains here # Command: Close the socket connection. We're done. elif command == "close-connection": diff --git a/packaging/NSIS/Ultimaker-Cura.nsi.jinja b/packaging/NSIS/Ultimaker-Cura.nsi.jinja index 2106c47312..0a2ce0f517 100644 --- a/packaging/NSIS/Ultimaker-Cura.nsi.jinja +++ b/packaging/NSIS/Ultimaker-Cura.nsi.jinja @@ -156,7 +156,7 @@ WriteRegStr HKCR "slicer" "" "URL:slicer" WriteRegStr HKCR "slicer" "URL Protocol" "" WriteRegStr HKCR "slicer\DefaultIcon" "" "$INSTDIR\${MAIN_APP_EXE},1" WriteRegStr HKCR "slicer\shell" "" "open" -WriteRegStr HKCR "slicer\shell\open\command" "" '"$INSTDIR\${MAIN_APP_EXE}" --single-instance "%1"' +WriteRegStr HKCR "slicer\shell\open\command" "" '"$INSTDIR\${MAIN_APP_EXE}" "%1"' SectionEnd ###################################################################### diff --git a/packaging/msi/UltiMaker-Cura.wxs.jinja b/packaging/msi/UltiMaker-Cura.wxs.jinja index 1f22dcc8bc..21f017c813 100644 --- a/packaging/msi/UltiMaker-Cura.wxs.jinja +++ b/packaging/msi/UltiMaker-Cura.wxs.jinja @@ -165,9 +165,7 @@ - - - + From 664fa4f48d215d9cf52e5f2437bd0ac21a1f9ba5 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Tue, 6 Feb 2024 16:19:01 +0100 Subject: [PATCH 167/269] assigning different command for opening url CURA-11596 --- cura/SingleInstance.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/cura/SingleInstance.py b/cura/SingleInstance.py index 02fa6622aa..3357d22d30 100644 --- a/cura/SingleInstance.py +++ b/cura/SingleInstance.py @@ -56,8 +56,8 @@ class SingleInstance: payload = {"command": "open", "filePath": os.path.abspath(filename)} single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding="ascii")) - for filename in self._url_to_open: - payload = {"command": "open", "urlPath": os.path.abspath(filename)} + for url in self._url_to_open: + payload = {"command": "open-url", "urlPath": url} single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding="ascii")) payload = {"command": "close-connection"} @@ -88,7 +88,7 @@ class SingleInstance: line = connection.readLine() while len(line) != 0: # There is also a .canReadLine() try: - payload = json.loads(str(line, encoding="ascii").strip()) + payload = json.loads(str(line, encoding = "ascii").strip()) command = payload["command"] # Command: Remove all models from the build plate. @@ -97,10 +97,11 @@ class SingleInstance: # Command: Load a model or project file elif command == "open": - if payload["filePath"].file(): - self._application.callLater(lambda f = payload["filePath"]: self._application._openFile(f)) - if payload["urlPath"].url(): - self._application.callLater(lambda f = payload["urlPath"]: self._application._openUrl(f)) + self._application.callLater(lambda f = payload["filePath"]: self._application._openFile(f)) + + #command: Load a url link in Cura + elif command == "open-url": + self._application.callLater(lambda f = payload["urlPath"]: self._application._openUrl(f)) # Command: Activate the window and bring it to the top. From 627bef2eabfd3b3d1560e0df34929d0a46e1c566 Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Tue, 6 Feb 2024 19:34:12 +0100 Subject: [PATCH 168/269] Enable monotonic raft surface for all Ultimaker machines. Disable skin_monotonic for Method XL machines (speed increase), roofing_monotonic is still enable to create a good top surface. PP-430 --- resources/definitions/ultimaker.def.json | 1 + resources/definitions/ultimaker_method_base.def.json | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/ultimaker.def.json b/resources/definitions/ultimaker.def.json index 1669dd5e00..97eaf278e8 100644 --- a/resources/definitions/ultimaker.def.json +++ b/resources/definitions/ultimaker.def.json @@ -96,6 +96,7 @@ "raft_interface_thickness": { "value": "(raft_base_thickness + raft_surface_thickness) / 2" }, "raft_speed": { "value": 15 }, "raft_surface_fan_speed": { "value": "cool_fan_speed_min" }, + "raft_surface_monotonic": { "value": true }, "raft_surface_speed": { "value": "speed_topbottom" }, "relative_extrusion": { diff --git a/resources/definitions/ultimaker_method_base.def.json b/resources/definitions/ultimaker_method_base.def.json index f0808c529e..19fe80b2e2 100644 --- a/resources/definitions/ultimaker_method_base.def.json +++ b/resources/definitions/ultimaker_method_base.def.json @@ -380,7 +380,6 @@ "roofing_material_flow": { "value": "material_flow" }, "roofing_monotonic": { "value": true }, "skin_material_flow": { "value": "0.95*material_flow" }, - "skin_monotonic": { "value": true }, "skin_outline_count": { "value": 0 }, "skin_overlap": { "value": 0 }, "skin_preshrink": { "value": 0 }, From 671698d1a3efe77043501b462507d8f8a2ed7429 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Wed, 7 Feb 2024 08:49:05 +0100 Subject: [PATCH 169/269] Restore useless import version bump CURA-11561 --- plugins/3MFReader/WorkspaceDialog.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index b6a9d59751..8d06b32e14 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -1,7 +1,7 @@ // Copyright (c) 2022 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.14 +import QtQuick 2.10 import QtQuick.Controls 2.3 import QtQuick.Layouts 1.3 import QtQuick.Window 2.2 From bb28a7c5063666b138be862acd607e0fa47a8d42 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Wed, 7 Feb 2024 11:00:54 +0100 Subject: [PATCH 170/269] fixing the if condition CURA-11596 --- cura/SingleInstance.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/cura/SingleInstance.py b/cura/SingleInstance.py index 3357d22d30..c4590fc275 100644 --- a/cura/SingleInstance.py +++ b/cura/SingleInstance.py @@ -5,6 +5,7 @@ import json import os from typing import List, Optional +from PyQt6.QtCore import QUrl from PyQt6.QtNetwork import QLocalServer, QLocalSocket from UM.Qt.QtApplication import QtApplication # For typing. @@ -34,7 +35,7 @@ class SingleInstance: return False # We only send the files that need to be opened. - if not self._files_to_open or not self._url_to_open: + if not self._files_to_open and not self._url_to_open: Logger.log("i", "No file need to be opened, do nothing.") return True @@ -47,17 +48,17 @@ class SingleInstance: if self._application.getPreferences().getValue("cura/single_instance_clear_before_load"): payload = {"command": "clear-all"} - single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding="ascii")) + single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding = "ascii")) payload = {"command": "focus"} - single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding="ascii")) + single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding = "ascii")) for filename in self._files_to_open: payload = {"command": "open", "filePath": os.path.abspath(filename)} - single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding="ascii")) + single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding = "ascii")) for url in self._url_to_open: - payload = {"command": "open-url", "urlPath": url} + payload = {"command": "open-url", "urlPath": url.toString()} single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding="ascii")) payload = {"command": "close-connection"} @@ -82,10 +83,12 @@ class SingleInstance: connection = self._single_instance_server.nextPendingConnection() if connection is not None: + x = self.__readCommands(connection) connection.readyRead.connect(lambda c = connection: self.__readCommands(c)) def __readCommands(self, connection: QLocalSocket) -> None: line = connection.readLine() + print(f"line is {line}") while len(line) != 0: # There is also a .canReadLine() try: payload = json.loads(str(line, encoding = "ascii").strip()) @@ -101,7 +104,8 @@ class SingleInstance: #command: Load a url link in Cura elif command == "open-url": - self._application.callLater(lambda f = payload["urlPath"]: self._application._openUrl(f)) + url = QUrl(payload["urlPath"]) + self._application.callLater(lambda f = url: self._application._openUrl(f)) # Command: Activate the window and bring it to the top. From 206b53072465273db18be15ca398ae116157dbb1 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Wed, 7 Feb 2024 11:05:48 +0100 Subject: [PATCH 171/269] Removing debug statement CURA-11596 --- cura/SingleInstance.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cura/SingleInstance.py b/cura/SingleInstance.py index c4590fc275..c081044201 100644 --- a/cura/SingleInstance.py +++ b/cura/SingleInstance.py @@ -88,7 +88,6 @@ class SingleInstance: def __readCommands(self, connection: QLocalSocket) -> None: line = connection.readLine() - print(f"line is {line}") while len(line) != 0: # There is also a .canReadLine() try: payload = json.loads(str(line, encoding = "ascii").strip()) From 313a7f7068ef494e4e1b6f4fd84669434340302a Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Wed, 7 Feb 2024 12:16:01 +0100 Subject: [PATCH 172/269] remove debug statement CURA-11596 --- cura/SingleInstance.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cura/SingleInstance.py b/cura/SingleInstance.py index c081044201..8c4018a4f7 100644 --- a/cura/SingleInstance.py +++ b/cura/SingleInstance.py @@ -83,7 +83,6 @@ class SingleInstance: connection = self._single_instance_server.nextPendingConnection() if connection is not None: - x = self.__readCommands(connection) connection.readyRead.connect(lambda c = connection: self.__readCommands(c)) def __readCommands(self, connection: QLocalSocket) -> None: From d2e8999e453eacc6bfcc633592c2249d1d730b2a Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Wed, 7 Feb 2024 15:20:52 +0100 Subject: [PATCH 173/269] creating pyqtslot for desired functionality CURA-11596 --- cura/CuraApplication.py | 4 ++++ resources/qml/Preferences/MachinesPage.qml | 3 +-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index edf4353ae8..f8b3894ed9 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1101,6 +1101,10 @@ class CuraApplication(QtApplication): self._object_manager = ObjectsModel(self) return self._object_manager + @pyqtSlot(str, result = "QVariantList") + def getSupportedActionMachineList(self, definition_id: str) -> List["MachineAction"]: + return self._machine_action_manager.getSupportedActions(self._machine_manager.getDefinitionByMachineId(definition_id)) + @pyqtSlot(result = QObject) def getExtrudersModel(self, *args) -> "ExtrudersModel": if self._extruders_model is None: diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index 845c6cf492..1e287e74a0 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -12,7 +12,6 @@ import Cura 1.0 as Cura UM.ManagementPage { id: base - property var machineActionManager: CuraApplication.getMachineActionManager() Item { enabled: false; UM.I18nCatalog { id: catalog; name: "cura"} } title: catalog.i18nc("@title:tab", "Printers") @@ -63,7 +62,7 @@ UM.ManagementPage Repeater { id: machineActionRepeater - model: base.currentItem.id ? machineActionManager.getSupportedActions(Cura.MachineManager.getDefinitionByMachineId(base.currentItem.id)) : null + model: base.currentItem ? CuraApplication.getSupportedActionMachineList(base.currentItem.id) : null Item { From cf1a7889c237a25e92f6307572e750d4dc3ae822 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Wed, 7 Feb 2024 17:01:56 +0100 Subject: [PATCH 174/269] mimicing behavior as files to open CURA-11596 --- cura/CuraApplication.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 8a87ba448c..51ceecd7dd 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -180,6 +180,7 @@ class CuraApplication(QtApplication): # Variables set from CLI self._files_to_open = [] + self._urls_to_open = [] self._use_single_instance = False self._single_instance = None @@ -334,7 +335,7 @@ class CuraApplication(QtApplication): for filename in self._cli_args.file: url = QUrl(filename) if url.scheme() in self._supported_url_schemes: - self._open_url_queue.append(url) + self._urls_to_open.append(url) else: self._files_to_open.append(os.path.abspath(filename)) @@ -357,7 +358,7 @@ class CuraApplication(QtApplication): self._machine_action_manager.initialize() def __sendCommandToSingleInstance(self): - self._single_instance = SingleInstance(self, self._files_to_open, self._open_url_queue) + self._single_instance = SingleInstance(self, self._files_to_open, self._urls_to_open) # If we use single instance, try to connect to the single instance server, send commands, and then exit. # If we cannot find an existing single instance server, this is the only instance, so just keep going. @@ -963,6 +964,8 @@ class CuraApplication(QtApplication): self.callLater(self._openFile, file_name) for file_name in self._open_file_queue: # Open all the files that were queued up while plug-ins were loading. self.callLater(self._openFile, file_name) + for url in self._urls_to_open: + self.callLater(self._openUrl, url) for url in self._open_url_queue: self.callLater(self._openUrl, url) From 495be39d1f7b4c62419edd5742a497f123c2f741 Mon Sep 17 00:00:00 2001 From: Saumya Jain <70144862+saumyaj3@users.noreply.github.com> Date: Thu, 8 Feb 2024 10:51:49 +0100 Subject: [PATCH 175/269] Update cura/SingleInstance.py Co-authored-by: Casper Lamboo --- cura/SingleInstance.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/SingleInstance.py b/cura/SingleInstance.py index 8c4018a4f7..0448ddc647 100644 --- a/cura/SingleInstance.py +++ b/cura/SingleInstance.py @@ -103,7 +103,7 @@ class SingleInstance: #command: Load a url link in Cura elif command == "open-url": url = QUrl(payload["urlPath"]) - self._application.callLater(lambda f = url: self._application._openUrl(f)) + self._application.callLater(lambda: self._application._openUrl(url)) # Command: Activate the window and bring it to the top. From a251a5d2ca1cdba0a1d8971968b49f5076720c95 Mon Sep 17 00:00:00 2001 From: Saumya Jain <70144862+saumyaj3@users.noreply.github.com> Date: Thu, 8 Feb 2024 10:51:56 +0100 Subject: [PATCH 176/269] Update resources/qml/Preferences/GeneralPage.qml Co-authored-by: Casper Lamboo --- resources/qml/Preferences/GeneralPage.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index 0a430eda5d..c313ffbd94 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -627,6 +627,7 @@ UM.PreferencesPage UM.TooltipArea { width: childrenRect.width + // Mac only allows applications to run as a single instance, so providing the option for this os doesn't make much sense visible: Qt.platform.os !== "osx" height: childrenRect.height text: catalog.i18nc("@info:tooltip","Should opening files from the desktop or external applications open in the same instance of Cura?") From 2d82bb94abc92d5ff2e4e0a60e307d44d5cbd8b2 Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Thu, 8 Feb 2024 16:20:02 +0100 Subject: [PATCH 177/269] Set retraction_min_travel to 5mm for all S-line and Method machines. This improves the infill pattern wall overlaps (for TPU top surfaces and raft base layers) and reduces the amount of retracts in tree supports islands. It also cleans up the settings. PP-389 --- resources/definitions/ultimaker.def.json | 1 + resources/definitions/ultimaker3.def.json | 1 - resources/definitions/ultimaker_method_base.def.json | 1 - resources/definitions/ultimaker_s3.def.json | 1 - resources/definitions/ultimaker_s5.def.json | 1 - resources/quality/ultimaker_s3/um_s3_aa0.25_nylon_0.1mm.inst.cfg | 1 - resources/quality/ultimaker_s3/um_s3_aa0.25_pc_0.1mm.inst.cfg | 1 - resources/quality/ultimaker_s3/um_s3_aa0.25_pp_0.1mm.inst.cfg | 1 - resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.06mm.inst.cfg | 1 - resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.15mm.inst.cfg | 1 - resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.1mm.inst.cfg | 1 - resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.2mm.inst.cfg | 1 - resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.15mm.inst.cfg | 1 - resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.1mm.inst.cfg | 1 - resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.2mm.inst.cfg | 1 - resources/quality/ultimaker_s3/um_s3_aa0.4_tpu_0.15mm.inst.cfg | 1 - resources/quality/ultimaker_s3/um_s3_aa0.4_tpu_0.1mm.inst.cfg | 1 - resources/quality/ultimaker_s3/um_s3_aa0.4_tpu_0.2mm.inst.cfg | 1 - resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg | 1 - resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg | 1 - resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg | 1 - resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg | 1 - resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg | 1 - resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.25_nylon_0.1mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.25_pc_0.1mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.25_pp_0.1mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.06mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.15mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.1mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.2mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.15mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.1mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.2mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.4_tpu_0.15mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.4_tpu_0.1mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.4_tpu_0.2mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg | 1 - resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg | 1 - resources/variants/ultimaker_s3_aa0.25.inst.cfg | 1 - resources/variants/ultimaker_s3_aa0.8.inst.cfg | 1 - resources/variants/ultimaker_s3_aa04.inst.cfg | 1 - resources/variants/ultimaker_s3_bb0.8.inst.cfg | 1 - resources/variants/ultimaker_s3_bb04.inst.cfg | 1 - resources/variants/ultimaker_s3_cc04.inst.cfg | 1 - resources/variants/ultimaker_s3_cc06.inst.cfg | 1 - resources/variants/ultimaker_s5_aa0.25.inst.cfg | 1 - resources/variants/ultimaker_s5_aa0.8.inst.cfg | 1 - resources/variants/ultimaker_s5_aa04.inst.cfg | 1 - resources/variants/ultimaker_s5_bb0.8.inst.cfg | 1 - resources/variants/ultimaker_s5_bb04.inst.cfg | 1 - resources/variants/ultimaker_s5_cc04.inst.cfg | 1 - resources/variants/ultimaker_s5_cc06.inst.cfg | 1 - resources/variants/ultimaker_s7_aa0.25.inst.cfg | 1 - resources/variants/ultimaker_s7_aa0.8.inst.cfg | 1 - resources/variants/ultimaker_s7_aa04.inst.cfg | 1 - resources/variants/ultimaker_s7_bb0.8.inst.cfg | 1 - resources/variants/ultimaker_s7_bb04.inst.cfg | 1 - resources/variants/ultimaker_s7_cc04.inst.cfg | 1 - resources/variants/ultimaker_s7_cc06.inst.cfg | 1 - 64 files changed, 1 insertion(+), 63 deletions(-) diff --git a/resources/definitions/ultimaker.def.json b/resources/definitions/ultimaker.def.json index 1669dd5e00..dae64cea6b 100644 --- a/resources/definitions/ultimaker.def.json +++ b/resources/definitions/ultimaker.def.json @@ -106,6 +106,7 @@ "retraction_combing_max_distance": { "value": 15 }, "retraction_count_max": { "value": 25 }, "retraction_extrusion_window": { "value": 1 }, + "retraction_min_travel": { "value": 5 }, "roofing_layer_count": { "value": "1" }, "roofing_material_flow": { "value": "material_flow" }, "skin_angles": { "value": "[] if infill_pattern not in ['cross', 'cross_3d'] else [20, 110]" }, diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index 19df92c08d..17a4b6045e 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -156,7 +156,6 @@ "retraction_hop": { "value": "2" }, "retraction_hop_enabled": { "value": "extruders_enabled_count > 1" }, "retraction_hop_only_when_collides": { "value": "True" }, - "retraction_min_travel": { "value": "5" }, "retraction_prime_speed": { "value": "15" }, "skin_overlap": { "value": "10" }, "speed_prime_tower": { "value": "speed_topbottom" }, diff --git a/resources/definitions/ultimaker_method_base.def.json b/resources/definitions/ultimaker_method_base.def.json index f0808c529e..6e40f0bbf1 100644 --- a/resources/definitions/ultimaker_method_base.def.json +++ b/resources/definitions/ultimaker_method_base.def.json @@ -373,7 +373,6 @@ "retraction_hop": { "value": 0.4 }, "retraction_hop_enabled": { "value": true }, "retraction_hop_only_when_collides": { "value": false }, - "retraction_min_travel": { "value": "line_width * 4" }, "retraction_prime_speed": { "value": "retraction_speed" }, "retraction_speed": { "value": 5 }, "roofing_layer_count": { "value": 2 }, diff --git a/resources/definitions/ultimaker_s3.def.json b/resources/definitions/ultimaker_s3.def.json index add1782368..483825df5a 100644 --- a/resources/definitions/ultimaker_s3.def.json +++ b/resources/definitions/ultimaker_s3.def.json @@ -108,7 +108,6 @@ "retraction_hop": { "value": "2" }, "retraction_hop_enabled": { "value": "extruders_enabled_count > 1" }, "retraction_hop_only_when_collides": { "value": "True" }, - "retraction_min_travel": { "value": "5" }, "retraction_prime_speed": { "value": "15" }, "retraction_speed": { "value": "45" }, "speed_prime_tower": { "value": "speed_topbottom" }, diff --git a/resources/definitions/ultimaker_s5.def.json b/resources/definitions/ultimaker_s5.def.json index ec82e6b630..cd48c4fd38 100644 --- a/resources/definitions/ultimaker_s5.def.json +++ b/resources/definitions/ultimaker_s5.def.json @@ -110,7 +110,6 @@ "retraction_hop": { "value": "2" }, "retraction_hop_enabled": { "value": "extruders_enabled_count > 1" }, "retraction_hop_only_when_collides": { "value": "True" }, - "retraction_min_travel": { "value": "5" }, "retraction_prime_speed": { "value": "15" }, "retraction_speed": { "value": "45" }, "speed_prime_tower": { "value": "speed_topbottom" }, diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_nylon_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_nylon_0.1mm.inst.cfg index c6d99b63b5..e0d3aa4d50 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_nylon_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_nylon_0.1mm.inst.cfg @@ -17,7 +17,6 @@ machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 20 ooze_shield_angle = 40 raft_airgap = 0.4 -retraction_min_travel = 5 speed_print = 70 speed_topbottom = =math.ceil(speed_print * 30 / 70) speed_wall = =math.ceil(speed_print * 30 / 70) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_pc_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_pc_0.1mm.inst.cfg index ec86494397..369cbcd563 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_pc_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_pc_0.1mm.inst.cfg @@ -25,7 +25,6 @@ prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 25 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_pp_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_pp_0.1mm.inst.cfg index 77082932a5..6485844da8 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_pp_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_pp_0.1mm.inst.cfg @@ -28,7 +28,6 @@ retraction_count_max = 15 retraction_extra_prime_amount = 0.2 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 retraction_prime_speed = 15 speed_print = 25 speed_wall = =math.ceil(speed_print * 25 / 25) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.06mm.inst.cfg index f46f816cfb..c9eebee8a0 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.06mm.inst.cfg @@ -26,7 +26,6 @@ prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 25 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.15mm.inst.cfg index 2c23449373..bcd04f4b24 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.15mm.inst.cfg @@ -25,7 +25,6 @@ prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 25 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.1mm.inst.cfg index e0899c8dc2..278e502231 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.1mm.inst.cfg @@ -26,7 +26,6 @@ prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 25 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.2mm.inst.cfg index 329bd095d5..1baf43933c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.2mm.inst.cfg @@ -25,7 +25,6 @@ prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 25 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.15mm.inst.cfg index eee8fc31b6..3b106196f2 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.15mm.inst.cfg @@ -28,7 +28,6 @@ retraction_count_max = 15 retraction_extra_prime_amount = 0.8 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 speed_print = 25 speed_topbottom = =math.ceil(speed_print * 25 / 25) speed_wall = =math.ceil(speed_print * 25 / 25) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.1mm.inst.cfg index fa87825718..455338a901 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.1mm.inst.cfg @@ -29,7 +29,6 @@ retraction_count_max = 15 retraction_extra_prime_amount = 0.8 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 speed_print = 25 speed_topbottom = =math.ceil(speed_print * 25 / 25) speed_wall = =math.ceil(speed_print * 25 / 25) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.2mm.inst.cfg index 6c90ec685f..b1f5e1f19a 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.2mm.inst.cfg @@ -29,7 +29,6 @@ retraction_count_max = 15 retraction_extra_prime_amount = 0.8 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 speed_print = 25 speed_topbottom = =math.ceil(speed_print * 25 / 25) speed_wall = =math.ceil(speed_print * 25 / 25) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_tpu_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_tpu_0.15mm.inst.cfg index 15018203e9..601886a065 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_tpu_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_tpu_0.15mm.inst.cfg @@ -28,7 +28,6 @@ prime_tower_wipe_enabled = True retraction_count_max = 15 retraction_extra_prime_amount = 0.8 retraction_hop_only_when_collides = True -retraction_min_travel = =line_width * 2 skin_line_width = =round(line_width / 0.8, 2) speed_print = 25 speed_topbottom = =math.ceil(speed_print * 0.8) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_tpu_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_tpu_0.1mm.inst.cfg index 1b9912c1d6..bb303eeb33 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_tpu_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_tpu_0.1mm.inst.cfg @@ -29,7 +29,6 @@ prime_tower_wipe_enabled = True retraction_count_max = 15 retraction_extra_prime_amount = 0.8 retraction_hop_only_when_collides = True -retraction_min_travel = =line_width * 2 skin_line_width = =round(line_width / 0.8, 2) speed_print = 25 speed_topbottom = =math.ceil(speed_print * 0.8) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_tpu_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_tpu_0.2mm.inst.cfg index 971cee7b3a..85c37d439d 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_tpu_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_tpu_0.2mm.inst.cfg @@ -28,7 +28,6 @@ prime_tower_wipe_enabled = True retraction_count_max = 15 retraction_extra_prime_amount = 0.8 retraction_hop_only_when_collides = True -retraction_min_travel = =line_width * 2 skin_line_width = =round(line_width / 0.8, 2) speed_print = 25 speed_topbottom = =math.ceil(speed_print * 0.8) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg index 163f32a36d..7619fcf43d 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg @@ -24,7 +24,6 @@ prime_tower_min_volume = 10 retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 -retraction_min_travel = 1.5 retraction_prime_speed = 15 speed_wall_x = =math.ceil(speed_wall * 30 / 30) switch_extruder_prime_speed = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg index 3f75c3366e..b157ed198c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg @@ -24,7 +24,6 @@ prime_tower_min_volume = 15 retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 -retraction_min_travel = 1.5 retraction_prime_speed = 15 speed_wall_x = =math.ceil(speed_wall * 30 / 30) switch_extruder_prime_speed = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg index b2c5dab3c4..550a26c7f8 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg @@ -24,7 +24,6 @@ prime_tower_min_volume = 20 retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 -retraction_min_travel = 1.5 retraction_prime_speed = 15 speed_infill = =math.ceil(speed_wall * 30 / 30) speed_wall_x = =math.ceil(speed_wall * 30 / 30) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg index 75949f45aa..5d6ce58f7c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg @@ -27,7 +27,6 @@ retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 retraction_hop_only_when_collides = False -retraction_min_travel = =line_width * 2 retraction_prime_speed = 15 speed_print = 30 speed_topbottom = =math.ceil(speed_print * 25 / 30) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg index 034bda5d09..1b69ada75d 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg @@ -28,7 +28,6 @@ retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 retraction_hop_only_when_collides = False -retraction_min_travel = =line_width * 2 retraction_prime_speed = 15 speed_print = 30 speed_topbottom = =math.ceil(speed_print * 23 / 30) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg index e7189d5467..d678d7e178 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg @@ -27,7 +27,6 @@ retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 retraction_hop_only_when_collides = False -retraction_min_travel = =line_width * 2 retraction_prime_speed = 15 speed_infill = =speed_print speed_print = 30 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_nylon_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_nylon_0.1mm.inst.cfg index 38267fcf24..ea86a9a9a6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_nylon_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_nylon_0.1mm.inst.cfg @@ -17,7 +17,6 @@ machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 20 ooze_shield_angle = 40 raft_airgap = 0.4 -retraction_min_travel = 5 speed_print = 70 speed_topbottom = =math.ceil(speed_print * 30 / 70) speed_wall = =math.ceil(speed_print * 30 / 70) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_pc_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_pc_0.1mm.inst.cfg index 5779142162..eef6e66a5e 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_pc_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_pc_0.1mm.inst.cfg @@ -25,7 +25,6 @@ prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 25 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_pp_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_pp_0.1mm.inst.cfg index 64b1be79aa..56689c4bfa 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_pp_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_pp_0.1mm.inst.cfg @@ -28,7 +28,6 @@ retraction_count_max = 15 retraction_extra_prime_amount = 0.2 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 retraction_prime_speed = 15 speed_print = 25 speed_wall = =math.ceil(speed_print * 25 / 25) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.06mm.inst.cfg index 0b471a8c75..c58107dcf9 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.06mm.inst.cfg @@ -26,7 +26,6 @@ prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 25 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.15mm.inst.cfg index 6c9710e436..b210b894e5 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.15mm.inst.cfg @@ -25,7 +25,6 @@ prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 25 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.1mm.inst.cfg index 945b77e699..aa17d35a97 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.1mm.inst.cfg @@ -26,7 +26,6 @@ prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 25 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.2mm.inst.cfg index b523e3c646..616443b129 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.2mm.inst.cfg @@ -25,7 +25,6 @@ prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 25 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.15mm.inst.cfg index 85e892628d..8eb0d257d6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.15mm.inst.cfg @@ -28,7 +28,6 @@ retraction_count_max = 15 retraction_extra_prime_amount = 0.8 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 speed_print = 25 speed_topbottom = =math.ceil(speed_print * 25 / 25) speed_wall = =math.ceil(speed_print * 25 / 25) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.1mm.inst.cfg index 531f946ba8..bd4dd317bb 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.1mm.inst.cfg @@ -29,7 +29,6 @@ retraction_count_max = 15 retraction_extra_prime_amount = 0.8 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 speed_print = 25 speed_topbottom = =math.ceil(speed_print * 25 / 25) speed_wall = =math.ceil(speed_print * 25 / 25) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.2mm.inst.cfg index a7f63a76b1..1e5ea9efb6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.2mm.inst.cfg @@ -29,7 +29,6 @@ retraction_count_max = 15 retraction_extra_prime_amount = 0.8 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 speed_print = 25 speed_topbottom = =math.ceil(speed_print * 25 / 25) speed_wall = =math.ceil(speed_print * 25 / 25) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_tpu_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_tpu_0.15mm.inst.cfg index 0b69ae0c43..db01865cf8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_tpu_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_tpu_0.15mm.inst.cfg @@ -28,7 +28,6 @@ prime_tower_wipe_enabled = True retraction_count_max = 15 retraction_extra_prime_amount = 0.8 retraction_hop_only_when_collides = True -retraction_min_travel = =line_width * 2 skin_line_width = =round(line_width / 0.8, 2) speed_print = 25 speed_topbottom = =math.ceil(speed_print * 0.8) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_tpu_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_tpu_0.1mm.inst.cfg index 29aa42a436..27a8bb863b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_tpu_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_tpu_0.1mm.inst.cfg @@ -29,7 +29,6 @@ prime_tower_wipe_enabled = True retraction_count_max = 15 retraction_extra_prime_amount = 0.8 retraction_hop_only_when_collides = True -retraction_min_travel = =line_width * 2 skin_line_width = =round(line_width / 0.8, 2) speed_print = 25 speed_topbottom = =math.ceil(speed_print * 0.8) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_tpu_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_tpu_0.2mm.inst.cfg index 48e6ffb81b..cf3069ee0f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_tpu_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_tpu_0.2mm.inst.cfg @@ -28,7 +28,6 @@ prime_tower_wipe_enabled = True retraction_count_max = 15 retraction_extra_prime_amount = 0.8 retraction_hop_only_when_collides = True -retraction_min_travel = =line_width * 2 skin_line_width = =round(line_width / 0.8, 2) speed_print = 25 speed_topbottom = =math.ceil(speed_print * 0.8) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg index 149104700e..c338c4b7ff 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg @@ -24,7 +24,6 @@ prime_tower_min_volume = 10 retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 -retraction_min_travel = 1.5 retraction_prime_speed = 15 speed_wall_x = =math.ceil(speed_wall * 30 / 30) switch_extruder_prime_speed = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg index 670ec78d51..62d9eb235d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg @@ -24,7 +24,6 @@ prime_tower_min_volume = 15 retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 -retraction_min_travel = 1.5 retraction_prime_speed = 15 speed_wall_x = =math.ceil(speed_wall * 30 / 30) switch_extruder_prime_speed = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg index c9b5c26d64..b2792b6fee 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg @@ -24,7 +24,6 @@ prime_tower_min_volume = 20 retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 -retraction_min_travel = 1.5 retraction_prime_speed = 15 speed_infill = =math.ceil(speed_wall * 30 / 30) speed_wall_x = =math.ceil(speed_wall * 30 / 30) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg index 43436cd4c7..2491d0ed88 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg @@ -27,7 +27,6 @@ retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 retraction_hop_only_when_collides = False -retraction_min_travel = =line_width * 2 retraction_prime_speed = 15 speed_print = 30 speed_topbottom = =math.ceil(speed_print * 25 / 30) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg index 58b524dd2a..e975175ce0 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg @@ -28,7 +28,6 @@ retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 retraction_hop_only_when_collides = False -retraction_min_travel = =line_width * 2 retraction_prime_speed = 15 speed_print = 30 speed_topbottom = =math.ceil(speed_print * 23 / 30) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg index d17ec5486a..5334fac1f0 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg @@ -27,7 +27,6 @@ retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 retraction_hop_only_when_collides = False -retraction_min_travel = =line_width * 2 speed_infill = =speed_print speed_print = 30 speed_topbottom = =math.ceil(speed_print * 20 / 30) diff --git a/resources/variants/ultimaker_s3_aa0.25.inst.cfg b/resources/variants/ultimaker_s3_aa0.25.inst.cfg index 1f3baa432f..97b303035c 100644 --- a/resources/variants/ultimaker_s3_aa0.25.inst.cfg +++ b/resources/variants/ultimaker_s3_aa0.25.inst.cfg @@ -16,7 +16,6 @@ machine_nozzle_heat_up_speed = 1.5 machine_nozzle_id = AA 0.25 machine_nozzle_size = 0.25 machine_nozzle_tip_outer_diameter = 0.65 -retraction_min_travel = 0.7 retraction_prime_speed = =retraction_speed speed_print = 55 speed_topbottom = 20 diff --git a/resources/variants/ultimaker_s3_aa0.8.inst.cfg b/resources/variants/ultimaker_s3_aa0.8.inst.cfg index c30365897b..e7d3487503 100644 --- a/resources/variants/ultimaker_s3_aa0.8.inst.cfg +++ b/resources/variants/ultimaker_s3_aa0.8.inst.cfg @@ -29,7 +29,6 @@ raft_surface_layers = 1 retraction_amount = 6.5 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = =line_width * 2 retraction_speed = 25 speed_print = 35 speed_topbottom = =math.ceil(speed_print * 25 / 35) diff --git a/resources/variants/ultimaker_s3_aa04.inst.cfg b/resources/variants/ultimaker_s3_aa04.inst.cfg index b3f76758f4..76992b5805 100644 --- a/resources/variants/ultimaker_s3_aa04.inst.cfg +++ b/resources/variants/ultimaker_s3_aa04.inst.cfg @@ -14,7 +14,6 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_id = AA 0.4 machine_nozzle_tip_outer_diameter = 1.0 retraction_amount = 6.5 -retraction_min_travel = =line_width * 2 speed_print = 70 speed_topbottom = =math.ceil(speed_print * 30 / 70) speed_wall = =math.ceil(speed_print * 30 / 70) diff --git a/resources/variants/ultimaker_s3_bb0.8.inst.cfg b/resources/variants/ultimaker_s3_bb0.8.inst.cfg index 34e1b6d308..d0f78ac3bd 100644 --- a/resources/variants/ultimaker_s3_bb0.8.inst.cfg +++ b/resources/variants/ultimaker_s3_bb0.8.inst.cfg @@ -30,7 +30,6 @@ prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = =line_width * 3 speed_prime_tower = =math.ceil(speed_print * 7 / 35) speed_print = 35 speed_support = =math.ceil(speed_print * 25 / 35) diff --git a/resources/variants/ultimaker_s3_bb04.inst.cfg b/resources/variants/ultimaker_s3_bb04.inst.cfg index e50241aa3a..4e232cbb5e 100644 --- a/resources/variants/ultimaker_s3_bb04.inst.cfg +++ b/resources/variants/ultimaker_s3_bb04.inst.cfg @@ -16,7 +16,6 @@ acceleration_support_interface = =math.ceil(acceleration_support * 1500 / 2000) machine_nozzle_heat_up_speed = 1.5 machine_nozzle_id = BB 0.4 machine_nozzle_tip_outer_diameter = 1.0 -retraction_min_travel = =3 * line_width speed_prime_tower = =math.ceil(speed_print * 10 / 35) speed_support = =math.ceil(speed_print * 25 / 35) speed_support_interface = =math.ceil(speed_support * 20 / 25) diff --git a/resources/variants/ultimaker_s3_cc04.inst.cfg b/resources/variants/ultimaker_s3_cc04.inst.cfg index 19192bfba6..38f04547aa 100644 --- a/resources/variants/ultimaker_s3_cc04.inst.cfg +++ b/resources/variants/ultimaker_s3_cc04.inst.cfg @@ -13,7 +13,6 @@ brim_width = 7 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_id = CC 0.4 machine_nozzle_size = 0.4 -retraction_min_travel = =line_width * 2 retraction_prime_speed = =retraction_speed speed_infill = =speed_print speed_print = 45 diff --git a/resources/variants/ultimaker_s3_cc06.inst.cfg b/resources/variants/ultimaker_s3_cc06.inst.cfg index 925a9f68d6..e42817e8f8 100644 --- a/resources/variants/ultimaker_s3_cc06.inst.cfg +++ b/resources/variants/ultimaker_s3_cc06.inst.cfg @@ -13,7 +13,6 @@ brim_width = 7 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_id = CC 0.6 machine_nozzle_size = 0.6 -retraction_min_travel = =line_width * 2 retraction_prime_speed = =retraction_speed speed_infill = =speed_print speed_print = 45 diff --git a/resources/variants/ultimaker_s5_aa0.25.inst.cfg b/resources/variants/ultimaker_s5_aa0.25.inst.cfg index 519b21c920..08ed6132f5 100644 --- a/resources/variants/ultimaker_s5_aa0.25.inst.cfg +++ b/resources/variants/ultimaker_s5_aa0.25.inst.cfg @@ -16,7 +16,6 @@ machine_nozzle_heat_up_speed = 1.5 machine_nozzle_id = AA 0.25 machine_nozzle_size = 0.25 machine_nozzle_tip_outer_diameter = 0.65 -retraction_min_travel = 0.7 retraction_prime_speed = =retraction_speed speed_print = 55 speed_topbottom = 20 diff --git a/resources/variants/ultimaker_s5_aa0.8.inst.cfg b/resources/variants/ultimaker_s5_aa0.8.inst.cfg index b482c418f0..04a3a97d11 100644 --- a/resources/variants/ultimaker_s5_aa0.8.inst.cfg +++ b/resources/variants/ultimaker_s5_aa0.8.inst.cfg @@ -29,7 +29,6 @@ raft_surface_layers = 1 retraction_amount = 6.5 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = =line_width * 2 retraction_speed = 25 speed_print = 35 speed_topbottom = =math.ceil(speed_print * 25 / 35) diff --git a/resources/variants/ultimaker_s5_aa04.inst.cfg b/resources/variants/ultimaker_s5_aa04.inst.cfg index 09f528162d..fd4f1ff778 100644 --- a/resources/variants/ultimaker_s5_aa04.inst.cfg +++ b/resources/variants/ultimaker_s5_aa04.inst.cfg @@ -14,7 +14,6 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_id = AA 0.4 machine_nozzle_tip_outer_diameter = 1.0 retraction_amount = 6.5 -retraction_min_travel = =line_width * 2 speed_print = 70 speed_topbottom = =math.ceil(speed_print * 30 / 70) speed_wall = =math.ceil(speed_print * 30 / 70) diff --git a/resources/variants/ultimaker_s5_bb0.8.inst.cfg b/resources/variants/ultimaker_s5_bb0.8.inst.cfg index 660a6b10f4..07b556d206 100644 --- a/resources/variants/ultimaker_s5_bb0.8.inst.cfg +++ b/resources/variants/ultimaker_s5_bb0.8.inst.cfg @@ -30,7 +30,6 @@ prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = =line_width * 3 speed_prime_tower = =math.ceil(speed_print * 7 / 35) speed_print = 35 speed_support = =math.ceil(speed_print * 25 / 35) diff --git a/resources/variants/ultimaker_s5_bb04.inst.cfg b/resources/variants/ultimaker_s5_bb04.inst.cfg index 2058185bb8..7959fc75c2 100644 --- a/resources/variants/ultimaker_s5_bb04.inst.cfg +++ b/resources/variants/ultimaker_s5_bb04.inst.cfg @@ -16,7 +16,6 @@ acceleration_support_interface = =math.ceil(acceleration_support * 1500 / 2000) machine_nozzle_heat_up_speed = 1.5 machine_nozzle_id = BB 0.4 machine_nozzle_tip_outer_diameter = 1.0 -retraction_min_travel = =3 * line_width speed_prime_tower = =math.ceil(speed_print * 10 / 35) speed_support = =math.ceil(speed_print * 25 / 35) speed_support_interface = =math.ceil(speed_support * 20 / 25) diff --git a/resources/variants/ultimaker_s5_cc04.inst.cfg b/resources/variants/ultimaker_s5_cc04.inst.cfg index ef64dc0ae4..5510d0126f 100644 --- a/resources/variants/ultimaker_s5_cc04.inst.cfg +++ b/resources/variants/ultimaker_s5_cc04.inst.cfg @@ -13,7 +13,6 @@ brim_width = 7 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_id = CC 0.4 machine_nozzle_size = 0.4 -retraction_min_travel = =line_width * 2 retraction_prime_speed = =retraction_speed speed_infill = =speed_print speed_print = 45 diff --git a/resources/variants/ultimaker_s5_cc06.inst.cfg b/resources/variants/ultimaker_s5_cc06.inst.cfg index ba33bab17b..a49c790e4f 100644 --- a/resources/variants/ultimaker_s5_cc06.inst.cfg +++ b/resources/variants/ultimaker_s5_cc06.inst.cfg @@ -13,7 +13,6 @@ brim_width = 7 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_id = CC 0.6 machine_nozzle_size = 0.6 -retraction_min_travel = =line_width * 2 retraction_prime_speed = =retraction_speed speed_infill = =speed_print speed_print = 45 diff --git a/resources/variants/ultimaker_s7_aa0.25.inst.cfg b/resources/variants/ultimaker_s7_aa0.25.inst.cfg index 1495af6c48..fc1bdcfef2 100644 --- a/resources/variants/ultimaker_s7_aa0.25.inst.cfg +++ b/resources/variants/ultimaker_s7_aa0.25.inst.cfg @@ -16,7 +16,6 @@ machine_nozzle_heat_up_speed = 1.5 machine_nozzle_id = AA 0.25 machine_nozzle_size = 0.25 machine_nozzle_tip_outer_diameter = 0.65 -retraction_min_travel = 0.7 retraction_prime_speed = =retraction_speed speed_print = 55 speed_topbottom = 20 diff --git a/resources/variants/ultimaker_s7_aa0.8.inst.cfg b/resources/variants/ultimaker_s7_aa0.8.inst.cfg index a5b6a66516..b3253f7d25 100644 --- a/resources/variants/ultimaker_s7_aa0.8.inst.cfg +++ b/resources/variants/ultimaker_s7_aa0.8.inst.cfg @@ -29,7 +29,6 @@ raft_surface_layers = 1 retraction_amount = 6.5 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = =line_width * 2 retraction_speed = 25 speed_print = 35 speed_topbottom = =math.ceil(speed_print * 25 / 35) diff --git a/resources/variants/ultimaker_s7_aa04.inst.cfg b/resources/variants/ultimaker_s7_aa04.inst.cfg index a9079c975e..6aee6597e0 100644 --- a/resources/variants/ultimaker_s7_aa04.inst.cfg +++ b/resources/variants/ultimaker_s7_aa04.inst.cfg @@ -14,7 +14,6 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_id = AA 0.4 machine_nozzle_tip_outer_diameter = 1.0 retraction_amount = 6.5 -retraction_min_travel = =line_width * 2 speed_print = 70 speed_topbottom = =math.ceil(speed_print * 30 / 70) speed_wall = =math.ceil(speed_print * 30 / 70) diff --git a/resources/variants/ultimaker_s7_bb0.8.inst.cfg b/resources/variants/ultimaker_s7_bb0.8.inst.cfg index 6823fe18a4..010d5c7cf1 100644 --- a/resources/variants/ultimaker_s7_bb0.8.inst.cfg +++ b/resources/variants/ultimaker_s7_bb0.8.inst.cfg @@ -31,7 +31,6 @@ raft_surface_layers = 1 retraction_amount = 4.5 retraction_hop = 2 retraction_hop_only_when_collides = True -retraction_min_travel = =line_width * 3 speed_prime_tower = =math.ceil(speed_print * 7 / 35) speed_print = 35 speed_support = =math.ceil(speed_print * 25 / 35) diff --git a/resources/variants/ultimaker_s7_bb04.inst.cfg b/resources/variants/ultimaker_s7_bb04.inst.cfg index bead299de3..1ec0dfab98 100644 --- a/resources/variants/ultimaker_s7_bb04.inst.cfg +++ b/resources/variants/ultimaker_s7_bb04.inst.cfg @@ -17,7 +17,6 @@ machine_nozzle_heat_up_speed = 1.5 machine_nozzle_id = BB 0.4 machine_nozzle_tip_outer_diameter = 1.0 retraction_amount = 4.5 -retraction_min_travel = =3 * line_width speed_prime_tower = =math.ceil(speed_print * 10 / 35) speed_support = =math.ceil(speed_print * 25 / 35) speed_support_interface = =math.ceil(speed_support * 20 / 25) diff --git a/resources/variants/ultimaker_s7_cc04.inst.cfg b/resources/variants/ultimaker_s7_cc04.inst.cfg index d46d387330..6949c5be74 100644 --- a/resources/variants/ultimaker_s7_cc04.inst.cfg +++ b/resources/variants/ultimaker_s7_cc04.inst.cfg @@ -13,7 +13,6 @@ brim_width = 7 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_id = CC 0.4 machine_nozzle_size = 0.4 -retraction_min_travel = =line_width * 2 retraction_prime_speed = =retraction_speed speed_infill = =speed_print speed_print = 45 diff --git a/resources/variants/ultimaker_s7_cc06.inst.cfg b/resources/variants/ultimaker_s7_cc06.inst.cfg index d0c0d3670f..576701fc2b 100644 --- a/resources/variants/ultimaker_s7_cc06.inst.cfg +++ b/resources/variants/ultimaker_s7_cc06.inst.cfg @@ -13,7 +13,6 @@ brim_width = 7 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_id = CC 0.6 machine_nozzle_size = 0.6 -retraction_min_travel = =line_width * 2 retraction_prime_speed = =retraction_speed speed_infill = =speed_print speed_print = 45 From 578057f16a3985df356532d87f1dd9a1b3b1b269 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 8 Feb 2024 16:35:28 +0100 Subject: [PATCH 178/269] add file association for mac --- 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 99bfa80078..2dce96282e 100644 --- a/UltiMaker-Cura.spec.jinja +++ b/UltiMaker-Cura.spec.jinja @@ -92,7 +92,7 @@ app = BUNDLE( }], 'CFBundleDocumentTypes': [{ 'CFBundleTypeRole': 'Viewer', - 'CFBundleTypeExtensions': ['*'], + 'CFBundleTypeExtensions': ['stl', 'obj', '3mf', 'gcode', 'ufp'], 'CFBundleTypeName': 'Model Files', }] }, From 93cb35859959394ac67a2fd52c2c04825c8e5c8b Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 9 Feb 2024 07:43:48 +0100 Subject: [PATCH 179/269] Add FIXMEs where big changes are required CURA-11561 --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 1 + plugins/3MFWriter/ThreeMFWorkspaceWriter.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index e3056065a8..92a62ddca2 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -235,6 +235,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): containers_found_dict = {k: False for k in resolve_strategy_keys} # Check whether the file is a UCP, which changes some import options + #FIXME Instead of this, we should just check for the presence of the user-settings file, whatever the extension is_ucp = file_name.endswith('.ucp') # diff --git a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py index 7cdf884709..d0a843af69 100644 --- a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py +++ b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py @@ -34,6 +34,7 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): self._mode = None self._config_dialog = None + #FIXME We should have proper preWrite/write methods like the readers have a preRead/read, and have them called by the global process def _preWrite(self): is_ucp = False if hasattr(self._stream, 'name'): @@ -150,6 +151,7 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): self._success = True + #FIXME We should somehow give the information of the file type so that we know what to write, like the mode but for other files types (give mimetype ?) def write(self, stream, nodes, mode=WorkspaceWriter.OutputMode.BinaryMode): self._success = False self._export_model = None From e8bdca3dd95a9ba3b1efacc224732b73e5d2d0e4 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Fri, 9 Feb 2024 10:32:39 +0100 Subject: [PATCH 180/269] introducing drop to buildplate per model CURA-10542 --- cura/PlatformPhysics.py | 15 ++++-- resources/qml/Preferences/GeneralPage.qml | 66 +++++++++++++++++++++++ resources/qml/Toolbar.qml | 2 +- 3 files changed, 79 insertions(+), 4 deletions(-) diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index 1ef39de80d..98e9e823c6 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -38,7 +38,7 @@ class PlatformPhysics: self._minimum_gap = 2 # It is a minimum distance (in mm) between two models, applicable for small models Application.getInstance().getPreferences().addPreference("physics/automatic_push_free", False) - Application.getInstance().getPreferences().addPreference("physics/automatic_drop_down", True) + Application.getInstance().getPreferences().addPreference("physics/automatic_drop_down_per_model", "never") def _onSceneChanged(self, source): if not source.callDecoration("isSliceable"): @@ -71,6 +71,15 @@ class PlatformPhysics: # We try to shuffle all the nodes to prevent "locked" situations, where iteration B inverts iteration A. # By shuffling the order of the nodes, this might happen a few times, but at some point it will resolve. random.shuffle(nodes) + default_value = False + if app_automatic_drop_down == "always": + default_value = True + if app_automatic_drop_down == "never": + default_value = False + if app_automatic_drop_down == "always_ask": + # ask_during_loading_model + pass + for node in nodes: if node is root or not isinstance(node, SceneNode) or node.getBoundingBox() is None: continue @@ -80,10 +89,10 @@ class PlatformPhysics: # Move it downwards if bottom is above platform move_vector = Vector() - if node.getSetting(SceneNodeSettings.AutoDropDown, app_automatic_drop_down) and not (node.getParent() and node.getParent().callDecoration("isGroup") or node.getParent() != root) and node.isEnabled(): #If an object is grouped, don't move it down + + if node.getSetting(SceneNodeSettings.AutoDropDown, default_value) and not (node.getParent() and node.getParent().callDecoration("isGroup") or node.getParent() != root) and node.isEnabled(): #If an object is grouped, don't move it down z_offset = node.callDecoration("getZOffset") if node.getDecorator(ZOffsetDecorator.ZOffsetDecorator) else 0 move_vector = move_vector.set(y = -bbox.bottom + z_offset) - # If there is no convex hull for the node, start calculating it and continue. if not node.getDecorator(ConvexHullDecorator) and not node.callDecoration("isNonPrintingMesh") and node.callDecoration("getLayerData") is None: node.addDecorator(ConvexHullDecorator()) diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index c313ffbd94..963f95da4b 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -63,6 +63,18 @@ UM.PreferencesPage } } + function setDefaultDropDown(code) + { + for (var i = 0; i < choiceOnDropDown.model.count; ++i) + { + if (choiceOnDropDown.model.get(i).code == code) + { + choiceOnDropDown.currentIndex = i + break; + } + } + } + function reset() { UM.Preferences.resetPreference("general/language") @@ -513,6 +525,60 @@ UM.PreferencesPage } } + UM.TooltipArea + { + width: childrenRect.width + height: childrenRect.height + text: catalog.i18nc("@info:tooltip", "This setting will set a default (or not) for the Per Model Drop to buildplate feature (Either Always, Never, decide every time") + + Column + { + spacing: UM.Theme.getSize("narrow_margin").height + + UM.Label + { + text: catalog.i18nc("@window:text", " Default per model setting for drop to build plate when importing a model: ") + } + + Cura.ComboBox + { + id: choiceOnDropDown + width: UM.Theme.getSize("combobox").width + height: UM.Theme.getSize("combobox").height + + model: ListModel + { + id: dropDownOptions + + Component.onCompleted: + { + append({ text: catalog.i18nc("@option:openProject", "Always"), code: "always" }) + append({ text: catalog.i18nc("@option:openProject", "Never"), code: "never" }) + append({ text: catalog.i18nc("@option:openProject", "Always ask me this"), code: "always_ask" }) + } + } + textRole: "text" + + currentIndex: + { + var index = 0; + var currentChoice = UM.Preferences.getValue("physics/automatic_drop_down_per_model"); + for (var i = 0; i < model.count; ++i) + { + if (model.get(i).code == currentChoice) + { + index = i; + break; + } + } + return index; + } + + onActivated: UM.Preferences.setValue("physics/automatic_drop_down_per_model", model.get(index).code) + } + } + } + UM.TooltipArea { diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index 1af4e958f4..81f6c5d682 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -222,7 +222,7 @@ Item UM.Label { id: toolHint - text: UM.Controller.properties.getValue("ToolHint") != undefined ? UM.ActiveTool.properties.getValue("ToolHint") : "" + text: UM.Controller.properties.getValue("ToolHint") != undefined ? UM.Controller.properties.getValue("ToolHint") : "" color: UM.Theme.getColor("tooltip_text") anchors.horizontalCenter: parent.horizontalCenter } From a7292c7baf49539737136bdf6bc89b4617167c5c Mon Sep 17 00:00:00 2001 From: Saumya Jain <70144862+saumyaj3@users.noreply.github.com> Date: Fri, 9 Feb 2024 11:20:04 +0100 Subject: [PATCH 181/269] Update OneAtATimeIterator.py saving node_list after sorting --- cura/OneAtATimeIterator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/OneAtATimeIterator.py b/cura/OneAtATimeIterator.py index f92da3ec14..1017cfc79e 100644 --- a/cura/OneAtATimeIterator.py +++ b/cura/OneAtATimeIterator.py @@ -68,7 +68,7 @@ class OneAtATimeIterator(Iterator.Iterator): # Sort the original list so that items that block the most other objects are at the beginning. # This does not decrease the worst case running time, but should improve it in most cases. - sorted(node_list, key = cmp_to_key(hit_checker.calculateScore)) + node_list = sorted(node_list, key = cmp_to_key(hit_checker.calculateScore)) todo_node_list = [_ObjectOrder([], node_list)] while len(todo_node_list) > 0: From 345ddc40bb3dd32c2a88990e99073702c4e4e721 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 9 Feb 2024 11:54:49 +0100 Subject: [PATCH 182/269] Fix file opening failure CURA-11561 --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 92a62ddca2..d96de5b324 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -613,10 +613,11 @@ class ThreeMFWorkspaceReader(WorkspaceReader): try: self._user_settings = json.loads(archive.open("Cura/user-settings.json").read().decode("utf-8")) any_extruder_stack = ExtruderManager.getInstance().getExtruderStack(0) + actual_global_stack = CuraApplication.getInstance().getGlobalContainerStack() for stack_name, settings in self._user_settings.items(): if stack_name == 'global': - self._dialog.exportedSettingModel.addSettingsFromStack(global_stack, i18n_catalog.i18nc("@label", "Global"), settings) + self._dialog.exportedSettingModel.addSettingsFromStack(actual_global_stack, i18n_catalog.i18nc("@label", "Global"), settings) else: extruder_match = re.fullmatch('extruder_([0-9]+)', stack_name) if extruder_match is not None: From 91a84674f022b0baf0b1915fadef1d171c9cbddd Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Fri, 9 Feb 2024 15:11:56 +0100 Subject: [PATCH 183/269] Adding the preference drop to buildplate while opening Cura project CURA-10542 --- cura/PlatformPhysics.py | 14 +---- plugins/3MFReader/WorkspaceDialog.qml | 14 +++++ resources/qml/Preferences/GeneralPage.qml | 67 ----------------------- 3 files changed, 16 insertions(+), 79 deletions(-) diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index 98e9e823c6..7add1e24e7 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -38,7 +38,7 @@ class PlatformPhysics: self._minimum_gap = 2 # It is a minimum distance (in mm) between two models, applicable for small models Application.getInstance().getPreferences().addPreference("physics/automatic_push_free", False) - Application.getInstance().getPreferences().addPreference("physics/automatic_drop_down_per_model", "never") + Application.getInstance().getPreferences().addPreference("physics/automatic_drop_down", False) def _onSceneChanged(self, source): if not source.callDecoration("isSliceable"): @@ -71,14 +71,6 @@ class PlatformPhysics: # We try to shuffle all the nodes to prevent "locked" situations, where iteration B inverts iteration A. # By shuffling the order of the nodes, this might happen a few times, but at some point it will resolve. random.shuffle(nodes) - default_value = False - if app_automatic_drop_down == "always": - default_value = True - if app_automatic_drop_down == "never": - default_value = False - if app_automatic_drop_down == "always_ask": - # ask_during_loading_model - pass for node in nodes: if node is root or not isinstance(node, SceneNode) or node.getBoundingBox() is None: @@ -88,9 +80,7 @@ class PlatformPhysics: # Move it downwards if bottom is above platform move_vector = Vector() - - - if node.getSetting(SceneNodeSettings.AutoDropDown, default_value) and not (node.getParent() and node.getParent().callDecoration("isGroup") or node.getParent() != root) and node.isEnabled(): #If an object is grouped, don't move it down + if node.getSetting(SceneNodeSettings.AutoDropDown, app_automatic_drop_down) and not (node.getParent() and node.getParent().callDecoration("isGroup") or node.getParent() != root) and node.isEnabled(): #If an object is grouped, don't move it down z_offset = node.callDecoration("getZOffset") if node.getDecorator(ZOffsetDecorator.ZOffsetDecorator) else 0 move_vector = move_vector.set(y = -bbox.bottom + z_offset) # If there is no convex hull for the node, start calculating it and continue. diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index d5f9b1817d..874ca0aab8 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -299,6 +299,20 @@ UM.Dialog } } } + Row + { + id: dropToBuildPlate + width: parent.width + height: childrenRect.height + spacing: UM.Theme.getSize("default_margin").width + UM.CheckBox + { + id: rememberChoiceCheckBox + text: catalog.i18nc("@text:window", "Drop models to buildplate") + checked: UM.Preferences.getValue("physics/automatic_drop_down") == True + onCheckedChanged: UM.Preferences.setValue("physics/automatic_drop_down", checked) + } + } Row { diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index 963f95da4b..af63743931 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -63,18 +63,6 @@ UM.PreferencesPage } } - function setDefaultDropDown(code) - { - for (var i = 0; i < choiceOnDropDown.model.count; ++i) - { - if (choiceOnDropDown.model.get(i).code == code) - { - choiceOnDropDown.currentIndex = i - break; - } - } - } - function reset() { UM.Preferences.resetPreference("general/language") @@ -525,61 +513,6 @@ UM.PreferencesPage } } - UM.TooltipArea - { - width: childrenRect.width - height: childrenRect.height - text: catalog.i18nc("@info:tooltip", "This setting will set a default (or not) for the Per Model Drop to buildplate feature (Either Always, Never, decide every time") - - Column - { - spacing: UM.Theme.getSize("narrow_margin").height - - UM.Label - { - text: catalog.i18nc("@window:text", " Default per model setting for drop to build plate when importing a model: ") - } - - Cura.ComboBox - { - id: choiceOnDropDown - width: UM.Theme.getSize("combobox").width - height: UM.Theme.getSize("combobox").height - - model: ListModel - { - id: dropDownOptions - - Component.onCompleted: - { - append({ text: catalog.i18nc("@option:openProject", "Always"), code: "always" }) - append({ text: catalog.i18nc("@option:openProject", "Never"), code: "never" }) - append({ text: catalog.i18nc("@option:openProject", "Always ask me this"), code: "always_ask" }) - } - } - textRole: "text" - - currentIndex: - { - var index = 0; - var currentChoice = UM.Preferences.getValue("physics/automatic_drop_down_per_model"); - for (var i = 0; i < model.count; ++i) - { - if (model.get(i).code == currentChoice) - { - index = i; - break; - } - } - return index; - } - - onActivated: UM.Preferences.setValue("physics/automatic_drop_down_per_model", model.get(index).code) - } - } - } - - UM.TooltipArea { width: childrenRect.width; From aa2abfbd2e1a86a5e10f6a3e3c56e0092d8cb589 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Fri, 9 Feb 2024 15:15:44 +0100 Subject: [PATCH 184/269] removing id of checkbox CURA-10542 --- cura/PlatformPhysics.py | 2 ++ plugins/3MFReader/WorkspaceDialog.qml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index 7add1e24e7..d204bee185 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -80,9 +80,11 @@ class PlatformPhysics: # Move it downwards if bottom is above platform move_vector = Vector() + if node.getSetting(SceneNodeSettings.AutoDropDown, app_automatic_drop_down) and not (node.getParent() and node.getParent().callDecoration("isGroup") or node.getParent() != root) and node.isEnabled(): #If an object is grouped, don't move it down z_offset = node.callDecoration("getZOffset") if node.getDecorator(ZOffsetDecorator.ZOffsetDecorator) else 0 move_vector = move_vector.set(y = -bbox.bottom + z_offset) + # If there is no convex hull for the node, start calculating it and continue. if not node.getDecorator(ConvexHullDecorator) and not node.callDecoration("isNonPrintingMesh") and node.callDecoration("getLayerData") is None: node.addDecorator(ConvexHullDecorator()) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 874ca0aab8..8b4b2341d9 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -299,6 +299,7 @@ UM.Dialog } } } + Row { id: dropToBuildPlate @@ -307,7 +308,6 @@ UM.Dialog spacing: UM.Theme.getSize("default_margin").width UM.CheckBox { - id: rememberChoiceCheckBox text: catalog.i18nc("@text:window", "Drop models to buildplate") checked: UM.Preferences.getValue("physics/automatic_drop_down") == True onCheckedChanged: UM.Preferences.setValue("physics/automatic_drop_down", checked) From 860dbaa4fe450c06c4990182d0ea2e4ddfa0c59f Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Tue, 13 Feb 2024 11:32:58 +0100 Subject: [PATCH 185/269] Added experimental print profiles for the Method X and XL: ASA, Nylon12-CF and SR-30 support material. PP-393 --- .../definitions/ultimaker_methodx.def.json | 1 - ...methodx_1c_um-asa-175_0.2mm_solid.inst.cfg | 18 +++++++ ..._1c_um-nylon12-cf-175_0.2mm_solid.inst.cfg | 18 +++++++ ...ethodx_1xa_um-asa-175_0.2mm_solid.inst.cfg | 18 +++++++ ...thodx_2xa_um-sr30-175_0.2mm_solid.inst.cfg | 17 ++++++ ...thodx_labs_um-asa-175_0.2mm_solid.inst.cfg | 18 +++++++ ...abs_um-nylon12-cf-175_0.2mm_solid.inst.cfg | 18 +++++++ ...ethodxl_1c_um-asa-175_0.2mm_solid.inst.cfg | 18 +++++++ ..._1c_um-nylon12-cf-175_0.2mm_solid.inst.cfg | 18 +++++++ ...thodxl_1xa_um-asa-175_0.2mm_solid.inst.cfg | 18 +++++++ ...hodxl_2xa_um-sr30-175_0.2mm_solid.inst.cfg | 17 ++++++ ...hodxl_labs_um-asa-175_0.2mm_solid.inst.cfg | 18 +++++++ ...abs_um-nylon12-cf-175_0.2mm_solid.inst.cfg | 18 +++++++ .../um_methodx_1c_um-asa-175_0.2mm.inst.cfg | 50 +++++++++++++++++ ...ethodx_1c_um-nylon12-cf-175_0.2mm.inst.cfg | 53 +++++++++++++++++++ .../um_methodx_1xa_um-asa-175_0.2mm.inst.cfg | 50 +++++++++++++++++ .../um_methodx_2xa_um-sr30-175_0.2mm.inst.cfg | 41 ++++++++++++++ .../um_methodx_labs_um-asa-175_0.2mm.inst.cfg | 50 +++++++++++++++++ ...hodx_labs_um-nylon12-cf-175_0.2mm.inst.cfg | 53 +++++++++++++++++++ .../um_methodxl_1c_um-absr-175_0.2mm.inst.cfg | 2 - .../um_methodxl_1c_um-asa-175_0.2mm.inst.cfg | 51 ++++++++++++++++++ ...thodxl_1c_um-nylon12-cf-175_0.2mm.inst.cfg | 53 +++++++++++++++++++ ...um_methodxl_1xa_um-absr-175_0.2mm.inst.cfg | 2 - .../um_methodxl_1xa_um-asa-175_0.2mm.inst.cfg | 51 ++++++++++++++++++ ...um_methodxl_2xa_um-sr30-175_0.2mm.inst.cfg | 41 ++++++++++++++ ...m_methodxl_labs_um-absr-175_0.2mm.inst.cfg | 2 - ...um_methodxl_labs_um-asa-175_0.2mm.inst.cfg | 51 ++++++++++++++++++ ...odxl_labs_um-nylon12-cf-175_0.2mm.inst.cfg | 53 +++++++++++++++++++ .../um_s3_aa0.25_um-abs_0.1mm.inst.cfg | 1 + .../um_s5_aa0.25_um-abs_0.1mm.inst.cfg | 1 + 30 files changed, 813 insertions(+), 7 deletions(-) create mode 100644 resources/intent/ultimaker_methodx/um_methodx_1c_um-asa-175_0.2mm_solid.inst.cfg create mode 100644 resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon12-cf-175_0.2mm_solid.inst.cfg create mode 100644 resources/intent/ultimaker_methodx/um_methodx_1xa_um-asa-175_0.2mm_solid.inst.cfg create mode 100644 resources/intent/ultimaker_methodx/um_methodx_2xa_um-sr30-175_0.2mm_solid.inst.cfg create mode 100644 resources/intent/ultimaker_methodx/um_methodx_labs_um-asa-175_0.2mm_solid.inst.cfg create mode 100644 resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon12-cf-175_0.2mm_solid.inst.cfg create mode 100644 resources/intent/ultimaker_methodxl/um_methodxl_1c_um-asa-175_0.2mm_solid.inst.cfg create mode 100644 resources/intent/ultimaker_methodxl/um_methodxl_1c_um-nylon12-cf-175_0.2mm_solid.inst.cfg create mode 100644 resources/intent/ultimaker_methodxl/um_methodxl_1xa_um-asa-175_0.2mm_solid.inst.cfg create mode 100644 resources/intent/ultimaker_methodxl/um_methodxl_2xa_um-sr30-175_0.2mm_solid.inst.cfg create mode 100644 resources/intent/ultimaker_methodxl/um_methodxl_labs_um-asa-175_0.2mm_solid.inst.cfg create mode 100644 resources/intent/ultimaker_methodxl/um_methodxl_labs_um-nylon12-cf-175_0.2mm_solid.inst.cfg create mode 100644 resources/quality/ultimaker_methodx/um_methodx_1c_um-asa-175_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_methodx/um_methodx_1c_um-nylon12-cf-175_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_methodx/um_methodx_1xa_um-asa-175_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_methodx/um_methodx_2xa_um-sr30-175_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_methodx/um_methodx_labs_um-asa-175_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_methodx/um_methodx_labs_um-nylon12-cf-175_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_methodxl/um_methodxl_1c_um-asa-175_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_methodxl/um_methodxl_1c_um-nylon12-cf-175_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-asa-175_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_methodxl/um_methodxl_2xa_um-sr30-175_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_methodxl/um_methodxl_labs_um-asa-175_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_methodxl/um_methodxl_labs_um-nylon12-cf-175_0.2mm.inst.cfg diff --git a/resources/definitions/ultimaker_methodx.def.json b/resources/definitions/ultimaker_methodx.def.json index a6708a0421..9828ba96f2 100644 --- a/resources/definitions/ultimaker_methodx.def.json +++ b/resources/definitions/ultimaker_methodx.def.json @@ -35,7 +35,6 @@ "generic_nylon_175", "generic_hips_175", "generic_pc_175", - "ultimaker_sr30_175", "generic_tpu_175", "goofoo_", "ideagen3D_", diff --git a/resources/intent/ultimaker_methodx/um_methodx_1c_um-asa-175_0.2mm_solid.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_1c_um-asa-175_0.2mm_solid.inst.cfg new file mode 100644 index 0000000000..23c8807afd --- /dev/null +++ b/resources/intent/ultimaker_methodx/um_methodx_1c_um-asa-175_0.2mm_solid.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_methodx +name = Solid +version = 4 + +[metadata] +intent_category = solid +is_experimental = True +material = ultimaker_asa_175 +quality_type = draft +setting_version = 22 +type = intent +variant = 1C + +[values] +infill_pattern = lines +infill_sparse_density = 100 + diff --git a/resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon12-cf-175_0.2mm_solid.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon12-cf-175_0.2mm_solid.inst.cfg new file mode 100644 index 0000000000..cdff2f30ce --- /dev/null +++ b/resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon12-cf-175_0.2mm_solid.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_methodx +name = Solid +version = 4 + +[metadata] +intent_category = solid +is_experimental = True +material = ultimaker_nylon12-cf_175 +quality_type = draft +setting_version = 22 +type = intent +variant = 1C + +[values] +infill_pattern = lines +infill_sparse_density = 100 + diff --git a/resources/intent/ultimaker_methodx/um_methodx_1xa_um-asa-175_0.2mm_solid.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_1xa_um-asa-175_0.2mm_solid.inst.cfg new file mode 100644 index 0000000000..3a781b61aa --- /dev/null +++ b/resources/intent/ultimaker_methodx/um_methodx_1xa_um-asa-175_0.2mm_solid.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_methodx +name = Solid +version = 4 + +[metadata] +intent_category = solid +is_experimental = True +material = ultimaker_asa_175 +quality_type = draft +setting_version = 22 +type = intent +variant = 1XA + +[values] +infill_pattern = lines +infill_sparse_density = 100 + diff --git a/resources/intent/ultimaker_methodx/um_methodx_2xa_um-sr30-175_0.2mm_solid.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_2xa_um-sr30-175_0.2mm_solid.inst.cfg new file mode 100644 index 0000000000..a833556bd8 --- /dev/null +++ b/resources/intent/ultimaker_methodx/um_methodx_2xa_um-sr30-175_0.2mm_solid.inst.cfg @@ -0,0 +1,17 @@ +[general] +definition = ultimaker_methodx +name = Solid +version = 4 + +[metadata] +intent_category = solid +is_experimental = True +material = ultimaker_sr30_175 +quality_type = draft +setting_version = 22 +type = intent +variant = 2XA + +[values] +infill_sparse_density = 100 + diff --git a/resources/intent/ultimaker_methodx/um_methodx_labs_um-asa-175_0.2mm_solid.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_labs_um-asa-175_0.2mm_solid.inst.cfg new file mode 100644 index 0000000000..87823a01a6 --- /dev/null +++ b/resources/intent/ultimaker_methodx/um_methodx_labs_um-asa-175_0.2mm_solid.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_methodx +name = Solid +version = 4 + +[metadata] +intent_category = solid +is_experimental = True +material = ultimaker_asa_175 +quality_type = draft +setting_version = 22 +type = intent +variant = LABS + +[values] +infill_pattern = lines +infill_sparse_density = 100 + diff --git a/resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon12-cf-175_0.2mm_solid.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon12-cf-175_0.2mm_solid.inst.cfg new file mode 100644 index 0000000000..bb76919888 --- /dev/null +++ b/resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon12-cf-175_0.2mm_solid.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_methodx +name = Solid +version = 4 + +[metadata] +intent_category = solid +is_experimental = True +material = ultimaker_nylon12-cf_175 +quality_type = draft +setting_version = 22 +type = intent +variant = LABS + +[values] +infill_pattern = lines +infill_sparse_density = 100 + diff --git a/resources/intent/ultimaker_methodxl/um_methodxl_1c_um-asa-175_0.2mm_solid.inst.cfg b/resources/intent/ultimaker_methodxl/um_methodxl_1c_um-asa-175_0.2mm_solid.inst.cfg new file mode 100644 index 0000000000..12bc3f2708 --- /dev/null +++ b/resources/intent/ultimaker_methodxl/um_methodxl_1c_um-asa-175_0.2mm_solid.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_methodxl +name = Solid +version = 4 + +[metadata] +intent_category = solid +is_experimental = True +material = ultimaker_asa_175 +quality_type = draft +setting_version = 22 +type = intent +variant = 1C + +[values] +infill_pattern = lines +infill_sparse_density = 100 + diff --git a/resources/intent/ultimaker_methodxl/um_methodxl_1c_um-nylon12-cf-175_0.2mm_solid.inst.cfg b/resources/intent/ultimaker_methodxl/um_methodxl_1c_um-nylon12-cf-175_0.2mm_solid.inst.cfg new file mode 100644 index 0000000000..5533672636 --- /dev/null +++ b/resources/intent/ultimaker_methodxl/um_methodxl_1c_um-nylon12-cf-175_0.2mm_solid.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_methodxl +name = Solid +version = 4 + +[metadata] +intent_category = solid +is_experimental = True +material = ultimaker_nylon12-cf_175 +quality_type = draft +setting_version = 22 +type = intent +variant = 1C + +[values] +infill_pattern = lines +infill_sparse_density = 100 + diff --git a/resources/intent/ultimaker_methodxl/um_methodxl_1xa_um-asa-175_0.2mm_solid.inst.cfg b/resources/intent/ultimaker_methodxl/um_methodxl_1xa_um-asa-175_0.2mm_solid.inst.cfg new file mode 100644 index 0000000000..82aa8e9bad --- /dev/null +++ b/resources/intent/ultimaker_methodxl/um_methodxl_1xa_um-asa-175_0.2mm_solid.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_methodxl +name = Solid +version = 4 + +[metadata] +intent_category = solid +is_experimental = True +material = ultimaker_asa_175 +quality_type = draft +setting_version = 22 +type = intent +variant = 1XA + +[values] +infill_pattern = lines +infill_sparse_density = 100 + diff --git a/resources/intent/ultimaker_methodxl/um_methodxl_2xa_um-sr30-175_0.2mm_solid.inst.cfg b/resources/intent/ultimaker_methodxl/um_methodxl_2xa_um-sr30-175_0.2mm_solid.inst.cfg new file mode 100644 index 0000000000..01a55c85a4 --- /dev/null +++ b/resources/intent/ultimaker_methodxl/um_methodxl_2xa_um-sr30-175_0.2mm_solid.inst.cfg @@ -0,0 +1,17 @@ +[general] +definition = ultimaker_methodxl +name = Solid +version = 4 + +[metadata] +intent_category = solid +is_experimental = True +material = ultimaker_sr30_175 +quality_type = draft +setting_version = 22 +type = intent +variant = 2XA + +[values] +infill_sparse_density = 100 + diff --git a/resources/intent/ultimaker_methodxl/um_methodxl_labs_um-asa-175_0.2mm_solid.inst.cfg b/resources/intent/ultimaker_methodxl/um_methodxl_labs_um-asa-175_0.2mm_solid.inst.cfg new file mode 100644 index 0000000000..ae7100bc86 --- /dev/null +++ b/resources/intent/ultimaker_methodxl/um_methodxl_labs_um-asa-175_0.2mm_solid.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_methodxl +name = Solid +version = 4 + +[metadata] +intent_category = solid +is_experimental = True +material = ultimaker_asa_175 +quality_type = draft +setting_version = 22 +type = intent +variant = LABS + +[values] +infill_pattern = lines +infill_sparse_density = 100 + diff --git a/resources/intent/ultimaker_methodxl/um_methodxl_labs_um-nylon12-cf-175_0.2mm_solid.inst.cfg b/resources/intent/ultimaker_methodxl/um_methodxl_labs_um-nylon12-cf-175_0.2mm_solid.inst.cfg new file mode 100644 index 0000000000..af43c95cd2 --- /dev/null +++ b/resources/intent/ultimaker_methodxl/um_methodxl_labs_um-nylon12-cf-175_0.2mm_solid.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_methodxl +name = Solid +version = 4 + +[metadata] +intent_category = solid +is_experimental = True +material = ultimaker_nylon12-cf_175 +quality_type = draft +setting_version = 22 +type = intent +variant = LABS + +[values] +infill_pattern = lines +infill_sparse_density = 100 + diff --git a/resources/quality/ultimaker_methodx/um_methodx_1c_um-asa-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1c_um-asa-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..f0e0a4fded --- /dev/null +++ b/resources/quality/ultimaker_methodx/um_methodx_1c_um-asa-175_0.2mm.inst.cfg @@ -0,0 +1,50 @@ +[general] +definition = ultimaker_methodx +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = ultimaker_asa_175 +quality_type = draft +setting_version = 22 +type = quality +variant = 1C +weight = -2 + +[values] +cool_fan_enabled = False +material_print_temperature_layer_0 = =default_material_print_temperature+5 +raft_airgap = 0.3 +raft_base_speed = 10 +retract_at_layer_change = True +retraction_amount = 0.5 +retraction_min_travel = 3.2 +roofing_material_flow = 98.0 +small_skin_width = 3.6 +speed_prime_tower = 30.0 +speed_print = 120.0 +speed_roofing = 55 +speed_topbottom = 55 +speed_travel = 250.0 +speed_wall_0 = 45 +speed_wall_x = 65 +support_angle = 50 +support_bottom_density = 24 +support_bottom_enable = False +support_bottom_line_width = 0.6 +support_bottom_stair_step_height = 0 +support_fan_enable = False +support_infill_rate = 12.0 +support_interface_enable = True +support_interface_pattern = lines +support_line_width = 0.3 +support_pattern = lines +support_roof_density = 97 +support_roof_height = 1.015 +support_roof_line_width = 0.25 +support_use_towers = False +support_xy_distance = 0.2 +support_xy_distance_overhang = 0.15 +support_z_distance = 0.25 + diff --git a/resources/quality/ultimaker_methodx/um_methodx_1c_um-nylon12-cf-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1c_um-nylon12-cf-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..32d64ed5b1 --- /dev/null +++ b/resources/quality/ultimaker_methodx/um_methodx_1c_um-nylon12-cf-175_0.2mm.inst.cfg @@ -0,0 +1,53 @@ +[general] +definition = ultimaker_methodx +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = ultimaker_nylon12-cf_175 +quality_type = draft +setting_version = 22 +type = quality +variant = 1C +weight = -2 + +[values] +cool_fan_enabled = False +material_final_print_temperature = =default_material_print_temperature-5 +material_initial_print_temperature = =default_material_print_temperature-5 +raft_airgap = 0.3 +raft_base_line_spacing = 3 +raft_base_line_width = 1.2 +raft_base_speed = 10 +retract_at_layer_change = True +retraction_amount = 0.5 +retraction_min_travel = 3.2 +roofing_material_flow = 100 +small_skin_width = 3.6 +speed_prime_tower = 30.0 +speed_print = 120.0 +speed_roofing = 55 +speed_topbottom = 55 +speed_travel = 250.0 +speed_wall_0 = 45 +speed_wall_x = 65 +support_angle = 50 +support_bottom_density = 24 +support_bottom_enable = False +support_bottom_line_width = 0.6 +support_bottom_stair_step_height = 0 +support_fan_enable = False +support_infill_rate = 12.0 +support_interface_enable = True +support_interface_pattern = lines +support_line_width = 0.3 +support_pattern = lines +support_roof_density = 97 +support_roof_height = 1.015 +support_roof_line_width = 0.25 +support_use_towers = False +support_xy_distance = 0.2 +support_xy_distance_overhang = 0.15 +support_z_distance = 0.25 + diff --git a/resources/quality/ultimaker_methodx/um_methodx_1xa_um-asa-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1xa_um-asa-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..e032e3a3b8 --- /dev/null +++ b/resources/quality/ultimaker_methodx/um_methodx_1xa_um-asa-175_0.2mm.inst.cfg @@ -0,0 +1,50 @@ +[general] +definition = ultimaker_methodx +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = ultimaker_asa_175 +quality_type = draft +setting_version = 22 +type = quality +variant = 1XA +weight = -2 + +[values] +cool_fan_enabled = False +material_print_temperature_layer_0 = =default_material_print_temperature+5 +raft_airgap = 0.3 +raft_base_speed = 10 +retract_at_layer_change = True +retraction_amount = 0.5 +retraction_min_travel = 3.2 +roofing_material_flow = 98.0 +small_skin_width = 3.6 +speed_prime_tower = 30.0 +speed_print = 120.0 +speed_roofing = 55 +speed_topbottom = 55 +speed_travel = 250.0 +speed_wall_0 = 45 +speed_wall_x = 65 +support_angle = 50 +support_bottom_density = 24 +support_bottom_enable = False +support_bottom_line_width = 0.6 +support_bottom_stair_step_height = 0 +support_fan_enable = False +support_infill_rate = 12.0 +support_interface_enable = True +support_interface_pattern = lines +support_line_width = 0.3 +support_pattern = lines +support_roof_density = 97 +support_roof_height = 1.015 +support_roof_line_width = 0.25 +support_use_towers = False +support_xy_distance = 0.2 +support_xy_distance_overhang = 0.15 +support_z_distance = 0.25 + diff --git a/resources/quality/ultimaker_methodx/um_methodx_2xa_um-sr30-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_2xa_um-sr30-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..5ebc2b4560 --- /dev/null +++ b/resources/quality/ultimaker_methodx/um_methodx_2xa_um-sr30-175_0.2mm.inst.cfg @@ -0,0 +1,41 @@ +[general] +definition = ultimaker_methodx +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = ultimaker_sr30_175 +quality_type = draft +setting_version = 22 +type = quality +variant = 2XA +weight = -2 + +[values] +brim_replaces_support = False +cool_fan_enabled = False +cool_min_temperature = =material_print_temperature +raft_airgap = 0.0 +raft_interface_line_width = 0.7 +raft_interface_speed = 70 +raft_surface_speed = 90 +retract_at_layer_change = True +retraction_amount = 0.5 +speed_prime_tower = 25.0 +speed_print = 50 +speed_roofing = 50 +speed_support = 50 +speed_support_bottom = 30 +speed_support_interface = 80 +speed_topbottom = 50 +speed_wall_0 = 50 +speed_wall_x = 50 +support_bottom_wall_count = 5 +support_fan_enable = False +support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height +support_interface_enable = True +support_wall_count = 1 +support_xy_distance = 0.2 +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_methodx/um_methodx_labs_um-asa-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_labs_um-asa-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..3c9f4500fc --- /dev/null +++ b/resources/quality/ultimaker_methodx/um_methodx_labs_um-asa-175_0.2mm.inst.cfg @@ -0,0 +1,50 @@ +[general] +definition = ultimaker_methodx +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = ultimaker_asa_175 +quality_type = draft +setting_version = 22 +type = quality +variant = LABS +weight = -2 + +[values] +cool_fan_enabled = False +material_print_temperature_layer_0 = =default_material_print_temperature+5 +raft_airgap = 0.3 +raft_base_speed = 10 +retract_at_layer_change = True +retraction_amount = 0.5 +retraction_min_travel = 3.2 +roofing_material_flow = 98.0 +small_skin_width = 3.6 +speed_prime_tower = 30.0 +speed_print = 120.0 +speed_roofing = 55 +speed_topbottom = 55 +speed_travel = 250.0 +speed_wall_0 = 45 +speed_wall_x = 65 +support_angle = 50 +support_bottom_density = 24 +support_bottom_enable = False +support_bottom_line_width = 0.6 +support_bottom_stair_step_height = 0 +support_fan_enable = False +support_infill_rate = 12.0 +support_interface_enable = True +support_interface_pattern = lines +support_line_width = 0.3 +support_pattern = lines +support_roof_density = 97 +support_roof_height = 1.015 +support_roof_line_width = 0.25 +support_use_towers = False +support_xy_distance = 0.2 +support_xy_distance_overhang = 0.15 +support_z_distance = 0.25 + diff --git a/resources/quality/ultimaker_methodx/um_methodx_labs_um-nylon12-cf-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_labs_um-nylon12-cf-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..7bb14d9107 --- /dev/null +++ b/resources/quality/ultimaker_methodx/um_methodx_labs_um-nylon12-cf-175_0.2mm.inst.cfg @@ -0,0 +1,53 @@ +[general] +definition = ultimaker_methodx +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = ultimaker_nylon12-cf_175 +quality_type = draft +setting_version = 22 +type = quality +variant = LABS +weight = -2 + +[values] +cool_fan_enabled = False +material_final_print_temperature = =default_material_print_temperature-5 +material_initial_print_temperature = =default_material_print_temperature-5 +raft_airgap = 0.3 +raft_base_line_spacing = 3 +raft_base_line_width = 1.2 +raft_base_speed = 10 +retract_at_layer_change = True +retraction_amount = 0.5 +retraction_min_travel = 3.2 +roofing_material_flow = 100 +small_skin_width = 3.6 +speed_prime_tower = 30.0 +speed_print = 120.0 +speed_roofing = 55 +speed_topbottom = 55 +speed_travel = 250.0 +speed_wall_0 = 45 +speed_wall_x = 65 +support_angle = 50 +support_bottom_density = 24 +support_bottom_enable = False +support_bottom_line_width = 0.6 +support_bottom_stair_step_height = 0 +support_fan_enable = False +support_infill_rate = 12.0 +support_interface_enable = True +support_interface_pattern = lines +support_line_width = 0.3 +support_pattern = lines +support_roof_density = 97 +support_roof_height = 1.015 +support_roof_line_width = 0.25 +support_use_towers = False +support_xy_distance = 0.2 +support_xy_distance_overhang = 0.15 +support_z_distance = 0.25 + diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-absr-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-absr-175_0.2mm.inst.cfg index 7b5daf0d20..2688d88ad3 100644 --- a/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-absr-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-absr-175_0.2mm.inst.cfg @@ -12,9 +12,7 @@ variant = 1C weight = -2 [values] -build_volume_temperature = 85 cool_fan_enabled = False -default_material_bed_temperature = 95 raft_airgap = 0.3 speed_prime_tower = 30.0 speed_print = 120.0 diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-asa-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-asa-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..5aaee1f2c6 --- /dev/null +++ b/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-asa-175_0.2mm.inst.cfg @@ -0,0 +1,51 @@ +[general] +definition = ultimaker_methodxl +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = ultimaker_asa_175 +quality_type = draft +setting_version = 22 +type = quality +variant = 1C +weight = -2 + +[values] +cool_fan_enabled = False +material_print_temperature_layer_0 = =default_material_print_temperature+5 +raft_airgap = 0.3 +raft_base_speed = 10 +retract_at_layer_change = True +retraction_amount = 0.5 +retraction_min_travel = 3.2 +roofing_material_flow = 98.0 +small_skin_width = 3.6 +speed_prime_tower = 30.0 +speed_print = 120.0 +speed_roofing = 55 +speed_topbottom = 55 +speed_travel = 500 +speed_travel_layer_0 = 250 +speed_wall_0 = 45 +speed_wall_x = 65 +support_angle = 50 +support_bottom_density = 24 +support_bottom_enable = False +support_bottom_line_width = 0.6 +support_bottom_stair_step_height = 0 +support_fan_enable = False +support_infill_rate = 12.0 +support_interface_enable = True +support_interface_pattern = lines +support_line_width = 0.3 +support_pattern = lines +support_roof_density = 97 +support_roof_height = 1.015 +support_roof_line_width = 0.25 +support_use_towers = False +support_xy_distance = 0.2 +support_xy_distance_overhang = 0.15 +support_z_distance = 0.25 + diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-nylon12-cf-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-nylon12-cf-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..575189deae --- /dev/null +++ b/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-nylon12-cf-175_0.2mm.inst.cfg @@ -0,0 +1,53 @@ +[general] +definition = ultimaker_methodxl +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = ultimaker_nylon12-cf_175 +quality_type = draft +setting_version = 22 +type = quality +variant = 1C +weight = -2 + +[values] +cool_fan_enabled = False +material_final_print_temperature = =default_material_print_temperature-5 +material_initial_print_temperature = =default_material_print_temperature-5 +raft_airgap = 0.3 +raft_base_line_spacing = 3 +raft_base_line_width = 1.2 +raft_base_speed = 10 +retract_at_layer_change = True +retraction_amount = 0.5 +retraction_min_travel = 3.2 +roofing_material_flow = 100 +small_skin_width = 3.6 +speed_prime_tower = 30.0 +speed_print = 120.0 +speed_roofing = 55 +speed_topbottom = 55 +speed_travel = 250.0 +speed_wall_0 = 45 +speed_wall_x = 65 +support_angle = 50 +support_bottom_density = 24 +support_bottom_enable = False +support_bottom_line_width = 0.6 +support_bottom_stair_step_height = 0 +support_fan_enable = False +support_infill_rate = 12.0 +support_interface_enable = True +support_interface_pattern = lines +support_line_width = 0.3 +support_pattern = lines +support_roof_density = 97 +support_roof_height = 1.015 +support_roof_line_width = 0.25 +support_use_towers = False +support_xy_distance = 0.2 +support_xy_distance_overhang = 0.15 +support_z_distance = 0.25 + diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-absr-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-absr-175_0.2mm.inst.cfg index 7445bd2d42..fd224e8798 100644 --- a/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-absr-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-absr-175_0.2mm.inst.cfg @@ -12,9 +12,7 @@ variant = 1XA weight = -2 [values] -build_volume_temperature = 85 cool_fan_enabled = False -default_material_bed_temperature = 95 raft_airgap = 0.3 speed_prime_tower = 30.0 speed_print = 120.0 diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-asa-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-asa-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..504ab8c10b --- /dev/null +++ b/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-asa-175_0.2mm.inst.cfg @@ -0,0 +1,51 @@ +[general] +definition = ultimaker_methodxl +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = ultimaker_asa_175 +quality_type = draft +setting_version = 22 +type = quality +variant = 1XA +weight = -2 + +[values] +cool_fan_enabled = False +material_print_temperature_layer_0 = =default_material_print_temperature+5 +raft_airgap = 0.3 +raft_base_speed = 10 +retract_at_layer_change = True +retraction_amount = 0.5 +retraction_min_travel = 3.2 +roofing_material_flow = 98.0 +small_skin_width = 3.6 +speed_prime_tower = 30.0 +speed_print = 120.0 +speed_roofing = 55 +speed_topbottom = 55 +speed_travel = 500 +speed_travel_layer_0 = 250 +speed_wall_0 = 45 +speed_wall_x = 65 +support_angle = 50 +support_bottom_density = 24 +support_bottom_enable = False +support_bottom_line_width = 0.6 +support_bottom_stair_step_height = 0 +support_fan_enable = False +support_infill_rate = 12.0 +support_interface_enable = True +support_interface_pattern = lines +support_line_width = 0.3 +support_pattern = lines +support_roof_density = 97 +support_roof_height = 1.015 +support_roof_line_width = 0.25 +support_use_towers = False +support_xy_distance = 0.2 +support_xy_distance_overhang = 0.15 +support_z_distance = 0.25 + diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_2xa_um-sr30-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_2xa_um-sr30-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..ebc6ecfe98 --- /dev/null +++ b/resources/quality/ultimaker_methodxl/um_methodxl_2xa_um-sr30-175_0.2mm.inst.cfg @@ -0,0 +1,41 @@ +[general] +definition = ultimaker_methodxl +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = ultimaker_sr30_175 +quality_type = draft +setting_version = 22 +type = quality +variant = 2XA +weight = -2 + +[values] +brim_replaces_support = False +cool_fan_enabled = False +cool_min_temperature = =material_print_temperature +raft_airgap = 0.0 +raft_interface_line_width = 0.7 +raft_interface_speed = 70 +raft_surface_speed = 90 +retract_at_layer_change = True +retraction_amount = 0.5 +speed_prime_tower = 25.0 +speed_print = 50 +speed_roofing = 50 +speed_support = 50 +speed_support_bottom = 30 +speed_support_interface = 80 +speed_topbottom = 50 +speed_wall_0 = 50 +speed_wall_x = 50 +support_bottom_wall_count = 5 +support_fan_enable = False +support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height +support_interface_enable = True +support_wall_count = 1 +support_xy_distance = 0.2 +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-absr-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-absr-175_0.2mm.inst.cfg index 2114be0ff4..4af8230b24 100644 --- a/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-absr-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-absr-175_0.2mm.inst.cfg @@ -12,9 +12,7 @@ variant = LABS weight = -2 [values] -build_volume_temperature = 85 cool_fan_enabled = False -default_material_bed_temperature = 95 raft_airgap = 0.3 speed_prime_tower = 30.0 speed_print = 120.0 diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-asa-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-asa-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..14c15fd3c5 --- /dev/null +++ b/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-asa-175_0.2mm.inst.cfg @@ -0,0 +1,51 @@ +[general] +definition = ultimaker_methodxl +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = ultimaker_asa_175 +quality_type = draft +setting_version = 22 +type = quality +variant = LABS +weight = -2 + +[values] +cool_fan_enabled = False +material_print_temperature_layer_0 = =default_material_print_temperature+5 +raft_airgap = 0.3 +raft_base_speed = 10 +retract_at_layer_change = True +retraction_amount = 0.5 +retraction_min_travel = 3.2 +roofing_material_flow = 98.0 +small_skin_width = 3.6 +speed_prime_tower = 30.0 +speed_print = 120.0 +speed_roofing = 55 +speed_topbottom = 55 +speed_travel = 500 +speed_travel_layer_0 = 250 +speed_wall_0 = 45 +speed_wall_x = 65 +support_angle = 50 +support_bottom_density = 24 +support_bottom_enable = False +support_bottom_line_width = 0.6 +support_bottom_stair_step_height = 0 +support_fan_enable = False +support_infill_rate = 12.0 +support_interface_enable = True +support_interface_pattern = lines +support_line_width = 0.3 +support_pattern = lines +support_roof_density = 97 +support_roof_height = 1.015 +support_roof_line_width = 0.25 +support_use_towers = False +support_xy_distance = 0.2 +support_xy_distance_overhang = 0.15 +support_z_distance = 0.25 + diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-nylon12-cf-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-nylon12-cf-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..110fa5e4b5 --- /dev/null +++ b/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-nylon12-cf-175_0.2mm.inst.cfg @@ -0,0 +1,53 @@ +[general] +definition = ultimaker_methodxl +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = ultimaker_nylon12-cf_175 +quality_type = draft +setting_version = 22 +type = quality +variant = LABS +weight = -2 + +[values] +cool_fan_enabled = False +material_final_print_temperature = =default_material_print_temperature-5 +material_initial_print_temperature = =default_material_print_temperature-5 +raft_airgap = 0.3 +raft_base_line_spacing = 3 +raft_base_line_width = 1.2 +raft_base_speed = 10 +retract_at_layer_change = True +retraction_amount = 0.5 +retraction_min_travel = 3.2 +roofing_material_flow = 100 +small_skin_width = 3.6 +speed_prime_tower = 30.0 +speed_print = 120.0 +speed_roofing = 55 +speed_topbottom = 55 +speed_travel = 250.0 +speed_wall_0 = 45 +speed_wall_x = 65 +support_angle = 50 +support_bottom_density = 24 +support_bottom_enable = False +support_bottom_line_width = 0.6 +support_bottom_stair_step_height = 0 +support_fan_enable = False +support_infill_rate = 12.0 +support_interface_enable = True +support_interface_pattern = lines +support_line_width = 0.3 +support_pattern = lines +support_roof_density = 97 +support_roof_height = 1.015 +support_roof_line_width = 0.25 +support_use_towers = False +support_xy_distance = 0.2 +support_xy_distance_overhang = 0.15 +support_z_distance = 0.25 + diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg index 24c5a1d9e6..f989bcc3f6 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg @@ -27,6 +27,7 @@ acceleration_wall_x = =acceleration_wall bridge_skin_speed = =bridge_wall_speed bridge_sparse_infill_max_density = 50 bridge_wall_speed = 30 +cool_fan_speed_0 = 0 cool_min_layer_time = 4 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' infill_sparse_density = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg index 7b14730a66..29057ff13b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_um-abs_0.1mm.inst.cfg @@ -27,6 +27,7 @@ acceleration_wall_x = =acceleration_wall bridge_skin_speed = =bridge_wall_speed bridge_sparse_infill_max_density = 50 bridge_wall_speed = 30 +cool_fan_speed_0 = 0 cool_min_layer_time = 4 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' infill_sparse_density = 15 From 7a72708217c79275cb97d9ed468976d82e6e77e9 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Tue, 13 Feb 2024 16:04:20 +0100 Subject: [PATCH 186/269] Fix random crash on windows OS on boot up --- cura/PrintOrderManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/PrintOrderManager.py b/cura/PrintOrderManager.py index abfa5442a2..80fc1e99dc 100644 --- a/cura/PrintOrderManager.py +++ b/cura/PrintOrderManager.py @@ -61,7 +61,7 @@ class PrintOrderManager(QObject): is_enabled = stack and \ stack.getProperty("print_sequence", "value") == "one_at_a_time" and \ stack.getProperty("user_defined_print_order_enabled", "value") - return is_enabled + return bool(is_enabled) @staticmethod def initializePrintOrders(nodes: List[CuraSceneNode]) -> None: From 32d9e6b45c56f65beea413248849b8599e62c30a Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Wed, 14 Feb 2024 12:59:41 +0100 Subject: [PATCH 187/269] preference does not change after user changes drop to buildplate for a model CURA-10542 --- cura/PlatformPhysics.py | 12 +++++++++++- plugins/3MFReader/WorkspaceDialog.qml | 10 ++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index d204bee185..b7fe549601 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -39,6 +39,7 @@ class PlatformPhysics: Application.getInstance().getPreferences().addPreference("physics/automatic_push_free", False) Application.getInstance().getPreferences().addPreference("physics/automatic_drop_down", False) + Application.getInstance().getPreferences().addPreference("physics/per_model_drop", False) def _onSceneChanged(self, source): if not source.callDecoration("isSliceable"): @@ -54,6 +55,9 @@ class PlatformPhysics: app_preferences = app_instance.getPreferences() app_automatic_drop_down = app_preferences.getValue("physics/automatic_drop_down") app_automatic_push_free = app_preferences.getValue("physics/automatic_push_free") + # silent preference setting to mimic preference automatic_drop_down only different when user changes it explicitely while opening model + app_per_model_drop = app_preferences.getValue("physics/per_model_drop") + root = self._controller.getScene().getRoot() build_volume = app_instance.getBuildVolume() @@ -81,7 +85,11 @@ class PlatformPhysics: # Move it downwards if bottom is above platform move_vector = Vector() - if node.getSetting(SceneNodeSettings.AutoDropDown, app_automatic_drop_down) and not (node.getParent() and node.getParent().callDecoration("isGroup") or node.getParent() != root) and node.isEnabled(): #If an object is grouped, don't move it down + # if per model drop is different then app_automatic_drop + # in case of 3mf loading when user changes this setting for that model + if (app_per_model_drop != app_automatic_drop_down): + node.setSetting(SceneNodeSettings.AutoDropDown, app_per_model_drop) + if node.getSetting(SceneNodeSettings.AutoDropDown, app_per_model_drop) and not (node.getParent() and node.getParent().callDecoration("isGroup") or node.getParent() != root) and node.isEnabled(): #If an object is grouped, don't move it down z_offset = node.callDecoration("getZOffset") if node.getDecorator(ZOffsetDecorator.ZOffsetDecorator) else 0 move_vector = move_vector.set(y = -bbox.bottom + z_offset) @@ -169,6 +177,8 @@ class PlatformPhysics: op = PlatformPhysicsOperation.PlatformPhysicsOperation(node, move_vector) op.push() + # setting this silent preference same as app_automatic_drop_down + app_preferences.setValue("physics/per_model_drop", app_automatic_drop_down) # After moving, we have to evaluate the boundary checks for nodes build_volume.updateNodeBoundaryCheck() diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 8b4b2341d9..eefa0f713a 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -308,9 +308,14 @@ UM.Dialog spacing: UM.Theme.getSize("default_margin").width UM.CheckBox { + id: checkDropModels text: catalog.i18nc("@text:window", "Drop models to buildplate") - checked: UM.Preferences.getValue("physics/automatic_drop_down") == True - onCheckedChanged: UM.Preferences.setValue("physics/automatic_drop_down", checked) + checked: UM.Preferences.getValue("physics/automatic_drop_down") + onCheckedChanged: UM.Preferences.setValue("physics/per_model_drop", checked) + } + function reloadValue() + { + checkDropModels.checked = UM.Preferences.getValue("physics/automatic_drop_down") } } @@ -436,6 +441,7 @@ UM.Dialog materialSection.reloadValues() profileSection.reloadValues() printerSection.reloadValues() + dropToBuildPlate.reloadValue() } } } From 844f9b3ae81faf76387d6b757d475af4a9058b9a Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Wed, 14 Feb 2024 14:44:54 +0100 Subject: [PATCH 188/269] Changed max. value warning level z support distance to prevent warnings for AA0.25 nozzle using default profiles. PP-424 --- 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 20a8a698a2..2f63bf5798 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -5135,7 +5135,7 @@ "unit": "mm", "type": "float", "minimum_value": "0", - "maximum_value_warning": "machine_nozzle_size", + "maximum_value_warning": "5*layer_height", "default_value": 0.1, "limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", "enabled": "support_enable or support_meshes_present", From 831af362cb9acb61192f76421c33f884c88b2f2b Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 14 Feb 2024 15:46:40 +0100 Subject: [PATCH 189/269] Constantify magic values. part of CURA-11406 --- cura/OAuth2/AuthorizationService.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/cura/OAuth2/AuthorizationService.py b/cura/OAuth2/AuthorizationService.py index 1832ff37c2..4e8d28173a 100644 --- a/cura/OAuth2/AuthorizationService.py +++ b/cura/OAuth2/AuthorizationService.py @@ -1,4 +1,4 @@ -# Copyright (c) 2021 Ultimaker B.V. +# Copyright (c) 2024 UltiMaker # Cura is released under the terms of the LGPLv3 or higher. import json @@ -26,6 +26,8 @@ if TYPE_CHECKING: MYCLOUD_LOGOFF_URL = "https://account.ultimaker.com/logoff?utm_source=cura&utm_medium=software&utm_campaign=change-account-before-adding-printers" +REFRESH_TOKEN_MAX_RETRIES = 15 +REFRESH_TOKEN_RETRY_INTERVAL = 1000 class AuthorizationService: """The authorization service is responsible for handling the login flow, storing user credentials and providing @@ -60,7 +62,7 @@ class AuthorizationService: self._refresh_token_retries = 0 self._refresh_token_retry_timer = QTimer() - self._refresh_token_retry_timer.setInterval(1000) + self._refresh_token_retry_timer.setInterval(REFRESH_TOKEN_RETRY_INTERVAL) self._refresh_token_retry_timer.setSingleShot(True) self._refresh_token_retry_timer.timeout.connect(self.refreshAccessToken) @@ -182,7 +184,7 @@ class AuthorizationService: HttpRequestManager.getInstance().setDelayRequests(False) self.onAuthStateChanged.emit(logged_in = True) else: - if self._refresh_token_retries >= 15: + if self._refresh_token_retries >= REFRESH_TOKEN_MAX_RETRIES: self._refresh_token_retries = 0 Logger.warning("Failed to get a new access token from the server, giving up.") HttpRequestManager.getInstance().setDelayRequests(False) From 6d5e5ae718748e89575d6714c0b6dbfe35ace7f4 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Wed, 14 Feb 2024 17:15:27 +0100 Subject: [PATCH 190/269] setting up printorder in case nodes came from copy paste or multiply CURA-10542 --- cura/PrintOrderManager.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cura/PrintOrderManager.py b/cura/PrintOrderManager.py index 80fc1e99dc..59bbe684f4 100644 --- a/cura/PrintOrderManager.py +++ b/cura/PrintOrderManager.py @@ -116,6 +116,9 @@ class PrintOrderManager(QObject): ) -> (Optional[CuraSceneNode], Optional[CuraSceneNode], Optional[CuraSceneNode]): nodes = self._get_nodes() ordered_nodes = sorted(nodes, key=lambda n: n.printOrder) + for i, node in enumerate(ordered_nodes, 1): + node.printOrder = i + selected_node = PrintOrderManager._getSingleSelectedNode() if selected_node and selected_node in ordered_nodes: selected_node_index = ordered_nodes.index(selected_node) From f54d6099cd97c995b3a01beb177969a4a9a2a244 Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Thu, 15 Feb 2024 11:23:34 +0100 Subject: [PATCH 191/269] removed the preference made it a member of class platformphysics CURA-10542 --- cura/CuraApplication.py | 4 ++++ cura/PlatformPhysics.py | 24 ++++++++++++----------- plugins/3MFReader/WorkspaceDialog.py | 5 +++++ plugins/3MFReader/WorkspaceDialog.qml | 2 +- resources/qml/Preferences/GeneralPage.qml | 6 +++++- 5 files changed, 28 insertions(+), 13 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 76e3e4b400..153788b867 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1082,6 +1082,10 @@ class CuraApplication(QtApplication): def getTextManager(self, *args) -> "TextManager": return self._text_manager + @pyqtSlot(bool) + def getLocalDropToBuildplate(self, drop_to_build_plate: bool) ->None: + return self._physics.setAppPerModelDropDown(drop_to_build_plate) + def getCuraFormulaFunctions(self, *args) -> "CuraFormulaFunctions": if self._cura_formula_functions is None: self._cura_formula_functions = CuraFormulaFunctions(self) diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index b7fe549601..6a26190a56 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -39,7 +39,13 @@ class PlatformPhysics: Application.getInstance().getPreferences().addPreference("physics/automatic_push_free", False) Application.getInstance().getPreferences().addPreference("physics/automatic_drop_down", False) - Application.getInstance().getPreferences().addPreference("physics/per_model_drop", False) + self._app_per_model_drop = Application.getInstance().getPreferences().getValue("physics/automatic_drop_down") + + def getAppPerModelDropDown(self): + return self._app_per_model_drop + + def setAppPerModelDropDown(self, drop_to_buildplate): + self._app_per_model_drop = drop_to_buildplate def _onSceneChanged(self, source): if not source.callDecoration("isSliceable"): @@ -55,9 +61,6 @@ class PlatformPhysics: app_preferences = app_instance.getPreferences() app_automatic_drop_down = app_preferences.getValue("physics/automatic_drop_down") app_automatic_push_free = app_preferences.getValue("physics/automatic_push_free") - # silent preference setting to mimic preference automatic_drop_down only different when user changes it explicitely while opening model - app_per_model_drop = app_preferences.getValue("physics/per_model_drop") - root = self._controller.getScene().getRoot() build_volume = app_instance.getBuildVolume() @@ -85,11 +88,10 @@ class PlatformPhysics: # Move it downwards if bottom is above platform move_vector = Vector() - # if per model drop is different then app_automatic_drop - # in case of 3mf loading when user changes this setting for that model - if (app_per_model_drop != app_automatic_drop_down): - node.setSetting(SceneNodeSettings.AutoDropDown, app_per_model_drop) - if node.getSetting(SceneNodeSettings.AutoDropDown, app_per_model_drop) and not (node.getParent() and node.getParent().callDecoration("isGroup") or node.getParent() != root) and node.isEnabled(): #If an object is grouped, don't move it down + # if per model drop is different then app_automatic_drop, in case of 3mf loading when user changes this setting for that model + if (self._app_per_model_drop != app_automatic_drop_down): + node.setSetting(SceneNodeSettings.AutoDropDown, self._app_per_model_drop) + if node.getSetting(SceneNodeSettings.AutoDropDown, self._app_per_model_drop) and not (node.getParent() and node.getParent().callDecoration("isGroup") or node.getParent() != root) and node.isEnabled(): #If an object is grouped, don't move it down z_offset = node.callDecoration("getZOffset") if node.getDecorator(ZOffsetDecorator.ZOffsetDecorator) else 0 move_vector = move_vector.set(y = -bbox.bottom + z_offset) @@ -177,8 +179,8 @@ class PlatformPhysics: op = PlatformPhysicsOperation.PlatformPhysicsOperation(node, move_vector) op.push() - # setting this silent preference same as app_automatic_drop_down - app_preferences.setValue("physics/per_model_drop", app_automatic_drop_down) + # setting this drop to model same as app_automatic_drop_down + self._app_per_model_drop = app_automatic_drop_down # After moving, we have to evaluate the boundary checks for nodes build_volume.updateNodeBoundaryCheck() diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index 0203fc92b5..5b8ddeb2f9 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/plugins/3MFReader/WorkspaceDialog.py @@ -299,6 +299,11 @@ class WorkspaceDialog(QObject): Application.getInstance().getBackend().close() + @pyqtSlot(bool) + def setDropToBuildPlateForModel(self, drop_to_buildplate: bool) -> None: + CuraApplication.getInstance().getLocalDropToBuildplate(drop_to_buildplate) + + def setMaterialConflict(self, material_conflict: bool) -> None: if self._has_material_conflict != material_conflict: self._has_material_conflict = material_conflict diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index eefa0f713a..cb1664a2c0 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -311,7 +311,7 @@ UM.Dialog id: checkDropModels text: catalog.i18nc("@text:window", "Drop models to buildplate") checked: UM.Preferences.getValue("physics/automatic_drop_down") - onCheckedChanged: UM.Preferences.setValue("physics/per_model_drop", checked) + onCheckedChanged: manager.setDropToBuildPlateForModel(checked) } function reloadValue() { diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index af63743931..0fbc319fb9 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -509,7 +509,11 @@ UM.PreferencesPage id: dropDownCheckbox text: catalog.i18nc("@option:check", "Automatically drop models to the build plate") checked: boolCheck(UM.Preferences.getValue("physics/automatic_drop_down")) - onCheckedChanged: UM.Preferences.setValue("physics/automatic_drop_down", checked) + onCheckedChanged: + { + UM.Preferences.setValue("physics/automatic_drop_down", checked) + CuraApplication.getLocalDropToBuildplate(checked) + } } } From d68a454fa9170eea4659f4dee2fc84fc71d15d3d Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Thu, 15 Feb 2024 11:35:09 +0100 Subject: [PATCH 192/269] function name change to getWorkplaceDropToBuildplate CURA-10542 --- cura/CuraApplication.py | 2 +- plugins/3MFReader/WorkspaceDialog.py | 2 +- resources/qml/Preferences/GeneralPage.qml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 153788b867..20e54fa57c 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1083,7 +1083,7 @@ class CuraApplication(QtApplication): return self._text_manager @pyqtSlot(bool) - def getLocalDropToBuildplate(self, drop_to_build_plate: bool) ->None: + def getWorkplaceDropToBuildplate(self, drop_to_build_plate: bool) ->None: return self._physics.setAppPerModelDropDown(drop_to_build_plate) def getCuraFormulaFunctions(self, *args) -> "CuraFormulaFunctions": diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index 5b8ddeb2f9..02e71f2185 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/plugins/3MFReader/WorkspaceDialog.py @@ -301,7 +301,7 @@ class WorkspaceDialog(QObject): @pyqtSlot(bool) def setDropToBuildPlateForModel(self, drop_to_buildplate: bool) -> None: - CuraApplication.getInstance().getLocalDropToBuildplate(drop_to_buildplate) + CuraApplication.getInstance().getWorkplaceDropToBuildplate(drop_to_buildplate) def setMaterialConflict(self, material_conflict: bool) -> None: diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index 0fbc319fb9..69607a3f6b 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -512,7 +512,7 @@ UM.PreferencesPage onCheckedChanged: { UM.Preferences.setValue("physics/automatic_drop_down", checked) - CuraApplication.getLocalDropToBuildplate(checked) + CuraApplication.getWorkplaceDropToBuildplate(checked) } } } From 831c72dbe5d64b468eb2089ecdd3cce24a584f59 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Thu, 15 Feb 2024 15:03:13 +0100 Subject: [PATCH 193/269] Fix unit-tests. related to internal ticket CURA-11406 --- tests/TestOAuth2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/TestOAuth2.py b/tests/TestOAuth2.py index 09fa555af4..82d138a71e 100644 --- a/tests/TestOAuth2.py +++ b/tests/TestOAuth2.py @@ -97,7 +97,7 @@ def test__parseJWTNoRefreshToken(): mock_reply = Mock() # The user profile that the service should respond with. mock_reply.error = Mock(return_value = QNetworkReply.NetworkError.NoError) http_mock = Mock() - http_mock.get = lambda url, headers_dict, callback, error_callback: callback(mock_reply) + http_mock.get = lambda url, headers_dict, callback, error_callback, timeout: callback(mock_reply) http_mock.readJSON = Mock(return_value = {"data": {"user_id": "id_ego_or_superego", "username": "Ghostkeeper"}}) with patch("UM.TaskManagement.HttpRequestManager.HttpRequestManager.getInstance", MagicMock(return_value = http_mock)): From 58f8eae80cd84cf0112a4d851a842f3ff36cc430 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Thu, 15 Feb 2024 15:45:49 +0100 Subject: [PATCH 194/269] Fix more unit-tests. related to internal ticket CURA-11406 --- tests/TestOAuth2.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/TestOAuth2.py b/tests/TestOAuth2.py index 82d138a71e..c7985e39f3 100644 --- a/tests/TestOAuth2.py +++ b/tests/TestOAuth2.py @@ -119,8 +119,8 @@ def test__parseJWTFailOnRefresh(): mock_reply = Mock() # The response that the request should give, containing an error about it failing to authenticate. mock_reply.error = Mock(return_value = QNetworkReply.NetworkError.AuthenticationRequiredError) # The reply is 403: Authentication required, meaning the server responded with a "Can't do that, Dave". http_mock = Mock() - http_mock.get = lambda url, headers_dict, callback, error_callback: callback(mock_reply) - http_mock.post = lambda url, data, headers_dict, callback, error_callback: callback(mock_reply) + http_mock.get = lambda url, headers_dict, callback, error_callback, timeout: callback(mock_reply) + http_mock.post = lambda url, data, headers_dict, callback, error_callback, timeout: callback(mock_reply) with patch("UM.TaskManagement.HttpRequestManager.HttpRequestManager.readJSON", Mock(return_value = {"error_description": "Mock a failed request!"})): with patch("UM.TaskManagement.HttpRequestManager.HttpRequestManager.getInstance", MagicMock(return_value = http_mock)): @@ -142,7 +142,7 @@ def test__parseJWTSucceedOnRefresh(): mock_reply_failure = Mock() mock_reply_failure.error = Mock(return_value = QNetworkReply.NetworkError.AuthenticationRequiredError) http_mock = Mock() - def mock_get(url, headers_dict, callback, error_callback): + def mock_get(url, headers_dict, callback, error_callback, timeout): if(headers_dict == {"Authorization": "Bearer beep"}): callback(mock_reply_success) else: @@ -181,8 +181,8 @@ def test_refreshAccessTokenFailed(): mock_reply = Mock() # The response that the request should give, containing an error about it failing to authenticate. mock_reply.error = Mock(return_value = QNetworkReply.NetworkError.AuthenticationRequiredError) # The reply is 403: Authentication required, meaning the server responded with a "Can't do that, Dave". http_mock = Mock() - http_mock.get = lambda url, headers_dict, callback, error_callback: callback(mock_reply) - http_mock.post = lambda url, data, headers_dict, callback, error_callback: callback(mock_reply) + http_mock.get = lambda url, headers_dict, callback, error_callback, timeout: callback(mock_reply) + http_mock.post = lambda url, data, headers_dict, callback, error_callback, timeout: callback(mock_reply) with patch("UM.TaskManagement.HttpRequestManager.HttpRequestManager.readJSON", Mock(return_value = {"error_description": "Mock a failed request!"})): with patch("UM.TaskManagement.HttpRequestManager.HttpRequestManager.getInstance", MagicMock(return_value = http_mock)): @@ -263,7 +263,7 @@ def test_loginAndLogout() -> None: mock_reply = Mock() # The user profile that the service should respond with. mock_reply.error = Mock(return_value = QNetworkReply.NetworkError.NoError) http_mock = Mock() - http_mock.get = lambda url, headers_dict, callback, error_callback: callback(mock_reply) + http_mock.get = lambda url, headers_dict, callback, error_callback, timeout: callback(mock_reply) http_mock.readJSON = Mock(return_value = {"data": {"user_id": "di_resu", "username": "Emanresu"}}) # Let the service think there was a successful response From 77823a9c122331e24496c75be34c6365b2bf37b0 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Thu, 15 Feb 2024 16:01:32 +0100 Subject: [PATCH 195/269] Fix more unit-tests II. related to internal ticket CURA-11406 --- tests/TestOAuth2.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/TestOAuth2.py b/tests/TestOAuth2.py index c7985e39f3..41edaebbf7 100644 --- a/tests/TestOAuth2.py +++ b/tests/TestOAuth2.py @@ -120,7 +120,7 @@ def test__parseJWTFailOnRefresh(): mock_reply.error = Mock(return_value = QNetworkReply.NetworkError.AuthenticationRequiredError) # The reply is 403: Authentication required, meaning the server responded with a "Can't do that, Dave". http_mock = Mock() http_mock.get = lambda url, headers_dict, callback, error_callback, timeout: callback(mock_reply) - http_mock.post = lambda url, data, headers_dict, callback, error_callback, timeout: callback(mock_reply) + http_mock.post = lambda url, data, headers_dict, callback, error_callback, urgent, timeout: callback(mock_reply) with patch("UM.TaskManagement.HttpRequestManager.HttpRequestManager.readJSON", Mock(return_value = {"error_description": "Mock a failed request!"})): with patch("UM.TaskManagement.HttpRequestManager.HttpRequestManager.getInstance", MagicMock(return_value = http_mock)): @@ -182,7 +182,7 @@ def test_refreshAccessTokenFailed(): mock_reply.error = Mock(return_value = QNetworkReply.NetworkError.AuthenticationRequiredError) # The reply is 403: Authentication required, meaning the server responded with a "Can't do that, Dave". http_mock = Mock() http_mock.get = lambda url, headers_dict, callback, error_callback, timeout: callback(mock_reply) - http_mock.post = lambda url, data, headers_dict, callback, error_callback, timeout: callback(mock_reply) + http_mock.post = lambda url, data, headers_dict, callback, error_callback, urgent, timeout: callback(mock_reply) with patch("UM.TaskManagement.HttpRequestManager.HttpRequestManager.readJSON", Mock(return_value = {"error_description": "Mock a failed request!"})): with patch("UM.TaskManagement.HttpRequestManager.HttpRequestManager.getInstance", MagicMock(return_value = http_mock)): From 335a54c6d1c432e64784f95c69e77125bd0d57f1 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 9 Feb 2024 11:27:54 +0100 Subject: [PATCH 196/269] Enable prime tower mode according to materials types --- .../XmlMaterialProfile/XmlMaterialProfile.py | 9 ++++--- resources/definitions/fdmprinter.def.json | 26 +++++++++++++++---- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 490d704d19..0eede82d2f 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -579,8 +579,9 @@ class XmlMaterialProfile(InstanceContainer): meta_data[tag_name] = entry.text - if tag_name in self.__material_metadata_setting_map: - common_setting_values[self.__material_metadata_setting_map[tag_name]] = entry.text + for tag_name, value in meta_data.items(): + if tag_name in self.__material_metadata_setting_map: + common_setting_values[self.__material_metadata_setting_map[tag_name]] = value if "description" not in meta_data: meta_data["description"] = "" @@ -1222,7 +1223,9 @@ class XmlMaterialProfile(InstanceContainer): "diameter": "material_diameter" } __material_metadata_setting_map = { - "GUID": "material_guid" + "GUID": "material_guid", + "material": "material_type", + "brand": "material_brand", } # Map of recognised namespaces with a proper prefix. diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index a66c623826..b821f3d6c6 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -76,6 +76,22 @@ "type": "str", "enabled": false }, + "material_type": + { + "label": "Material Type", + "description": "The type of material used.", + "default_value": "", + "type": "str", + "enabled": false + }, + "material_brand": + { + "label": "Material Brand", + "description": "The brand of material used.", + "default_value": "", + "type": "str", + "enabled": false + }, "material_diameter": { "label": "Diameter", @@ -6769,14 +6785,14 @@ "prime_tower_mode": { "label": "Prime Tower", - "description": "Print a tower next to the model, which serves to prime the material after each nozzle switch.

", + "description": "Print a tower next to the model, which serves to prime the material after each nozzle switch.
  • None: do not generate a prime tower
  • Normal: generate a bucket in which secondary materials are primed
  • Interleaved: generate a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other.
", "type": "enum", - "value": "'optimized' if all(material_type == extruderValues('material_type')[0] for material_type in extruderValues('material_type')) else 'optimized_consistent'", + "value": "'none' if (extruders_enabled_count < 2) else ('interleaved' if (all(material_type_var == extruderValues('material_type')[0] for material_type_var in extruderValues('material_type')) and all(material_brand_var == extruderValues('material_brand')[0] for material_brand_var in extruderValues('material_brand'))) else 'normal')", "options": { "none": "None", - "bucket": "Bucket", - "sparse": "Sparse" + "normal": "Normal", + "interleaved": "Interleaved" }, "default_value": "none", "enabled": "extruders_enabled_count > 1", @@ -6821,7 +6837,7 @@ "default_value": 5, "minimum_value": "line_width", "maximum_value_warning": "10.0", - "enabled": "resolveOrValue('prime_tower_mode') == 'sparse' or resolveOrValue('prime_tower_mode') == 'bucket'", + "enabled": "resolveOrValue('prime_tower_mode') != 'none'", "settable_per_mesh": false, "settable_per_extruder": true }, From 5a291f9ba9e83c85d1bdfe1c0e907e0df8154f6f Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 16 Feb 2024 09:04:48 +0100 Subject: [PATCH 197/269] Change prime_tower_enable to prime_tower_mode in all defs/profiles --- plugins/LegacyProfileReader/DictionaryOfDoom.json | 2 +- resources/definitions/atmat_signal_pro_base.def.json | 2 +- resources/definitions/deltacomb_dc20flux.def.json | 2 +- resources/definitions/deltacomb_dc21flux.def.json | 2 +- resources/definitions/deltacomb_dc30flux.def.json | 2 +- resources/definitions/dxu_dual.def.json | 2 +- resources/definitions/elegoo_neptune_2D.def.json | 2 +- resources/definitions/leapfrog_bolt_pro.def.json | 2 +- resources/definitions/lotmaxx_sc60.def.json | 2 +- resources/definitions/strateo3d_IDEX420.def.json | 2 +- resources/definitions/ultimaker3.def.json | 2 +- resources/definitions/ultimaker_method_base.def.json | 2 +- resources/definitions/ultimaker_s3.def.json | 2 +- resources/definitions/ultimaker_s5.def.json | 2 +- .../Leapfrog_Bolt_Pro_brass0.4_abs_natural_standard.inst.cfg | 2 +- .../Leapfrog_Bolt_Pro_nozzlex0.4_abs_natural_standard.inst.cfg | 2 +- .../Leapfrog_Bolt_Pro_brass0.4_epla_natural_standard.inst.cfg | 2 +- .../Leapfrog_Bolt_Pro_nozzlex0.4_epla_natural_standard.inst.cfg | 2 +- .../Leapfrog_Bolt_Pro_brass0.4_pva_natural_standard.inst.cfg | 2 +- .../Leapfrog_Bolt_Pro_nozzlex0.4_pva_natural_standard.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_A.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_B.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_C.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_D.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_E.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_C.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_D.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_E.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_F.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_A.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_B.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_C.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_D.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_E.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_C.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_D.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_E.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_F.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_D.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_E.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_F.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_G.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_D.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_E.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_F.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_G.inst.cfg | 2 +- .../pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.10.inst.cfg | 2 +- .../pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.15.inst.cfg | 2 +- .../pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.20.inst.cfg | 2 +- .../pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.30.inst.cfg | 2 +- .../pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.30.inst.cfg | 2 +- .../pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.40.inst.cfg | 2 +- .../pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.60.inst.cfg | 2 +- .../nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.10.inst.cfg | 2 +- .../nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.15.inst.cfg | 2 +- .../nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.20.inst.cfg | 2 +- .../nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.30.inst.cfg | 2 +- .../quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg | 2 +- .../quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg | 2 +- .../quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg | 2 +- .../gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_ABS_Draft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_ABS_Fast_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_ABS_High_Quality.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.4_ABS_Normal_Quality.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_PC_Draft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_PC_Fast_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_PC_High_Quality.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.4_PC_Normal_Quality.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_PETG_Draft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_PETG_Fast_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.4_PETG_High_Quality.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.4_PETG_Normal_Quality.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_PLA_Draft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_PLA_Fast_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_PLA_High_Quality.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.4_PLA_Normal_Quality.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_PP_Draft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_PP_Fast_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.4_PP_Normal_Quality.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.6_PETG_Draft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.6_PETG_Fast_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.6_PLA_Draft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.6_PLA_Fast_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.8_CPE_Draft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_CPE_Superdraft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_CPE_Verydraft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_Nylon_Draft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_Nylon_Superdraft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_Nylon_Verydraft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.8_PETG_Draft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_PETG_Superdraft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_PETG_Verydraft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.8_PLA_Draft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_PLA_Superdraft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_PLA_Verydraft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.8_PP_Draft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_PP_Superdraft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_PP_Verydraft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.8_TPU_Draft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_TPU_Superdraft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_TPU_Verydraft_Print.inst.cfg | 2 +- resources/quality/nps/nps_ABS_B.inst.cfg | 2 +- resources/quality/nps/nps_ABS_C.inst.cfg | 2 +- resources/quality/nps/nps_PC_A.inst.cfg | 2 +- resources/quality/nps/nps_PC_B.inst.cfg | 2 +- resources/quality/nps/nps_PC_C.inst.cfg | 2 +- resources/quality/nps/nps_PETG_A.inst.cfg | 2 +- resources/quality/nps/nps_PETG_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PEKK_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_C.inst.cfg | 2 +- .../strateo3d/Standard_0_4/s3d_std0.4_ACETATE_A.inst.cfg | 2 +- .../strateo3d/Standard_0_4/s3d_std0.4_ACETATE_B.inst.cfg | 2 +- .../strateo3d/Standard_0_4/s3d_std0.4_ACETATE_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PC_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PC_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PC_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_D.inst.cfg | 2 +- .../strateo3d/Standard_0_6/s3d_std0.6_ACETATE_B.inst.cfg | 2 +- .../strateo3d/Standard_0_6/s3d_std0.6_ACETATE_C.inst.cfg | 2 +- .../strateo3d/Standard_0_6/s3d_std0.6_ACETATE_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_D.inst.cfg | 2 +- .../strateo3d/Standard_0_6/s3d_std0.6_Nylon-1030_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PC_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PC_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PC_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PC_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PC_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PC_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_ABS_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_ABS_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_ABS_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_ASA-X_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_ASA-X_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_ASA-X_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_BVOH_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_BVOH_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_BVOH_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_HIPS_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_HIPS_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_HIPS_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PA6CF_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PA6CF_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PA6CF_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PA6GF_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PA6GF_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PA6GF_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PETG_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PETG_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PETG_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PLA_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PLA_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PLA_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PVA-M_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PVA-M_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PVA-M_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PVA-S_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PVA-S_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PVA-S_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_TPU98A_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_TPU98A_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_TPU98A_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_ABS_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_ABS_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_ABS_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_ASA-X_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_ASA-X_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_ASA-X_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_BVOH_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_BVOH_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_BVOH_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_HIPS_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_HIPS_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_HIPS_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PA6CF_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PA6CF_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PA6CF_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PA6GF_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PA6GF_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PA6GF_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PETG_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PETG_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PETG_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PLA_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PLA_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PLA_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PVA-M_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PVA-M_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PVA-M_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PVA-S_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PVA-S_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PVA-S_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_TPU98A_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_TPU98A_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_TPU98A_H.inst.cfg | 2 +- .../tizyx_evy_dual_global_Flex_Only_Quality.inst.cfg | 2 +- .../tizyx_evy_dual/tizyx_evy_dual_global_Flex_Quality.inst.cfg | 2 +- .../tizyx_evy_dual/tizyx_evy_dual_global_High_Quality.inst.cfg | 2 +- .../tizyx_evy_dual_global_Normal_Quality.inst.cfg | 2 +- .../tizyx_evy_dual/tizyx_evy_dual_global_PVA_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg | 2 +- .../ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_TPLA_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_TPLA_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.25_pc_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.25_pp_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.06mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.06mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.06mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.4mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.3mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.06mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.25_pc_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.25_pp_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.06mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.06mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.06mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.4mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.3mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.06mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.2mm.inst.cfg | 2 +- resources/variants/liquid/liquid_vo08.inst.cfg | 2 +- resources/variants/strateo3d/strateo3d_high_temp_04.inst.cfg | 2 +- resources/variants/strateo3d/strateo3d_standard_04.inst.cfg | 2 +- resources/variants/strateo3d/strateo3d_standard_06.inst.cfg | 2 +- resources/variants/strateo3d/strateo3d_standard_08.inst.cfg | 2 +- resources/variants/strateo3d/strateo3d_standard_10.inst.cfg | 2 +- resources/variants/strateo3d/strateo3d_standard_12.inst.cfg | 2 +- resources/variants/ultimaker3_aa0.8.inst.cfg | 2 +- resources/variants/ultimaker3_bb0.8.inst.cfg | 2 +- resources/variants/ultimaker3_extended_aa0.8.inst.cfg | 2 +- resources/variants/ultimaker3_extended_bb0.8.inst.cfg | 2 +- resources/variants/ultimaker_s3_aa0.8.inst.cfg | 2 +- resources/variants/ultimaker_s3_bb0.8.inst.cfg | 2 +- resources/variants/ultimaker_s5_aa0.8.inst.cfg | 2 +- resources/variants/ultimaker_s5_bb0.8.inst.cfg | 2 +- resources/variants/ultimaker_s7_aa0.8.inst.cfg | 2 +- resources/variants/ultimaker_s7_bb0.8.inst.cfg | 2 +- 628 files changed, 628 insertions(+), 628 deletions(-) diff --git a/plugins/LegacyProfileReader/DictionaryOfDoom.json b/plugins/LegacyProfileReader/DictionaryOfDoom.json index f65cc271d1..90e973b779 100644 --- a/plugins/LegacyProfileReader/DictionaryOfDoom.json +++ b/plugins/LegacyProfileReader/DictionaryOfDoom.json @@ -68,7 +68,7 @@ "meshfix_keep_open_polygons": "fix_horrible_use_open_bits", "magic_mesh_surface_mode": "\"surface\" if simple_mode else \"normal\"", "magic_spiralize": "spiralize", - "prime_tower_enable": "wipe_tower", + "prime_tower_mode": "\"normal\" if wipe_tower else \"none\"", "prime_tower_size": "math.sqrt(float(wipe_tower_volume) / float(layer_height))", "ooze_shield_enabled": "ooze_shield", "skin_overlap": "fill_overlap" diff --git a/resources/definitions/atmat_signal_pro_base.def.json b/resources/definitions/atmat_signal_pro_base.def.json index cd59e1c169..83af53fb3c 100644 --- a/resources/definitions/atmat_signal_pro_base.def.json +++ b/resources/definitions/atmat_signal_pro_base.def.json @@ -110,7 +110,7 @@ "min_infill_area": { "value": "5.0" }, "minimum_polygon_circumference": { "value": "0.2" }, "optimize_wall_printing_order": { "value": "True" }, - "prime_tower_enable": { "value": "True" }, + "prime_tower_mode": { "value": "normal" }, "retraction_amount": { "value": "1" }, "retraction_combing": { "value": "'noskin'" }, "retraction_combing_max_distance": { "value": "10" }, diff --git a/resources/definitions/deltacomb_dc20flux.def.json b/resources/definitions/deltacomb_dc20flux.def.json index f81909dae5..cc4a38c4d5 100644 --- a/resources/definitions/deltacomb_dc20flux.def.json +++ b/resources/definitions/deltacomb_dc20flux.def.json @@ -31,7 +31,7 @@ "material_final_print_temperature": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, - "prime_tower_enable": { "value": true }, + "prime_tower_mode": { "value": "normal" }, "prime_tower_min_volume": { "value": "50" }, "switch_extruder_retraction_amount": { "value": "0" } } diff --git a/resources/definitions/deltacomb_dc21flux.def.json b/resources/definitions/deltacomb_dc21flux.def.json index dbcdf3ad37..dd710af627 100644 --- a/resources/definitions/deltacomb_dc21flux.def.json +++ b/resources/definitions/deltacomb_dc21flux.def.json @@ -31,7 +31,7 @@ "material_final_print_temperature": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, - "prime_tower_enable": { "value": true }, + "prime_tower_mode": { "value": "normal" }, "prime_tower_min_volume": { "value": "50" }, "switch_extruder_retraction_amount": { "value": "0" } } diff --git a/resources/definitions/deltacomb_dc30flux.def.json b/resources/definitions/deltacomb_dc30flux.def.json index 4a42ae4d63..789af29650 100644 --- a/resources/definitions/deltacomb_dc30flux.def.json +++ b/resources/definitions/deltacomb_dc30flux.def.json @@ -31,7 +31,7 @@ "material_final_print_temperature": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, - "prime_tower_enable": { "value": "1" }, + "prime_tower_mode": { "value": "normal" }, "prime_tower_min_volume": { "value": "50" }, "switch_extruder_retraction_amount": { "value": "0" } } diff --git a/resources/definitions/dxu_dual.def.json b/resources/definitions/dxu_dual.def.json index 6d30af005f..8fb2092b65 100644 --- a/resources/definitions/dxu_dual.def.json +++ b/resources/definitions/dxu_dual.def.json @@ -6,6 +6,6 @@ { "machine_end_gcode": { "value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \"G90 ;absolute positioning\\nM104 S0 T0 ;extruder heater off\\nM104 S0 T1\\nM140 S0 ;turn off bed\\nT0 ; move to the first head\\nM107 ;fan off\"" }, "machine_start_gcode": { "value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \";material_bed_temperature={material_bed_temperature} material_print_temperature={material_print_temperature} material_print_temperature_layer_0={material_print_temperature_layer_0}\\nM190 S{material_bed_temperature_layer_0}\\nM104 T0 S{material_standby_temperature, 0}\\nM104 T0 S{material_print_temperature_layer_0, 0}\\nG21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nM200 D0 T0 ;reset filament diameter\\nM200 D0 T1\\nG28 ;home all\\nT1 ; move to the nozzle 2\\nG0 Z20 F2400 ;move the platform to 30mm\\nM109 T1 S{material_print_temperature_layer_0, 1}\\nG0 X210 Y20 F7200\\nG92 E0\\nG92 E-7.0 ;prime distance\\nG1 E0 F45 ;purge nozzle\\nG1 E-6.5 F1500 ; retract\\nT0 ; move to the nozzle 1\\nM104 T1 S{material_standby_temperature, 1}\\nG0 Z20 F2400\\nM109 T0 S{material_print_temperature_layer_0, 0}\\nG0 X210 Y20 F7200\\nG92 E0\\nG92 E-7.0\\nG1 E0 F45 ;purge nozzle\\nG1 E-6.5 F1500\\nM104 T0 S{material_standby_temperature, 0}\\nT{initial_extruder_nr} ;switch to the first nozzle used for print\\nM109 T{initial_extruder_nr} S{material_print_temperature_layer_0, initial_extruder_nr}\\nM400 ;finish all moves\\nG1 E0 F1500\\nG92 E0\\n;end of startup sequence\\n\"" }, - "prime_tower_enable": { "default_value": true } + "prime_tower_mode": { "default_value": "normal" } } } \ No newline at end of file diff --git a/resources/definitions/elegoo_neptune_2D.def.json b/resources/definitions/elegoo_neptune_2D.def.json index c9aa5a0184..e564acc036 100644 --- a/resources/definitions/elegoo_neptune_2D.def.json +++ b/resources/definitions/elegoo_neptune_2D.def.json @@ -55,7 +55,7 @@ "settable_per_extruder": false }, "prime_blob_enable": { "default_value": false }, - "prime_tower_enable": { "default_value": true }, + "prime_tower_mode": { "default_value": "normal" }, "prime_tower_min_volume": { "default_value": 90 }, "prime_tower_size": { "default_value": 30 }, "raft_airgap": { "default_value": 0.25 }, diff --git a/resources/definitions/leapfrog_bolt_pro.def.json b/resources/definitions/leapfrog_bolt_pro.def.json index e4a13217e5..449967072f 100644 --- a/resources/definitions/leapfrog_bolt_pro.def.json +++ b/resources/definitions/leapfrog_bolt_pro.def.json @@ -80,7 +80,7 @@ "material_final_print_temperature": { "value": "default_material_print_temperature" }, "material_initial_print_temperature": { "value": "default_material_print_temperature" }, "material_standby_temperature": { "enabled": false }, - "prime_tower_enable": { "resolve": "extruders_enabled_count > 1" }, + "prime_tower_mode": { "resolve": "'normal' if extruders_enabled_count > 1 else 'none'" }, "retraction_amount": { "default_value": 2 }, "retraction_combing": { "value": "'all'" }, "skirt_line_count": { "default_value": 3 }, diff --git a/resources/definitions/lotmaxx_sc60.def.json b/resources/definitions/lotmaxx_sc60.def.json index f4ce358be1..697dd911b6 100644 --- a/resources/definitions/lotmaxx_sc60.def.json +++ b/resources/definitions/lotmaxx_sc60.def.json @@ -44,7 +44,7 @@ "machine_width": { "default_value": 235 }, "meshfix_maximum_resolution": { "value": 0.25 }, "optimize_wall_printing_order": { "value": true }, - "prime_tower_enable": { "value": true }, + "prime_tower_mode": { "value": "normal" }, "prime_tower_min_volume": { "value": 30 }, "retract_at_layer_change": { "value": false }, "retraction_amount": { "value": 4.5 }, diff --git a/resources/definitions/strateo3d_IDEX420.def.json b/resources/definitions/strateo3d_IDEX420.def.json index d4236c126e..66ecb9999c 100644 --- a/resources/definitions/strateo3d_IDEX420.def.json +++ b/resources/definitions/strateo3d_IDEX420.def.json @@ -112,7 +112,7 @@ "machine_use_extruder_offset_to_offset_coords": { "default_value": false }, "machine_width": { "default_value": 420 }, "material_diameter": { "default_value": 1.75 }, - "prime_tower_enable": { "default_value": true }, + "prime_tower_mode": { "default_value": "normal" }, "prime_tower_min_volume": { "default_value": 35.6 }, "raft_acceleration": { "value": "machine_acceleration" }, "raft_base_acceleration": { "value": "machine_acceleration" }, diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index 19df92c08d..0404e98b1d 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -149,7 +149,7 @@ "enabled": true, "value": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, - "prime_tower_enable": { "default_value": true }, + "prime_tower_mode": { "default_value": "normal" }, "prime_tower_position_x": { "value": "185" }, "prime_tower_wipe_enabled": { "default_value": false }, "retraction_amount": { "value": "6.5" }, diff --git a/resources/definitions/ultimaker_method_base.def.json b/resources/definitions/ultimaker_method_base.def.json index 1ceb05a43a..89aaa1b170 100644 --- a/resources/definitions/ultimaker_method_base.def.json +++ b/resources/definitions/ultimaker_method_base.def.json @@ -346,7 +346,7 @@ "prime_tower_base_curve_magnitude": { "value": 2 }, "prime_tower_base_height": { "value": 6 }, "prime_tower_base_size": { "value": 10 }, - "prime_tower_enable": { "value": false }, + "prime_tower_mode": { "value": "none" }, "prime_tower_flow": { "value": "material_flow" }, "prime_tower_line_width": { "value": 1 }, "prime_tower_raft_base_line_spacing": { "value": "raft_base_line_width" }, diff --git a/resources/definitions/ultimaker_s3.def.json b/resources/definitions/ultimaker_s3.def.json index add1782368..d893c16f4e 100644 --- a/resources/definitions/ultimaker_s3.def.json +++ b/resources/definitions/ultimaker_s3.def.json @@ -103,7 +103,7 @@ "default_value": false, "enabled": true }, - "prime_tower_enable": { "value": "True" }, + "prime_tower_mode": { "value": "normal" }, "retraction_amount": { "value": "6.5" }, "retraction_hop": { "value": "2" }, "retraction_hop_enabled": { "value": "extruders_enabled_count > 1" }, diff --git a/resources/definitions/ultimaker_s5.def.json b/resources/definitions/ultimaker_s5.def.json index ec82e6b630..b9eba0952b 100644 --- a/resources/definitions/ultimaker_s5.def.json +++ b/resources/definitions/ultimaker_s5.def.json @@ -104,7 +104,7 @@ "default_value": false, "enabled": true }, - "prime_tower_enable": { "value": "True" }, + "prime_tower_mode": { "value": "normal" }, "retraction_amount": { "value": "6.5" }, "retraction_combing": { "value": "'no_outer_surfaces'" }, "retraction_hop": { "value": "2" }, diff --git a/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_brass0.4_abs_natural_standard.inst.cfg b/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_brass0.4_abs_natural_standard.inst.cfg index f4da80ded9..bab34c73b6 100644 --- a/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_brass0.4_abs_natural_standard.inst.cfg +++ b/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_brass0.4_abs_natural_standard.inst.cfg @@ -38,7 +38,7 @@ line_width = 0.4 min_infill_area = 0 optimize_wall_printing_order = True prime_tower_brim_enable = True -prime_tower_enable = True +prime_tower_mode = normal prime_tower_min_volume = 6 prime_tower_size = 20 prime_tower_wipe_enabled = True diff --git a/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_nozzlex0.4_abs_natural_standard.inst.cfg b/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_nozzlex0.4_abs_natural_standard.inst.cfg index a052562cd3..e0ef960b32 100644 --- a/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_nozzlex0.4_abs_natural_standard.inst.cfg +++ b/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_nozzlex0.4_abs_natural_standard.inst.cfg @@ -38,7 +38,7 @@ line_width = 0.4 min_infill_area = 0 optimize_wall_printing_order = True prime_tower_brim_enable = True -prime_tower_enable = True +prime_tower_mode = normal prime_tower_min_volume = 6 prime_tower_size = 20 prime_tower_wipe_enabled = True diff --git a/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_brass0.4_epla_natural_standard.inst.cfg b/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_brass0.4_epla_natural_standard.inst.cfg index 145cd34ead..55c26edccb 100644 --- a/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_brass0.4_epla_natural_standard.inst.cfg +++ b/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_brass0.4_epla_natural_standard.inst.cfg @@ -36,7 +36,7 @@ line_width = 0.4 min_infill_area = 0 optimize_wall_printing_order = True prime_tower_brim_enable = True -prime_tower_enable = True +prime_tower_mode = normal prime_tower_min_volume = 6 prime_tower_size = 20 prime_tower_wipe_enabled = True diff --git a/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_nozzlex0.4_epla_natural_standard.inst.cfg b/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_nozzlex0.4_epla_natural_standard.inst.cfg index e6e2cb78a0..b5fa497a33 100644 --- a/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_nozzlex0.4_epla_natural_standard.inst.cfg +++ b/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_nozzlex0.4_epla_natural_standard.inst.cfg @@ -36,7 +36,7 @@ line_width = 0.4 min_infill_area = 0 optimize_wall_printing_order = True prime_tower_brim_enable = True -prime_tower_enable = True +prime_tower_mode = normal prime_tower_min_volume = 6 prime_tower_size = 20 prime_tower_wipe_enabled = True diff --git a/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_brass0.4_pva_natural_standard.inst.cfg b/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_brass0.4_pva_natural_standard.inst.cfg index 56587fe883..1bf050b6f2 100644 --- a/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_brass0.4_pva_natural_standard.inst.cfg +++ b/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_brass0.4_pva_natural_standard.inst.cfg @@ -35,7 +35,7 @@ line_width = 0.4 min_infill_area = 0 optimize_wall_printing_order = True prime_tower_brim_enable = True -prime_tower_enable = True +prime_tower_mode = normal prime_tower_min_volume = 6 prime_tower_size = 20 prime_tower_wipe_enabled = True diff --git a/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_nozzlex0.4_pva_natural_standard.inst.cfg b/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_nozzlex0.4_pva_natural_standard.inst.cfg index 10353f6110..7cde446656 100644 --- a/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_nozzlex0.4_pva_natural_standard.inst.cfg +++ b/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_nozzlex0.4_pva_natural_standard.inst.cfg @@ -35,7 +35,7 @@ line_width = 0.4 min_infill_area = 0 optimize_wall_printing_order = True prime_tower_brim_enable = True -prime_tower_enable = True +prime_tower_mode = normal prime_tower_min_volume = 6 prime_tower_size = 20 prime_tower_wipe_enabled = True diff --git a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_A.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_A.inst.cfg index 33b5c2c111..2e0d11b6eb 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_A.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_A.inst.cfg @@ -13,7 +13,7 @@ variant = DBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_B.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_B.inst.cfg index 5be0dc9527..fc487f97e4 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_B.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_B.inst.cfg @@ -13,7 +13,7 @@ variant = DBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_C.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_C.inst.cfg index 76aa867f8f..3eef71ef41 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_C.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_C.inst.cfg @@ -13,7 +13,7 @@ variant = DBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_D.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_D.inst.cfg index 20bb125cd9..35534c090e 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_D.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_D.inst.cfg @@ -13,7 +13,7 @@ variant = DBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_E.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_E.inst.cfg index cc0224cf23..d61061ff55 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_E.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_E.inst.cfg @@ -13,7 +13,7 @@ variant = DBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_C.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_C.inst.cfg index ec2ebdc647..df09da8d68 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_C.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_C.inst.cfg @@ -13,7 +13,7 @@ variant = DBE 0.60mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_D.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_D.inst.cfg index 136ec93d16..be38167856 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_D.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_D.inst.cfg @@ -13,7 +13,7 @@ variant = DBE 0.60mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_E.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_E.inst.cfg index 3a0a94782c..24299680ad 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_E.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_E.inst.cfg @@ -13,7 +13,7 @@ variant = DBE 0.60mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_F.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_F.inst.cfg index 719a4bdcbd..2c89d60680 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_F.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_F.inst.cfg @@ -13,7 +13,7 @@ variant = DBE 0.60mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_A.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_A.inst.cfg index 4486a1d3bc..c3cbb96ae7 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_A.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_A.inst.cfg @@ -13,7 +13,7 @@ variant = FBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_B.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_B.inst.cfg index b938502e85..5e062678c3 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_B.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_B.inst.cfg @@ -13,7 +13,7 @@ variant = FBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_C.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_C.inst.cfg index 3b88ca6b67..b9651ddf53 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_C.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_C.inst.cfg @@ -13,7 +13,7 @@ variant = FBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_D.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_D.inst.cfg index 4134717770..3e36641037 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_D.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_D.inst.cfg @@ -13,7 +13,7 @@ variant = FBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_E.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_E.inst.cfg index e267e7c6eb..bdb9ca3ce5 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_E.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_E.inst.cfg @@ -13,7 +13,7 @@ variant = FBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_C.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_C.inst.cfg index 35e2e07b41..741e6c613a 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_C.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_C.inst.cfg @@ -13,7 +13,7 @@ variant = FBE 0.60mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_D.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_D.inst.cfg index dd944cbfd1..c8421e34a5 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_D.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_D.inst.cfg @@ -13,7 +13,7 @@ variant = FBE 0.60mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_E.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_E.inst.cfg index 8aa462e206..39bafd45c6 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_E.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_E.inst.cfg @@ -13,7 +13,7 @@ variant = FBE 0.60mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_F.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_F.inst.cfg index 0691a01deb..c73c5baecd 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_F.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_F.inst.cfg @@ -13,7 +13,7 @@ variant = FBE 0.60mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_D.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_D.inst.cfg index a4d0582c3a..b9f63dff35 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_D.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_D.inst.cfg @@ -13,7 +13,7 @@ variant = V-DBE 0.80mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_E.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_E.inst.cfg index 831e17c018..86e03b328c 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_E.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_E.inst.cfg @@ -13,7 +13,7 @@ variant = V-DBE 0.80mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_F.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_F.inst.cfg index d9a57d6012..b51b54cb62 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_F.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_F.inst.cfg @@ -13,7 +13,7 @@ variant = V-DBE 0.80mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_G.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_G.inst.cfg index 8408fbc014..82ad7d5d49 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_G.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_G.inst.cfg @@ -13,7 +13,7 @@ variant = V-DBE 0.80mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_D.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_D.inst.cfg index 18c813a79a..dcc7dfcd48 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_D.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_D.inst.cfg @@ -13,7 +13,7 @@ variant = V-FBE 0.80mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_E.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_E.inst.cfg index 660c536a5e..d0fb6ec6e2 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_E.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_E.inst.cfg @@ -13,7 +13,7 @@ variant = V-FBE 0.60mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_F.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_F.inst.cfg index 5dbea58c49..1817111e2a 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_F.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_F.inst.cfg @@ -13,7 +13,7 @@ variant = V-FBE 0.80mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_G.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_G.inst.cfg index 9bfd649e99..8ba8f905d6 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_G.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_G.inst.cfg @@ -13,7 +13,7 @@ variant = V-FBE 0.80mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.10.inst.cfg b/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.10.inst.cfg index d5a2f73729..82cfb879dd 100644 --- a/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.10.inst.cfg +++ b/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.10.inst.cfg @@ -13,7 +13,7 @@ variant = 0.40mm_Elegoo_Nozzle [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed skin_overlap = 10 diff --git a/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.15.inst.cfg b/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.15.inst.cfg index e86f454664..3b8cc5bb5f 100644 --- a/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.15.inst.cfg +++ b/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.15.inst.cfg @@ -13,7 +13,7 @@ variant = 0.40mm_Elegoo_Nozzle [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 70 diff --git a/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.20.inst.cfg b/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.20.inst.cfg index db7e5a43c7..23e6730f11 100644 --- a/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.20.inst.cfg +++ b/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.20.inst.cfg @@ -17,7 +17,7 @@ infill_sparse_density = 15 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed skin_overlap = 20 diff --git a/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.30.inst.cfg b/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.30.inst.cfg index d84cc9e656..f305930448 100644 --- a/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.30.inst.cfg +++ b/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.30.inst.cfg @@ -20,7 +20,7 @@ infill_sparse_density = 15 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed skin_overlap = 20 diff --git a/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.30.inst.cfg b/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.30.inst.cfg index b6c63fad0f..cfc8fb9b32 100644 --- a/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.30.inst.cfg +++ b/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.30.inst.cfg @@ -15,7 +15,7 @@ gradual_infill_step_height = =3 * layer_height machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.40.inst.cfg b/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.40.inst.cfg index 1e3eec080a..52ebc5566b 100644 --- a/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.40.inst.cfg +++ b/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.40.inst.cfg @@ -15,7 +15,7 @@ gradual_infill_step_height = =3 * layer_height machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_enable = True +prime_tower_mode = normal speed_infill = =math.ceil(speed_print * 35 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.60.inst.cfg b/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.60.inst.cfg index 09bc57ffea..683bfe317a 100644 --- a/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.60.inst.cfg +++ b/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.60.inst.cfg @@ -15,7 +15,7 @@ gradual_infill_step_height = =3 * layer_height machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_enable = True +prime_tower_mode = normal speed_infill = =math.ceil(speed_print * 35 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.10.inst.cfg b/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.10.inst.cfg index 66eb9f49c0..40cc88859a 100644 --- a/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.10.inst.cfg +++ b/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.10.inst.cfg @@ -11,7 +11,7 @@ type = quality variant = 0.40mm_Elegoo_Nozzle [values] -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 skin_overlap = 10 speed_topbottom = =math.ceil(speed_print * 35 / 70) diff --git a/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.15.inst.cfg b/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.15.inst.cfg index 209ce52fa2..6043a569d0 100644 --- a/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.15.inst.cfg +++ b/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.15.inst.cfg @@ -11,7 +11,7 @@ type = quality variant = 0.40mm_Elegoo_Nozzle [values] -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 speed_topbottom = =math.ceil(speed_print * 35 / 70) speed_wall = =math.ceil(speed_print * 45 / 70) diff --git a/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.20.inst.cfg b/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.20.inst.cfg index 9805a1ae5a..3076011555 100644 --- a/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.20.inst.cfg +++ b/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.20.inst.cfg @@ -12,7 +12,7 @@ variant = 0.40mm_Elegoo_Nozzle [values] infill_sparse_density = 15 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 skin_overlap = 20 top_bottom_thickness = 0.8 diff --git a/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.30.inst.cfg b/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.30.inst.cfg index cb6ca323e6..562b84bf02 100644 --- a/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.30.inst.cfg +++ b/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.30.inst.cfg @@ -14,7 +14,7 @@ variant = 0.40mm_Elegoo_Nozzle infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' infill_sparse_density = 15 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 skin_overlap = 20 top_bottom_thickness = 0.9 diff --git a/resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg index d9f0a0aaea..7178468de7 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg @@ -30,7 +30,7 @@ material_standby_temperature = =material_print_temperature - 10 ooze_shield_angle = 20 ooze_shield_dist = 4 ooze_shield_enabled = True -prime_tower_enable = False +prime_tower_mode = none retraction_amount = 0.75 retraction_combing = off retraction_speed = 70 diff --git a/resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg index 620622e555..cb966418ec 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg @@ -30,7 +30,7 @@ material_standby_temperature = =material_print_temperature - 10 ooze_shield_angle = 20 ooze_shield_dist = 4 ooze_shield_enabled = True -prime_tower_enable = False +prime_tower_mode = none retraction_amount = 0.75 retraction_combing = off retraction_speed = 70 diff --git a/resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg index 05eeb68305..23733ea85e 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg @@ -30,7 +30,7 @@ material_standby_temperature = =material_print_temperature - 10 ooze_shield_angle = 20 ooze_shield_dist = 4 ooze_shield_enabled = True -prime_tower_enable = False +prime_tower_mode = none retraction_amount = 0.75 retraction_combing = off retraction_speed = 70 diff --git a/resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg index b63ef09a6b..01577a46d0 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg @@ -29,7 +29,7 @@ material_standby_temperature = =material_print_temperature - 10 ooze_shield_angle = 20 ooze_shield_dist = 4 ooze_shield_enabled = True -prime_tower_enable = False +prime_tower_mode = none retraction_amount = 0.75 retraction_combing = off retraction_speed = 70 diff --git a/resources/quality/liquid/liquid_vo0.4_ABS_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_ABS_Draft_Print.inst.cfg index 038affd56f..dc279c6232 100644 --- a/resources/quality/liquid/liquid_vo0.4_ABS_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_ABS_Draft_Print.inst.cfg @@ -18,7 +18,7 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_initial_print_temperature = =material_print_temperature - 15 material_print_temperature = =default_material_print_temperature + 20 -prime_tower_enable = False +prime_tower_mode = none skin_overlap = 20 speed_infill = =math.ceil(speed_print * 50 / 60) speed_layer_0 = =math.ceil(speed_print * 20 / 60) diff --git a/resources/quality/liquid/liquid_vo0.4_ABS_Fast_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_ABS_Fast_Print.inst.cfg index 5091d36813..d5684e3ccb 100644 --- a/resources/quality/liquid/liquid_vo0.4_ABS_Fast_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_ABS_Fast_Print.inst.cfg @@ -19,7 +19,7 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_initial_print_temperature = =material_print_temperature - 15 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_enable = False +prime_tower_mode = none speed_infill = =math.ceil(speed_print * 45 / 60) speed_layer_0 = =math.ceil(speed_print * 20 / 60) speed_print = 60 diff --git a/resources/quality/liquid/liquid_vo0.4_ABS_High_Quality.inst.cfg b/resources/quality/liquid/liquid_vo0.4_ABS_High_Quality.inst.cfg index 0420284fa8..bd43496eb4 100644 --- a/resources/quality/liquid/liquid_vo0.4_ABS_High_Quality.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_ABS_High_Quality.inst.cfg @@ -19,7 +19,7 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_initial_print_temperature = =material_print_temperature - 15 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_enable = False +prime_tower_mode = none speed_infill = =math.ceil(speed_print * 40 / 50) speed_layer_0 = =math.ceil(speed_print * 20 / 50) speed_print = 50 diff --git a/resources/quality/liquid/liquid_vo0.4_ABS_Normal_Quality.inst.cfg b/resources/quality/liquid/liquid_vo0.4_ABS_Normal_Quality.inst.cfg index 927bdbe7b9..420b8a9d9c 100644 --- a/resources/quality/liquid/liquid_vo0.4_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_ABS_Normal_Quality.inst.cfg @@ -18,7 +18,7 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_initial_print_temperature = =material_print_temperature - 15 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = False +prime_tower_mode = none speed_infill = =math.ceil(speed_print * 40 / 55) speed_layer_0 = =math.ceil(speed_print * 20 / 55) speed_print = 55 diff --git a/resources/quality/liquid/liquid_vo0.4_PC_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PC_Draft_Print.inst.cfg index 02d1292c17..ec682feabd 100644 --- a/resources/quality/liquid/liquid_vo0.4_PC_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PC_Draft_Print.inst.cfg @@ -36,7 +36,7 @@ material_print_temperature = =default_material_print_temperature + 10 material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 raft_interface_thickness = =max(layer_height * 1.5, 0.225) diff --git a/resources/quality/liquid/liquid_vo0.4_PC_Fast_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PC_Fast_Print.inst.cfg index b1c540d01e..591e6e2964 100644 --- a/resources/quality/liquid/liquid_vo0.4_PC_Fast_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PC_Fast_Print.inst.cfg @@ -35,7 +35,7 @@ material_print_temperature = =default_material_print_temperature + 10 material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 raft_interface_thickness = =max(layer_height * 1.5, 0.225) diff --git a/resources/quality/liquid/liquid_vo0.4_PC_High_Quality.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PC_High_Quality.inst.cfg index 6aac1f4972..604e491db3 100644 --- a/resources/quality/liquid/liquid_vo0.4_PC_High_Quality.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PC_High_Quality.inst.cfg @@ -36,7 +36,7 @@ material_print_temperature = =default_material_print_temperature - 10 material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 raft_interface_thickness = =max(layer_height * 1.5, 0.225) diff --git a/resources/quality/liquid/liquid_vo0.4_PC_Normal_Quality.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PC_Normal_Quality.inst.cfg index e831dfb254..e610dcf495 100644 --- a/resources/quality/liquid/liquid_vo0.4_PC_Normal_Quality.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PC_Normal_Quality.inst.cfg @@ -34,7 +34,7 @@ material_initial_print_temperature = =material_print_temperature - 5 material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 raft_interface_thickness = =max(layer_height * 1.5, 0.225) diff --git a/resources/quality/liquid/liquid_vo0.4_PETG_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PETG_Draft_Print.inst.cfg index 6e0ac10718..37d77be67c 100644 --- a/resources/quality/liquid/liquid_vo0.4_PETG_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PETG_Draft_Print.inst.cfg @@ -24,7 +24,7 @@ machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none skin_overlap = 20 speed_layer_0 = =math.ceil(speed_print * 20 / 70) speed_print = 70 diff --git a/resources/quality/liquid/liquid_vo0.4_PETG_Fast_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PETG_Fast_Print.inst.cfg index 5e84c3e1a1..f27381d0e3 100644 --- a/resources/quality/liquid/liquid_vo0.4_PETG_Fast_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PETG_Fast_Print.inst.cfg @@ -20,7 +20,7 @@ layer_height_0 = 0.2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none speed_layer_0 = =math.ceil(speed_print * 20 / 60) speed_print = 60 speed_topbottom = =math.ceil(speed_print * 35 / 60) diff --git a/resources/quality/liquid/liquid_vo0.4_PETG_High_Quality.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PETG_High_Quality.inst.cfg index 8974dcbb03..1c49689b2a 100644 --- a/resources/quality/liquid/liquid_vo0.4_PETG_High_Quality.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PETG_High_Quality.inst.cfg @@ -22,7 +22,7 @@ machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none skin_overlap = 10 speed_layer_0 = =math.ceil(speed_print * 20 / 50) speed_print = 50 diff --git a/resources/quality/liquid/liquid_vo0.4_PETG_Normal_Quality.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PETG_Normal_Quality.inst.cfg index cbada0be18..82b3f109f4 100644 --- a/resources/quality/liquid/liquid_vo0.4_PETG_Normal_Quality.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PETG_Normal_Quality.inst.cfg @@ -21,7 +21,7 @@ layer_height_0 = 0.2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none skin_overlap = 10 speed_layer_0 = =math.ceil(speed_print * 20 / 70) top_bottom_thickness = 1 diff --git a/resources/quality/liquid/liquid_vo0.4_PLA_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PLA_Draft_Print.inst.cfg index 70817b06e3..e6e18da492 100644 --- a/resources/quality/liquid/liquid_vo0.4_PLA_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PLA_Draft_Print.inst.cfg @@ -24,7 +24,7 @@ machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none skin_overlap = 20 speed_layer_0 = =math.ceil(speed_print * 20 / 70) speed_print = 70 diff --git a/resources/quality/liquid/liquid_vo0.4_PLA_Fast_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PLA_Fast_Print.inst.cfg index b6991202b2..50b8662604 100644 --- a/resources/quality/liquid/liquid_vo0.4_PLA_Fast_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PLA_Fast_Print.inst.cfg @@ -20,7 +20,7 @@ layer_height_0 = 0.2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none speed_layer_0 = =math.ceil(speed_print * 20 / 60) speed_print = 60 speed_topbottom = =math.ceil(speed_print * 35 / 60) diff --git a/resources/quality/liquid/liquid_vo0.4_PLA_High_Quality.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PLA_High_Quality.inst.cfg index 930f5cf3fd..baf7af3fdc 100644 --- a/resources/quality/liquid/liquid_vo0.4_PLA_High_Quality.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PLA_High_Quality.inst.cfg @@ -22,7 +22,7 @@ machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none skin_overlap = 10 speed_layer_0 = =math.ceil(speed_print * 20 / 50) speed_print = 50 diff --git a/resources/quality/liquid/liquid_vo0.4_PLA_Normal_Quality.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PLA_Normal_Quality.inst.cfg index 6595446fee..bf5fb6b1c9 100644 --- a/resources/quality/liquid/liquid_vo0.4_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PLA_Normal_Quality.inst.cfg @@ -21,7 +21,7 @@ layer_height_0 = 0.2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_standby_temperature = 100 -prime_tower_enable = False +prime_tower_mode = none skin_overlap = 10 speed_layer_0 = =math.ceil(speed_print * 20 / 70) top_bottom_thickness = 1 diff --git a/resources/quality/liquid/liquid_vo0.4_PP_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PP_Draft_Print.inst.cfg index 1904758532..86216145d9 100644 --- a/resources/quality/liquid/liquid_vo0.4_PP_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PP_Draft_Print.inst.cfg @@ -36,7 +36,7 @@ material_print_temperature = =default_material_print_temperature - 5 material_print_temperature_layer_0 = =material_print_temperature + 5 material_standby_temperature = 100 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 12 diff --git a/resources/quality/liquid/liquid_vo0.4_PP_Fast_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PP_Fast_Print.inst.cfg index 2a0a5729ec..7d4abe2d3f 100644 --- a/resources/quality/liquid/liquid_vo0.4_PP_Fast_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PP_Fast_Print.inst.cfg @@ -36,7 +36,7 @@ material_print_temperature = =default_material_print_temperature - 13 material_print_temperature_layer_0 = =material_print_temperature + 3 material_standby_temperature = 100 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 12 diff --git a/resources/quality/liquid/liquid_vo0.4_PP_Normal_Quality.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PP_Normal_Quality.inst.cfg index 304c4f17f0..3aace2ea38 100644 --- a/resources/quality/liquid/liquid_vo0.4_PP_Normal_Quality.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PP_Normal_Quality.inst.cfg @@ -36,7 +36,7 @@ material_print_temperature = =default_material_print_temperature - 15 material_print_temperature_layer_0 = =material_print_temperature + 3 material_standby_temperature = 100 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 12 diff --git a/resources/quality/liquid/liquid_vo0.6_PETG_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.6_PETG_Draft_Print.inst.cfg index bc712bf999..04b769ec81 100644 --- a/resources/quality/liquid/liquid_vo0.6_PETG_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.6_PETG_Draft_Print.inst.cfg @@ -26,7 +26,7 @@ material_final_print_temperature = =max(-273.15, material_print_temperature - 15 material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 material_standby_temperature = 100 -prime_tower_enable = True +prime_tower_mode = normal retract_at_layer_change = False speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/liquid/liquid_vo0.6_PETG_Fast_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.6_PETG_Fast_Print.inst.cfg index c51c068ae2..5f7216e9b8 100644 --- a/resources/quality/liquid/liquid_vo0.6_PETG_Fast_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.6_PETG_Fast_Print.inst.cfg @@ -26,7 +26,7 @@ material_final_print_temperature = =max(-273.15, material_print_temperature - 15 material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 material_standby_temperature = 100 -prime_tower_enable = True +prime_tower_mode = normal retract_at_layer_change = False speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/liquid/liquid_vo0.6_PLA_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.6_PLA_Draft_Print.inst.cfg index 3b6749dfb9..0f4b43d1ad 100644 --- a/resources/quality/liquid/liquid_vo0.6_PLA_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.6_PLA_Draft_Print.inst.cfg @@ -26,7 +26,7 @@ material_final_print_temperature = =max(-273.15, material_print_temperature - 15 material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 material_standby_temperature = 100 -prime_tower_enable = True +prime_tower_mode = normal retract_at_layer_change = False speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/liquid/liquid_vo0.6_PLA_Fast_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.6_PLA_Fast_Print.inst.cfg index 45418e5994..bf262d9b0d 100644 --- a/resources/quality/liquid/liquid_vo0.6_PLA_Fast_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.6_PLA_Fast_Print.inst.cfg @@ -26,7 +26,7 @@ material_final_print_temperature = =max(-273.15, material_print_temperature - 15 material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 material_standby_temperature = 100 -prime_tower_enable = True +prime_tower_mode = normal retract_at_layer_change = False speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/liquid/liquid_vo0.8_CPE_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_CPE_Draft_Print.inst.cfg index 90424ee65e..6f15ddf686 100644 --- a/resources/quality/liquid/liquid_vo0.8_CPE_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_CPE_Draft_Print.inst.cfg @@ -17,7 +17,7 @@ jerk_travel = 20 line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 15 material_standby_temperature = 100 -prime_tower_enable = True +prime_tower_mode = normal retraction_combing_max_distance = 50 speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) diff --git a/resources/quality/liquid/liquid_vo0.8_CPE_Superdraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_CPE_Superdraft_Print.inst.cfg index 7857ed00e7..e56ee10a98 100644 --- a/resources/quality/liquid/liquid_vo0.8_CPE_Superdraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_CPE_Superdraft_Print.inst.cfg @@ -17,7 +17,7 @@ jerk_travel = 20 line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 20 material_standby_temperature = 100 -prime_tower_enable = True +prime_tower_mode = normal retraction_combing_max_distance = 50 speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/liquid/liquid_vo0.8_CPE_Verydraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_CPE_Verydraft_Print.inst.cfg index 4194c6f3b7..c8c93a744f 100644 --- a/resources/quality/liquid/liquid_vo0.8_CPE_Verydraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_CPE_Verydraft_Print.inst.cfg @@ -17,7 +17,7 @@ jerk_travel = 20 line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 17 material_standby_temperature = 100 -prime_tower_enable = True +prime_tower_mode = normal retraction_combing_max_distance = 50 speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) diff --git a/resources/quality/liquid/liquid_vo0.8_Nylon_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_Nylon_Draft_Print.inst.cfg index 87dd876588..70db87df10 100644 --- a/resources/quality/liquid/liquid_vo0.8_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_Nylon_Draft_Print.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_standby_temperature = 100 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal raft_acceleration = =acceleration_layer_0 raft_airgap = =round(layer_height_0 * 0.85, 2) raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) diff --git a/resources/quality/liquid/liquid_vo0.8_Nylon_Superdraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_Nylon_Superdraft_Print.inst.cfg index 891a20540d..a134533c46 100644 --- a/resources/quality/liquid/liquid_vo0.8_Nylon_Superdraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_Nylon_Superdraft_Print.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_standby_temperature = 100 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal raft_acceleration = =acceleration_layer_0 raft_airgap = =round(layer_height_0 * 0.85, 2) raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) diff --git a/resources/quality/liquid/liquid_vo0.8_Nylon_Verydraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_Nylon_Verydraft_Print.inst.cfg index e009094760..d8c5450478 100644 --- a/resources/quality/liquid/liquid_vo0.8_Nylon_Verydraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_Nylon_Verydraft_Print.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_standby_temperature = 100 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal raft_acceleration = =acceleration_layer_0 raft_airgap = =round(layer_height_0 * 0.85, 2) raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) diff --git a/resources/quality/liquid/liquid_vo0.8_PETG_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PETG_Draft_Print.inst.cfg index 947c042b8c..f941d5a55d 100644 --- a/resources/quality/liquid/liquid_vo0.8_PETG_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PETG_Draft_Print.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal retract_at_layer_change = False speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/liquid/liquid_vo0.8_PETG_Superdraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PETG_Superdraft_Print.inst.cfg index 08cb14cb26..d96bf8d17e 100644 --- a/resources/quality/liquid/liquid_vo0.8_PETG_Superdraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PETG_Superdraft_Print.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 15 -prime_tower_enable = True +prime_tower_mode = normal raft_margin = 10 retract_at_layer_change = False speed_print = 45 diff --git a/resources/quality/liquid/liquid_vo0.8_PETG_Verydraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PETG_Verydraft_Print.inst.cfg index 187ed1f212..53142e5348 100644 --- a/resources/quality/liquid/liquid_vo0.8_PETG_Verydraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PETG_Verydraft_Print.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal retract_at_layer_change = False speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/liquid/liquid_vo0.8_PLA_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PLA_Draft_Print.inst.cfg index 10b6e8185a..5a4cb62ee2 100644 --- a/resources/quality/liquid/liquid_vo0.8_PLA_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PLA_Draft_Print.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal retract_at_layer_change = False speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/liquid/liquid_vo0.8_PLA_Superdraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PLA_Superdraft_Print.inst.cfg index ed0fc7fd8a..4168b05c61 100644 --- a/resources/quality/liquid/liquid_vo0.8_PLA_Superdraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PLA_Superdraft_Print.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 15 -prime_tower_enable = True +prime_tower_mode = normal raft_margin = 10 retract_at_layer_change = False speed_print = 45 diff --git a/resources/quality/liquid/liquid_vo0.8_PLA_Verydraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PLA_Verydraft_Print.inst.cfg index 9def9ecb97..af930c749a 100644 --- a/resources/quality/liquid/liquid_vo0.8_PLA_Verydraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PLA_Verydraft_Print.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal retract_at_layer_change = False speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/liquid/liquid_vo0.8_PP_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PP_Draft_Print.inst.cfg index 4c3f60a240..d30007f18d 100644 --- a/resources/quality/liquid/liquid_vo0.8_PP_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PP_Draft_Print.inst.cfg @@ -26,7 +26,7 @@ material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 10 retract_at_layer_change = False diff --git a/resources/quality/liquid/liquid_vo0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PP_Superdraft_Print.inst.cfg index 1b7c05ac3c..a0a1f806ab 100644 --- a/resources/quality/liquid/liquid_vo0.8_PP_Superdraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PP_Superdraft_Print.inst.cfg @@ -26,7 +26,7 @@ material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 20 retract_at_layer_change = False diff --git a/resources/quality/liquid/liquid_vo0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PP_Verydraft_Print.inst.cfg index 7cbb60c3aa..cdadd228be 100644 --- a/resources/quality/liquid/liquid_vo0.8_PP_Verydraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PP_Verydraft_Print.inst.cfg @@ -25,7 +25,7 @@ material_bed_temperature_layer_0 = =material_bed_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 15 retract_at_layer_change = False diff --git a/resources/quality/liquid/liquid_vo0.8_TPU_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_TPU_Draft_Print.inst.cfg index 4994e3f9f4..31baf4022c 100644 --- a/resources/quality/liquid/liquid_vo0.8_TPU_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_TPU_Draft_Print.inst.cfg @@ -30,7 +30,7 @@ material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =material_print_temperature + 19 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 retract_at_layer_change = False retraction_count_max = 12 diff --git a/resources/quality/liquid/liquid_vo0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_TPU_Superdraft_Print.inst.cfg index fd15d041b8..408ad54518 100644 --- a/resources/quality/liquid/liquid_vo0.8_TPU_Superdraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_TPU_Superdraft_Print.inst.cfg @@ -31,7 +31,7 @@ material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =material_print_temperature + 15 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 retract_at_layer_change = False retraction_count_max = 12 diff --git a/resources/quality/liquid/liquid_vo0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_TPU_Verydraft_Print.inst.cfg index 5c88fb165f..9fd95f5c32 100644 --- a/resources/quality/liquid/liquid_vo0.8_TPU_Verydraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_TPU_Verydraft_Print.inst.cfg @@ -30,7 +30,7 @@ material_initial_print_temperature = =material_print_temperature material_print_temperature_layer_0 = =material_print_temperature + 17 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 retract_at_layer_change = False retraction_count_max = 12 diff --git a/resources/quality/nps/nps_ABS_B.inst.cfg b/resources/quality/nps/nps_ABS_B.inst.cfg index 3f700405bd..520bda4b05 100644 --- a/resources/quality/nps/nps_ABS_B.inst.cfg +++ b/resources/quality/nps/nps_ABS_B.inst.cfg @@ -22,7 +22,7 @@ material_bed_temperature = 100 material_flow = 96 material_print_temperature = =default_material_print_temperature + 13 material_print_temperature_layer_0 = =243 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/nps/nps_ABS_C.inst.cfg b/resources/quality/nps/nps_ABS_C.inst.cfg index 6138e4004c..1131f61d36 100644 --- a/resources/quality/nps/nps_ABS_C.inst.cfg +++ b/resources/quality/nps/nps_ABS_C.inst.cfg @@ -22,7 +22,7 @@ material_bed_temperature = 100 material_flow = 91 material_print_temperature = =default_material_print_temperature + 15 material_print_temperature_layer_0 = =245 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/nps/nps_PC_A.inst.cfg b/resources/quality/nps/nps_PC_A.inst.cfg index 8665f8ceae..90cc71d951 100644 --- a/resources/quality/nps/nps_PC_A.inst.cfg +++ b/resources/quality/nps/nps_PC_A.inst.cfg @@ -32,7 +32,7 @@ material_bed_temperature = 110 material_flow = 100 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =280 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/nps/nps_PC_B.inst.cfg b/resources/quality/nps/nps_PC_B.inst.cfg index 9ccb5cea53..3761d802d7 100644 --- a/resources/quality/nps/nps_PC_B.inst.cfg +++ b/resources/quality/nps/nps_PC_B.inst.cfg @@ -32,7 +32,7 @@ material_bed_temperature = 110 material_flow = 88 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = 275 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/nps/nps_PC_C.inst.cfg b/resources/quality/nps/nps_PC_C.inst.cfg index 30267d4237..85752e78c2 100644 --- a/resources/quality/nps/nps_PC_C.inst.cfg +++ b/resources/quality/nps/nps_PC_C.inst.cfg @@ -32,7 +32,7 @@ material_bed_temperature = 110 material_flow = 88 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = 275 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/nps/nps_PETG_A.inst.cfg b/resources/quality/nps/nps_PETG_A.inst.cfg index 3cae430f1c..0985dd1b3a 100644 --- a/resources/quality/nps/nps_PETG_A.inst.cfg +++ b/resources/quality/nps/nps_PETG_A.inst.cfg @@ -22,7 +22,7 @@ material_bed_temperature = 80 material_flow = 98 material_print_temperature = =default_material_print_temperature + 20 material_print_temperature_layer_0 = =230 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/nps/nps_PETG_B.inst.cfg b/resources/quality/nps/nps_PETG_B.inst.cfg index 5860f65414..e3a5f165ad 100644 --- a/resources/quality/nps/nps_PETG_B.inst.cfg +++ b/resources/quality/nps/nps_PETG_B.inst.cfg @@ -22,7 +22,7 @@ material_bed_temperature = 80 material_flow = 95 material_print_temperature = =default_material_print_temperature + 20 material_print_temperature_layer_0 = =230 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_A.inst.cfg index 39ba32a332..0569a356f3 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 100 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_B.inst.cfg index dd0d167e6b..e906508f7f 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 96 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_C.inst.cfg index f894a7dc13..a883aba2ec 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_A.inst.cfg index 7642489c2a..dc595e8c5d 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 100 material_print_temperature = =default_material_print_temperature + 1 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_B.inst.cfg index bf5c18405b..a84b12135f 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 96 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 1 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_C.inst.cfg index 6756384e4a..ef6358a6a0 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature +3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_A.inst.cfg index 978484d813..7a0cd7ee8d 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 98 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_B.inst.cfg index bcec4fe68f..4fa5d070aa 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 95 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 0 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_C.inst.cfg index 85f79ebe7a..7944c44371 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 93 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_A.inst.cfg index 9b29e49624..fb2ee81c9f 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 100 material_print_temperature = =default_material_print_temperature + 1 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_B.inst.cfg index 07a46f0d05..4e63f1513d 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 96 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_C.inst.cfg index 60410d8d34..5e158007ab 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 7 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_A.inst.cfg index 9304630630..f73adbfa51 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_A.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_B.inst.cfg index d39d91c91a..da2aa05237 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_B.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_C.inst.cfg index e716824cf0..e636a5ebee 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_A.inst.cfg index bd964bed2a..a997ac74dd 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_B.inst.cfg index cd27f77737..7055e3dadd 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_C.inst.cfg index 78191af7be..6c66ffd76c 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_A.inst.cfg index f37a3b4d6d..f451618a28 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_A.inst.cfg @@ -34,7 +34,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 88 material_print_temperature = 260 material_print_temperature_layer_0 = 265 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_B.inst.cfg index 75fed99b1e..5866dad50b 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_B.inst.cfg @@ -34,7 +34,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 88 material_print_temperature = 270 material_print_temperature_layer_0 = 275 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_C.inst.cfg index 51911c3811..502dd8be07 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_C.inst.cfg @@ -34,7 +34,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 88 material_print_temperature = 270 material_print_temperature_layer_0 = 275 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PEKK_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PEKK_B.inst.cfg index e4596d9def..5279228105 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PEKK_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PEKK_B.inst.cfg @@ -33,7 +33,7 @@ material_flow = 105 material_flow_layer_0 = 120 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 15 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_A.inst.cfg index d0faf6eb66..92c62d2b43 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 98 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_B.inst.cfg index 3a64a52254..92811521ac 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_C.inst.cfg index debf74ed0d..234d33c2eb 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature +5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_A.inst.cfg index 990d5cf645..76ea2997ba 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 98 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_B.inst.cfg index 82f26cd66d..fc3d8e47ec 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_C.inst.cfg index a91b035e38..f4bfb4c698 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_A.inst.cfg index c7194e18d2..82715060a6 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_A.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 10 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_amount = 2 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_B.inst.cfg index 078e213a26..ca19b0ee14 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_B.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_amount = 2 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_C.inst.cfg index bfb4c46c46..f61b83ab7b 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_C.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_amount = 2 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_A.inst.cfg index 8dd1c17ea6..85097b4506 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.38 material_flow = 107 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature - 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = False retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_B.inst.cfg index cca98aa599..967f7c21a5 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.38 material_flow = 103 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = False retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_C.inst.cfg index 5a343d6893..9110650629 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.38 material_flow = 101 material_print_temperature = =default_material_print_temperature + 7 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = False retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_A.inst.cfg index e6be881341..de6356694f 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 100 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_B.inst.cfg index c4342c149a..ec119cba9f 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 96 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_C.inst.cfg index e3581e0823..0b4df9f3a3 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_A.inst.cfg index 4c451894bd..ad5d8c8586 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 100 material_print_temperature = =default_material_print_temperature + 1 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_B.inst.cfg index 65c2c9e81f..e0600e72d8 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 96 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 1 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_C.inst.cfg index 2f5cf9cfa3..5827b15cf9 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature +3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_A.inst.cfg index 36d6697edb..3ee7204b92 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 98 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_B.inst.cfg index e92561350a..4834ca9eef 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 95 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 0 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_C.inst.cfg index e61775fde0..4850f68dc0 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 93 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_A.inst.cfg index 020b95dad2..ec7cbcc0fd 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 100 material_print_temperature = =default_material_print_temperature + 1 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_B.inst.cfg index 6688d82ec8..6f086f0605 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 96 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_C.inst.cfg index 2c8d6a82d3..ff5016d543 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 7 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_A.inst.cfg index fe012ff873..e324931269 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_B.inst.cfg index c0adce0f84..5aea3605f5 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_C.inst.cfg index 5b58c2f37b..24a1faed48 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_A.inst.cfg index f986831fd5..d73b6ac796 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_A.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_B.inst.cfg index 5d360b244b..14d3867950 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_B.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_C.inst.cfg index 3875e668f4..26e6ebc4df 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_A.inst.cfg index d4d0e1c17e..54954ff567 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_B.inst.cfg index f2bb237ea2..057fb1b8cc 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_C.inst.cfg index f6780fbded..63f71cff82 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_A.inst.cfg index 6e726932a6..afef00df11 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_A.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_B.inst.cfg index 7ef50ff5b1..7b81803b0c 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_B.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_C.inst.cfg index 4d4af1e0f7..c0ac99423d 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_A.inst.cfg index 0d88c99c85..bd0f177b1b 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_A.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_B.inst.cfg index de476e6e46..586d49b7db 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_B.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_C.inst.cfg index 3fe7ff347c..16c8c5e6aa 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_A.inst.cfg index 9dd3039b65..71a70f0849 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_A.inst.cfg @@ -34,7 +34,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 88 material_print_temperature = 260 material_print_temperature_layer_0 = 265 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_B.inst.cfg index 346f33bafb..ad26bba4cb 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_B.inst.cfg @@ -34,7 +34,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 88 material_print_temperature = 270 material_print_temperature_layer_0 = 275 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_C.inst.cfg index 8571e8c4b0..e4da72d39a 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_C.inst.cfg @@ -34,7 +34,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 88 material_print_temperature = 270 material_print_temperature_layer_0 = 275 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_A.inst.cfg index 4231e1b3a1..b7bebe13b7 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 98 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_B.inst.cfg index c141a0ab07..f3bc48c8c9 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_C.inst.cfg index 9cd4262c55..70c2d3044c 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature +5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_A.inst.cfg index 6f49ec9e3b..d52ceb51ea 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 98 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_B.inst.cfg index 415379417c..6124b1dfed 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_C.inst.cfg index c4ce86563f..b4a8bc21f4 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_A.inst.cfg index dc4505591f..a764026ca7 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_A.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 10 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_amount = 2 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_B.inst.cfg index 224fa18cd6..11b9d689c8 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_B.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_amount = 2 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_C.inst.cfg index 44737981b0..7521ef5d62 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_C.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_amount = 2 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_A.inst.cfg index 8bf71b5cf5..6de69d4eba 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_B.inst.cfg index 3102afdc2c..e2b282ab2a 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_C.inst.cfg index ad6e361582..60d02fac6d 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_A.inst.cfg index b7445aee86..4969aad456 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_B.inst.cfg index cc849df9ba..7bf8dc30d4 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_C.inst.cfg index 10cbd3a4cf..27cef2d7c9 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_A.inst.cfg index 055bbb7623..24e3a1f238 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.38 material_flow = 107 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature - 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = False retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_B.inst.cfg index 028586beb4..4211634c6d 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.38 material_flow = 103 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = False retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_C.inst.cfg index 8bc0b97bc5..bd2c12c3f1 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.38 material_flow = 101 material_print_temperature = =default_material_print_temperature + 7 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = False retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_B.inst.cfg index ec355cec15..589f27a221 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 100 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_C.inst.cfg index 3ab4df020c..bca586491d 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 98 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_D.inst.cfg index 455cb44a7b..2e90b6fd6f 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 96 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_B.inst.cfg index 3475c621c3..e2f63845ee 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 100 material_print_temperature = =default_material_print_temperature + 1 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_C.inst.cfg index d7d937fdef..bc9df5fa14 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 98 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 1 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_D.inst.cfg index e83067bdc8..7216eb093c 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 96 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_B.inst.cfg index 188cddf0d6..a90e755a49 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_C.inst.cfg index 6127c2ec43..1d54fd6b3c 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 93 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 0 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_D.inst.cfg index ca38be0476..90d3d00507 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 91 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_B.inst.cfg index caa9003cb3..ca2b4a9c9e 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 101 material_print_temperature = =default_material_print_temperature + 1 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_C.inst.cfg index a10cbdac7d..b297719ba1 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 99 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_D.inst.cfg index 85fe174e95..34882ab1af 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 97 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 7 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_B.inst.cfg index 9b48be1b8b..07969b958a 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_C.inst.cfg index 0440a0a34a..ecd3384a5b 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_D.inst.cfg index 7f124ae4ec..a4a87bc3f3 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_B.inst.cfg index f662c41048..c0f93168da 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_B.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_amount = 3 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_C.inst.cfg index dae0dda098..4116205747 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_amount = 3 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_D.inst.cfg index 1079c746ec..df1fb6e2e7 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_D.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_amount = 3 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_B.inst.cfg index 04991249e9..aa5bfa30f2 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_C.inst.cfg index 685778f3f1..887a35f80e 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_D.inst.cfg index ab5eca1d47..a9a4bcb18f 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_Nylon-1030_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_Nylon-1030_C.inst.cfg index a5a2addbc6..d73114c313 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_Nylon-1030_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_Nylon-1030_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 93 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_B.inst.cfg index 6ecc9a3265..e3f0657f1f 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_B.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_C.inst.cfg index 9e060959dd..542f9405b1 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_D.inst.cfg index 322d30a975..43ff676c46 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_D.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_B.inst.cfg index 5ae6c32cb8..2cca8a5c45 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_B.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_C.inst.cfg index 3fbe1f6370..951e26d841 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_D.inst.cfg index 46aacdf22c..f408c5a293 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_D.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_B.inst.cfg index 6997dae536..8b72022a0d 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_B.inst.cfg @@ -33,7 +33,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 87 material_print_temperature = 270 material_print_temperature_layer_0 = 275 -prime_tower_enable = True +prime_tower_mode = normal retraction_amount = 2 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_C.inst.cfg index 70bb7206af..2540f2bea9 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_C.inst.cfg @@ -33,7 +33,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 87 material_print_temperature = 270 material_print_temperature_layer_0 = 275 -prime_tower_enable = True +prime_tower_mode = normal retraction_amount = 2 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_D.inst.cfg index eb89937ded..c6bd8cc70e 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_D.inst.cfg @@ -33,7 +33,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 87 material_print_temperature = 270 material_print_temperature_layer_0 = 275 -prime_tower_enable = True +prime_tower_mode = normal retraction_amount = 2 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_B.inst.cfg index 4bc567a2d9..02b8e45e22 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 93 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_C.inst.cfg index f08c2e68b7..26e2eb5029 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 92 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_D.inst.cfg index 4a9a1472b8..f97462d99c 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 91 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature +5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_B.inst.cfg index 41edbc8e32..540e14ba23 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 93 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_C.inst.cfg index 10356ad344..af851371a1 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 92 material_print_temperature = =default_material_print_temperature + 8 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_D.inst.cfg index 9f04791ac2..e2470b9ecf 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 91 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_B.inst.cfg index 56e09ac385..21c4f9eccc 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_B.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_C.inst.cfg index 6c8a5462aa..b210d0fd30 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_C.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_D.inst.cfg index be4a045e0d..6b6a5923ce 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_D.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_B.inst.cfg index 6b107e9c9b..f677ac9e32 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_C.inst.cfg index ca169572b9..9ed4c381c9 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_D.inst.cfg index 7e7a3ed9d1..3f928f436d 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_B.inst.cfg index a08e251fe0..d8e702dc7a 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_C.inst.cfg index 2bcf4d4b1d..53516d4617 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_D.inst.cfg index 1352a75a8a..e7298a71d3 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_B.inst.cfg index ad699959aa..cd9de526ec 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.55 material_flow = 105 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature - 2 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = False retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_C.inst.cfg index 6fdabc1a83..4de06235da 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.55 material_flow = 103 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = False retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_D.inst.cfg index 1954931cc7..431623b7c6 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.55 material_flow = 101 material_print_temperature = =default_material_print_temperature + 7 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = False retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_C.inst.cfg index 913af1994b..e0c29062d7 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 1 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_D.inst.cfg index 573834fc79..9230df64e3 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 96 material_print_temperature = =default_material_print_temperature + 7 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_E.inst.cfg index 3d5d1781ae..7117a889ed 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 95 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_C.inst.cfg index 4910a69272..97d2209bda 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_D.inst.cfg index 28d395019a..111504ad7b 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 96 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 2 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_E.inst.cfg index b91ceb1f85..d5322c039a 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 95 material_print_temperature = =default_material_print_temperature + 7 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_C.inst.cfg index 4a32ddceaf..74d0fa3869 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature + 1 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_D.inst.cfg index e45a8970f7..80dfbe8dbc 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 96 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_E.inst.cfg index c0a9632b95..26decee7ba 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 7 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_C.inst.cfg index bce7e2891f..850458ed36 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_D.inst.cfg index 0a053f123e..06f9ed6686 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_E.inst.cfg index 4f167ecacc..36398c0cfc 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_C.inst.cfg index 8efea7e264..8dd9bc10fb 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop = 2 retraction_hop_enabled = True diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_D.inst.cfg index d2f6973da7..fb149908d1 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_D.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop = 2 retraction_hop_enabled = True diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_E.inst.cfg index 57e9fc27a4..47d9a50940 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_E.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop = 2 retraction_hop_enabled = True diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_C.inst.cfg index 2ef4a5b479..e57fefc2b9 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_D.inst.cfg index a7549a851c..0cbddce4c9 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_E.inst.cfg index 322f31e986..965c08e8f9 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_C.inst.cfg index 6f3fa578bf..4062997ba0 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_D.inst.cfg index ee3166e7da..e6acfe27b8 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_D.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_E.inst.cfg index 05eabcc6a3..602837f410 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_E.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_C.inst.cfg index d10b2df53b..d5bb0ac8ba 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_D.inst.cfg index 181d89f957..022a6f36bf 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_D.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_E.inst.cfg index 38bd72884b..35421e68d6 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_E.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_C.inst.cfg index d8b2e660fc..65217b7ff9 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_C.inst.cfg @@ -35,7 +35,7 @@ material_print_temperature = 280 material_print_temperature_layer_0 = 285 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_min_travel = =2*line_width retraction_speed = 35 diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_D.inst.cfg index c39338eeca..118acb433f 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_D.inst.cfg @@ -35,7 +35,7 @@ material_print_temperature = 280 material_print_temperature_layer_0 = 285 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_min_travel = =2*line_width retraction_speed = 35 diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_E.inst.cfg index f88eff1615..c8102ecdf9 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_E.inst.cfg @@ -35,7 +35,7 @@ material_print_temperature = 280 material_print_temperature_layer_0 = 285 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_min_travel = =2*line_width retraction_speed = 35 diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_C.inst.cfg index 59a6db473d..df178b1807 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.4 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_D.inst.cfg index 9a94498b12..95973a4428 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.4 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_E.inst.cfg index 2611e1deba..32073574ea 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 93 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature +5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.4 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_C.inst.cfg index 35644e47a8..4b306434b9 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 99 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_D.inst.cfg index a820dd8467..99a245dfb4 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 98 material_print_temperature = =default_material_print_temperature + 7 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_E.inst.cfg index a4f135a4fa..d7ecb95748 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_C.inst.cfg index ee58caf9e6..9a973d225d 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_C.inst.cfg @@ -27,7 +27,7 @@ material_flow = 93 material_initial_print_temperature = =default_material_print_temperature material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_D.inst.cfg index 6399e7fd1f..6ff6a8dd0e 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_D.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_E.inst.cfg index e034d49e6e..5f19e2ab77 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_E.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_C.inst.cfg index 632c45a51f..5ea81eab76 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_D.inst.cfg index e882d42015..cc5ecebffe 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_E.inst.cfg index 7b52c7bb2d..d133a60b41 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_C.inst.cfg index a0fcdc4a52..1e243bbea4 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_D.inst.cfg index 496e5fe215..54889f9923 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_E.inst.cfg index 9c676c934b..8f484b0616 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_C.inst.cfg index 0b4c3c0281..f328b88645 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.7 material_flow = 105 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_D.inst.cfg index ffbb925a22..9d11111b78 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.7 material_flow = 103 material_print_temperature = =default_material_print_temperature + 6 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_E.inst.cfg index 60af5617e3..ed25c0fb46 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.7 material_flow = 101 material_print_temperature = =default_material_print_temperature + 9 material_print_temperature_layer_0 = =default_material_print_temperature +5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_C.inst.cfg index 71581b46ad..0b70ff0384 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.7 material_flow = 100 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_D.inst.cfg index bcbb45062a..f519ec66d5 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.7 material_flow = 100 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_E.inst.cfg index 827ae4a7ba..83c109070a 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.7 material_flow = 100 material_print_temperature = =default_material_print_temperature + 7 material_print_temperature_layer_0 = =default_material_print_temperature +3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_D.inst.cfg index 29f88f6e15..09ffbaed98 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_E.inst.cfg index 316e5d4447..ff50fd3deb 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_F.inst.cfg index 44203ad144..fbbc7a0187 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature +5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_D.inst.cfg index e322951476..95a6d4e732 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 100 material_print_temperature = =default_material_print_temperature + 1 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.4 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_E.inst.cfg index b4ee9ea985..2c0caa6a06 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 100 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.4 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_F.inst.cfg index 708896fdb7..c896adef1b 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 100 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 7 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.4 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_D.inst.cfg index 63ca3d88ff..0dcc4405d7 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_E.inst.cfg index 62ed1914db..73dce76c2e 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_F.inst.cfg index ac9ec6324e..36902a619f 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_D.inst.cfg index b225d8a911..b0bc012110 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_E.inst.cfg index 6e859c8dd0..baf4211645 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_F.inst.cfg index 6b8ebd9d20..754d20c802 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_D.inst.cfg index f168d4cf46..717aed8e49 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_D.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_E.inst.cfg index 652876d6b2..d41dea9d7b 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_E.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_F.inst.cfg index 482b99c2f6..b708481aeb 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_F.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_D.inst.cfg index 551e79a8e4..5e604e6f65 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_D.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_E.inst.cfg index 5709736147..31f7a30f3f 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_E.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_F.inst.cfg index 38f3b2b2ef..f35389424c 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_F.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_D.inst.cfg index 54a6d54cc0..902e42aef1 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 95 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_E.inst.cfg index abdd37d98d..f1fc4dd877 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_F.inst.cfg index 50f3b04e16..03c73269f8 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 95 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_D.inst.cfg index 35e9d19957..ddf8abc4c1 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_E.inst.cfg index 6e59384a4d..77eb559e6e 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 100 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_F.inst.cfg index 9df5f69d75..5053e91cbb 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 100 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature +5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_D.inst.cfg index 45b5a9e415..0e658a7bd2 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_E.inst.cfg index 70ec1234ff..f30a55729c 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_F.inst.cfg index 6327502027..eca2362651 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_D.inst.cfg index d7056a3f11..ec460ac49e 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_E.inst.cfg index a5ec67621f..1e85473f67 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_F.inst.cfg index 4ddc98ddd2..9650dac1c0 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_D.inst.cfg index 1b3a77ab8b..38cf5927f0 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.9 material_flow = 107 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_E.inst.cfg index be45c084a5..60baaa1038 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.9 material_flow = 107 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_F.inst.cfg index c02401c4d5..385d21e44d 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.9 material_flow = 107 material_print_temperature = =default_material_print_temperature + 8 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_F.inst.cfg index ba91c749d5..ef7573779d 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 103 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_G.inst.cfg index b1d4c72a34..86e4022a27 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_G.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 102 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_H.inst.cfg index 4fac7e687d..aa2af46845 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_H.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 101 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature +5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_F.inst.cfg index 91b4699598..915523eadf 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature + 1 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_G.inst.cfg index 8d84bc4fd5..d258496552 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_G.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_H.inst.cfg index eafe3eef80..93420a5103 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_H.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 7 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_F.inst.cfg index 3286e7fb08..41764726df 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_G.inst.cfg index bb164bcd99..2e4bb516b0 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_G.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_H.inst.cfg index 82ad174a95..700c0102c2 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_H.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_F.inst.cfg index f33abf1ec3..941f0a6c81 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 103 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_G.inst.cfg index 2edb0e32f8..4cd7728a69 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_G.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 102 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_H.inst.cfg index 30d7139eb9..01b584afcd 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_H.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 101 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_F.inst.cfg index 1bf36453d1..a4c6fd4046 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_F.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_G.inst.cfg index f413dd3e17..376c9b1d51 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_G.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_H.inst.cfg index 9b228f7b05..5e27fec150 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_H.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_F.inst.cfg index 68c8604a95..5ca32bd655 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_F.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_G.inst.cfg index 66fc7c2f92..bdebb9a0ac 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_G.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_H.inst.cfg index aceba867c2..01c65f4586 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_H.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_F.inst.cfg index a34c3a4d45..9a8aaeb18e 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_G.inst.cfg index bd41a808d0..ba4d2b22ec 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_G.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_H.inst.cfg index 6036150353..2b1b5fb2f9 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_H.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 95 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_F.inst.cfg index c150380c74..6e05ba15a6 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 107 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_G.inst.cfg index 74ce8559d2..56765cb156 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_G.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 105 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_H.inst.cfg index f59b68f675..36d6248682 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_H.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 103 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_F.inst.cfg index 689c1fe076..d88ff841d0 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_G.inst.cfg index 514cdcbfde..9bb1258fc8 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_G.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_H.inst.cfg index 123dc9a953..7a662ec6d1 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_H.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_F.inst.cfg index 9c3f620a2d..767b72a566 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_G.inst.cfg index 0b841dfb09..da088dc345 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_G.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_H.inst.cfg index adfe816125..1ae6c25ebb 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_H.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_F.inst.cfg index 4b6108e51d..a9eb8331c8 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.1 material_flow = 111 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_G.inst.cfg index 99af35534f..03cb145944 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_G.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.1 material_flow = 111 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_H.inst.cfg index 21043cae58..ac77c87265 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_H.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.1 material_flow = 111 material_print_temperature = =default_material_print_temperature + 8 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Only_Quality.inst.cfg b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Only_Quality.inst.cfg index ac5f3e5bee..a033f60186 100644 --- a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Only_Quality.inst.cfg +++ b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Only_Quality.inst.cfg @@ -22,7 +22,7 @@ material_final_print_temperature = =material_print_temperature material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature optimize_wall_printing_order = True -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 110 prime_tower_size = 35 retraction_min_travel = 2 diff --git a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Quality.inst.cfg b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Quality.inst.cfg index eca85becc6..a8da0b4092 100644 --- a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Quality.inst.cfg +++ b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Quality.inst.cfg @@ -19,7 +19,7 @@ material_final_print_temperature = =material_print_temperature material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature optimize_wall_printing_order = True -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 110 prime_tower_size = 35 retraction_hop_enabled = False diff --git a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_High_Quality.inst.cfg b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_High_Quality.inst.cfg index 8071d7193e..d807f97293 100644 --- a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_High_Quality.inst.cfg +++ b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_High_Quality.inst.cfg @@ -30,7 +30,7 @@ material_flow_layer_0 = 93 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature optimize_wall_printing_order = True -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 110 prime_tower_size = 35 retraction_amount = 5 diff --git a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Normal_Quality.inst.cfg b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Normal_Quality.inst.cfg index 8354fba5e0..51329150b7 100644 --- a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Normal_Quality.inst.cfg +++ b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Normal_Quality.inst.cfg @@ -30,7 +30,7 @@ material_flow_layer_0 = 93 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature optimize_wall_printing_order = True -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 110 prime_tower_size = 35 retraction_amount = 5 diff --git a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_PVA_Quality.inst.cfg b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_PVA_Quality.inst.cfg index 074632abda..f201d4c632 100644 --- a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_PVA_Quality.inst.cfg +++ b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_PVA_Quality.inst.cfg @@ -19,7 +19,7 @@ material_final_print_temperature = =material_print_temperature material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature optimize_wall_printing_order = True -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 110 prime_tower_size = 35 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg index eeb924906f..632a1fb46d 100644 --- a/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg @@ -21,7 +21,7 @@ machine_min_cool_heat_time_window = 15 material_print_temperature = =default_material_print_temperature - 10 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg index a64c8298a2..0667ef961d 100644 --- a/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg @@ -21,7 +21,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg index 16be0db845..d93ba61d9d 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg @@ -15,7 +15,7 @@ weight = -2 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none skin_overlap = 20 speed_print = 60 speed_topbottom = =math.ceil(speed_print * 35 / 60) diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg index 916b283c9c..b92a826f5a 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg @@ -15,7 +15,7 @@ weight = -1 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 10 -prime_tower_enable = False +prime_tower_mode = none speed_print = 60 speed_topbottom = =math.ceil(speed_print * 30 / 60) speed_wall = =math.ceil(speed_print * 40 / 60) diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg index 5dcbe80bbb..2fe35f1a2e 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg @@ -15,7 +15,7 @@ weight = 1 machine_nozzle_cool_down_speed = 0.8 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 20 -prime_tower_enable = False +prime_tower_mode = none speed_print = 50 speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_wall = =math.ceil(speed_print * 30 / 50) diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg index 1420880995..fcecc2701b 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg @@ -15,7 +15,7 @@ weight = 0 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 15 -prime_tower_enable = False +prime_tower_mode = none speed_print = 55 speed_topbottom = =math.ceil(speed_print * 30 / 55) speed_wall = =math.ceil(speed_print * 30 / 55) diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg index e0dd43cc28..cf417a84b6 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg @@ -16,7 +16,7 @@ brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' skin_overlap = 20 speed_topbottom = =math.ceil(speed_print * 35 / 70) speed_wall = =math.ceil(speed_print * 50 / 70) diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg index 16ece7c2dd..363a43975e 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg @@ -15,7 +15,7 @@ weight = -1 brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' speed_print = 80 speed_topbottom = =math.ceil(speed_print * 30 / 80) speed_wall = =math.ceil(speed_print * 40 / 80) diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg index ca7fd8cbf3..92dae4a19f 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg @@ -15,7 +15,7 @@ weight = 0 brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' skin_overlap = 10 support_angle = 45 support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg index 5de59e58c9..2540a78b21 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg @@ -18,7 +18,7 @@ infill_wipe_dist = 0 layer_height = 0.2 machine_min_cool_heat_time_window = 15 multiple_mesh_overlap = 0 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg index b2020831d7..37e8df992d 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg @@ -18,7 +18,7 @@ infill_wipe_dist = 0 layer_height = 0.15 machine_min_cool_heat_time_window = 15 multiple_mesh_overlap = 0 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg index 4be3a9c13a..5ba84b0564 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 8 multiple_mesh_overlap = 0 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg index 2e24f485d0..0fb115b548 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg @@ -20,7 +20,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 5 multiple_mesh_overlap = 0 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg index 28e8ccbf75..d0d447acdf 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg @@ -24,7 +24,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg index 5113277ab2..e55a49baba 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg @@ -23,7 +23,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg index 636ce41e71..ee55427cf7 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 20 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg index a7c533bfea..15410514cd 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg @@ -23,7 +23,7 @@ machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 10 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg index 1d44e48193..a79b715ee0 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg @@ -15,7 +15,7 @@ weight = -2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_enable = False +prime_tower_mode = none skin_overlap = 20 speed_topbottom = =math.ceil(speed_print * 40 / 70) speed_wall = =math.ceil(speed_print * 55 / 70) diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg index 6b99ed5a70..a838352f48 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg @@ -14,7 +14,7 @@ weight = -1 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = False +prime_tower_mode = none speed_print = 80 speed_topbottom = =math.ceil(speed_print * 30 / 80) speed_wall = =math.ceil(speed_print * 40 / 80) diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg index 97be45babc..e5a10d9222 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg @@ -15,7 +15,7 @@ weight = 1 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none skin_overlap = 10 speed_print = 60 speed_topbottom = =math.ceil(speed_print * 30 / 60) diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg index f305caa82d..486b74c1b2 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg @@ -14,7 +14,7 @@ weight = 0 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = False +prime_tower_mode = none skin_overlap = 10 top_bottom_thickness = 1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg index c82043d3af..4293ca81f1 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg @@ -24,7 +24,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 8 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_amount = 6.5 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg index 74a628f7cb..1b396f5417 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg @@ -23,7 +23,7 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg index fa9b4c54ea..6c4ee71b82 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg @@ -23,7 +23,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg index cffd1e6075..d8fca155d3 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg @@ -14,7 +14,7 @@ weight = -2 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = False +prime_tower_mode = none skin_overlap = 20 speed_print = 50 speed_roofing = =math.ceil(speed_wall * 20 / 24) diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg index 94fe824f5e..5ea9fe9336 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg @@ -14,7 +14,7 @@ weight = -1 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = False +prime_tower_mode = none speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg index 05a6896646..4e03569ca6 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg @@ -15,7 +15,7 @@ weight = 0 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none skin_overlap = 10 speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg index dcca81f3ef..0443afa3f6 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg @@ -17,7 +17,7 @@ brim_width = 14 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 20 -prime_tower_enable = True +prime_tower_mode = normal retraction_hop = 0.1 retraction_hop_enabled = False skin_overlap = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg index 585ae8eefe..ccae2cc5d8 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -18,7 +18,7 @@ layer_height = 0.4 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 15 -prime_tower_enable = True +prime_tower_mode = normal retraction_hop = 0.1 retraction_hop_enabled = False skin_overlap = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg index 2280a837ae..9596b00d33 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -18,7 +18,7 @@ layer_height = 0.3 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 17 -prime_tower_enable = True +prime_tower_mode = normal retraction_hop = 0.1 retraction_hop_enabled = False skin_overlap = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg index b1f867807b..4a7e29ec36 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg @@ -14,7 +14,7 @@ weight = -2 [values] brim_width = 15 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg index a75ae74ada..5c5b732990 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg @@ -15,7 +15,7 @@ weight = -4 brim_width = 15 layer_height = 0.4 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_enable = True +prime_tower_mode = normal speed_infill = =math.ceil(speed_print * 33 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg index c1544a00e2..9a48e11a7b 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg @@ -15,7 +15,7 @@ weight = -3 brim_width = 15 layer_height = 0.3 material_print_temperature = =default_material_print_temperature + 12 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg index a0fc036566..747730c0a7 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg @@ -17,7 +17,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.45 support_angle = 70 switch_extruder_prime_speed = 30 diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg index 547ab013fb..40f0779369 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg @@ -18,7 +18,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.45 support_angle = 70 switch_extruder_prime_speed = 30 diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg index b17789ad0f..03116ec10d 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg @@ -18,7 +18,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.45 support_angle = 70 switch_extruder_prime_speed = 30 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg index 3eafff9a07..aab2e25ac2 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg @@ -14,7 +14,7 @@ weight = -2 [values] brim_width = 7 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_combing = all speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) diff --git a/resources/quality/ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg index fe36a86948..45ec96e089 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg @@ -15,7 +15,7 @@ weight = -4 brim_width = 7 layer_height = 0.4 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_combing = all speed_infill = =math.ceil(speed_print * 33 / 45) speed_print = 45 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg index 2bba762e2d..ee92c6add7 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg @@ -15,7 +15,7 @@ weight = -3 brim_width = 7 layer_height = 0.3 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = True +prime_tower_mode = normal retraction_combing = all speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg index 57a830402a..84a9b9a5fb 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg index 40f710327f..ae59471ff3 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg @@ -18,7 +18,7 @@ layer_height = 0.4 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_enable = True +prime_tower_mode = normal speed_infill = =math.ceil(speed_print * 35 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg index 702c64bb78..2a4c093dca 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg @@ -18,7 +18,7 @@ layer_height = 0.3 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg index 145389fbe4..144a47769b 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg @@ -16,7 +16,7 @@ brim_width = 25 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' material_print_temperature = =default_material_print_temperature + 11 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 10 retraction_count_max = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg index 68d54bd406..cedba132eb 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg @@ -16,7 +16,7 @@ brim_width = 25 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' material_print_temperature = =default_material_print_temperature + 15 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 20 retraction_count_max = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg index 2aa79cad79..32f623e432 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' layer_height = 0.3 material_print_temperature = =default_material_print_temperature + 13 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 15 retraction_count_max = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Draft_Print.inst.cfg index a9b7a92918..5e0816ef9a 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Draft_Print.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = False +prime_tower_mode = none speed_print = 45 support_angle = 70 top_bottom_thickness = =layer_height * 6 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Superdraft_Print.inst.cfg index 16e17c500e..36e25d258a 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Superdraft_Print.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_enable = False +prime_tower_mode = none speed_infill = =math.ceil(speed_print * 30 / 30) speed_print = 30 speed_topbottom = =math.ceil(speed_print * 20 / 30) diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg index 96dec4f1c5..ffbc413b6e 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_enable = False +prime_tower_mode = none speed_infill = =math.ceil(speed_print * 30 / 35) speed_topbottom = =math.ceil(speed_print * 20 / 35) speed_wall = =math.ceil(speed_print * 25/ 35) diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg index 859eb3b33a..63dd03590c 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg @@ -23,7 +23,7 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 4 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 retraction_count_max = 15 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg index 61ace7da80..a81683200f 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg @@ -23,7 +23,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 retraction_count_max = 15 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg index e45b8f2d1d..cb0e4358d6 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg @@ -24,7 +24,7 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 retraction_count_max = 15 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg index eab1a39931..64ad8ff7f3 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg @@ -15,7 +15,7 @@ weight = -2 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature + 5 -prime_tower_enable = False +prime_tower_mode = none retraction_count_max = 5 skin_overlap = 20 skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg index ad1e26c7da..2cdc81a5d9 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg @@ -14,7 +14,7 @@ weight = -1 [values] brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) -prime_tower_enable = False +prime_tower_mode = none retraction_count_max = 5 skin_overlap = 15 skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg index e5ae49b17d..fa2b7026a1 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg @@ -15,7 +15,7 @@ weight = 1 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) support_infill_sparse_thickness = =3*layer_height diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg index 38334b4358..d16740c8ef 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg @@ -15,7 +15,7 @@ weight = 0 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) support_infill_sparse_thickness = =2*layer_height diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_pc_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_pc_0.1mm.inst.cfg index ec86494397..644f302cde 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_pc_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_pc_0.1mm.inst.cfg @@ -20,7 +20,7 @@ machine_min_cool_heat_time_window = 15 material_print_temperature = =default_material_print_temperature - 10 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_pp_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_pp_0.1mm.inst.cfg index 77082932a5..3fb19b43a2 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_pp_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_pp_0.1mm.inst.cfg @@ -21,7 +21,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.06mm.inst.cfg index 6877d9b6a2..ad25724904 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.06mm.inst.cfg @@ -16,7 +16,7 @@ machine_nozzle_cool_down_speed = 0.8 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature - 10 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 40 / 50) speed_print = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.15mm.inst.cfg index de1905e410..c0890c9740 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.15mm.inst.cfg @@ -15,7 +15,7 @@ weight = -1 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 45 / 60) speed_print = 60 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.1mm.inst.cfg index ae5c9bcbc1..fbe263ab43 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.1mm.inst.cfg @@ -16,7 +16,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 40 / 55) speed_print = 55 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.2mm.inst.cfg index 701a2db84d..059d39f6c1 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.2mm.inst.cfg @@ -16,7 +16,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 50 / 60) speed_print = 60 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.3mm.inst.cfg index 684336d1eb..cb741764d6 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.3mm.inst.cfg @@ -16,7 +16,7 @@ weight = -3 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature + 7 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 support_bottom_distance = =support_z_distance support_interface_enable = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.15mm.inst.cfg index a7a17e5f69..3af6b9a69d 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.15mm.inst.cfg @@ -15,7 +15,7 @@ weight = -1 brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' speed_print = 80 speed_topbottom = =math.ceil(speed_print * 30 / 80) speed_wall = =math.ceil(speed_print * 40 / 80) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.1mm.inst.cfg index a3b8129ed7..1526b46ba5 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.1mm.inst.cfg @@ -15,7 +15,7 @@ weight = 0 brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' support_angle = 45 support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height support_infill_sparse_thickness = =2 * layer_height diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.2mm.inst.cfg index 5c051039d0..999e2ce9c9 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.2mm.inst.cfg @@ -16,7 +16,7 @@ brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' speed_topbottom = =math.ceil(speed_print * 35 / 70) speed_wall = =math.ceil(speed_print * 50 / 70) speed_wall_0 = =math.ceil(speed_wall * 35 / 50) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.3mm.inst.cfg index 61073067fc..42b98f5be7 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.3mm.inst.cfg @@ -17,7 +17,7 @@ brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' speed_topbottom = =math.ceil(speed_print * 35 / 70) speed_wall = =math.ceil(speed_print * 50 / 70) speed_wall_0 = =math.ceil(speed_wall * 35 / 50) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.06mm.inst.cfg index 880461bccf..864421ed78 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.06mm.inst.cfg @@ -18,7 +18,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 8 multiple_mesh_overlap = 0 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.15mm.inst.cfg index 5dd5e61f82..2591f15abb 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.15mm.inst.cfg @@ -15,7 +15,7 @@ weight = -1 infill_wipe_dist = 0 machine_min_cool_heat_time_window = 15 multiple_mesh_overlap = 0 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.1mm.inst.cfg index 7617b35b3b..ab0354f9ea 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.1mm.inst.cfg @@ -18,7 +18,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 5 multiple_mesh_overlap = 0 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.2mm.inst.cfg index 7ed1fcd298..7ac2d06998 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.2mm.inst.cfg @@ -15,7 +15,7 @@ weight = -2 infill_wipe_dist = 0 machine_min_cool_heat_time_window = 15 multiple_mesh_overlap = 0 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.06mm.inst.cfg index f46f816cfb..1366b0700b 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.06mm.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 20 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.15mm.inst.cfg index 2c23449373..3dd4cc8cd8 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.15mm.inst.cfg @@ -20,7 +20,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.1mm.inst.cfg index e0899c8dc2..074a3b66dd 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.1mm.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 10 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.2mm.inst.cfg index 329bd095d5..cc9c42e572 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.2mm.inst.cfg @@ -20,7 +20,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.06mm.inst.cfg index 4b8f9f433b..d313f08887 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.06mm.inst.cfg @@ -15,7 +15,7 @@ weight = 1 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.15mm.inst.cfg index 5581284de4..73105ed512 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.15mm.inst.cfg @@ -14,7 +14,7 @@ weight = -1 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 70 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.1mm.inst.cfg index 30af138465..b6eac28eb9 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.1mm.inst.cfg @@ -14,7 +14,7 @@ weight = 0 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed support_bottom_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.2mm.inst.cfg index e5dc960d98..7ee4df3cac 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_sparse_density = 15 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_topbottom = =math.ceil(speed_print * 40 / 70) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.3mm.inst.cfg index 719adc820b..80a564e05a 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.3mm.inst.cfg @@ -22,7 +22,7 @@ infill_sparse_density = 15 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.15mm.inst.cfg index eee8fc31b6..f1c188d7d9 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.15mm.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.1mm.inst.cfg index fa87825718..93ce7ac9b1 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.1mm.inst.cfg @@ -22,7 +22,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.2mm.inst.cfg index 6c90ec685f..84dcf31f04 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.2mm.inst.cfg @@ -22,7 +22,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 8 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.06mm.inst.cfg index b5253cb077..26cce4fcad 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.06mm.inst.cfg @@ -15,7 +15,7 @@ weight = 1 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none retraction_prime_speed = =retraction_speed speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.15mm.inst.cfg index 69cf85f349..86d98cfd6c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.15mm.inst.cfg @@ -14,7 +14,7 @@ weight = -1 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = False +prime_tower_mode = none retraction_prime_speed = =retraction_speed speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.1mm.inst.cfg index 397992c551..2715630b07 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.1mm.inst.cfg @@ -15,7 +15,7 @@ weight = 0 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none retraction_prime_speed = =retraction_speed speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.2mm.inst.cfg index 773da6d3ac..8446a7957f 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.2mm.inst.cfg @@ -14,7 +14,7 @@ weight = -2 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = False +prime_tower_mode = none retraction_prime_speed = =retraction_speed speed_print = 50 speed_roofing = =math.ceil(speed_wall * 20 / 24) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.3mm.inst.cfg index 10e43b5699..8e4d4596af 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.3mm.inst.cfg @@ -22,7 +22,7 @@ infill_sparse_density = 15 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg index 312afa0421..4f8a58c974 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg @@ -16,7 +16,7 @@ machine_nozzle_cool_down_speed = 0.8 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature - 10 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 40 / 50) speed_print = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg index ee0525c13e..f854ea8815 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg @@ -43,7 +43,7 @@ material_extrusion_cool_down_speed = 0.8 material_max_flowrate = 20 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 retraction_amount = 6.5 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg index b53e8275a2..d854b78f65 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg @@ -16,7 +16,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 40 / 55) speed_print = 55 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg index 57413c4b30..9ac0fa149f 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 20 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 retraction_amount = 6.5 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg index 0052ce90cd..2d2c5a2b58 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 20 material_print_temperature = =default_material_print_temperature + 7 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 retraction_amount = 6.5 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg index 8732c3ad63..efec8a9215 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg @@ -43,7 +43,7 @@ material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 20 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none retraction_amount = 8 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg index e7e50350c0..4de8ea6aa4 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 20 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none retraction_amount = 8 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg index 5ecaa739db..da3e1d0469 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 20 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none retraction_amount = 8 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg index 2939389a3c..ddc0bd768a 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg @@ -15,7 +15,7 @@ weight = 1 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg index 136a3bed42..cd4fc7c176 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg @@ -43,7 +43,7 @@ material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 12 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg index 2b430c1afb..d5a719e023 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg @@ -14,7 +14,7 @@ weight = 0 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed support_bottom_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg index dcbb580edb..71f1169b40 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 12 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg index fc2a185be4..d7abde7dff 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 12 material_print_temperature = =default_material_print_temperature + 10 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg index c84c2fb66e..0fd04cc7ac 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg @@ -15,7 +15,7 @@ weight = 1 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none retraction_prime_speed = =retraction_speed speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg index 2aa24f805d..8ec8119ef6 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg @@ -43,7 +43,7 @@ material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 14 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg index 47687fb5be..22e6f06262 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg @@ -15,7 +15,7 @@ weight = 0 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none retraction_prime_speed = =retraction_speed speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg index 151af3ed50..090d3a4839 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg @@ -43,7 +43,7 @@ material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 14 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg index 56c097d890..18434874c1 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 14 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.2mm.inst.cfg index c2d04c9bad..ff96a0df68 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.2mm.inst.cfg @@ -17,7 +17,7 @@ brim_width = 14 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 20 -prime_tower_enable = True +prime_tower_mode = normal retraction_hop = 0.1 retraction_hop_enabled = False speed_print = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.3mm.inst.cfg index caf16e5f94..a3d9b394b9 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.3mm.inst.cfg @@ -17,7 +17,7 @@ brim_width = 14 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 17 -prime_tower_enable = True +prime_tower_mode = normal retraction_hop = 0.1 retraction_hop_enabled = False speed_print = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.4mm.inst.cfg index 1cd46fab48..dc46682c39 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.4mm.inst.cfg @@ -17,7 +17,7 @@ brim_width = 14 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 15 -prime_tower_enable = True +prime_tower_mode = normal retraction_hop = 0.1 retraction_hop_enabled = False speed_infill = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.2mm.inst.cfg index f9ee324f33..f2ea43800e 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.2mm.inst.cfg @@ -14,7 +14,7 @@ weight = -2 [values] brim_width = 15 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.3mm.inst.cfg index f883fe1998..58193faaaf 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.3mm.inst.cfg @@ -14,7 +14,7 @@ weight = -3 [values] brim_width = 15 material_print_temperature = =default_material_print_temperature + 12 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.4mm.inst.cfg index a5c059c5e6..7e58326c02 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.4mm.inst.cfg @@ -14,7 +14,7 @@ weight = -4 [values] brim_width = 15 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_enable = True +prime_tower_mode = normal speed_infill = =math.ceil(speed_print * 33 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.2mm.inst.cfg index e7d656dcc4..5b33c9854f 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.2mm.inst.cfg @@ -17,7 +17,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.45 support_angle = 70 switch_extruder_prime_speed = 30 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.3mm.inst.cfg index 08c1f4933b..6ac1edf4e9 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.3mm.inst.cfg @@ -17,7 +17,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.45 support_angle = 70 switch_extruder_prime_speed = 30 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.4mm.inst.cfg index c4d2894885..536a00cc00 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.4mm.inst.cfg @@ -17,7 +17,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.45 support_angle = 70 switch_extruder_prime_speed = 30 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.2mm.inst.cfg index d901c6c0dd..539a8c5a7c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.2mm.inst.cfg @@ -15,7 +15,7 @@ weight = -2 brim_width = 7 cool_fan_speed = 20 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.3mm.inst.cfg index 0279882346..bf92354310 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.3mm.inst.cfg @@ -15,7 +15,7 @@ weight = -3 brim_width = 7 cool_fan_speed = 20 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.4mm.inst.cfg index 373d6a0b78..138369ef63 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.4mm.inst.cfg @@ -15,7 +15,7 @@ weight = -4 brim_width = 7 cool_fan_speed = 20 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = True +prime_tower_mode = normal speed_infill = =math.ceil(speed_print * 33 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.2mm.inst.cfg index 1feae070fc..a3935c55f7 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.2mm.inst.cfg @@ -16,7 +16,7 @@ gradual_infill_step_height = =3 * layer_height machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.3mm.inst.cfg index f93f0848db..9f7162abe0 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.3mm.inst.cfg @@ -16,7 +16,7 @@ gradual_infill_step_height = =3 * layer_height machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.4mm.inst.cfg index 67f9cdfcf0..997095fcbf 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.4mm.inst.cfg @@ -16,7 +16,7 @@ gradual_infill_step_height = =3 * layer_height machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_enable = True +prime_tower_mode = normal speed_infill = =math.ceil(speed_print * 35 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg index 163f32a36d..1c681aaeb2 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg @@ -18,7 +18,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 11 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 10 retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg index 3f75c3366e..e054336e24 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg @@ -18,7 +18,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 13 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 15 retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg index b2c5dab3c4..3afea841d3 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg @@ -18,7 +18,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 15 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 20 retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.2mm.inst.cfg index 1f706632ce..a59a80d04a 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.2mm.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = False +prime_tower_mode = none speed_print = 45 speed_topbottom = =round(speed_print * 35 / 45) speed_wall = =round(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.3mm.inst.cfg index b1437e9160..c840722681 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.3mm.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_enable = False +prime_tower_mode = none speed_infill = =math.ceil(speed_print * 30 / 35) speed_print = 35 speed_topbottom = =math.ceil(speed_print * 20 / 35) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.4mm.inst.cfg index 7c3c4ff6e9..1865589991 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.4mm.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_enable = False +prime_tower_mode = none speed_infill = =math.ceil(speed_print * 30 / 30) speed_print = 30 speed_topbottom = =math.ceil(speed_print * 20 / 30) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg index 75949f45aa..709e798502 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg @@ -21,7 +21,7 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 4 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 retraction_count_max = 15 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg index 034bda5d09..12aac8dcd5 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg @@ -22,7 +22,7 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 retraction_count_max = 15 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg index e7189d5467..8958aa30c0 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg @@ -21,7 +21,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 retraction_count_max = 15 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.2mm.inst.cfg index 9d7b4455d6..79f23f9c2c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.2mm.inst.cfg @@ -47,7 +47,7 @@ material_max_flowrate = 22 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.15 retraction_amount = 4 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.3mm.inst.cfg index e2a5c54c66..a187dc3179 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 22 material_print_temperature = =default_material_print_temperature + 7 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.15 retraction_amount = 4 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.4mm.inst.cfg index 26d3dc7fb8..cc2c57bcff 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.4mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 22 material_print_temperature = =default_material_print_temperature + 10 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.15 retraction_amount = 4 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.2mm.inst.cfg index b1dae1cb7a..9649f71775 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.2mm.inst.cfg @@ -47,7 +47,7 @@ material_max_flowrate = 23 material_print_temperature = =default_material_print_temperature - 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal retraction_amount = 3.5 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.3mm.inst.cfg index 4d4ffa0059..a0d9dbdee7 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.3mm.inst.cfg @@ -46,7 +46,7 @@ material_flow = 93 material_max_flowrate = 23 material_print_temperature = =default_material_print_temperature - 5 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal retraction_amount = 3.5 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.4mm.inst.cfg index 5cc6a43e13..840008f60d 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.4mm.inst.cfg @@ -46,7 +46,7 @@ material_flow = 93 material_max_flowrate = 23 material_print_temperature = =default_material_print_temperature - 5 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal retraction_amount = 3.5 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.2mm.inst.cfg index 59f8409483..c0719e38b3 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.2mm.inst.cfg @@ -47,7 +47,7 @@ material_max_flowrate = 15 material_print_temperature = =default_material_print_temperature + 10 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.3mm.inst.cfg index a4cdd898f1..8f045a1238 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 15 material_print_temperature = =default_material_print_temperature + 10 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.4mm.inst.cfg index 79dc105f86..b1e8b913fd 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.4mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 15 material_print_temperature = =default_material_print_temperature + 15 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg index a76864a1a3..176cfb2cb2 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg @@ -47,7 +47,7 @@ material_max_flowrate = 17 material_print_temperature = =default_material_print_temperature + 10 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.3mm.inst.cfg index d364232726..404435e21b 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 17 material_print_temperature = =default_material_print_temperature + 15 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.4mm.inst.cfg index 02a71fa9b7..76724ad958 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.4mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 17 material_print_temperature = =default_material_print_temperature + 15 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.06mm.inst.cfg index 12b815d5ab..b69ddd1011 100644 --- a/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.06mm.inst.cfg @@ -15,7 +15,7 @@ weight = 1 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) support_infill_sparse_thickness = =3 * layer_height diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.15mm.inst.cfg index 5390b3ecb7..67a101d2bc 100644 --- a/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.15mm.inst.cfg @@ -14,7 +14,7 @@ weight = -1 [values] brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) -prime_tower_enable = False +prime_tower_mode = none retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) support_infill_sparse_thickness = =2 * layer_height diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.1mm.inst.cfg index b15b5958a7..66c0486b0f 100644 --- a/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.1mm.inst.cfg @@ -15,7 +15,7 @@ weight = 0 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) support_infill_sparse_thickness = =2 * layer_height diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.2mm.inst.cfg index e273e85eb5..6e36d9578f 100644 --- a/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.2mm.inst.cfg @@ -15,7 +15,7 @@ weight = -2 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature + 5 -prime_tower_enable = False +prime_tower_mode = none retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) support_interface_enable = True diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.15mm.inst.cfg index ea2902cd6c..9b81b09599 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.15mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.2mm.inst.cfg index bbbad9be1f..e596c6fcd0 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.15mm.inst.cfg index 300e2ebaed..5c9671c99e 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.15mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.2mm.inst.cfg index 84040ede4e..872368142c 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.15mm.inst.cfg index 402ae15eba..2b76474e5f 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.15mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.2mm.inst.cfg index 0c9154a233..dc84108298 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.15mm.inst.cfg index e7b72d6cd0..3706d83424 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.15mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.2mm.inst.cfg index 38c857de5e..6e03ebd7e5 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_pc_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_pc_0.1mm.inst.cfg index 5779142162..dd81027cfb 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_pc_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_pc_0.1mm.inst.cfg @@ -20,7 +20,7 @@ machine_min_cool_heat_time_window = 15 material_print_temperature = =default_material_print_temperature - 10 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_pp_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_pp_0.1mm.inst.cfg index 64b1be79aa..82df5e1ad8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_pp_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_pp_0.1mm.inst.cfg @@ -21,7 +21,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.06mm.inst.cfg index 573b758705..f96f28e71f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.06mm.inst.cfg @@ -16,7 +16,7 @@ machine_nozzle_cool_down_speed = 0.8 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature - 10 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 40 / 50) speed_print = 50 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.15mm.inst.cfg index 926ef49922..9cc0a12b5a 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.15mm.inst.cfg @@ -15,7 +15,7 @@ weight = -1 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 45 / 60) speed_print = 60 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.1mm.inst.cfg index 598e83d922..651c780d32 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.1mm.inst.cfg @@ -16,7 +16,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 40 / 55) speed_print = 55 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.2mm.inst.cfg index 5f5e9e2fd3..28bd4cddff 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.2mm.inst.cfg @@ -16,7 +16,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 50 / 60) speed_print = 60 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.3mm.inst.cfg index 8656a28067..49e70ecb1c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.3mm.inst.cfg @@ -16,7 +16,7 @@ weight = -3 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature + 7 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 support_bottom_distance = =support_z_distance support_interface_enable = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.15mm.inst.cfg index a4381e0e3b..b2dd10f321 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.15mm.inst.cfg @@ -15,7 +15,7 @@ weight = -1 brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' speed_print = 80 speed_topbottom = =math.ceil(speed_print * 30 / 80) speed_wall = =math.ceil(speed_print * 40 / 80) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.1mm.inst.cfg index 5f4c480fa4..ba704aa34b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.1mm.inst.cfg @@ -15,7 +15,7 @@ weight = 0 brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' support_angle = 45 support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height support_infill_sparse_thickness = =2 * layer_height diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.2mm.inst.cfg index 9e3c0153b1..ccccb2d3e8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.2mm.inst.cfg @@ -16,7 +16,7 @@ brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' speed_topbottom = =math.ceil(speed_print * 35 / 70) speed_wall = =math.ceil(speed_print * 50 / 70) speed_wall_0 = =math.ceil(speed_wall * 35 / 50) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.3mm.inst.cfg index bd4e13ebaf..cc6e8f9453 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.3mm.inst.cfg @@ -17,7 +17,7 @@ brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' speed_topbottom = =math.ceil(speed_print * 35 / 70) speed_wall = =math.ceil(speed_print * 50 / 70) speed_wall_0 = =math.ceil(speed_wall * 35 / 50) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.06mm.inst.cfg index a77d1b4233..0b11bc463b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.06mm.inst.cfg @@ -18,7 +18,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 8 multiple_mesh_overlap = 0 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.15mm.inst.cfg index 805fb08ead..476cdad5ce 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.15mm.inst.cfg @@ -15,7 +15,7 @@ weight = -1 infill_wipe_dist = 0 machine_min_cool_heat_time_window = 15 multiple_mesh_overlap = 0 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.1mm.inst.cfg index 77f775d672..6a18d6a859 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.1mm.inst.cfg @@ -18,7 +18,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 5 multiple_mesh_overlap = 0 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.2mm.inst.cfg index 877c48c42d..dcd01b1084 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.2mm.inst.cfg @@ -15,7 +15,7 @@ weight = -2 infill_wipe_dist = 0 machine_min_cool_heat_time_window = 15 multiple_mesh_overlap = 0 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.06mm.inst.cfg index 0b471a8c75..a28ac8382e 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.06mm.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 20 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.15mm.inst.cfg index 6c9710e436..1ed3ad4ab3 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.15mm.inst.cfg @@ -20,7 +20,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.1mm.inst.cfg index 945b77e699..bfc007fd85 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.1mm.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 10 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.2mm.inst.cfg index b523e3c646..b8ad1d3747 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.2mm.inst.cfg @@ -20,7 +20,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.06mm.inst.cfg index f34549bc78..e724f809d5 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.06mm.inst.cfg @@ -15,7 +15,7 @@ weight = 1 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 50 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.15mm.inst.cfg index 4a9e914b99..2cce79480c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.15mm.inst.cfg @@ -14,7 +14,7 @@ weight = -1 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 70 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.1mm.inst.cfg index dc73f13bb5..5a730aba3a 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.1mm.inst.cfg @@ -14,7 +14,7 @@ weight = 0 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed support_bottom_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.2mm.inst.cfg index ead512bb50..a1bde9d68d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_sparse_density = 15 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_topbottom = =math.ceil(speed_print * 40 / 70) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.3mm.inst.cfg index c6641e7a08..e0070ff73b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.3mm.inst.cfg @@ -22,7 +22,7 @@ infill_sparse_density = 15 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 50 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.15mm.inst.cfg index 85e892628d..a392918738 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.15mm.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.1mm.inst.cfg index 531f946ba8..8e59e505fd 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.1mm.inst.cfg @@ -22,7 +22,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.2mm.inst.cfg index a7f63a76b1..263cee30dd 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.2mm.inst.cfg @@ -22,7 +22,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 8 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.06mm.inst.cfg index cf7a8335b8..2bf08e3489 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.06mm.inst.cfg @@ -15,7 +15,7 @@ weight = 1 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none retraction_prime_speed = =retraction_speed speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.15mm.inst.cfg index a7dcb61128..3b44a9eb37 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.15mm.inst.cfg @@ -14,7 +14,7 @@ weight = -1 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = False +prime_tower_mode = none retraction_prime_speed = =retraction_speed speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.1mm.inst.cfg index f053b33478..3167f39563 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.1mm.inst.cfg @@ -15,7 +15,7 @@ weight = 0 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none retraction_prime_speed = =retraction_speed speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.2mm.inst.cfg index 4e98b6005a..238468f784 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.2mm.inst.cfg @@ -14,7 +14,7 @@ weight = -2 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = False +prime_tower_mode = none retraction_prime_speed = =retraction_speed speed_print = 50 speed_roofing = =math.ceil(speed_wall * 20 / 24) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.3mm.inst.cfg index 5c6ed28548..208277dc9b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.3mm.inst.cfg @@ -22,7 +22,7 @@ infill_sparse_density = 15 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 50 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg index a69ff33f76..3f8300e24b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg @@ -16,7 +16,7 @@ machine_nozzle_cool_down_speed = 0.8 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature - 10 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 40 / 50) speed_print = 50 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg index 9c7ceca13b..cf2437cc2a 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg @@ -43,7 +43,7 @@ material_extrusion_cool_down_speed = 0.8 material_max_flowrate = 20 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 retraction_amount = 6.5 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg index ca659622cb..a0c9d24dab 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg @@ -16,7 +16,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 40 / 55) speed_print = 55 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg index f430e6bc16..7ae2965c0f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 20 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 retraction_amount = 6.5 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg index 98ca8927b6..769405708d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 20 material_print_temperature = =default_material_print_temperature + 7 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.15 retraction_amount = 6.5 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg index 201c663d5c..5eb8c228c6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg @@ -43,7 +43,7 @@ material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 20 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none retraction_amount = 8 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg index 55696eccb4..125ceab2d7 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 20 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none retraction_amount = 8 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg index fe3eeb67ad..dda28b98dd 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 20 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none retraction_amount = 8 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg index c2bb123d04..fc03e3f464 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg @@ -15,7 +15,7 @@ weight = 1 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 50 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg index 713f94219f..8e77d8d49f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg @@ -43,7 +43,7 @@ material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 12 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm.inst.cfg index 1e2820f565..1459cec327 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.1mm.inst.cfg @@ -14,7 +14,7 @@ weight = 0 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_prime_speed = =retraction_speed support_bottom_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg index 02d22b06b8..d2a1d5a176 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 12 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg index b0d5d41d0f..7cffc4b104 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 12 material_print_temperature = =default_material_print_temperature + 10 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg index 595de835ba..e4ab6230a7 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg @@ -15,7 +15,7 @@ weight = 1 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none retraction_prime_speed = =retraction_speed speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg index 55e724da9d..f4f251df8c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg @@ -43,7 +43,7 @@ material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 14 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg index 07c97a632f..902e921ce3 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg @@ -15,7 +15,7 @@ weight = 0 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none retraction_prime_speed = =retraction_speed speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg index ee0ee279e6..cc3bdb2234 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg @@ -43,7 +43,7 @@ material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 14 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg index 875bd5a669..9e10ff65b0 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 14 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = False +prime_tower_mode = none raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.2mm.inst.cfg index 0dd369e4dd..a7877d90e1 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.2mm.inst.cfg @@ -17,7 +17,7 @@ brim_width = 14 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 20 -prime_tower_enable = True +prime_tower_mode = normal retraction_hop = 0.1 retraction_hop_enabled = False speed_print = 50 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.3mm.inst.cfg index e6ce183f4a..2b5b521f02 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.3mm.inst.cfg @@ -17,7 +17,7 @@ brim_width = 14 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 17 -prime_tower_enable = True +prime_tower_mode = normal retraction_hop = 0.1 retraction_hop_enabled = False speed_print = 50 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.4mm.inst.cfg index 0c3abc6e3f..ff9a049f7e 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.4mm.inst.cfg @@ -17,7 +17,7 @@ brim_width = 14 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 15 -prime_tower_enable = True +prime_tower_mode = normal retraction_hop = 0.1 retraction_hop_enabled = False speed_infill = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.2mm.inst.cfg index eb6e07e080..a3340f81a8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.2mm.inst.cfg @@ -14,7 +14,7 @@ weight = -2 [values] brim_width = 15 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.3mm.inst.cfg index e7958d9841..7c80d16f24 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.3mm.inst.cfg @@ -14,7 +14,7 @@ weight = -3 [values] brim_width = 15 material_print_temperature = =default_material_print_temperature + 12 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.4mm.inst.cfg index 0683b2959b..18ec3e9dbe 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.4mm.inst.cfg @@ -14,7 +14,7 @@ weight = -4 [values] brim_width = 15 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_enable = True +prime_tower_mode = normal speed_infill = =math.ceil(speed_print * 33 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.2mm.inst.cfg index 5a774e0750..798db0dfc8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.2mm.inst.cfg @@ -17,7 +17,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.45 support_angle = 70 switch_extruder_prime_speed = 30 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.3mm.inst.cfg index bed4ac46d7..86d6130a70 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.3mm.inst.cfg @@ -17,7 +17,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.45 support_angle = 70 switch_extruder_prime_speed = 30 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.4mm.inst.cfg index a0d58757da..2d9c3ebabe 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.4mm.inst.cfg @@ -17,7 +17,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 ooze_shield_angle = 40 -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.45 support_angle = 70 switch_extruder_prime_speed = 30 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.2mm.inst.cfg index 6208ad9bec..7f51af7154 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.2mm.inst.cfg @@ -15,7 +15,7 @@ weight = -2 brim_width = 7 cool_fan_speed = 20 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.3mm.inst.cfg index 98b0d3f5f8..81d08397f3 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.3mm.inst.cfg @@ -15,7 +15,7 @@ weight = -3 brim_width = 7 cool_fan_speed = 20 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.4mm.inst.cfg index 156113b809..689455183f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.4mm.inst.cfg @@ -15,7 +15,7 @@ weight = -4 brim_width = 7 cool_fan_speed = 20 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = True +prime_tower_mode = normal speed_infill = =math.ceil(speed_print * 33 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.2mm.inst.cfg index 10bf06fbb5..d00e5235ba 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.2mm.inst.cfg @@ -16,7 +16,7 @@ gradual_infill_step_height = =3 * layer_height machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.3mm.inst.cfg index 1a63005ced..a22439011e 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.3mm.inst.cfg @@ -16,7 +16,7 @@ gradual_infill_step_height = =3 * layer_height machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.4mm.inst.cfg index 5e22cee246..7a97620cb4 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.4mm.inst.cfg @@ -16,7 +16,7 @@ gradual_infill_step_height = =3 * layer_height machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_enable = True +prime_tower_mode = normal speed_infill = =math.ceil(speed_print * 35 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg index 149104700e..addcc8e504 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg @@ -18,7 +18,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 11 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 10 retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg index 670ec78d51..dde38061ca 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg @@ -18,7 +18,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 13 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 15 retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg index c9b5c26d64..bab23c5ee1 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg @@ -18,7 +18,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 15 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 20 retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.2mm.inst.cfg index 26c20268ea..1c5161a635 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.2mm.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = False +prime_tower_mode = none speed_print = 45 speed_topbottom = =round(speed_print * 35 / 45) speed_wall = =round(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.3mm.inst.cfg index cc28dc5150..0a4c4ad2c7 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.3mm.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_enable = False +prime_tower_mode = none speed_infill = =math.ceil(speed_print * 30 / 35) speed_print = 35 speed_topbottom = =math.ceil(speed_print * 20 / 35) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.4mm.inst.cfg index eb338d1e1d..2fc8aaf746 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.4mm.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_enable = False +prime_tower_mode = none speed_infill = =math.ceil(speed_print * 30 / 30) speed_print = 30 speed_topbottom = =math.ceil(speed_print * 20 / 30) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg index 43436cd4c7..132a0e0760 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg @@ -21,7 +21,7 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 4 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 retraction_count_max = 15 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg index 58b524dd2a..c0b54402f2 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg @@ -22,7 +22,7 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 retraction_count_max = 15 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg index d17ec5486a..076f3df437 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg @@ -21,7 +21,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 multiple_mesh_overlap = 0.2 -prime_tower_enable = True +prime_tower_mode = normal prime_tower_flow = 100 retraction_count_max = 15 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.2mm.inst.cfg index 9ba4a38c6e..e308015dd8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.2mm.inst.cfg @@ -47,7 +47,7 @@ material_max_flowrate = 22 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.15 retraction_amount = 4 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.3mm.inst.cfg index 4ab74980ef..3d7cabe23d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 22 material_print_temperature = =default_material_print_temperature + 7 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.15 retraction_amount = 4 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.4mm.inst.cfg index 269d51dd4b..f7ab03fac0 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.4mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 22 material_print_temperature = =default_material_print_temperature + 10 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.15 retraction_amount = 4 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.2mm.inst.cfg index 4f56167ffd..692f4f8aa7 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.2mm.inst.cfg @@ -47,7 +47,7 @@ material_max_flowrate = 23 material_print_temperature = =default_material_print_temperature - 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal retraction_amount = 3.5 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.3mm.inst.cfg index 9fdf9a665b..93e4e071f5 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.3mm.inst.cfg @@ -46,7 +46,7 @@ material_flow = 93 material_max_flowrate = 23 material_print_temperature = =default_material_print_temperature - 5 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal retraction_amount = 3.5 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.4mm.inst.cfg index 3368ae6e2d..592c835689 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.4mm.inst.cfg @@ -46,7 +46,7 @@ material_flow = 93 material_max_flowrate = 23 material_print_temperature = =default_material_print_temperature - 5 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal retraction_amount = 3.5 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.2mm.inst.cfg index ca93df9dc1..fd0b6da130 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.2mm.inst.cfg @@ -47,7 +47,7 @@ material_max_flowrate = 15 material_print_temperature = =default_material_print_temperature + 10 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.3mm.inst.cfg index 4461ae0772..a6b7ac0439 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 15 material_print_temperature = =default_material_print_temperature + 10 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.4mm.inst.cfg index 1acdad53a0..c873edfacb 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.4mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 15 material_print_temperature = =default_material_print_temperature + 15 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg index 4973ec35bb..413903a8e8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg @@ -47,7 +47,7 @@ material_max_flowrate = 17 material_print_temperature = =default_material_print_temperature + 10 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.3mm.inst.cfg index 2bcf3fa82d..f0c5169389 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 17 material_print_temperature = =default_material_print_temperature + 15 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.4mm.inst.cfg index 3e4693c115..cb12b8740c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.4mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 17 material_print_temperature = =default_material_print_temperature + 15 optimize_wall_printing_order = False -prime_tower_enable = True +prime_tower_mode = normal raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.06mm.inst.cfg index 2bc28f4c1a..022e91ed9f 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.06mm.inst.cfg @@ -15,7 +15,7 @@ weight = 1 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) support_infill_sparse_thickness = =3 * layer_height diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.15mm.inst.cfg index f5b8c35298..40cf72eff4 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.15mm.inst.cfg @@ -14,7 +14,7 @@ weight = -1 [values] brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) -prime_tower_enable = False +prime_tower_mode = none retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) support_infill_sparse_thickness = =2 * layer_height diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.1mm.inst.cfg index 6457f97c9c..8b5a3e9f67 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.1mm.inst.cfg @@ -15,7 +15,7 @@ weight = 0 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) support_infill_sparse_thickness = =2 * layer_height diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.2mm.inst.cfg index eef90f5f17..1ff95a0e3b 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.2mm.inst.cfg @@ -15,7 +15,7 @@ weight = -2 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature + 5 -prime_tower_enable = False +prime_tower_mode = none retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) support_interface_enable = True diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.3mm.inst.cfg index e1862ce3c4..58796a07a4 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.3mm.inst.cfg @@ -16,7 +16,7 @@ weight = -3 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature - 5 -prime_tower_enable = False +prime_tower_mode = none retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) support_infill_sparse_thickness = 0.3 diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.15mm.inst.cfg index 8b807c1eb5..b7d9b2a05f 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.15mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.2mm.inst.cfg index ebc58413e2..e3e8d486b0 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.15mm.inst.cfg index 1204be4c15..f01921353b 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.15mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.2mm.inst.cfg index 6a7d52af4b..0a1cc1204d 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.15mm.inst.cfg index 40d414cbcb..4437f2c531 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.15mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.2mm.inst.cfg index 6144a2c3f0..3796177bc5 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.15mm.inst.cfg index 5bf5d910e8..1ec4911676 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.15mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.2mm.inst.cfg index 21407b6e66..36b56b6513 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_enable = True +prime_tower_mode = normal speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/variants/liquid/liquid_vo08.inst.cfg b/resources/variants/liquid/liquid_vo08.inst.cfg index 58cbea1b9d..a69a0f806e 100644 --- a/resources/variants/liquid/liquid_vo08.inst.cfg +++ b/resources/variants/liquid/liquid_vo08.inst.cfg @@ -37,7 +37,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_standby_temperature = 100 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_wipe_enabled = True retract_at_layer_change = =not magic_spiralize retraction_amount = 3 diff --git a/resources/variants/strateo3d/strateo3d_high_temp_04.inst.cfg b/resources/variants/strateo3d/strateo3d_high_temp_04.inst.cfg index 4bf51a967a..b66b984346 100644 --- a/resources/variants/strateo3d/strateo3d_high_temp_04.inst.cfg +++ b/resources/variants/strateo3d/strateo3d_high_temp_04.inst.cfg @@ -14,7 +14,7 @@ layer_height_0 = 0.3 machine_nozzle_id = HT0.4 machine_nozzle_size = 0.4 machine_nozzle_tip_outer_diameter = 1.0 -prime_tower_enable = True +prime_tower_mode = normal retract_at_layer_change = False support_angle = 45 support_use_towers = True diff --git a/resources/variants/strateo3d/strateo3d_standard_04.inst.cfg b/resources/variants/strateo3d/strateo3d_standard_04.inst.cfg index 3d705453d8..968c7c7262 100644 --- a/resources/variants/strateo3d/strateo3d_standard_04.inst.cfg +++ b/resources/variants/strateo3d/strateo3d_standard_04.inst.cfg @@ -14,7 +14,7 @@ layer_height_0 = 0.3 machine_nozzle_id = Standard 0.4 machine_nozzle_size = 0.4 machine_nozzle_tip_outer_diameter = 1.0 -prime_tower_enable = True +prime_tower_mode = normal retract_at_layer_change = False support_angle = 60 support_use_towers = True diff --git a/resources/variants/strateo3d/strateo3d_standard_06.inst.cfg b/resources/variants/strateo3d/strateo3d_standard_06.inst.cfg index 3443f64531..9b6d921d70 100644 --- a/resources/variants/strateo3d/strateo3d_standard_06.inst.cfg +++ b/resources/variants/strateo3d/strateo3d_standard_06.inst.cfg @@ -14,7 +14,7 @@ layer_height_0 = 0.4 machine_nozzle_id = Standard 0.6 machine_nozzle_size = 0.6 machine_nozzle_tip_outer_diameter = 1.5 -prime_tower_enable = True +prime_tower_mode = normal retract_at_layer_change = False support_angle = 55 support_use_towers = True diff --git a/resources/variants/strateo3d/strateo3d_standard_08.inst.cfg b/resources/variants/strateo3d/strateo3d_standard_08.inst.cfg index f436ce1fe7..11ff582ef1 100644 --- a/resources/variants/strateo3d/strateo3d_standard_08.inst.cfg +++ b/resources/variants/strateo3d/strateo3d_standard_08.inst.cfg @@ -14,7 +14,7 @@ layer_height_0 = 0.5 machine_nozzle_id = Standard 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 -prime_tower_enable = True +prime_tower_mode = normal retract_at_layer_change = True support_angle = 50 support_use_towers = True diff --git a/resources/variants/strateo3d/strateo3d_standard_10.inst.cfg b/resources/variants/strateo3d/strateo3d_standard_10.inst.cfg index b957d58d9f..c9d50d91c3 100644 --- a/resources/variants/strateo3d/strateo3d_standard_10.inst.cfg +++ b/resources/variants/strateo3d/strateo3d_standard_10.inst.cfg @@ -14,7 +14,7 @@ layer_height_0 = 0.6 machine_nozzle_id = Standard 1.0 Experimental machine_nozzle_size = 1.0 machine_nozzle_tip_outer_diameter = 2.5 -prime_tower_enable = True +prime_tower_mode = normal retract_at_layer_change = True support_angle = 50 support_use_towers = True diff --git a/resources/variants/strateo3d/strateo3d_standard_12.inst.cfg b/resources/variants/strateo3d/strateo3d_standard_12.inst.cfg index 3a35f9c4a2..f1f03bfcb4 100644 --- a/resources/variants/strateo3d/strateo3d_standard_12.inst.cfg +++ b/resources/variants/strateo3d/strateo3d_standard_12.inst.cfg @@ -14,7 +14,7 @@ layer_height_0 = 0.7 machine_nozzle_id = Standard 1.2 Experimental machine_nozzle_size = 1.2 machine_nozzle_tip_outer_diameter = 3.0 -prime_tower_enable = True +prime_tower_mode = normal retract_at_layer_change = True support_angle = 50 support_use_towers = True diff --git a/resources/variants/ultimaker3_aa0.8.inst.cfg b/resources/variants/ultimaker3_aa0.8.inst.cfg index 4190aab0cd..baf5f4043a 100644 --- a/resources/variants/ultimaker3_aa0.8.inst.cfg +++ b/resources/variants/ultimaker3_aa0.8.inst.cfg @@ -23,7 +23,7 @@ machine_nozzle_id = AA 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_amount = 6.5 diff --git a/resources/variants/ultimaker3_bb0.8.inst.cfg b/resources/variants/ultimaker3_bb0.8.inst.cfg index 62227f50f6..5250dff5e9 100644 --- a/resources/variants/ultimaker3_bb0.8.inst.cfg +++ b/resources/variants/ultimaker3_bb0.8.inst.cfg @@ -26,7 +26,7 @@ machine_nozzle_id = BB 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_hop = 2 diff --git a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg index 941634e3a6..109cd55a9d 100644 --- a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg +++ b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg @@ -23,7 +23,7 @@ machine_nozzle_id = AA 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_amount = 6.5 diff --git a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg index 2a88f165e6..c40c69ff62 100644 --- a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg +++ b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg @@ -26,7 +26,7 @@ machine_nozzle_id = BB 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_hop = 2 diff --git a/resources/variants/ultimaker_s3_aa0.8.inst.cfg b/resources/variants/ultimaker_s3_aa0.8.inst.cfg index c30365897b..e8ac3c5714 100644 --- a/resources/variants/ultimaker_s3_aa0.8.inst.cfg +++ b/resources/variants/ultimaker_s3_aa0.8.inst.cfg @@ -23,7 +23,7 @@ machine_nozzle_id = AA 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_amount = 6.5 diff --git a/resources/variants/ultimaker_s3_bb0.8.inst.cfg b/resources/variants/ultimaker_s3_bb0.8.inst.cfg index 34e1b6d308..ef97986a94 100644 --- a/resources/variants/ultimaker_s3_bb0.8.inst.cfg +++ b/resources/variants/ultimaker_s3_bb0.8.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_id = BB 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_hop = 2 diff --git a/resources/variants/ultimaker_s5_aa0.8.inst.cfg b/resources/variants/ultimaker_s5_aa0.8.inst.cfg index b482c418f0..522723db86 100644 --- a/resources/variants/ultimaker_s5_aa0.8.inst.cfg +++ b/resources/variants/ultimaker_s5_aa0.8.inst.cfg @@ -23,7 +23,7 @@ machine_nozzle_id = AA 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_amount = 6.5 diff --git a/resources/variants/ultimaker_s5_bb0.8.inst.cfg b/resources/variants/ultimaker_s5_bb0.8.inst.cfg index 660a6b10f4..3cdaa70171 100644 --- a/resources/variants/ultimaker_s5_bb0.8.inst.cfg +++ b/resources/variants/ultimaker_s5_bb0.8.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_id = BB 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_hop = 2 diff --git a/resources/variants/ultimaker_s7_aa0.8.inst.cfg b/resources/variants/ultimaker_s7_aa0.8.inst.cfg index a5b6a66516..ca6079aeb9 100644 --- a/resources/variants/ultimaker_s7_aa0.8.inst.cfg +++ b/resources/variants/ultimaker_s7_aa0.8.inst.cfg @@ -23,7 +23,7 @@ machine_nozzle_id = AA 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_amount = 6.5 diff --git a/resources/variants/ultimaker_s7_bb0.8.inst.cfg b/resources/variants/ultimaker_s7_bb0.8.inst.cfg index 6823fe18a4..06eb01ee0f 100644 --- a/resources/variants/ultimaker_s7_bb0.8.inst.cfg +++ b/resources/variants/ultimaker_s7_bb0.8.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_id = BB 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_enable = False +prime_tower_mode = none prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_amount = 4.5 From 6c8ee8d98ac82d5e5b0f822f7756e226466a5065 Mon Sep 17 00:00:00 2001 From: wawanbreton Date: Fri, 16 Feb 2024 08:05:52 +0000 Subject: [PATCH 198/269] Applied printer-linter format --- resources/definitions/deltacomb_dc20flux.def.json | 2 +- resources/definitions/deltacomb_dc21flux.def.json | 2 +- resources/definitions/deltacomb_dc30flux.def.json | 2 +- resources/definitions/elegoo_neptune_2D.def.json | 2 +- resources/definitions/lotmaxx_sc60.def.json | 2 +- resources/definitions/strateo3d_IDEX420.def.json | 2 +- resources/definitions/ultimaker_method_base.def.json | 2 +- .../Leapfrog_Bolt_Pro_brass0.4_abs_natural_standard.inst.cfg | 2 +- .../Leapfrog_Bolt_Pro_nozzlex0.4_abs_natural_standard.inst.cfg | 2 +- .../Leapfrog_Bolt_Pro_brass0.4_epla_natural_standard.inst.cfg | 2 +- .../Leapfrog_Bolt_Pro_nozzlex0.4_epla_natural_standard.inst.cfg | 2 +- .../Leapfrog_Bolt_Pro_brass0.4_pva_natural_standard.inst.cfg | 2 +- .../Leapfrog_Bolt_Pro_nozzlex0.4_pva_natural_standard.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.8_PP_Draft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_PP_Superdraft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_PP_Verydraft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.8_TPU_Draft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_TPU_Superdraft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_TPU_Verydraft_Print.inst.cfg | 2 +- .../tizyx_evy_dual_global_Flex_Only_Quality.inst.cfg | 2 +- .../tizyx_evy_dual/tizyx_evy_dual_global_Flex_Quality.inst.cfg | 2 +- .../tizyx_evy_dual/tizyx_evy_dual_global_High_Quality.inst.cfg | 2 +- .../tizyx_evy_dual_global_Normal_Quality.inst.cfg | 2 +- .../tizyx_evy_dual/tizyx_evy_dual_global_PVA_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg | 2 +- 42 files changed, 42 insertions(+), 42 deletions(-) diff --git a/resources/definitions/deltacomb_dc20flux.def.json b/resources/definitions/deltacomb_dc20flux.def.json index cc4a38c4d5..50f69636bd 100644 --- a/resources/definitions/deltacomb_dc20flux.def.json +++ b/resources/definitions/deltacomb_dc20flux.def.json @@ -31,8 +31,8 @@ "material_final_print_temperature": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, - "prime_tower_mode": { "value": "normal" }, "prime_tower_min_volume": { "value": "50" }, + "prime_tower_mode": { "value": "normal" }, "switch_extruder_retraction_amount": { "value": "0" } } } \ No newline at end of file diff --git a/resources/definitions/deltacomb_dc21flux.def.json b/resources/definitions/deltacomb_dc21flux.def.json index dd710af627..e09fbeca63 100644 --- a/resources/definitions/deltacomb_dc21flux.def.json +++ b/resources/definitions/deltacomb_dc21flux.def.json @@ -31,8 +31,8 @@ "material_final_print_temperature": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, - "prime_tower_mode": { "value": "normal" }, "prime_tower_min_volume": { "value": "50" }, + "prime_tower_mode": { "value": "normal" }, "switch_extruder_retraction_amount": { "value": "0" } } } \ No newline at end of file diff --git a/resources/definitions/deltacomb_dc30flux.def.json b/resources/definitions/deltacomb_dc30flux.def.json index 789af29650..f59bf53a9a 100644 --- a/resources/definitions/deltacomb_dc30flux.def.json +++ b/resources/definitions/deltacomb_dc30flux.def.json @@ -31,8 +31,8 @@ "material_final_print_temperature": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, - "prime_tower_mode": { "value": "normal" }, "prime_tower_min_volume": { "value": "50" }, + "prime_tower_mode": { "value": "normal" }, "switch_extruder_retraction_amount": { "value": "0" } } } \ No newline at end of file diff --git a/resources/definitions/elegoo_neptune_2D.def.json b/resources/definitions/elegoo_neptune_2D.def.json index e564acc036..2d5ef0024e 100644 --- a/resources/definitions/elegoo_neptune_2D.def.json +++ b/resources/definitions/elegoo_neptune_2D.def.json @@ -55,8 +55,8 @@ "settable_per_extruder": false }, "prime_blob_enable": { "default_value": false }, - "prime_tower_mode": { "default_value": "normal" }, "prime_tower_min_volume": { "default_value": 90 }, + "prime_tower_mode": { "default_value": "normal" }, "prime_tower_size": { "default_value": 30 }, "raft_airgap": { "default_value": 0.25 }, "raft_margin": { "default_value": 5 }, diff --git a/resources/definitions/lotmaxx_sc60.def.json b/resources/definitions/lotmaxx_sc60.def.json index 697dd911b6..89eeac9b75 100644 --- a/resources/definitions/lotmaxx_sc60.def.json +++ b/resources/definitions/lotmaxx_sc60.def.json @@ -44,8 +44,8 @@ "machine_width": { "default_value": 235 }, "meshfix_maximum_resolution": { "value": 0.25 }, "optimize_wall_printing_order": { "value": true }, - "prime_tower_mode": { "value": "normal" }, "prime_tower_min_volume": { "value": 30 }, + "prime_tower_mode": { "value": "normal" }, "retract_at_layer_change": { "value": false }, "retraction_amount": { "value": 4.5 }, "roofing_layer_count": { "value": 1 }, diff --git a/resources/definitions/strateo3d_IDEX420.def.json b/resources/definitions/strateo3d_IDEX420.def.json index 66ecb9999c..785301c51e 100644 --- a/resources/definitions/strateo3d_IDEX420.def.json +++ b/resources/definitions/strateo3d_IDEX420.def.json @@ -112,8 +112,8 @@ "machine_use_extruder_offset_to_offset_coords": { "default_value": false }, "machine_width": { "default_value": 420 }, "material_diameter": { "default_value": 1.75 }, - "prime_tower_mode": { "default_value": "normal" }, "prime_tower_min_volume": { "default_value": 35.6 }, + "prime_tower_mode": { "default_value": "normal" }, "raft_acceleration": { "value": "machine_acceleration" }, "raft_base_acceleration": { "value": "machine_acceleration" }, "raft_interface_acceleration": { "value": "machine_acceleration" }, diff --git a/resources/definitions/ultimaker_method_base.def.json b/resources/definitions/ultimaker_method_base.def.json index 89aaa1b170..911de6d1b1 100644 --- a/resources/definitions/ultimaker_method_base.def.json +++ b/resources/definitions/ultimaker_method_base.def.json @@ -346,9 +346,9 @@ "prime_tower_base_curve_magnitude": { "value": 2 }, "prime_tower_base_height": { "value": 6 }, "prime_tower_base_size": { "value": 10 }, - "prime_tower_mode": { "value": "none" }, "prime_tower_flow": { "value": "material_flow" }, "prime_tower_line_width": { "value": 1 }, + "prime_tower_mode": { "value": "none" }, "prime_tower_raft_base_line_spacing": { "value": "raft_base_line_width" }, "prime_tower_wipe_enabled": { "value": true }, "print_sequence": { "enabled": false }, diff --git a/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_brass0.4_abs_natural_standard.inst.cfg b/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_brass0.4_abs_natural_standard.inst.cfg index bab34c73b6..54807c88b3 100644 --- a/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_brass0.4_abs_natural_standard.inst.cfg +++ b/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_brass0.4_abs_natural_standard.inst.cfg @@ -38,8 +38,8 @@ line_width = 0.4 min_infill_area = 0 optimize_wall_printing_order = True prime_tower_brim_enable = True -prime_tower_mode = normal prime_tower_min_volume = 6 +prime_tower_mode = normal prime_tower_size = 20 prime_tower_wipe_enabled = True retract_at_layer_change = False diff --git a/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_nozzlex0.4_abs_natural_standard.inst.cfg b/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_nozzlex0.4_abs_natural_standard.inst.cfg index e0ef960b32..312313c9c5 100644 --- a/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_nozzlex0.4_abs_natural_standard.inst.cfg +++ b/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_nozzlex0.4_abs_natural_standard.inst.cfg @@ -38,8 +38,8 @@ line_width = 0.4 min_infill_area = 0 optimize_wall_printing_order = True prime_tower_brim_enable = True -prime_tower_mode = normal prime_tower_min_volume = 6 +prime_tower_mode = normal prime_tower_size = 20 prime_tower_wipe_enabled = True retract_at_layer_change = False diff --git a/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_brass0.4_epla_natural_standard.inst.cfg b/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_brass0.4_epla_natural_standard.inst.cfg index 55c26edccb..485e82345a 100644 --- a/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_brass0.4_epla_natural_standard.inst.cfg +++ b/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_brass0.4_epla_natural_standard.inst.cfg @@ -36,8 +36,8 @@ line_width = 0.4 min_infill_area = 0 optimize_wall_printing_order = True prime_tower_brim_enable = True -prime_tower_mode = normal prime_tower_min_volume = 6 +prime_tower_mode = normal prime_tower_size = 20 prime_tower_wipe_enabled = True retract_at_layer_change = False diff --git a/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_nozzlex0.4_epla_natural_standard.inst.cfg b/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_nozzlex0.4_epla_natural_standard.inst.cfg index b5fa497a33..7fb90fd093 100644 --- a/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_nozzlex0.4_epla_natural_standard.inst.cfg +++ b/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_nozzlex0.4_epla_natural_standard.inst.cfg @@ -36,8 +36,8 @@ line_width = 0.4 min_infill_area = 0 optimize_wall_printing_order = True prime_tower_brim_enable = True -prime_tower_mode = normal prime_tower_min_volume = 6 +prime_tower_mode = normal prime_tower_size = 20 prime_tower_wipe_enabled = True retract_at_layer_change = False diff --git a/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_brass0.4_pva_natural_standard.inst.cfg b/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_brass0.4_pva_natural_standard.inst.cfg index 1bf050b6f2..ce3fe8c60b 100644 --- a/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_brass0.4_pva_natural_standard.inst.cfg +++ b/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_brass0.4_pva_natural_standard.inst.cfg @@ -35,8 +35,8 @@ line_width = 0.4 min_infill_area = 0 optimize_wall_printing_order = True prime_tower_brim_enable = True -prime_tower_mode = normal prime_tower_min_volume = 6 +prime_tower_mode = normal prime_tower_size = 20 prime_tower_wipe_enabled = True retract_at_layer_change = False diff --git a/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_nozzlex0.4_pva_natural_standard.inst.cfg b/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_nozzlex0.4_pva_natural_standard.inst.cfg index 7cde446656..a95c6ce5d3 100644 --- a/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_nozzlex0.4_pva_natural_standard.inst.cfg +++ b/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_nozzlex0.4_pva_natural_standard.inst.cfg @@ -35,8 +35,8 @@ line_width = 0.4 min_infill_area = 0 optimize_wall_printing_order = True prime_tower_brim_enable = True -prime_tower_mode = normal prime_tower_min_volume = 6 +prime_tower_mode = normal prime_tower_size = 20 prime_tower_wipe_enabled = True retract_at_layer_change = False diff --git a/resources/quality/liquid/liquid_vo0.8_PP_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PP_Draft_Print.inst.cfg index d30007f18d..dab7612a6c 100644 --- a/resources/quality/liquid/liquid_vo0.8_PP_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PP_Draft_Print.inst.cfg @@ -26,9 +26,9 @@ material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 10 +prime_tower_mode = normal retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/liquid/liquid_vo0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PP_Superdraft_Print.inst.cfg index a0a1f806ab..7ec446e803 100644 --- a/resources/quality/liquid/liquid_vo0.8_PP_Superdraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PP_Superdraft_Print.inst.cfg @@ -26,9 +26,9 @@ material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 20 +prime_tower_mode = normal retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/liquid/liquid_vo0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PP_Verydraft_Print.inst.cfg index cdadd228be..9913ea3779 100644 --- a/resources/quality/liquid/liquid_vo0.8_PP_Verydraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PP_Verydraft_Print.inst.cfg @@ -25,9 +25,9 @@ material_bed_temperature_layer_0 = =material_bed_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 15 +prime_tower_mode = normal retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/liquid/liquid_vo0.8_TPU_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_TPU_Draft_Print.inst.cfg index 31baf4022c..54d9c23b98 100644 --- a/resources/quality/liquid/liquid_vo0.8_TPU_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_TPU_Draft_Print.inst.cfg @@ -30,8 +30,8 @@ material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =material_print_temperature + 19 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 +prime_tower_mode = normal retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/liquid/liquid_vo0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_TPU_Superdraft_Print.inst.cfg index 408ad54518..289e9d48b7 100644 --- a/resources/quality/liquid/liquid_vo0.8_TPU_Superdraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_TPU_Superdraft_Print.inst.cfg @@ -31,8 +31,8 @@ material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =material_print_temperature + 15 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 +prime_tower_mode = normal retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/liquid/liquid_vo0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_TPU_Verydraft_Print.inst.cfg index 9fd95f5c32..c8cad9bb3f 100644 --- a/resources/quality/liquid/liquid_vo0.8_TPU_Verydraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_TPU_Verydraft_Print.inst.cfg @@ -30,8 +30,8 @@ material_initial_print_temperature = =material_print_temperature material_print_temperature_layer_0 = =material_print_temperature + 17 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 +prime_tower_mode = normal retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Only_Quality.inst.cfg b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Only_Quality.inst.cfg index a033f60186..538bcfedb9 100644 --- a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Only_Quality.inst.cfg +++ b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Only_Quality.inst.cfg @@ -22,8 +22,8 @@ material_final_print_temperature = =material_print_temperature material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature optimize_wall_printing_order = True -prime_tower_mode = normal prime_tower_flow = 110 +prime_tower_mode = normal prime_tower_size = 35 retraction_min_travel = 2 skirt_gap = 2 diff --git a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Quality.inst.cfg b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Quality.inst.cfg index a8da0b4092..86c4cd1894 100644 --- a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Quality.inst.cfg +++ b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Quality.inst.cfg @@ -19,8 +19,8 @@ material_final_print_temperature = =material_print_temperature material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature optimize_wall_printing_order = True -prime_tower_mode = normal prime_tower_flow = 110 +prime_tower_mode = normal prime_tower_size = 35 retraction_hop_enabled = False support_enable = True diff --git a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_High_Quality.inst.cfg b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_High_Quality.inst.cfg index d807f97293..83ec574663 100644 --- a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_High_Quality.inst.cfg +++ b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_High_Quality.inst.cfg @@ -30,8 +30,8 @@ material_flow_layer_0 = 93 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature optimize_wall_printing_order = True -prime_tower_mode = normal prime_tower_flow = 110 +prime_tower_mode = normal prime_tower_size = 35 retraction_amount = 5 retraction_hop_enabled = False diff --git a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Normal_Quality.inst.cfg b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Normal_Quality.inst.cfg index 51329150b7..2269a480a5 100644 --- a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Normal_Quality.inst.cfg +++ b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Normal_Quality.inst.cfg @@ -30,8 +30,8 @@ material_flow_layer_0 = 93 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature optimize_wall_printing_order = True -prime_tower_mode = normal prime_tower_flow = 110 +prime_tower_mode = normal prime_tower_size = 35 retraction_amount = 5 retraction_hop_enabled = False diff --git a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_PVA_Quality.inst.cfg b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_PVA_Quality.inst.cfg index f201d4c632..4fed169568 100644 --- a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_PVA_Quality.inst.cfg +++ b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_PVA_Quality.inst.cfg @@ -19,8 +19,8 @@ material_final_print_temperature = =material_print_temperature material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature optimize_wall_printing_order = True -prime_tower_mode = normal prime_tower_flow = 110 +prime_tower_mode = normal prime_tower_size = 35 retraction_hop_enabled = False support_enable = True diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg index 144a47769b..c9e31486c0 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg @@ -16,9 +16,9 @@ brim_width = 25 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' material_print_temperature = =default_material_print_temperature + 11 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 10 +prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg index cedba132eb..e821581360 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg @@ -16,9 +16,9 @@ brim_width = 25 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' material_print_temperature = =default_material_print_temperature + 15 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 20 +prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg index 32f623e432..a5817651d8 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg @@ -17,9 +17,9 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' layer_height = 0.3 material_print_temperature = =default_material_print_temperature + 13 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 15 +prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg index 63dd03590c..d8f7812d75 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg @@ -23,8 +23,8 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 4 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 +prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg index a81683200f..a689035132 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg @@ -23,8 +23,8 @@ material_final_print_temperature = =material_print_temperature - 10 material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 +prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg index cb0e4358d6..f4b61cac5d 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg @@ -24,8 +24,8 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 +prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg index 1c681aaeb2..61ce2bd96c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg @@ -18,9 +18,9 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 11 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 10 +prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg index e054336e24..6b91c97bda 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg @@ -18,9 +18,9 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 13 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 15 +prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg index 3afea841d3..abbfb2ce02 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg @@ -18,9 +18,9 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 15 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 20 +prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg index 709e798502..96b82799f0 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg @@ -21,8 +21,8 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 4 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 +prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg index 12aac8dcd5..d53c79de87 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg @@ -22,8 +22,8 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 +prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg index 8958aa30c0..f9c4e17e91 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg @@ -21,8 +21,8 @@ material_final_print_temperature = =material_print_temperature - 10 material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 +prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg index addcc8e504..1c7b79f8e0 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg @@ -18,9 +18,9 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 11 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 10 +prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg index dde38061ca..67e35f3eca 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg @@ -18,9 +18,9 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 13 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 15 +prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg index bab23c5ee1..53b8786303 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg @@ -18,9 +18,9 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 15 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 prime_tower_min_volume = 20 +prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg index 132a0e0760..9451394fb3 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg @@ -21,8 +21,8 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 4 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 +prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg index c0b54402f2..4b498104e0 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg @@ -22,8 +22,8 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 +prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg index 076f3df437..48977f6a86 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg @@ -21,8 +21,8 @@ material_final_print_temperature = =material_print_temperature - 10 material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 multiple_mesh_overlap = 0.2 -prime_tower_mode = normal prime_tower_flow = 100 +prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 From b641741e49a72dc39110dc8cf4dacf6b315fe62f Mon Sep 17 00:00:00 2001 From: "saumya.jain" Date: Fri, 16 Feb 2024 14:11:07 +0100 Subject: [PATCH 199/269] Added preference to show UFP saving dialog Changes saving to .ucp to .3mf --- cura/CuraApplication.py | 2 ++ plugins/3MFReader/ThreeMFReader.py | 4 ++-- plugins/3MFReader/ThreeMFWorkspaceReader.py | 4 ++-- plugins/3MFReader/plugin.json | 2 +- plugins/3MFWriter/ThreeMFWorkspaceWriter.py | 2 +- plugins/3MFWriter/UCPDialog.qml | 25 ++++++++++++++++++++- plugins/3MFWriter/__init__.py | 4 ++-- resources/qml/Preferences/GeneralPage.qml | 14 ++++++++++++ 8 files changed, 48 insertions(+), 9 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 20e54fa57c..7b588c836a 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -601,7 +601,9 @@ class CuraApplication(QtApplication): preferences.addPreference("mesh/scale_to_fit", False) preferences.addPreference("mesh/scale_tiny_meshes", True) preferences.addPreference("cura/dialog_on_project_save", True) + preferences.addPreference("cura/dialog_on_ucp_project_save", True) preferences.addPreference("cura/asked_dialog_on_project_save", False) + preferences.addPreference("cura/asked_dialog_on_ucp_project_save", False) preferences.addPreference("cura/choice_on_profile_override", "always_ask") preferences.addPreference("cura/choice_on_open_project", "always_ask") preferences.addPreference("cura/use_multi_build_plate", False) diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index a715d990eb..c7a15e043e 100755 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -50,11 +50,11 @@ class ThreeMFReader(MeshReader): MimeType( name="application/x-ucp", comment="UCP", - suffixes=["ucp"] + suffixes=["3mf"] ) ) - self._supported_extensions = [".3mf", ".ucp"] + self._supported_extensions = [".3mf"] self._root = None self._base_name = "" self._unit = None diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index d96de5b324..c9692599e5 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -113,7 +113,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): def __init__(self) -> None: super().__init__() - self._supported_extensions = [".3mf", ".ucp"] + self._supported_extensions = [".3mf"] self._dialog = WorkspaceDialog() self._3mf_mesh_reader = None self._container_registry = ContainerRegistry.getInstance() @@ -236,7 +236,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): # Check whether the file is a UCP, which changes some import options #FIXME Instead of this, we should just check for the presence of the user-settings file, whatever the extension - is_ucp = file_name.endswith('.ucp') + is_ucp = file_name.endswith('.3mf') # # Read definition containers diff --git a/plugins/3MFReader/plugin.json b/plugins/3MFReader/plugin.json index 010adbb501..bf0bc05364 100644 --- a/plugins/3MFReader/plugin.json +++ b/plugins/3MFReader/plugin.json @@ -2,7 +2,7 @@ "name": "3MF Reader", "author": "Ultimaker B.V.", "version": "1.0.1", - "description": "Provides support for reading 3MF and UCP files.", + "description": "Provides support for reading 3MF files.", "api": 8, "i18n-catalog": "cura" } diff --git a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py index d0a843af69..c67da24569 100644 --- a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py +++ b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py @@ -39,7 +39,7 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): is_ucp = False if hasattr(self._stream, 'name'): # This only works with local file, but we don't want remote UCP files yet - is_ucp = self._stream.name.endswith('.ucp') + is_ucp = self._stream.name.endswith('.3mf') if is_ucp: self._config_dialog = UCPDialog() diff --git a/plugins/3MFWriter/UCPDialog.qml b/plugins/3MFWriter/UCPDialog.qml index 88552cc292..7eaf57c96b 100644 --- a/plugins/3MFWriter/UCPDialog.qml +++ b/plugins/3MFWriter/UCPDialog.qml @@ -19,6 +19,21 @@ UM.Dialog minimumHeight: UM.Theme.getSize("modal_window_minimum").height backgroundColor: UM.Theme.getColor("detail_background") + property bool dontShowAgain: true + + function storeDontShowAgain() + { + UM.Preferences.setValue("cura/dialog_on_ucp_project_save", !dontShowAgainCheckbox.checked) + UM.Preferences.setValue("asked_dialog_on_ucp_project_save", true) + } + + onVisibleChanged: + { + if(visible && UM.Preferences.getValue("cura/asked_dialog_on_ucp_project_save")) + { + dontShowAgain = !UM.Preferences.getValue("cura/dialog_on_ucp_project_save") + } + } headerComponent: Rectangle { @@ -75,7 +90,15 @@ UM.Dialog delegate: SettingsSelectionGroup { Layout.margins: 0 } } } - + leftButtons: + [ + UM.CheckBox + { + id: dontShowAgainCheckbox + text: catalog.i18nc("@action:label", "Don't show project summary on save again") + checked: dontShowAgain + } + ] rightButtons: [ Cura.TertiaryButton diff --git a/plugins/3MFWriter/__init__.py b/plugins/3MFWriter/__init__.py index 40fd42b199..1cecf4c3f8 100644 --- a/plugins/3MFWriter/__init__.py +++ b/plugins/3MFWriter/__init__.py @@ -34,7 +34,7 @@ def getMetaData(): "mode": ThreeMFWriter.ThreeMFWriter.OutputMode.BinaryMode }, { - "extension": "ucp", + "extension": "3mf", "description": i18n_catalog.i18nc("@item:inlistbox", "Universal Cura Project"), "mime_type": "application/x-ucp", "mode": ThreeMFWriter.ThreeMFWriter.OutputMode.BinaryMode @@ -50,7 +50,7 @@ def getMetaData(): "mode": ThreeMFWorkspaceWriter.ThreeMFWorkspaceWriter.OutputMode.BinaryMode }, { - "extension": "ucp", + "extension": "3mf", "description": i18n_catalog.i18nc("@item:inlistbox", "Universal Cura Project"), "mime_type": "application/x-ucp", "mode": ThreeMFWorkspaceWriter.ThreeMFWorkspaceWriter.OutputMode.BinaryMode diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index 69607a3f6b..0ca905cf85 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -735,6 +735,20 @@ UM.PreferencesPage } } + UM.TooltipArea + { + width: childrenRect.width + height: childrenRect.height + text: catalog.i18nc("@info:tooltip", "Should a summary be shown when saving a UCP project file?") + + UM.CheckBox + { + text: catalog.i18nc("@option:check", "Show summary dialog when saving a UCP project") + checked: boolCheck(UM.Preferences.getValue("cura/dialog_on_ucp_project_save")) + onCheckedChanged: UM.Preferences.setValue("cura/dialog_on_ucp_project_save", checked) + } + } + UM.TooltipArea { width: childrenRect.width From bb8dd309879b52f9040b0630619e56cf642e1623 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Sat, 17 Feb 2024 12:05:03 +0100 Subject: [PATCH 200/269] Don't run Sentry for UT --- .github/workflows/unit-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 9a42f4f85d..2f9e9a08e7 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -55,7 +55,7 @@ jobs: needs: [ conan-recipe-version ] with: recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }} - conan_extra_args: '-g VirtualPythonEnv -o cura:devtools=True -c tools.build:skip_test=False' + conan_extra_args: '-g VirtualPythonEnv -o cura:devtools=True -c tools.build:skip_test=False -o *:enable_sentry=False' unit_test_cmd: 'pytest --junitxml=junit_cura.xml' unit_test_dir: 'tests' conan_generator_dir: './venv/bin' From 9b7bdfc9dd9110f9a79378134d334060e05f37fc Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Sat, 17 Feb 2024 12:10:32 +0100 Subject: [PATCH 201/269] Don't run Sentry for UT --- .github/workflows/unit-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 2f9e9a08e7..56d7a7a071 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -55,7 +55,7 @@ jobs: needs: [ conan-recipe-version ] with: recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }} - conan_extra_args: '-g VirtualPythonEnv -o cura:devtools=True -c tools.build:skip_test=False -o *:enable_sentry=False' + conan_extra_args: '-g VirtualPythonEnv -o cura:devtools=True -c tools.build:skip_test=False -o clipper:enable_sentry=False -o curaengine:enable_sentry=False -o arcus:enable_sentry=False' unit_test_cmd: 'pytest --junitxml=junit_cura.xml' unit_test_dir: 'tests' conan_generator_dir: './venv/bin' From 08c24b05ecb081d2d7d4a21728c949fedbcd9d88 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Sat, 17 Feb 2024 12:55:10 +0100 Subject: [PATCH 202/269] Write out options --- .github/workflows/unit-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 56d7a7a071..2165540889 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -55,7 +55,7 @@ jobs: needs: [ conan-recipe-version ] with: recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }} - conan_extra_args: '-g VirtualPythonEnv -o cura:devtools=True -c tools.build:skip_test=False -o clipper:enable_sentry=False -o curaengine:enable_sentry=False -o arcus:enable_sentry=False' + conan_extra_args: '-g VirtualPythonEnv -o cura:devtools=True -c tools.build:skip_test=False --options "*:enable_sentry=False"' unit_test_cmd: 'pytest --junitxml=junit_cura.xml' unit_test_dir: 'tests' conan_generator_dir: './venv/bin' From 87d6c4092f3807721677c697a399be3e1f3b14d0 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Sat, 17 Feb 2024 13:48:51 +0100 Subject: [PATCH 203/269] Remove redundant default_mode `prime_tower` --- resources/definitions/dxu_dual.def.json | 1 - resources/definitions/elegoo_neptune_2D.def.json | 1 - resources/definitions/strateo3d_IDEX420.def.json | 1 - resources/definitions/ultimaker3.def.json | 1 - 4 files changed, 4 deletions(-) diff --git a/resources/definitions/dxu_dual.def.json b/resources/definitions/dxu_dual.def.json index 8fb2092b65..ba37882d40 100644 --- a/resources/definitions/dxu_dual.def.json +++ b/resources/definitions/dxu_dual.def.json @@ -6,6 +6,5 @@ { "machine_end_gcode": { "value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \"G90 ;absolute positioning\\nM104 S0 T0 ;extruder heater off\\nM104 S0 T1\\nM140 S0 ;turn off bed\\nT0 ; move to the first head\\nM107 ;fan off\"" }, "machine_start_gcode": { "value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \";material_bed_temperature={material_bed_temperature} material_print_temperature={material_print_temperature} material_print_temperature_layer_0={material_print_temperature_layer_0}\\nM190 S{material_bed_temperature_layer_0}\\nM104 T0 S{material_standby_temperature, 0}\\nM104 T0 S{material_print_temperature_layer_0, 0}\\nG21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nM200 D0 T0 ;reset filament diameter\\nM200 D0 T1\\nG28 ;home all\\nT1 ; move to the nozzle 2\\nG0 Z20 F2400 ;move the platform to 30mm\\nM109 T1 S{material_print_temperature_layer_0, 1}\\nG0 X210 Y20 F7200\\nG92 E0\\nG92 E-7.0 ;prime distance\\nG1 E0 F45 ;purge nozzle\\nG1 E-6.5 F1500 ; retract\\nT0 ; move to the nozzle 1\\nM104 T1 S{material_standby_temperature, 1}\\nG0 Z20 F2400\\nM109 T0 S{material_print_temperature_layer_0, 0}\\nG0 X210 Y20 F7200\\nG92 E0\\nG92 E-7.0\\nG1 E0 F45 ;purge nozzle\\nG1 E-6.5 F1500\\nM104 T0 S{material_standby_temperature, 0}\\nT{initial_extruder_nr} ;switch to the first nozzle used for print\\nM109 T{initial_extruder_nr} S{material_print_temperature_layer_0, initial_extruder_nr}\\nM400 ;finish all moves\\nG1 E0 F1500\\nG92 E0\\n;end of startup sequence\\n\"" }, - "prime_tower_mode": { "default_value": "normal" } } } \ No newline at end of file diff --git a/resources/definitions/elegoo_neptune_2D.def.json b/resources/definitions/elegoo_neptune_2D.def.json index 2d5ef0024e..dbdf066b21 100644 --- a/resources/definitions/elegoo_neptune_2D.def.json +++ b/resources/definitions/elegoo_neptune_2D.def.json @@ -56,7 +56,6 @@ }, "prime_blob_enable": { "default_value": false }, "prime_tower_min_volume": { "default_value": 90 }, - "prime_tower_mode": { "default_value": "normal" }, "prime_tower_size": { "default_value": 30 }, "raft_airgap": { "default_value": 0.25 }, "raft_margin": { "default_value": 5 }, diff --git a/resources/definitions/strateo3d_IDEX420.def.json b/resources/definitions/strateo3d_IDEX420.def.json index 785301c51e..47a3af714b 100644 --- a/resources/definitions/strateo3d_IDEX420.def.json +++ b/resources/definitions/strateo3d_IDEX420.def.json @@ -113,7 +113,6 @@ "machine_width": { "default_value": 420 }, "material_diameter": { "default_value": 1.75 }, "prime_tower_min_volume": { "default_value": 35.6 }, - "prime_tower_mode": { "default_value": "normal" }, "raft_acceleration": { "value": "machine_acceleration" }, "raft_base_acceleration": { "value": "machine_acceleration" }, "raft_interface_acceleration": { "value": "machine_acceleration" }, diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index 9e4c9310c8..43f718e2db 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -149,7 +149,6 @@ "enabled": true, "value": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, - "prime_tower_mode": { "default_value": "normal" }, "prime_tower_position_x": { "value": "185" }, "prime_tower_wipe_enabled": { "default_value": false }, "retraction_amount": { "value": "6.5" }, From 546d82a9327e5c8b2b3d358c33667c7f3d089f6f Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Sat, 17 Feb 2024 14:53:35 +0100 Subject: [PATCH 204/269] fix trailing comma --- resources/definitions/dxu_dual.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/dxu_dual.def.json b/resources/definitions/dxu_dual.def.json index ba37882d40..b81d148f80 100644 --- a/resources/definitions/dxu_dual.def.json +++ b/resources/definitions/dxu_dual.def.json @@ -5,6 +5,6 @@ "overrides": { "machine_end_gcode": { "value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \"G90 ;absolute positioning\\nM104 S0 T0 ;extruder heater off\\nM104 S0 T1\\nM140 S0 ;turn off bed\\nT0 ; move to the first head\\nM107 ;fan off\"" }, - "machine_start_gcode": { "value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \";material_bed_temperature={material_bed_temperature} material_print_temperature={material_print_temperature} material_print_temperature_layer_0={material_print_temperature_layer_0}\\nM190 S{material_bed_temperature_layer_0}\\nM104 T0 S{material_standby_temperature, 0}\\nM104 T0 S{material_print_temperature_layer_0, 0}\\nG21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nM200 D0 T0 ;reset filament diameter\\nM200 D0 T1\\nG28 ;home all\\nT1 ; move to the nozzle 2\\nG0 Z20 F2400 ;move the platform to 30mm\\nM109 T1 S{material_print_temperature_layer_0, 1}\\nG0 X210 Y20 F7200\\nG92 E0\\nG92 E-7.0 ;prime distance\\nG1 E0 F45 ;purge nozzle\\nG1 E-6.5 F1500 ; retract\\nT0 ; move to the nozzle 1\\nM104 T1 S{material_standby_temperature, 1}\\nG0 Z20 F2400\\nM109 T0 S{material_print_temperature_layer_0, 0}\\nG0 X210 Y20 F7200\\nG92 E0\\nG92 E-7.0\\nG1 E0 F45 ;purge nozzle\\nG1 E-6.5 F1500\\nM104 T0 S{material_standby_temperature, 0}\\nT{initial_extruder_nr} ;switch to the first nozzle used for print\\nM109 T{initial_extruder_nr} S{material_print_temperature_layer_0, initial_extruder_nr}\\nM400 ;finish all moves\\nG1 E0 F1500\\nG92 E0\\n;end of startup sequence\\n\"" }, + "machine_start_gcode": { "value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \";material_bed_temperature={material_bed_temperature} material_print_temperature={material_print_temperature} material_print_temperature_layer_0={material_print_temperature_layer_0}\\nM190 S{material_bed_temperature_layer_0}\\nM104 T0 S{material_standby_temperature, 0}\\nM104 T0 S{material_print_temperature_layer_0, 0}\\nG21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nM200 D0 T0 ;reset filament diameter\\nM200 D0 T1\\nG28 ;home all\\nT1 ; move to the nozzle 2\\nG0 Z20 F2400 ;move the platform to 30mm\\nM109 T1 S{material_print_temperature_layer_0, 1}\\nG0 X210 Y20 F7200\\nG92 E0\\nG92 E-7.0 ;prime distance\\nG1 E0 F45 ;purge nozzle\\nG1 E-6.5 F1500 ; retract\\nT0 ; move to the nozzle 1\\nM104 T1 S{material_standby_temperature, 1}\\nG0 Z20 F2400\\nM109 T0 S{material_print_temperature_layer_0, 0}\\nG0 X210 Y20 F7200\\nG92 E0\\nG92 E-7.0\\nG1 E0 F45 ;purge nozzle\\nG1 E-6.5 F1500\\nM104 T0 S{material_standby_temperature, 0}\\nT{initial_extruder_nr} ;switch to the first nozzle used for print\\nM109 T{initial_extruder_nr} S{material_print_temperature_layer_0, initial_extruder_nr}\\nM400 ;finish all moves\\nG1 E0 F1500\\nG92 E0\\n;end of startup sequence\\n\"" } } } \ No newline at end of file From ca94e0e3559248f8e03b270d59efee93165b1403 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Mon, 19 Feb 2024 11:38:30 +0100 Subject: [PATCH 205/269] restore extruder definition --- resources/extruders/geeetech_A20_1.def.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 resources/extruders/geeetech_A20_1.def.json diff --git a/resources/extruders/geeetech_A20_1.def.json b/resources/extruders/geeetech_A20_1.def.json new file mode 100644 index 0000000000..0eba9c3ea9 --- /dev/null +++ b/resources/extruders/geeetech_A20_1.def.json @@ -0,0 +1,16 @@ +{ + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "geeetech_A20", + "position": "0" + }, + + "overrides": { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + + } +} From e8e0bd97820ac4189c5fe287e27bb676d7943d41 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Mon, 19 Feb 2024 10:39:20 +0000 Subject: [PATCH 206/269] Applied printer-linter format --- resources/extruders/geeetech_A20_1.def.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/resources/extruders/geeetech_A20_1.def.json b/resources/extruders/geeetech_A20_1.def.json index 0eba9c3ea9..96e94fe2f6 100644 --- a/resources/extruders/geeetech_A20_1.def.json +++ b/resources/extruders/geeetech_A20_1.def.json @@ -2,15 +2,15 @@ "version": 2, "name": "Extruder 1", "inherits": "fdmextruder", - "metadata": { + "metadata": + { "machine": "geeetech_A20", "position": "0" }, - - "overrides": { + "overrides": + { "extruder_nr": { "default_value": 0 }, "machine_nozzle_size": { "default_value": 0.4 }, "material_diameter": { "default_value": 1.75 } - } -} +} \ No newline at end of file From a4ec177cd34ab3f6d4def25e86d4757138e1452f Mon Sep 17 00:00:00 2001 From: Mariska <40423138+MariMakes@users.noreply.github.com> Date: Mon, 19 Feb 2024 13:08:27 +0100 Subject: [PATCH 207/269] Remove the link to the nightly build The nightly was broken so the download links were removed, this is to remove them from the slicing crash form. --- .github/ISSUE_TEMPLATE/SlicingCrash.yaml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/SlicingCrash.yaml b/.github/ISSUE_TEMPLATE/SlicingCrash.yaml index 37a70354c6..899bfef927 100644 --- a/.github/ISSUE_TEMPLATE/SlicingCrash.yaml +++ b/.github/ISSUE_TEMPLATE/SlicingCrash.yaml @@ -4,14 +4,7 @@ labels: ["Type: Bug", "Status: Triage", "Slicing Error :collision:"] body: - type: markdown attributes: - value: | - ### 💥 Slicing Crash Analysis Tool 💥 - We are taking steps to analyze an increase in reported crashes more systematically. We'll need some help with that. 😇 - Before filling out the report below, we want you to try a special Cura 5.7 Alpha. - This version of Cura has an updated slicing engine that will automatically send a report to the Cura Team for analysis. - #### [You can find the downloads here](https://github.com/Ultimaker/Cura/discussions/18080) #### - If you still encounter a crash you are still welcome to report the issue so we can use your model as a test case, you can find instructions on how to do that below. - + value: | ### Project File **⚠️ Before you continue, we need your project file to troubleshoot a slicing crash.** It contains the printer and settings we need for troubleshooting. From 8109230e99a6df9eea537807a56aa52c215d4784 Mon Sep 17 00:00:00 2001 From: Mariska <40423138+MariMakes@users.noreply.github.com> Date: Tue, 20 Feb 2024 10:43:59 +0100 Subject: [PATCH 208/269] Update Slicing Crash Template with 5.7 alpha It now refers to the 5.7 Alpha that has Sentry to analyze slicing crashes --- .github/ISSUE_TEMPLATE/SlicingCrash.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/SlicingCrash.yaml b/.github/ISSUE_TEMPLATE/SlicingCrash.yaml index 899bfef927..f4e082e00a 100644 --- a/.github/ISSUE_TEMPLATE/SlicingCrash.yaml +++ b/.github/ISSUE_TEMPLATE/SlicingCrash.yaml @@ -5,6 +5,13 @@ body: - type: markdown attributes: value: | + ### 💥 Slicing Crash Analysis Tool 💥 + We are taking steps to analyze an increase in reported crashes more systematically. We'll need some help with that. 😇 + Before filling out the report below, we want you to try a special Cura 5.7 Alpha. + This version of Cura has an updated slicing engine that will automatically send a report to the Cura Team for analysis. + #### [You can find the downloads here](https://github.com/Ultimaker/Cura/discussions/18080) #### + If you still encounter a crash you are still welcome to report the issue so we can use your model as a test case, you can find instructions on how to do that below. + ### Project File **⚠️ Before you continue, we need your project file to troubleshoot a slicing crash.** It contains the printer and settings we need for troubleshooting. From ec871782c77b73ca53c30daa0fd6174311bc4cc4 Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Tue, 20 Feb 2024 10:47:27 +0100 Subject: [PATCH 209/269] PAP adding save dialog before filesave window CURA-11403 --- cura/CuraApplication.py | 10 +++++ plugins/3MFReader/ThreeMFWorkspaceReader.py | 4 +- plugins/3MFReader/__init__.py | 8 ---- plugins/3MFWriter/ThreeMFWorkspaceWriter.py | 45 ++++++--------------- plugins/3MFWriter/ThreeMFWriter.py | 8 +++- plugins/3MFWriter/UCPDialog.py | 12 ++++++ resources/qml/Menus/FileMenu.qml | 8 +--- 7 files changed, 46 insertions(+), 49 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 7b588c836a..1af8380fd6 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1143,6 +1143,16 @@ class CuraApplication(QtApplication): self._build_plate_model = BuildPlateModel(self) return self._build_plate_model + @pyqtSlot() + def exportUcp(self): + writer = self.getMeshFileHandler().getWriter("3MFWriter") + + if writer is None: + Logger.warning("3mf writer is not enabled") + return + + writer.exportUcp() + def getCuraSceneController(self, *args) -> CuraSceneController: if self._cura_scene_controller is None: self._cura_scene_controller = CuraSceneController.createCuraSceneController() diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index c9692599e5..04885a961b 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -236,8 +236,8 @@ class ThreeMFWorkspaceReader(WorkspaceReader): # Check whether the file is a UCP, which changes some import options #FIXME Instead of this, we should just check for the presence of the user-settings file, whatever the extension - is_ucp = file_name.endswith('.3mf') - + if file_name.endswith('.3mf'): + is_ucp = True # # Read definition containers # diff --git a/plugins/3MFReader/__init__.py b/plugins/3MFReader/__init__.py index 101337f05f..5e2b68fce0 100644 --- a/plugins/3MFReader/__init__.py +++ b/plugins/3MFReader/__init__.py @@ -25,20 +25,12 @@ def getMetaData() -> Dict: { "extension": "3mf", "description": catalog.i18nc("@item:inlistbox", "3MF File") - }, - { - "extension": "ucp", - "description": catalog.i18nc("@item:inlistbox", "UCP File") } ] metaData["workspace_reader"] = [ { "extension": workspace_extension, "description": catalog.i18nc("@item:inlistbox", "3MF File") - }, - { - "extension": "ucp", - "description": catalog.i18nc("@item:inlistbox", "UCP File") } ] diff --git a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py index c67da24569..745627ed93 100644 --- a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py +++ b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py @@ -15,7 +15,6 @@ from UM.Workspace.WorkspaceWriter import WorkspaceWriter from UM.i18n import i18nCatalog catalog = i18nCatalog("cura") -from .UCPDialog import UCPDialog from .ThreeMFWriter import ThreeMFWriter from .SettingsExportModel import SettingsExportModel from .SettingsExportGroup import SettingsExportGroup @@ -32,32 +31,12 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): self._stream = None self._nodes = None self._mode = None - self._config_dialog = None + self._is_ucp = False - #FIXME We should have proper preWrite/write methods like the readers have a preRead/read, and have them called by the global process - def _preWrite(self): - is_ucp = False - if hasattr(self._stream, 'name'): - # This only works with local file, but we don't want remote UCP files yet - is_ucp = self._stream.name.endswith('.3mf') - if is_ucp: - self._config_dialog = UCPDialog() - self._config_dialog.finished.connect(self._onUCPConfigFinished) - self._config_dialog.show() - else: - self._doWrite() - - def _onUCPConfigFinished(self, accepted: bool): - if accepted: - self._export_model = self._config_dialog.getModel() - self._doWrite() - else: - self._main_thread_lock.release() - - def _doWrite(self): - self._write() - self._main_thread_lock.release() + def setExportModel(self, model): + if self._export_model != model: + self._export_model = model def _write(self): application = Application.getInstance() @@ -153,19 +132,21 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): #FIXME We should somehow give the information of the file type so that we know what to write, like the mode but for other files types (give mimetype ?) def write(self, stream, nodes, mode=WorkspaceWriter.OutputMode.BinaryMode): + print("Application.getInstance().getPreferences().getValue(\"local_file/last_used_type\")", Application.getInstance().getPreferences().getValue("local_file/last_used_type")) + self._success = False self._export_model = None self._stream = stream self._nodes = nodes self._mode = mode self._config_dialog = None - - self._main_thread_lock.acquire() - # Export is done in main thread because it may require a few asynchronous configuration steps - Application.getInstance().callLater(self._preWrite) - self._main_thread_lock.acquire() # Block until lock has been released, meaning the config+write is over - - self._main_thread_lock.release() + # + # self._main_thread_lock.acquire() + # # Export is done in main thread because it may require a few asynchronous configuration steps + Application.getInstance().callLater(self._write()) + # self._main_thread_lock.acquire() # Block until lock has been released, meaning the config+write is over + # + # self._main_thread_lock.release() self._export_model = None self._stream = None diff --git a/plugins/3MFWriter/ThreeMFWriter.py b/plugins/3MFWriter/ThreeMFWriter.py index 2caa71353c..e60aae8dd9 100644 --- a/plugins/3MFWriter/ThreeMFWriter.py +++ b/plugins/3MFWriter/ThreeMFWriter.py @@ -23,7 +23,7 @@ from cura.Snapshot import Snapshot from PyQt6.QtCore import QBuffer import pySavitar as Savitar - +from .UCPDialog import UCPDialog import numpy import datetime @@ -61,6 +61,7 @@ class ThreeMFWriter(MeshWriter): self._unit_matrix_string = ThreeMFWriter._convertMatrixToString(Matrix()) self._archive: Optional[zipfile.ZipFile] = None self._store_archive = False + self._is_ucp = False @staticmethod def _convertMatrixToString(matrix): @@ -433,3 +434,8 @@ class ThreeMFWriter(MeshWriter): extra_settings[group.category_details] = exported_model_settings return extra_settings + + def exportUcp(self): + self._is_ucp = True + self._config_dialog = UCPDialog() + self._config_dialog.show() diff --git a/plugins/3MFWriter/UCPDialog.py b/plugins/3MFWriter/UCPDialog.py index fb214aded0..ecffb64338 100644 --- a/plugins/3MFWriter/UCPDialog.py +++ b/plugins/3MFWriter/UCPDialog.py @@ -4,6 +4,8 @@ import os from PyQt6.QtCore import pyqtSignal, QObject + +import UM from UM.FlameProfiler import pyqtSlot from UM.i18n import i18nCatalog @@ -44,6 +46,16 @@ class UCPDialog(QObject): @pyqtSlot() def _onAccepted(self): self._accepted = True + mesh_writer = CuraApplication.getInstance().getMeshFileHandler().getWriter("3MFWriter") + mesh_writer.custom_data = "My custom data" + + device = CuraApplication.getInstance().getOutputDeviceManager().getOutputDevice("local_file") + file_handler = UM.Qt.QtApplication.QtApplication.getInstance().getWorkspaceFileHandler() + nodes = [CuraApplication.getInstance().getController().getScene().getRoot()] + device.requestWrite(nodes, "test.3mf", ["application/x-ucp"], file_handler, + preferred_mimetype_list="application/x-ucp") + #TODO: update _export_model in threeMFWorkspacewriter and set is_ucp is true + # = self._config_dialog.getModel() self._onFinished() @pyqtSlot() diff --git a/resources/qml/Menus/FileMenu.qml b/resources/qml/Menus/FileMenu.qml index 4f7734cb11..bc0d1e6aef 100644 --- a/resources/qml/Menus/FileMenu.qml +++ b/resources/qml/Menus/FileMenu.qml @@ -74,14 +74,10 @@ Cura.Menu { id: saveUCPMenu text: catalog.i18nc("@title:menu menubar:file", "&Save Universal Cura Project...") - enabled: UM.WorkspaceFileHandler.enabled + enabled: UM.WorkspaceFileHandler.enabled && CuraApplication.getPackageManager().allEnabledPackages.includes("3MFWriter") onTriggered: { - var args = { "filter_by_machine": false, - "file_type": "workspace", - "preferred_mimetypes": "application/x-ucp", - "limit_mimetypes": "application/x-ucp"}; - UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args) + CuraApplication.exportUcp() } } From efd6284f6e591564f1bc2a5e0e0cc5457730d51f Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 20 Feb 2024 13:47:51 +0100 Subject: [PATCH 210/269] Make ucp model available in workspace writer CURA-11403 --- plugins/3MFWriter/ThreeMFWorkspaceWriter.py | 6 ++-- plugins/3MFWriter/UCPDialog.py | 35 +++++++++++++++------ 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py index 745627ed93..16b05b30ec 100644 --- a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py +++ b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py @@ -27,7 +27,7 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): super().__init__() self._main_thread_lock = Lock() self._success = False - self._export_model = None + self._ucp_model = None self._stream = None self._nodes = None self._mode = None @@ -35,8 +35,8 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): def setExportModel(self, model): - if self._export_model != model: - self._export_model = model + if self._ucp_model != model: + self._ucp_model = model def _write(self): application = Application.getInstance() diff --git a/plugins/3MFWriter/UCPDialog.py b/plugins/3MFWriter/UCPDialog.py index ecffb64338..1100ddc7a9 100644 --- a/plugins/3MFWriter/UCPDialog.py +++ b/plugins/3MFWriter/UCPDialog.py @@ -7,6 +7,7 @@ from PyQt6.QtCore import pyqtSignal, QObject import UM from UM.FlameProfiler import pyqtSlot +from UM.Workspace.WorkspaceWriter import WorkspaceWriter from UM.i18n import i18nCatalog from cura.CuraApplication import CuraApplication @@ -45,24 +46,38 @@ class UCPDialog(QObject): @pyqtSlot() def _onAccepted(self): - self._accepted = True - mesh_writer = CuraApplication.getInstance().getMeshFileHandler().getWriter("3MFWriter") - mesh_writer.custom_data = "My custom data" + application = CuraApplication.getInstance() + workspace_handler = application.getInstance().getWorkspaceFileHandler() - device = CuraApplication.getInstance().getOutputDeviceManager().getOutputDevice("local_file") - file_handler = UM.Qt.QtApplication.QtApplication.getInstance().getWorkspaceFileHandler() - nodes = [CuraApplication.getInstance().getController().getScene().getRoot()] - device.requestWrite(nodes, "test.3mf", ["application/x-ucp"], file_handler, + # Set the model to the workspace writer + mesh_writer = workspace_handler.getWriter("3MFWriter") + mesh_writer.setExportModel(self._model) + + # Open file dialog and write the file + device = application.getOutputDeviceManager().getOutputDevice("local_file") + nodes = [application.getController().getScene().getRoot()] + + device.writeError.connect(self._onRejected) + device.writeSuccess.connect(self._onSuccess) + device.writeFinished.connect(self._onFinished) + + device.requestWrite(nodes, application.getPrintInformation().jobName, ["application/x-ucp"], workspace_handler, preferred_mimetype_list="application/x-ucp") - #TODO: update _export_model in threeMFWorkspacewriter and set is_ucp is true - # = self._config_dialog.getModel() - self._onFinished() @pyqtSlot() def _onRejected(self): self._onFinished() + def _onSuccess(self): + self._accepted = True + self._onFinished() + def _onFinished(self): if not self._finished: # Make sure we don't send the finished signal twice, whatever happens self._finished = True + + # Reset the model to the workspace writer + mesh_writer = CuraApplication.getInstance().getInstance().getWorkspaceFileHandler().getWriter("3MFWriter") + mesh_writer.setExportModel(None) + self.finished.emit(self._accepted) From bd52c91c94fbe58056be8f7923912d76b6ba7690 Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Tue, 20 Feb 2024 14:41:48 +0100 Subject: [PATCH 211/269] adding lambda for number of args CURA-11403 --- plugins/3MFWriter/UCPDialog.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/3MFWriter/UCPDialog.py b/plugins/3MFWriter/UCPDialog.py index 1100ddc7a9..1ac435c809 100644 --- a/plugins/3MFWriter/UCPDialog.py +++ b/plugins/3MFWriter/UCPDialog.py @@ -57,9 +57,9 @@ class UCPDialog(QObject): device = application.getOutputDeviceManager().getOutputDevice("local_file") nodes = [application.getController().getScene().getRoot()] - device.writeError.connect(self._onRejected) - device.writeSuccess.connect(self._onSuccess) - device.writeFinished.connect(self._onFinished) + device.writeError.connect(lambda: self._onRejected()) + device.writeSuccess.connect(lambda: self._onSuccess()) + device.writeFinished.connect(lambda: self._onFinished()) device.requestWrite(nodes, application.getPrintInformation().jobName, ["application/x-ucp"], workspace_handler, preferred_mimetype_list="application/x-ucp") From f61991e261d963b1d688c3d9c908e165c0136ec7 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 20 Feb 2024 15:04:44 +0100 Subject: [PATCH 212/269] Untangle write function CURA-11403 --- plugins/3MFWriter/ThreeMFWorkspaceWriter.py | 50 +++++---------------- 1 file changed, 10 insertions(+), 40 deletions(-) diff --git a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py index 16b05b30ec..8e20bdb411 100644 --- a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py +++ b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py @@ -26,11 +26,7 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): def __init__(self): super().__init__() self._main_thread_lock = Lock() - self._success = False self._ucp_model = None - self._stream = None - self._nodes = None - self._mode = None self._is_ucp = False @@ -38,7 +34,7 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): if self._ucp_model != model: self._ucp_model = model - def _write(self): + def write(self, stream, nodes, mode=WorkspaceWriter.OutputMode.BinaryMode): application = Application.getInstance() machine_manager = application.getMachineManager() @@ -47,24 +43,24 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): if not mesh_writer: # We need to have the 3mf mesh writer, otherwise we can't save the entire workspace self.setInformation(catalog.i18nc("@error:zip", "3MF Writer plug-in is corrupt.")) Logger.error("3MF Writer class is unavailable. Can't write workspace.") - return + return False global_stack = machine_manager.activeMachine if global_stack is None: self.setInformation( catalog.i18nc("@error", "There is no workspace yet to write. Please add a printer first.")) Logger.error("Tried to write a 3MF workspace before there was a global stack.") - return + return False # Indicate that the 3mf mesh writer should not close the archive just yet (we still need to add stuff to it). mesh_writer.setStoreArchive(True) - if not mesh_writer.write(self._stream, self._nodes, self._mode, self._export_model): + if not mesh_writer.write(stream, nodes, mode, self._ucp_model): self.setInformation(mesh_writer.getInformation()) - return + return False archive = mesh_writer.getArchive() if archive is None: # This happens if there was no mesh data to write. - archive = zipfile.ZipFile(self._stream, "w", compression=zipfile.ZIP_DEFLATED) + archive = zipfile.ZipFile(stream, "w", compression=zipfile.ZIP_DEFLATED) try: # Add global container stack data to the archive. @@ -81,13 +77,13 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): self._writeContainerToArchive(container, archive) # Write user settings data - if self._export_model is not None: - user_settings_data = self._getUserSettings(self._export_model) + if self._ucp_model is not None: + user_settings_data = self._getUserSettings(self._ucp_model) ThreeMFWriter._storeMetadataJson(user_settings_data, archive, USER_SETTINGS_PATH) except PermissionError: self.setInformation(catalog.i18nc("@error:zip", "No permission to write the workspace here.")) Logger.error("No permission to write workspace to this stream.") - return + return False # Write preferences to archive original_preferences = Application.getInstance().getPreferences() # Copy only the preferences that we use to the workspace. @@ -128,33 +124,7 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): return mesh_writer.setStoreArchive(False) - self._success = True - - #FIXME We should somehow give the information of the file type so that we know what to write, like the mode but for other files types (give mimetype ?) - def write(self, stream, nodes, mode=WorkspaceWriter.OutputMode.BinaryMode): - print("Application.getInstance().getPreferences().getValue(\"local_file/last_used_type\")", Application.getInstance().getPreferences().getValue("local_file/last_used_type")) - - self._success = False - self._export_model = None - self._stream = stream - self._nodes = nodes - self._mode = mode - self._config_dialog = None - # - # self._main_thread_lock.acquire() - # # Export is done in main thread because it may require a few asynchronous configuration steps - Application.getInstance().callLater(self._write()) - # self._main_thread_lock.acquire() # Block until lock has been released, meaning the config+write is over - # - # self._main_thread_lock.release() - - self._export_model = None - self._stream = None - self._nodes = None - self._mode = None - self._config_dialog = None - - return self._success + return True @staticmethod def _writePluginMetadataToArchive(archive: zipfile.ZipFile) -> None: From a463e5178838cfd92855c33334f4a80244bc5e70 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 20 Feb 2024 15:07:34 +0100 Subject: [PATCH 213/269] Remove unneeded thread lock CURA-11403 --- plugins/3MFWriter/ThreeMFWorkspaceWriter.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py index 8e20bdb411..ddff454516 100644 --- a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py +++ b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py @@ -25,11 +25,9 @@ USER_SETTINGS_PATH = "Cura/user-settings.json" class ThreeMFWorkspaceWriter(WorkspaceWriter): def __init__(self): super().__init__() - self._main_thread_lock = Lock() self._ucp_model = None self._is_ucp = False - def setExportModel(self, model): if self._ucp_model != model: self._ucp_model = model From e0754092437f0ed78c86633cbeeeac630db48ac0 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 20 Feb 2024 15:07:48 +0100 Subject: [PATCH 214/269] Return `False` in case of exception CURA-11403 --- plugins/3MFWriter/ThreeMFWorkspaceWriter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py index ddff454516..eb0ecf5ed5 100644 --- a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py +++ b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py @@ -115,11 +115,11 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): except PermissionError: self.setInformation(catalog.i18nc("@error:zip", "No permission to write the workspace here.")) Logger.error("No permission to write workspace to this stream.") - return + return False except EnvironmentError as e: self.setInformation(catalog.i18nc("@error:zip", str(e))) Logger.error("EnvironmentError when writing workspace to this stream: {err}".format(err=str(e))) - return + return False mesh_writer.setStoreArchive(False) return True From 6bbdd543426b9a80c14dc2d6cb67b7fed9a8b594 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 20 Feb 2024 16:17:39 +0100 Subject: [PATCH 215/269] Remove unused `_is_ucp` CURA-11403 --- plugins/3MFWriter/ThreeMFWorkspaceWriter.py | 7 ++++--- plugins/3MFWriter/ThreeMFWriter.py | 2 -- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py index eb0ecf5ed5..cff938788b 100644 --- a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py +++ b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py @@ -1,6 +1,8 @@ # Copyright (c) 2020 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +from typing import Optional + import configparser from io import StringIO from threading import Lock @@ -25,10 +27,9 @@ USER_SETTINGS_PATH = "Cura/user-settings.json" class ThreeMFWorkspaceWriter(WorkspaceWriter): def __init__(self): super().__init__() - self._ucp_model = None - self._is_ucp = False + self._ucp_model: Optional[SettingsExportModel] = None - def setExportModel(self, model): + def setExportModel(self, model: SettingsExportModel) -> None: if self._ucp_model != model: self._ucp_model = model diff --git a/plugins/3MFWriter/ThreeMFWriter.py b/plugins/3MFWriter/ThreeMFWriter.py index e60aae8dd9..6e3dc86890 100644 --- a/plugins/3MFWriter/ThreeMFWriter.py +++ b/plugins/3MFWriter/ThreeMFWriter.py @@ -61,7 +61,6 @@ class ThreeMFWriter(MeshWriter): self._unit_matrix_string = ThreeMFWriter._convertMatrixToString(Matrix()) self._archive: Optional[zipfile.ZipFile] = None self._store_archive = False - self._is_ucp = False @staticmethod def _convertMatrixToString(matrix): @@ -436,6 +435,5 @@ class ThreeMFWriter(MeshWriter): return extra_settings def exportUcp(self): - self._is_ucp = True self._config_dialog = UCPDialog() self._config_dialog.show() From 11a4588546c05209e407c89a684bc118ed015a59 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 20 Feb 2024 16:27:47 +0100 Subject: [PATCH 216/269] Properly handle exceptions CURA-11403 --- plugins/3MFWriter/UCPDialog.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/plugins/3MFWriter/UCPDialog.py b/plugins/3MFWriter/UCPDialog.py index 1ac435c809..355c70602c 100644 --- a/plugins/3MFWriter/UCPDialog.py +++ b/plugins/3MFWriter/UCPDialog.py @@ -7,8 +7,11 @@ from PyQt6.QtCore import pyqtSignal, QObject import UM from UM.FlameProfiler import pyqtSlot +from UM.OutputDevice import OutputDeviceError from UM.Workspace.WorkspaceWriter import WorkspaceWriter from UM.i18n import i18nCatalog +from UM.Logger import Logger +from UM.Message import Message from cura.CuraApplication import CuraApplication @@ -61,8 +64,22 @@ class UCPDialog(QObject): device.writeSuccess.connect(lambda: self._onSuccess()) device.writeFinished.connect(lambda: self._onFinished()) - device.requestWrite(nodes, application.getPrintInformation().jobName, ["application/x-ucp"], workspace_handler, + file_name = application.getPrintInformation().jobName + + try: + device.requestWrite(nodes, file_name, ["application/x-ucp"], workspace_handler, preferred_mimetype_list="application/x-ucp") + except OutputDeviceError.UserCanceledError: + self._onRejected() + except Exception as e: + message = Message( + i18n_catalog.i18nc("@info:error", "Unable to write to file: {0}", file_name), + title=i18n_catalog.i18nc("@info:title", "Error"), + message_type=Message.MessageType.ERROR + ) + message.show() + Logger.logException("e", "Unable to write to file %s: %s", file_name, e) + self._onRejected() @pyqtSlot() def _onRejected(self): From bc41b8f801e7f905b6d480674ea55c1639297d01 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 20 Feb 2024 16:48:38 +0100 Subject: [PATCH 217/269] Use string for prime tower enum value --- resources/definitions/atmat_signal_pro_base.def.json | 4 +++- resources/definitions/deltacomb_dc20flux.def.json | 4 +++- resources/definitions/deltacomb_dc21flux.def.json | 4 +++- resources/definitions/deltacomb_dc30flux.def.json | 4 +++- resources/definitions/lotmaxx_sc60.def.json | 4 +++- resources/definitions/ultimaker_s3.def.json | 4 +++- resources/definitions/ultimaker_s5.def.json | 4 +++- 7 files changed, 21 insertions(+), 7 deletions(-) diff --git a/resources/definitions/atmat_signal_pro_base.def.json b/resources/definitions/atmat_signal_pro_base.def.json index 83af53fb3c..f6cf00b644 100644 --- a/resources/definitions/atmat_signal_pro_base.def.json +++ b/resources/definitions/atmat_signal_pro_base.def.json @@ -110,7 +110,9 @@ "min_infill_area": { "value": "5.0" }, "minimum_polygon_circumference": { "value": "0.2" }, "optimize_wall_printing_order": { "value": "True" }, - "prime_tower_mode": { "value": "normal" }, + "prime_tower_mode": { + "value": "'normal'" + }, "retraction_amount": { "value": "1" }, "retraction_combing": { "value": "'noskin'" }, "retraction_combing_max_distance": { "value": "10" }, diff --git a/resources/definitions/deltacomb_dc20flux.def.json b/resources/definitions/deltacomb_dc20flux.def.json index 50f69636bd..fd67f9da72 100644 --- a/resources/definitions/deltacomb_dc20flux.def.json +++ b/resources/definitions/deltacomb_dc20flux.def.json @@ -32,7 +32,9 @@ "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, "prime_tower_min_volume": { "value": "50" }, - "prime_tower_mode": { "value": "normal" }, + "prime_tower_mode": { + "value": "'normal'" + }, "switch_extruder_retraction_amount": { "value": "0" } } } \ No newline at end of file diff --git a/resources/definitions/deltacomb_dc21flux.def.json b/resources/definitions/deltacomb_dc21flux.def.json index e09fbeca63..c218f085b9 100644 --- a/resources/definitions/deltacomb_dc21flux.def.json +++ b/resources/definitions/deltacomb_dc21flux.def.json @@ -32,7 +32,9 @@ "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, "prime_tower_min_volume": { "value": "50" }, - "prime_tower_mode": { "value": "normal" }, + "prime_tower_mode": { + "value": "'normal'" + }, "switch_extruder_retraction_amount": { "value": "0" } } } \ No newline at end of file diff --git a/resources/definitions/deltacomb_dc30flux.def.json b/resources/definitions/deltacomb_dc30flux.def.json index f59bf53a9a..b877e4979d 100644 --- a/resources/definitions/deltacomb_dc30flux.def.json +++ b/resources/definitions/deltacomb_dc30flux.def.json @@ -32,7 +32,9 @@ "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, "prime_tower_min_volume": { "value": "50" }, - "prime_tower_mode": { "value": "normal" }, + "prime_tower_mode": { + "value": "'normal'" + }, "switch_extruder_retraction_amount": { "value": "0" } } } \ No newline at end of file diff --git a/resources/definitions/lotmaxx_sc60.def.json b/resources/definitions/lotmaxx_sc60.def.json index 89eeac9b75..39513ebc3b 100644 --- a/resources/definitions/lotmaxx_sc60.def.json +++ b/resources/definitions/lotmaxx_sc60.def.json @@ -45,7 +45,9 @@ "meshfix_maximum_resolution": { "value": 0.25 }, "optimize_wall_printing_order": { "value": true }, "prime_tower_min_volume": { "value": 30 }, - "prime_tower_mode": { "value": "normal" }, + "prime_tower_mode": { + "value": "'normal'" + }, "retract_at_layer_change": { "value": false }, "retraction_amount": { "value": 4.5 }, "roofing_layer_count": { "value": 1 }, diff --git a/resources/definitions/ultimaker_s3.def.json b/resources/definitions/ultimaker_s3.def.json index 47a81035c9..7a0ab6f42f 100644 --- a/resources/definitions/ultimaker_s3.def.json +++ b/resources/definitions/ultimaker_s3.def.json @@ -103,7 +103,9 @@ "default_value": false, "enabled": true }, - "prime_tower_mode": { "value": "normal" }, + "prime_tower_mode": { + "value": "'normal'" + }, "retraction_amount": { "value": "6.5" }, "retraction_hop": { "value": "2" }, "retraction_hop_enabled": { "value": "extruders_enabled_count > 1" }, diff --git a/resources/definitions/ultimaker_s5.def.json b/resources/definitions/ultimaker_s5.def.json index 30ad07dd2c..346693bf53 100644 --- a/resources/definitions/ultimaker_s5.def.json +++ b/resources/definitions/ultimaker_s5.def.json @@ -104,7 +104,9 @@ "default_value": false, "enabled": true }, - "prime_tower_mode": { "value": "normal" }, + "prime_tower_mode": { + "value": "'normal'" + }, "retraction_amount": { "value": "6.5" }, "retraction_combing": { "value": "'no_outer_surfaces'" }, "retraction_hop": { "value": "2" }, From 8fcdd09b7bbe7ac5557b4d1b1bb59645036e2c91 Mon Sep 17 00:00:00 2001 From: casperlamboo Date: Tue, 20 Feb 2024 15:49:37 +0000 Subject: [PATCH 218/269] Applied printer-linter format --- resources/definitions/atmat_signal_pro_base.def.json | 4 +--- resources/definitions/deltacomb_dc20flux.def.json | 4 +--- resources/definitions/deltacomb_dc21flux.def.json | 4 +--- resources/definitions/deltacomb_dc30flux.def.json | 4 +--- resources/definitions/lotmaxx_sc60.def.json | 4 +--- resources/definitions/ultimaker_s3.def.json | 4 +--- resources/definitions/ultimaker_s5.def.json | 4 +--- 7 files changed, 7 insertions(+), 21 deletions(-) diff --git a/resources/definitions/atmat_signal_pro_base.def.json b/resources/definitions/atmat_signal_pro_base.def.json index f6cf00b644..0b8761a62c 100644 --- a/resources/definitions/atmat_signal_pro_base.def.json +++ b/resources/definitions/atmat_signal_pro_base.def.json @@ -110,9 +110,7 @@ "min_infill_area": { "value": "5.0" }, "minimum_polygon_circumference": { "value": "0.2" }, "optimize_wall_printing_order": { "value": "True" }, - "prime_tower_mode": { - "value": "'normal'" - }, + "prime_tower_mode": { "value": "'normal'" }, "retraction_amount": { "value": "1" }, "retraction_combing": { "value": "'noskin'" }, "retraction_combing_max_distance": { "value": "10" }, diff --git a/resources/definitions/deltacomb_dc20flux.def.json b/resources/definitions/deltacomb_dc20flux.def.json index fd67f9da72..f76ba3e4cd 100644 --- a/resources/definitions/deltacomb_dc20flux.def.json +++ b/resources/definitions/deltacomb_dc20flux.def.json @@ -32,9 +32,7 @@ "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, "prime_tower_min_volume": { "value": "50" }, - "prime_tower_mode": { - "value": "'normal'" - }, + "prime_tower_mode": { "value": "'normal'" }, "switch_extruder_retraction_amount": { "value": "0" } } } \ No newline at end of file diff --git a/resources/definitions/deltacomb_dc21flux.def.json b/resources/definitions/deltacomb_dc21flux.def.json index c218f085b9..3c2080a87b 100644 --- a/resources/definitions/deltacomb_dc21flux.def.json +++ b/resources/definitions/deltacomb_dc21flux.def.json @@ -32,9 +32,7 @@ "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, "prime_tower_min_volume": { "value": "50" }, - "prime_tower_mode": { - "value": "'normal'" - }, + "prime_tower_mode": { "value": "'normal'" }, "switch_extruder_retraction_amount": { "value": "0" } } } \ No newline at end of file diff --git a/resources/definitions/deltacomb_dc30flux.def.json b/resources/definitions/deltacomb_dc30flux.def.json index b877e4979d..69249e42fd 100644 --- a/resources/definitions/deltacomb_dc30flux.def.json +++ b/resources/definitions/deltacomb_dc30flux.def.json @@ -32,9 +32,7 @@ "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, "prime_tower_min_volume": { "value": "50" }, - "prime_tower_mode": { - "value": "'normal'" - }, + "prime_tower_mode": { "value": "'normal'" }, "switch_extruder_retraction_amount": { "value": "0" } } } \ No newline at end of file diff --git a/resources/definitions/lotmaxx_sc60.def.json b/resources/definitions/lotmaxx_sc60.def.json index 39513ebc3b..64220c372e 100644 --- a/resources/definitions/lotmaxx_sc60.def.json +++ b/resources/definitions/lotmaxx_sc60.def.json @@ -45,9 +45,7 @@ "meshfix_maximum_resolution": { "value": 0.25 }, "optimize_wall_printing_order": { "value": true }, "prime_tower_min_volume": { "value": 30 }, - "prime_tower_mode": { - "value": "'normal'" - }, + "prime_tower_mode": { "value": "'normal'" }, "retract_at_layer_change": { "value": false }, "retraction_amount": { "value": 4.5 }, "roofing_layer_count": { "value": 1 }, diff --git a/resources/definitions/ultimaker_s3.def.json b/resources/definitions/ultimaker_s3.def.json index 7a0ab6f42f..ca40788581 100644 --- a/resources/definitions/ultimaker_s3.def.json +++ b/resources/definitions/ultimaker_s3.def.json @@ -103,9 +103,7 @@ "default_value": false, "enabled": true }, - "prime_tower_mode": { - "value": "'normal'" - }, + "prime_tower_mode": { "value": "'normal'" }, "retraction_amount": { "value": "6.5" }, "retraction_hop": { "value": "2" }, "retraction_hop_enabled": { "value": "extruders_enabled_count > 1" }, diff --git a/resources/definitions/ultimaker_s5.def.json b/resources/definitions/ultimaker_s5.def.json index 346693bf53..73854f2890 100644 --- a/resources/definitions/ultimaker_s5.def.json +++ b/resources/definitions/ultimaker_s5.def.json @@ -104,9 +104,7 @@ "default_value": false, "enabled": true }, - "prime_tower_mode": { - "value": "'normal'" - }, + "prime_tower_mode": { "value": "'normal'" }, "retraction_amount": { "value": "6.5" }, "retraction_combing": { "value": "'no_outer_surfaces'" }, "retraction_hop": { "value": "2" }, From ce3baa15e2b196fdaeb223a434c6fa6fc395d8cb Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Tue, 20 Feb 2024 16:56:05 +0100 Subject: [PATCH 219/269] file name is coming from CuraApplication Instance CURA-11403 --- plugins/3MFWriter/UCPDialog.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/3MFWriter/UCPDialog.py b/plugins/3MFWriter/UCPDialog.py index 355c70602c..20b3a37909 100644 --- a/plugins/3MFWriter/UCPDialog.py +++ b/plugins/3MFWriter/UCPDialog.py @@ -64,7 +64,7 @@ class UCPDialog(QObject): device.writeSuccess.connect(lambda: self._onSuccess()) device.writeFinished.connect(lambda: self._onFinished()) - file_name = application.getPrintInformation().jobName + file_name = CuraApplication.getInstance().getPrintInformation().jobName try: device.requestWrite(nodes, file_name, ["application/x-ucp"], workspace_handler, From d2566d72ff3d4db3270246c9a2c04c6dd383ce73 Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Tue, 20 Feb 2024 16:56:34 +0100 Subject: [PATCH 220/269] for preference to open dialo while saving ucp CURA-11403 --- plugins/3MFWriter/UCPDialog.qml | 12 +++++++++--- resources/qml/Dialogs/WorkspaceSummaryDialog.qml | 2 +- resources/qml/Menus/FileMenu.qml | 13 ++++++++++++- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/plugins/3MFWriter/UCPDialog.qml b/plugins/3MFWriter/UCPDialog.qml index 7eaf57c96b..3a0e6bf842 100644 --- a/plugins/3MFWriter/UCPDialog.qml +++ b/plugins/3MFWriter/UCPDialog.qml @@ -19,12 +19,12 @@ UM.Dialog minimumHeight: UM.Theme.getSize("modal_window_minimum").height backgroundColor: UM.Theme.getColor("detail_background") - property bool dontShowAgain: true + property bool dontShowAgain: false function storeDontShowAgain() { UM.Preferences.setValue("cura/dialog_on_ucp_project_save", !dontShowAgainCheckbox.checked) - UM.Preferences.setValue("asked_dialog_on_ucp_project_save", true) + UM.Preferences.setValue("cura/asked_dialog_on_ucp_project_save", false) } onVisibleChanged: @@ -115,5 +115,11 @@ UM.Dialog buttonSpacing: UM.Theme.getSize("wide_margin").width - onClosing: manager.notifyClosed() + onClosing: + { + storeDontShowAgain() + manager.notifyClosed() + } + onRejected: storeDontShowAgain() + onAccepted: storeDontShowAgain() } diff --git a/resources/qml/Dialogs/WorkspaceSummaryDialog.qml b/resources/qml/Dialogs/WorkspaceSummaryDialog.qml index a174959807..1eca2f395c 100644 --- a/resources/qml/Dialogs/WorkspaceSummaryDialog.qml +++ b/resources/qml/Dialogs/WorkspaceSummaryDialog.qml @@ -25,7 +25,7 @@ UM.Dialog function storeDontShowAgain() { UM.Preferences.setValue("cura/dialog_on_project_save", !dontShowAgainCheckbox.checked) - UM.Preferences.setValue("asked_dialog_on_project_save", true) + UM.Preferences.setValue("cura/asked_dialog_on_project_save", true) } onClosing: storeDontShowAgain() diff --git a/resources/qml/Menus/FileMenu.qml b/resources/qml/Menus/FileMenu.qml index bc0d1e6aef..3f8c0daac0 100644 --- a/resources/qml/Menus/FileMenu.qml +++ b/resources/qml/Menus/FileMenu.qml @@ -77,7 +77,18 @@ Cura.Menu enabled: UM.WorkspaceFileHandler.enabled && CuraApplication.getPackageManager().allEnabledPackages.includes("3MFWriter") onTriggered: { - CuraApplication.exportUcp() + if(UM.Preferences.getValue("cura/dialog_on_ucp_project_save")) + { + CuraApplication.exportUcp() + } + else + { + var args = { "filter_by_machine": false, + "file_type": "workspace", + "preferred_mimetypes": "application/x-ucp", + "limit_mimetypes": ["application/x-ucp"]}; + UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args) + } } } From 942589d3a21ee7677ef9062b26ea9500bf73a798 Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Tue, 20 Feb 2024 17:05:23 +0100 Subject: [PATCH 221/269] filename is basename without the printer info CURA-11403 --- plugins/3MFWriter/UCPDialog.py | 2 +- resources/qml/Menus/FileMenu.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/3MFWriter/UCPDialog.py b/plugins/3MFWriter/UCPDialog.py index 20b3a37909..8e62666818 100644 --- a/plugins/3MFWriter/UCPDialog.py +++ b/plugins/3MFWriter/UCPDialog.py @@ -64,7 +64,7 @@ class UCPDialog(QObject): device.writeSuccess.connect(lambda: self._onSuccess()) device.writeFinished.connect(lambda: self._onFinished()) - file_name = CuraApplication.getInstance().getPrintInformation().jobName + file_name = CuraApplication.getInstance().getPrintInformation().baseName try: device.requestWrite(nodes, file_name, ["application/x-ucp"], workspace_handler, diff --git a/resources/qml/Menus/FileMenu.qml b/resources/qml/Menus/FileMenu.qml index 3f8c0daac0..7af21182cd 100644 --- a/resources/qml/Menus/FileMenu.qml +++ b/resources/qml/Menus/FileMenu.qml @@ -87,7 +87,7 @@ Cura.Menu "file_type": "workspace", "preferred_mimetypes": "application/x-ucp", "limit_mimetypes": ["application/x-ucp"]}; - UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args) + UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.baseName, args) } } } From f6c9936d1e4575749f1dcaa5913587baf37fe0d0 Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Tue, 20 Feb 2024 19:49:49 +0100 Subject: [PATCH 222/269] Remove SR-30 from exclude list PP-393 --- resources/definitions/ultimaker_method_base.def.json | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/definitions/ultimaker_method_base.def.json b/resources/definitions/ultimaker_method_base.def.json index 6e40f0bbf1..983af7ea27 100644 --- a/resources/definitions/ultimaker_method_base.def.json +++ b/resources/definitions/ultimaker_method_base.def.json @@ -28,7 +28,6 @@ "generic_hips_175", "generic_pc_175", "ultimaker_rapidrinse_175", - "ultimaker_sr30_175", "generic_tpu_175", "goofoo_", "ideagen3D_", From 59a23231ccb518b0c12aed273a27e9871d0548ef Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Tue, 20 Feb 2024 20:13:27 +0100 Subject: [PATCH 223/269] Include prime tower mode PP-393 --- resources/definitions/fdmprinter.def.json | 77 ++++++++++++++++------- 1 file changed, 56 insertions(+), 21 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 20a8a698a2..1d453456a8 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -76,6 +76,22 @@ "type": "str", "enabled": false }, + "material_type": + { + "label": "Material Type", + "description": "The type of material used.", + "default_value": "", + "type": "str", + "enabled": false + }, + "material_brand": + { + "label": "Material Brand", + "description": "The brand of material used.", + "default_value": "", + "type": "str", + "enabled": false + }, "material_diameter": { "label": "Diameter", @@ -963,7 +979,7 @@ "description": "Width of a single prime tower line.", "type": "float", "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none'", "default_value": 0.4, "value": "line_width", "minimum_value": "0.001", @@ -3347,7 +3363,7 @@ "description": "The speed at which the prime tower is printed. Printing the prime tower slower can make it more stable when the adhesion between the different filaments is suboptimal.", "type": "float", "unit": "mm/s", - "enabled": "resolveOrValue('prime_tower_enable')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none'", "default_value": 60, "value": "speed_print", "minimum_value": "0.1", @@ -3725,7 +3741,7 @@ "maximum_value_warning": "10000", "default_value": 3000, "value": "acceleration_print", - "enabled": "resolveOrValue('prime_tower_enable') and resolveOrValue('acceleration_enabled')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none' and resolveOrValue('acceleration_enabled')", "settable_per_mesh": false } } @@ -4044,7 +4060,7 @@ "maximum_value_warning": "50", "default_value": 20, "value": "jerk_print", - "enabled": "resolveOrValue('prime_tower_enable') and resolveOrValue('jerk_enabled')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none' and resolveOrValue('jerk_enabled')", "settable_per_mesh": false } } @@ -5135,7 +5151,7 @@ "unit": "mm", "type": "float", "minimum_value": "0", - "maximum_value_warning": "machine_nozzle_size", + "maximum_value_warning": "5*layer_height", "default_value": 0.1, "limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", "enabled": "support_enable or support_meshes_present", @@ -6778,14 +6794,20 @@ "description": "Settings used for printing with multiple extruders.", "children": { - "prime_tower_enable": + "prime_tower_mode": { - "label": "Enable Prime Tower", - "description": "Print a tower next to the print which serves to prime the material after each nozzle switch.", - "type": "bool", + "label": "Prime Tower", + "description": "Print a tower next to the model, which serves to prime the material after each nozzle switch.
  • None: do not generate a prime tower
  • Normal: generate a bucket in which secondary materials are primed
  • Interleaved: generate a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other.
", + "type": "enum", + "value": "'none' if (extruders_enabled_count < 2) else ('interleaved' if (all(material_type_var == extruderValues('material_type')[0] for material_type_var in extruderValues('material_type')) and all(material_brand_var == extruderValues('material_brand')[0] for material_brand_var in extruderValues('material_brand'))) else 'normal')", + "options": + { + "none": "None", + "normal": "Normal", + "interleaved": "Interleaved" + }, + "default_value": "none", "enabled": "extruders_enabled_count > 1", - "default_value": false, - "resolve": "(extruders_enabled_count > 1) and any(extruderValues('prime_tower_enable'))", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -6795,7 +6817,7 @@ "description": "The width of the prime tower.", "type": "float", "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none'", "default_value": 20, "resolve": "max(extruderValues('prime_tower_size'))", "minimum_value": "0", @@ -6814,7 +6836,20 @@ "default_value": 6, "minimum_value": "0", "maximum_value_warning": "(resolveOrValue('prime_tower_size') * 0.5) ** 2 * 3.14159 * resolveOrValue('layer_height') - sum(extruderValues('prime_tower_min_volume')) + prime_tower_min_volume", - "enabled": "resolveOrValue('prime_tower_enable')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none'", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "prime_tower_max_bridging_distance": + { + "label": "Prime Tower Maximum Bridging Distance", + "description": "The maximum length of the branches which may be printed over the air.", + "unit": "mm", + "type": "float", + "default_value": 5, + "minimum_value": "line_width", + "maximum_value_warning": "10.0", + "enabled": "resolveOrValue('prime_tower_mode') != 'none'", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -6824,7 +6859,7 @@ "description": "The x coordinate of the position of the prime tower.", "type": "float", "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none'", "default_value": 200, "value": "(resolveOrValue('machine_width') / 2 + resolveOrValue('prime_tower_size') / 2) if resolveOrValue('machine_shape') == 'elliptic' else (resolveOrValue('machine_width') - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0) - max(max(extruderValues('travel_avoid_distance')) + max(extruderValues('machine_nozzle_offset_x')) + max(extruderValues('support_offset')) + (extruderValue(skirt_brim_extruder_nr, 'skirt_brim_line_width') * extruderValue(skirt_brim_extruder_nr, 'skirt_line_count') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 + extruderValue(skirt_brim_extruder_nr, 'skirt_gap') if resolveOrValue('adhesion_type') == 'skirt' else 0) + (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0), max(map(abs, extruderValues('machine_nozzle_offset_x'))), 1)) - (resolveOrValue('machine_width') / 2 if resolveOrValue('machine_center_is_zero') else 0)", "maximum_value": "(machine_width / 2 if machine_center_is_zero else machine_width) - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0)", @@ -6838,7 +6873,7 @@ "description": "The y coordinate of the position of the prime tower.", "type": "float", "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none'", "default_value": 200, "value": "machine_depth - prime_tower_size - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0) - max(max(extruderValues('travel_avoid_distance')) + max(extruderValues('machine_nozzle_offset_y')) + max(extruderValues('support_offset')) + (extruderValue(skirt_brim_extruder_nr, 'skirt_brim_line_width') * extruderValue(skirt_brim_extruder_nr, 'skirt_line_count') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 + extruderValue(skirt_brim_extruder_nr, 'skirt_gap') if resolveOrValue('adhesion_type') == 'skirt' else 0) + (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0), max(map(abs, extruderValues('machine_nozzle_offset_y'))), 1) - (resolveOrValue('machine_depth') / 2 if resolveOrValue('machine_center_is_zero') else 0)", "maximum_value": "(machine_depth / 2 - resolveOrValue('prime_tower_size') if machine_center_is_zero else machine_depth - resolveOrValue('prime_tower_size')) - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0)", @@ -6851,7 +6886,7 @@ "label": "Wipe Inactive Nozzle on Prime Tower", "description": "After printing the prime tower with one nozzle, wipe the oozed material from the other nozzle off on the prime tower.", "type": "bool", - "enabled": "resolveOrValue('prime_tower_enable')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none'", "default_value": true, "settable_per_mesh": false, "settable_per_extruder": true @@ -6862,7 +6897,7 @@ "label": "Prime Tower Base", "description": "By enabling this setting, your prime-tower will get a brim, even if the model doesn't. If you want a sturdier base for a high tower, you can increase the base height.", "type": "bool", - "enabled": "resolveOrValue('prime_tower_enable') and resolveOrValue('adhesion_type') != 'raft'", + "enabled": "resolveOrValue('prime_tower_mode') != 'none' and resolveOrValue('adhesion_type') != 'raft'", "default_value": false, "settable_per_mesh": false, "settable_per_extruder": false @@ -6874,7 +6909,7 @@ "description": "The width of the prime tower brim/base. A larger base enhances adhesion to the build plate, but also reduces the effective print area.", "type": "float", "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable') and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none' and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", "default_value": 1.2, "minimum_value": "0", "maximum_value": "min(0.5 * machine_width, 0.5 * machine_depth)", @@ -6888,7 +6923,7 @@ "description": "The height of the prime tower base. Increasing this value will result in a more sturdy prime tower because the base will be wider. If this setting is too low, the prime tower will not have a sturdy base.", "type": "float", "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable') and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none' and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", "default_value": 0, "minimum_value": "0", "maximum_value": "machine_height", @@ -6900,7 +6935,7 @@ "label": "Prime Tower Base Slope", "description": "The magnitude factor used for the slope of the prime tower base. If you increase this value, the base will become slimmer. If you decrease it, the base will become thicker.", "type": "float", - "enabled": "resolveOrValue('prime_tower_enable') and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", + "enabled": "resolveOrValue('prime_tower_mode') != 'none' and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", "default_value": 4, "minimum_value": "0", "maximum_value": "10", @@ -6918,7 +6953,7 @@ "minimum_value": "0", "minimum_value_warning": "raft_base_line_width", "maximum_value_warning": "100", - "enabled": "resolveOrValue('prime_tower_enable') and resolveOrValue('adhesion_type') == 'raft'", + "enabled": "resolveOrValue('prime_tower_mode') != 'none' and resolveOrValue('adhesion_type') == 'raft'", "settable_per_mesh": false, "settable_per_extruder": true, "limit_to_extruder": "raft_base_extruder_nr" From 08b70252a4ad3fb8af11d9d70d037fc2a990b5a2 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 21 Feb 2024 11:23:05 +0100 Subject: [PATCH 224/269] Remove duplicated mime type CURA-11403 --- plugins/3MFReader/ThreeMFReader.py | 9 +------- plugins/3MFWriter/UCPDialog.py | 35 ++++++++++++++++++++---------- plugins/3MFWriter/__init__.py | 12 ---------- 3 files changed, 25 insertions(+), 31 deletions(-) diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index c7a15e043e..ac94282136 100755 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -41,18 +41,11 @@ class ThreeMFReader(MeshReader): MimeTypeDatabase.addMimeType( MimeType( - name = "application/vnd.ms-package.3dmanufacturing-3dmodel+xml", + name="application/vnd.ms-package.3dmanufacturing-3dmodel+xml", comment="3MF", suffixes=["3mf"] ) ) - MimeTypeDatabase.addMimeType( - MimeType( - name="application/x-ucp", - comment="UCP", - suffixes=["3mf"] - ) - ) self._supported_extensions = [".3mf"] self._root = None diff --git a/plugins/3MFWriter/UCPDialog.py b/plugins/3MFWriter/UCPDialog.py index 8e62666818..b2ad5834eb 100644 --- a/plugins/3MFWriter/UCPDialog.py +++ b/plugins/3MFWriter/UCPDialog.py @@ -29,15 +29,21 @@ class UCPDialog(QObject): plugin_path = os.path.dirname(__file__) dialog_path = os.path.join(plugin_path, 'UCPDialog.qml') self._model = SettingsExportModel() - self._view = CuraApplication.getInstance().createQmlComponent(dialog_path, - {"manager": self, - "settingsExportModel": self._model}) + self._view = CuraApplication.getInstance().createQmlComponent( + dialog_path, + { + "manager": self, + "settingsExportModel": self._model + } + ) self._view.accepted.connect(self._onAccepted) self._view.rejected.connect(self._onRejected) self._finished = False self._accepted = False def show(self) -> None: + self._finished = False + self._accepted = False self._view.show() def getModel(self) -> SettingsExportModel: @@ -67,8 +73,13 @@ class UCPDialog(QObject): file_name = CuraApplication.getInstance().getPrintInformation().baseName try: - device.requestWrite(nodes, file_name, ["application/x-ucp"], workspace_handler, - preferred_mimetype_list="application/x-ucp") + device.requestWrite( + nodes, + file_name, + ["application/vnd.ms-package.3dmanufacturing-3dmodel+xml"], + workspace_handler, + preferred_mimetype_list="application/vnd.ms-package.3dmanufacturing-3dmodel+xml" + ) except OutputDeviceError.UserCanceledError: self._onRejected() except Exception as e: @@ -90,11 +101,13 @@ class UCPDialog(QObject): self._onFinished() def _onFinished(self): - if not self._finished: # Make sure we don't send the finished signal twice, whatever happens - self._finished = True + # Make sure we don't send the finished signal twice, whatever happens + if self._finished: + return + self._finished = True - # Reset the model to the workspace writer - mesh_writer = CuraApplication.getInstance().getInstance().getWorkspaceFileHandler().getWriter("3MFWriter") - mesh_writer.setExportModel(None) + # Reset the model to the workspace writer + mesh_writer = CuraApplication.getInstance().getInstance().getWorkspaceFileHandler().getWriter("3MFWriter") + mesh_writer.setExportModel(None) - self.finished.emit(self._accepted) + self.finished.emit(self._accepted) diff --git a/plugins/3MFWriter/__init__.py b/plugins/3MFWriter/__init__.py index 1cecf4c3f8..0b2976c386 100644 --- a/plugins/3MFWriter/__init__.py +++ b/plugins/3MFWriter/__init__.py @@ -32,12 +32,6 @@ def getMetaData(): "description": i18n_catalog.i18nc("@item:inlistbox", "3MF file"), "mime_type": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml", "mode": ThreeMFWriter.ThreeMFWriter.OutputMode.BinaryMode - }, - { - "extension": "3mf", - "description": i18n_catalog.i18nc("@item:inlistbox", "Universal Cura Project"), - "mime_type": "application/x-ucp", - "mode": ThreeMFWriter.ThreeMFWriter.OutputMode.BinaryMode } ] } @@ -48,12 +42,6 @@ def getMetaData(): "description": i18n_catalog.i18nc("@item:inlistbox", "Cura Project 3MF file"), "mime_type": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml", "mode": ThreeMFWorkspaceWriter.ThreeMFWorkspaceWriter.OutputMode.BinaryMode - }, - { - "extension": "3mf", - "description": i18n_catalog.i18nc("@item:inlistbox", "Universal Cura Project"), - "mime_type": "application/x-ucp", - "mode": ThreeMFWorkspaceWriter.ThreeMFWorkspaceWriter.OutputMode.BinaryMode } ] } From 62aff0be12396b934c0ca74b6f712d814c90cac4 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 21 Feb 2024 11:40:51 +0100 Subject: [PATCH 225/269] Determine `ucp` based on included file CURA-11403 --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 04885a961b..25e2afa8bd 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -58,6 +58,7 @@ _ignored_machine_network_metadata: Set[str] = { "is_abstract_machine" } +USER_SETTINGS_PATH = "Cura/user-settings.json" class ContainerInfo: def __init__(self, file_name: Optional[str], serialized: Optional[str], parser: Optional[ConfigParser]) -> None: @@ -235,9 +236,8 @@ class ThreeMFWorkspaceReader(WorkspaceReader): containers_found_dict = {k: False for k in resolve_strategy_keys} # Check whether the file is a UCP, which changes some import options - #FIXME Instead of this, we should just check for the presence of the user-settings file, whatever the extension - if file_name.endswith('.3mf'): - is_ucp = True + is_ucp = USER_SETTINGS_PATH in cura_file_names + # # Read definition containers # From 909a4156f3ccc64b86a3b0c4864b8c20fd5105e8 Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Wed, 21 Feb 2024 15:13:27 +0100 Subject: [PATCH 226/269] Updating _ucp_model to None everytime a write is done CURA-11403 --- plugins/3MFWriter/ThreeMFWorkspaceWriter.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py index cff938788b..2536f5dacb 100644 --- a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py +++ b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py @@ -33,7 +33,7 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): if self._ucp_model != model: self._ucp_model = model - def write(self, stream, nodes, mode=WorkspaceWriter.OutputMode.BinaryMode): + def _write(self, stream, nodes, mode=WorkspaceWriter.OutputMode.BinaryMode): application = Application.getInstance() machine_manager = application.getMachineManager() @@ -125,6 +125,11 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): return True + def write(self, stream, nodes, mode=WorkspaceWriter.OutputMode.BinaryMode): + success = self._write(stream, nodes, mode=WorkspaceWriter.OutputMode.BinaryMode) + self._ucp_model = None + return success + @staticmethod def _writePluginMetadataToArchive(archive: zipfile.ZipFile) -> None: file_name_template = "%s/plugin_metadata.json" From 2681932fec55545c4ae4c9b07d52bf30568b29a6 Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Wed, 21 Feb 2024 15:20:38 +0100 Subject: [PATCH 227/269] Adding cura share icon to thumbnail CURA-11624 --- plugins/3MFWriter/ThreeMFWriter.py | 24 +++++++++++++++++++++++- resources/images/cura-share.png | Bin 0 -> 8108 bytes 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 resources/images/cura-share.png diff --git a/plugins/3MFWriter/ThreeMFWriter.py b/plugins/3MFWriter/ThreeMFWriter.py index 6e3dc86890..9e519e255d 100644 --- a/plugins/3MFWriter/ThreeMFWriter.py +++ b/plugins/3MFWriter/ThreeMFWriter.py @@ -10,6 +10,7 @@ from UM.Math.Vector import Vector from UM.Logger import Logger from UM.Math.Matrix import Matrix from UM.Application import Application +from UM.Resources import Resources from UM.Scene.SceneNode import SceneNode from UM.Settings.ContainerRegistry import ContainerRegistry @@ -20,7 +21,8 @@ from cura.Utils.Threading import call_on_qt_thread from cura.Scene.CuraSceneNode import CuraSceneNode from cura.Snapshot import Snapshot -from PyQt6.QtCore import QBuffer +from PyQt6.QtCore import Qt, QBuffer +from PyQt6.QtGui import QImage, QPainter import pySavitar as Savitar from .UCPDialog import UCPDialog @@ -170,6 +172,24 @@ class ThreeMFWriter(MeshWriter): def getArchive(self): return self._archive + def _addShareLogoToThumbnail(self, primary_image): + # Load the icon png image + icon_image = QImage(Resources.getPath(Resources.Images, "cura-share.png")) + + # Resize icon_image to be 1/3 of primary_image size + new_width = int(primary_image.width() / 4) + new_height = int(primary_image.height() / 4) + icon_image = icon_image.scaled(new_width, new_height, Qt.AspectRatioMode.KeepAspectRatio) + # Create a QPainter to draw on the image + painter = QPainter(primary_image) + + # Draw the icon in the top-left corner (adjust coordinates as needed) + icon_position = (10, 10) + painter.drawImage(icon_position[0], icon_position[1], icon_image) + + painter.end() + primary_image.save("test.png", "PNG") + def write(self, stream, nodes, mode = MeshWriter.OutputMode.BinaryMode, export_settings_model = None) -> bool: self._archive = None # Reset archive archive = zipfile.ZipFile(stream, "w", compression = zipfile.ZIP_DEFLATED) @@ -194,6 +214,8 @@ class ThreeMFWriter(MeshWriter): # Attempt to add a thumbnail snapshot = self._createSnapshot() if snapshot: + if export_settings_model != None: + self._addShareLogoToThumbnail(snapshot) thumbnail_buffer = QBuffer() thumbnail_buffer.open(QBuffer.OpenModeFlag.ReadWrite) snapshot.save(thumbnail_buffer, "PNG") diff --git a/resources/images/cura-share.png b/resources/images/cura-share.png new file mode 100644 index 0000000000000000000000000000000000000000..60de85194c7a9c71f93ddd90f2f885d18d49c11e GIT binary patch literal 8108 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 qWvu{Yyxl$m0<@dkS8ngj zyn*4U>}7f6Rh?B~oyO#B6<9q-FJ8w-+9~ zyT7o>?r_K@aqval5TmSsN>qjF%K3Q-qx60#U&H4lyw0!7?%hyZn1Q0eU`ffOWTnm8 z4x0`cg~~?V6@@t% zDoo+UP4cMXy6osUw{cCrzaU+qfvH3Y0050qKV?JQF*iM;D}_E=FdVh3ELtch3W7({ z15WCNq@oEYp(#Y}w9R@yS5N7m6-cE3O8bqn4=v}Y7$uE$@@sOBt0^5IV;V>{!woK7 zb;iJO)B;GXMn{&6npBgYDMi!DbUNI`&loj}9iY&gP1cj4pk5Sni`NwHk1f}=*pH~z zFi~A`6p(XM3+%A#x-$xfZ)rXr;>gW{m6wvvZlL>aL!S44hOk}jWi;ULT+JI8j*5Vs zrJ-qF!EiJWm5cvxY2LwbbQX}=(HQ~5(OE!7r!xkIqyGgV=nSNJP7uHV0000 Date: Wed, 21 Feb 2024 15:22:20 +0100 Subject: [PATCH 228/269] Removing debug statement CURA-11624 --- plugins/3MFWriter/ThreeMFWriter.py | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/3MFWriter/ThreeMFWriter.py b/plugins/3MFWriter/ThreeMFWriter.py index 9e519e255d..ce9ea33fbd 100644 --- a/plugins/3MFWriter/ThreeMFWriter.py +++ b/plugins/3MFWriter/ThreeMFWriter.py @@ -188,7 +188,6 @@ class ThreeMFWriter(MeshWriter): painter.drawImage(icon_position[0], icon_position[1], icon_image) painter.end() - primary_image.save("test.png", "PNG") def write(self, stream, nodes, mode = MeshWriter.OutputMode.BinaryMode, export_settings_model = None) -> bool: self._archive = None # Reset archive From 5f884c737b4d331627ee53b074419263b5a848e1 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 21 Feb 2024 16:39:50 +0100 Subject: [PATCH 229/269] Fix build, prevent protobuf version mismatch. --- conanfile.py | 1 + 1 file changed, 1 insertion(+) diff --git a/conanfile.py b/conanfile.py index 3b48442fa0..ca6b4eabd0 100644 --- a/conanfile.py +++ b/conanfile.py @@ -350,6 +350,7 @@ class CuraConan(ConanFile): self.requires("cpython/3.10.4@ultimaker/stable") self.requires("clipper/6.4.2@ultimaker/stable") self.requires("openssl/3.2.0") + self.requires("protobuf/3.21.12") self.requires("boost/1.82.0") self.requires("spdlog/1.12.0") self.requires("fmt/10.1.1") From 5f7a1c7b7bdcc8307b4969d1fc0d4d8c24782073 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 21 Feb 2024 16:50:46 +0100 Subject: [PATCH 230/269] Use correct mime-type CURA-11403m --- resources/qml/Menus/FileMenu.qml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/resources/qml/Menus/FileMenu.qml b/resources/qml/Menus/FileMenu.qml index 7af21182cd..76d4997c3c 100644 --- a/resources/qml/Menus/FileMenu.qml +++ b/resources/qml/Menus/FileMenu.qml @@ -77,16 +77,18 @@ Cura.Menu enabled: UM.WorkspaceFileHandler.enabled && CuraApplication.getPackageManager().allEnabledPackages.includes("3MFWriter") onTriggered: { - if(UM.Preferences.getValue("cura/dialog_on_ucp_project_save")) + if (UM.Preferences.getValue("cura/dialog_on_ucp_project_save")) { CuraApplication.exportUcp() } else { - var args = { "filter_by_machine": false, - "file_type": "workspace", - "preferred_mimetypes": "application/x-ucp", - "limit_mimetypes": ["application/x-ucp"]}; + const args = { + "filter_by_machine": false, + "file_type": "workspace", + "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml", + "limit_mimetypes": ["application/vnd.ms-package.3dmanufacturing-3dmodel+xml"], + }; UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.baseName, args) } } From 53b3eadb3c3ea71cd73c89a2f0ce15e2684a1439 Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Wed, 21 Feb 2024 18:20:19 +0100 Subject: [PATCH 231/269] Adding printOrder to pasted elements CURA-11617 CURA-11624 --- cura/CuraActions.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cura/CuraActions.py b/cura/CuraActions.py index 36c69618dd..e33ce8123d 100644 --- a/cura/CuraActions.py +++ b/cura/CuraActions.py @@ -273,7 +273,11 @@ class CuraActions(QObject): # deselect currently selected nodes, and select the new nodes for node in Selection.getAllSelectedObjects(): Selection.remove(node) + + numberOfFixedNodes = len(fixed_nodes) for node in nodes: + numberOfFixedNodes += 1 + node.printOrder = numberOfFixedNodes Selection.add(node) def _openUrl(self, url: QUrl) -> None: From 3c305bb289658dab6a7c7121313c17ec6b6cd48c Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 21 Feb 2024 19:30:36 +0100 Subject: [PATCH 232/269] Fix `dialog_on_ucp_project_save` preference CURA-11403 --- plugins/3MFWriter/ThreeMFWriter.py | 41 ++++++++++++++++++++++++++++-- plugins/3MFWriter/UCPDialog.py | 7 ++--- resources/qml/Menus/FileMenu.qml | 41 ++++++++++++++---------------- 3 files changed, 62 insertions(+), 27 deletions(-) diff --git a/plugins/3MFWriter/ThreeMFWriter.py b/plugins/3MFWriter/ThreeMFWriter.py index ce9ea33fbd..34ab4b5f58 100644 --- a/plugins/3MFWriter/ThreeMFWriter.py +++ b/plugins/3MFWriter/ThreeMFWriter.py @@ -10,6 +10,8 @@ from UM.Math.Vector import Vector from UM.Logger import Logger from UM.Math.Matrix import Matrix from UM.Application import Application +from UM.OutputDevice import OutputDeviceError +from UM.Message import Message from UM.Resources import Resources from UM.Scene.SceneNode import SceneNode from UM.Settings.ContainerRegistry import ContainerRegistry @@ -456,5 +458,40 @@ class ThreeMFWriter(MeshWriter): return extra_settings def exportUcp(self): - self._config_dialog = UCPDialog() - self._config_dialog.show() + preferences = CuraApplication.getInstance().getPreferences() + if preferences.getValue("cura/dialog_on_ucp_project_save"): + self._config_dialog = UCPDialog() + self._config_dialog.show() + else: + application = CuraApplication.getInstance() + workspace_handler = application.getInstance().getWorkspaceFileHandler() + + # Set the model to the workspace writer + mesh_writer = workspace_handler.getWriter("3MFWriter") + mesh_writer.setExportModel(SettingsExportModel()) + + # Open file dialog and write the file + device = application.getOutputDeviceManager().getOutputDevice("local_file") + nodes = [application.getController().getScene().getRoot()] + + file_name = CuraApplication.getInstance().getPrintInformation().baseName + + try: + device.requestWrite( + nodes, + file_name, + ["application/vnd.ms-package.3dmanufacturing-3dmodel+xml"], + workspace_handler, + preferred_mimetype_list="application/vnd.ms-package.3dmanufacturing-3dmodel+xml" + ) + except OutputDeviceError.UserCanceledError: + self._onRejected() + except Exception as e: + message = Message( + catalog.i18nc("@info:error", "Unable to write to file: {0}", file_name), + title=catalog.i18nc("@info:title", "Error"), + message_type=Message.MessageType.ERROR + ) + message.show() + Logger.logException("e", "Unable to write to file %s: %s", file_name, e) + self._onRejected() diff --git a/plugins/3MFWriter/UCPDialog.py b/plugins/3MFWriter/UCPDialog.py index b2ad5834eb..bedfb4d0da 100644 --- a/plugins/3MFWriter/UCPDialog.py +++ b/plugins/3MFWriter/UCPDialog.py @@ -53,8 +53,7 @@ class UCPDialog(QObject): def notifyClosed(self): self._onFinished() - @pyqtSlot() - def _onAccepted(self): + def save3mf(self): application = CuraApplication.getInstance() workspace_handler = application.getInstance().getWorkspaceFileHandler() @@ -92,7 +91,9 @@ class UCPDialog(QObject): Logger.logException("e", "Unable to write to file %s: %s", file_name, e) self._onRejected() - @pyqtSlot() + def _onAccepted(self): + self.save3mf() + def _onRejected(self): self._onFinished() diff --git a/resources/qml/Menus/FileMenu.qml b/resources/qml/Menus/FileMenu.qml index 76d4997c3c..4ca09cc9f1 100644 --- a/resources/qml/Menus/FileMenu.qml +++ b/resources/qml/Menus/FileMenu.qml @@ -47,14 +47,18 @@ Cura.Menu enabled: UM.WorkspaceFileHandler.enabled && saveProjectMenu.model.count == 1 onTriggered: { - var args = { "filter_by_machine": false, "file_type": "workspace", "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml" }; - if(UM.Preferences.getValue("cura/dialog_on_project_save")) + if (UM.Preferences.getValue("cura/dialog_on_project_save")) { saveWorkspaceDialog.args = args saveWorkspaceDialog.open() } else { + const args = { + "filter_by_machine": false, + "file_type": "workspace", + "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml", + }; UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args) } } @@ -75,23 +79,7 @@ Cura.Menu id: saveUCPMenu text: catalog.i18nc("@title:menu menubar:file", "&Save Universal Cura Project...") enabled: UM.WorkspaceFileHandler.enabled && CuraApplication.getPackageManager().allEnabledPackages.includes("3MFWriter") - onTriggered: - { - if (UM.Preferences.getValue("cura/dialog_on_ucp_project_save")) - { - CuraApplication.exportUcp() - } - else - { - const args = { - "filter_by_machine": false, - "file_type": "workspace", - "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml", - "limit_mimetypes": ["application/vnd.ms-package.3dmanufacturing-3dmodel+xml"], - }; - UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.baseName, args) - } - } + onTriggered: CuraApplication.exportUcp() } Cura.MenuSeparator { } @@ -102,8 +90,11 @@ Cura.Menu text: catalog.i18nc("@title:menu menubar:file", "&Export...") onTriggered: { - var localDeviceId = "local_file" - UM.OutputDeviceManager.requestWriteToDevice(localDeviceId, PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}) + const args = { + "filter_by_machine": false, + "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml", + }; + UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args); } } @@ -113,7 +104,13 @@ Cura.Menu text: catalog.i18nc("@action:inmenu menubar:file", "Export Selection...") enabled: UM.Selection.hasSelection icon.name: "document-save-as" - onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}) + onTriggered: { + const args = { + "filter_by_machine": false, + "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml", + }; + UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, args); + } } Cura.MenuSeparator { } From e99d5eb906c508b6cbfb4bf066c1843ffd0395a1 Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Thu, 22 Feb 2024 09:59:31 +0100 Subject: [PATCH 233/269] fixing comment CURA-11617 CURA-11624 --- plugins/3MFWriter/ThreeMFWriter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/3MFWriter/ThreeMFWriter.py b/plugins/3MFWriter/ThreeMFWriter.py index 34ab4b5f58..6fda1742f8 100644 --- a/plugins/3MFWriter/ThreeMFWriter.py +++ b/plugins/3MFWriter/ThreeMFWriter.py @@ -178,7 +178,7 @@ class ThreeMFWriter(MeshWriter): # Load the icon png image icon_image = QImage(Resources.getPath(Resources.Images, "cura-share.png")) - # Resize icon_image to be 1/3 of primary_image size + # Resize icon_image to be 1/4 of primary_image size new_width = int(primary_image.width() / 4) new_height = int(primary_image.height() / 4) icon_image = icon_image.scaled(new_width, new_height, Qt.AspectRatioMode.KeepAspectRatio) From b99762776ee6ce3fe0e8bba8724eba9ca68ec4c7 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 22 Feb 2024 10:47:04 +0100 Subject: [PATCH 234/269] Revert "Enable prime tower mode according to materials types" This reverts commit 335a54c6d1c432e64784f95c69e77125bd0d57f1. --- .../XmlMaterialProfile/XmlMaterialProfile.py | 9 +++---- resources/definitions/fdmprinter.def.json | 26 ++++--------------- 2 files changed, 8 insertions(+), 27 deletions(-) diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 98c0f95e10..41beb88419 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -579,9 +579,8 @@ class XmlMaterialProfile(InstanceContainer): meta_data[tag_name] = entry.text - for tag_name, value in meta_data.items(): - if tag_name in self.__material_metadata_setting_map: - common_setting_values[self.__material_metadata_setting_map[tag_name]] = value + if tag_name in self.__material_metadata_setting_map: + common_setting_values[self.__material_metadata_setting_map[tag_name]] = entry.text if "description" not in meta_data: meta_data["description"] = "" @@ -1223,9 +1222,7 @@ class XmlMaterialProfile(InstanceContainer): "diameter": "material_diameter" } __material_metadata_setting_map = { - "GUID": "material_guid", - "material": "material_type", - "brand": "material_brand", + "GUID": "material_guid" } # Map of recognised namespaces with a proper prefix. diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 1d453456a8..b532402993 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -76,22 +76,6 @@ "type": "str", "enabled": false }, - "material_type": - { - "label": "Material Type", - "description": "The type of material used.", - "default_value": "", - "type": "str", - "enabled": false - }, - "material_brand": - { - "label": "Material Brand", - "description": "The brand of material used.", - "default_value": "", - "type": "str", - "enabled": false - }, "material_diameter": { "label": "Diameter", @@ -6797,14 +6781,14 @@ "prime_tower_mode": { "label": "Prime Tower", - "description": "Print a tower next to the model, which serves to prime the material after each nozzle switch.

  • None: do not generate a prime tower
  • Normal: generate a bucket in which secondary materials are primed
  • Interleaved: generate a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other.
", + "description": "Print a tower next to the model, which serves to prime the material after each nozzle switch.
  • None: do not generate a prime tower
  • Bucket: generate a bucket in which secondary materials are primed
  • Sparse: generate a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other.
", "type": "enum", - "value": "'none' if (extruders_enabled_count < 2) else ('interleaved' if (all(material_type_var == extruderValues('material_type')[0] for material_type_var in extruderValues('material_type')) and all(material_brand_var == extruderValues('material_brand')[0] for material_brand_var in extruderValues('material_brand'))) else 'normal')", + "value": "'optimized' if all(material_type == extruderValues('material_type')[0] for material_type in extruderValues('material_type')) else 'optimized_consistent'", "options": { "none": "None", - "normal": "Normal", - "interleaved": "Interleaved" + "bucket": "Bucket", + "sparse": "Sparse" }, "default_value": "none", "enabled": "extruders_enabled_count > 1", @@ -6849,7 +6833,7 @@ "default_value": 5, "minimum_value": "line_width", "maximum_value_warning": "10.0", - "enabled": "resolveOrValue('prime_tower_mode') != 'none'", + "enabled": "resolveOrValue('prime_tower_mode') == 'sparse' or resolveOrValue('prime_tower_mode') == 'bucket'", "settable_per_mesh": false, "settable_per_extruder": true }, From 60c3f6f2cbf4751960726eacfbc0d766ed4f16c7 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 22 Feb 2024 11:00:56 +0100 Subject: [PATCH 235/269] Restore prime tower options --- resources/definitions/fdmprinter.def.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index b532402993..a176fe1004 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6781,14 +6781,14 @@ "prime_tower_mode": { "label": "Prime Tower", - "description": "Print a tower next to the model, which serves to prime the material after each nozzle switch.
  • None: do not generate a prime tower
  • Bucket: generate a bucket in which secondary materials are primed
  • Sparse: generate a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other.
", + "description": "Print a tower next to the model, which serves to prime the material after each nozzle switch.
  • None: do not generate a prime tower
  • Normal: generate a bucket in which secondary materials are primed
  • Interleaved: generate a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other.
", "type": "enum", - "value": "'optimized' if all(material_type == extruderValues('material_type')[0] for material_type in extruderValues('material_type')) else 'optimized_consistent'", + "value": "'none' if (extruders_enabled_count < 2) else 'normal'", "options": { "none": "None", - "bucket": "Bucket", - "sparse": "Sparse" + "normal": "Normal", + "interleaved": "Interleaved" }, "default_value": "none", "enabled": "extruders_enabled_count > 1", From d009839f9e96f697ead3cb76678c3d8ad7379a3a Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 22 Feb 2024 12:50:50 +0100 Subject: [PATCH 236/269] Revert "Restore prime tower options" This reverts commit 60c3f6f2cbf4751960726eacfbc0d766ed4f16c7. --- resources/definitions/fdmprinter.def.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index a176fe1004..b532402993 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6781,14 +6781,14 @@ "prime_tower_mode": { "label": "Prime Tower", - "description": "Print a tower next to the model, which serves to prime the material after each nozzle switch.
  • None: do not generate a prime tower
  • Normal: generate a bucket in which secondary materials are primed
  • Interleaved: generate a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other.
", + "description": "Print a tower next to the model, which serves to prime the material after each nozzle switch.
  • None: do not generate a prime tower
  • Bucket: generate a bucket in which secondary materials are primed
  • Sparse: generate a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other.
", "type": "enum", - "value": "'none' if (extruders_enabled_count < 2) else 'normal'", + "value": "'optimized' if all(material_type == extruderValues('material_type')[0] for material_type in extruderValues('material_type')) else 'optimized_consistent'", "options": { "none": "None", - "normal": "Normal", - "interleaved": "Interleaved" + "bucket": "Bucket", + "sparse": "Sparse" }, "default_value": "none", "enabled": "extruders_enabled_count > 1", From c8f9f179d9809641ee48a36d5cd4b26bd006f84d Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 22 Feb 2024 12:50:53 +0100 Subject: [PATCH 237/269] Revert "Revert "Enable prime tower mode according to materials types"" This reverts commit b99762776ee6ce3fe0e8bba8724eba9ca68ec4c7. --- .../XmlMaterialProfile/XmlMaterialProfile.py | 9 ++++--- resources/definitions/fdmprinter.def.json | 26 +++++++++++++++---- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 41beb88419..98c0f95e10 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -579,8 +579,9 @@ class XmlMaterialProfile(InstanceContainer): meta_data[tag_name] = entry.text - if tag_name in self.__material_metadata_setting_map: - common_setting_values[self.__material_metadata_setting_map[tag_name]] = entry.text + for tag_name, value in meta_data.items(): + if tag_name in self.__material_metadata_setting_map: + common_setting_values[self.__material_metadata_setting_map[tag_name]] = value if "description" not in meta_data: meta_data["description"] = "" @@ -1222,7 +1223,9 @@ class XmlMaterialProfile(InstanceContainer): "diameter": "material_diameter" } __material_metadata_setting_map = { - "GUID": "material_guid" + "GUID": "material_guid", + "material": "material_type", + "brand": "material_brand", } # Map of recognised namespaces with a proper prefix. diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index b532402993..1d453456a8 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -76,6 +76,22 @@ "type": "str", "enabled": false }, + "material_type": + { + "label": "Material Type", + "description": "The type of material used.", + "default_value": "", + "type": "str", + "enabled": false + }, + "material_brand": + { + "label": "Material Brand", + "description": "The brand of material used.", + "default_value": "", + "type": "str", + "enabled": false + }, "material_diameter": { "label": "Diameter", @@ -6781,14 +6797,14 @@ "prime_tower_mode": { "label": "Prime Tower", - "description": "Print a tower next to the model, which serves to prime the material after each nozzle switch.
  • None: do not generate a prime tower
  • Bucket: generate a bucket in which secondary materials are primed
  • Sparse: generate a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other.
", + "description": "Print a tower next to the model, which serves to prime the material after each nozzle switch.
  • None: do not generate a prime tower
  • Normal: generate a bucket in which secondary materials are primed
  • Interleaved: generate a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other.
", "type": "enum", - "value": "'optimized' if all(material_type == extruderValues('material_type')[0] for material_type in extruderValues('material_type')) else 'optimized_consistent'", + "value": "'none' if (extruders_enabled_count < 2) else ('interleaved' if (all(material_type_var == extruderValues('material_type')[0] for material_type_var in extruderValues('material_type')) and all(material_brand_var == extruderValues('material_brand')[0] for material_brand_var in extruderValues('material_brand'))) else 'normal')", "options": { "none": "None", - "bucket": "Bucket", - "sparse": "Sparse" + "normal": "Normal", + "interleaved": "Interleaved" }, "default_value": "none", "enabled": "extruders_enabled_count > 1", @@ -6833,7 +6849,7 @@ "default_value": 5, "minimum_value": "line_width", "maximum_value_warning": "10.0", - "enabled": "resolveOrValue('prime_tower_mode') == 'sparse' or resolveOrValue('prime_tower_mode') == 'bucket'", + "enabled": "resolveOrValue('prime_tower_mode') != 'none'", "settable_per_mesh": false, "settable_per_extruder": true }, From 501b15753d1ef931fea1e79183844ccd6d326598 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 22 Feb 2024 16:20:39 +0100 Subject: [PATCH 238/269] Revert "Change prime_tower_enable to prime_tower_mode in all defs/profiles" This reverts commit 5a291f9ba9e83c85d1bdfe1c0e907e0df8154f6f. --- plugins/LegacyProfileReader/DictionaryOfDoom.json | 2 +- resources/definitions/atmat_signal_pro_base.def.json | 2 +- resources/definitions/deltacomb_dc20flux.def.json | 2 +- resources/definitions/deltacomb_dc21flux.def.json | 2 +- resources/definitions/deltacomb_dc30flux.def.json | 2 +- resources/definitions/dxu_dual.def.json | 3 ++- resources/definitions/elegoo_neptune_2D.def.json | 1 + resources/definitions/leapfrog_bolt_pro.def.json | 2 +- resources/definitions/lotmaxx_sc60.def.json | 2 +- resources/definitions/strateo3d_IDEX420.def.json | 1 + resources/definitions/ultimaker3.def.json | 1 + resources/definitions/ultimaker_method_base.def.json | 2 +- resources/definitions/ultimaker_s3.def.json | 2 +- resources/definitions/ultimaker_s5.def.json | 2 +- .../Leapfrog_Bolt_Pro_brass0.4_abs_natural_standard.inst.cfg | 2 +- .../Leapfrog_Bolt_Pro_nozzlex0.4_abs_natural_standard.inst.cfg | 2 +- .../Leapfrog_Bolt_Pro_brass0.4_epla_natural_standard.inst.cfg | 2 +- ...Leapfrog_Bolt_Pro_nozzlex0.4_epla_natural_standard.inst.cfg | 2 +- .../Leapfrog_Bolt_Pro_brass0.4_pva_natural_standard.inst.cfg | 2 +- .../Leapfrog_Bolt_Pro_nozzlex0.4_pva_natural_standard.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_A.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_B.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_C.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_D.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_E.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_C.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_D.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_E.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_F.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_A.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_B.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_C.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_D.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_E.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_C.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_D.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_E.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_F.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_D.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_E.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_F.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_G.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_D.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_E.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_F.inst.cfg | 2 +- .../quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_G.inst.cfg | 2 +- .../pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.10.inst.cfg | 2 +- .../pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.15.inst.cfg | 2 +- .../pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.20.inst.cfg | 2 +- .../pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.30.inst.cfg | 2 +- .../pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.30.inst.cfg | 2 +- .../pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.40.inst.cfg | 2 +- .../pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.60.inst.cfg | 2 +- .../nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.10.inst.cfg | 2 +- .../nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.15.inst.cfg | 2 +- .../nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.20.inst.cfg | 2 +- .../nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.30.inst.cfg | 2 +- .../quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg | 2 +- .../quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg | 2 +- .../quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg | 2 +- .../gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_ABS_Draft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_ABS_Fast_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.4_ABS_High_Quality.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.4_ABS_Normal_Quality.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_PC_Draft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_PC_Fast_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_PC_High_Quality.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.4_PC_Normal_Quality.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.4_PETG_Draft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_PETG_Fast_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.4_PETG_High_Quality.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.4_PETG_Normal_Quality.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_PLA_Draft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_PLA_Fast_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.4_PLA_High_Quality.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.4_PLA_Normal_Quality.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_PP_Draft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.4_PP_Fast_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.4_PP_Normal_Quality.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.6_PETG_Draft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.6_PETG_Fast_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.6_PLA_Draft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.6_PLA_Fast_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.8_CPE_Draft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_CPE_Superdraft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_CPE_Verydraft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_Nylon_Draft_Print.inst.cfg | 2 +- .../liquid/liquid_vo0.8_Nylon_Superdraft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_Nylon_Verydraft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_PETG_Draft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_PETG_Superdraft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_PETG_Verydraft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.8_PLA_Draft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_PLA_Superdraft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_PLA_Verydraft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.8_PP_Draft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_PP_Superdraft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_PP_Verydraft_Print.inst.cfg | 2 +- resources/quality/liquid/liquid_vo0.8_TPU_Draft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_TPU_Superdraft_Print.inst.cfg | 2 +- .../quality/liquid/liquid_vo0.8_TPU_Verydraft_Print.inst.cfg | 2 +- resources/quality/nps/nps_ABS_B.inst.cfg | 2 +- resources/quality/nps/nps_ABS_C.inst.cfg | 2 +- resources/quality/nps/nps_PC_A.inst.cfg | 2 +- resources/quality/nps/nps_PC_B.inst.cfg | 2 +- resources/quality/nps/nps_PC_C.inst.cfg | 2 +- resources/quality/nps/nps_PETG_A.inst.cfg | 2 +- resources/quality/nps/nps_PETG_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PEKK_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_C.inst.cfg | 2 +- .../strateo3d/Standard_0_4/s3d_std0.4_ACETATE_A.inst.cfg | 2 +- .../strateo3d/Standard_0_4/s3d_std0.4_ACETATE_B.inst.cfg | 2 +- .../strateo3d/Standard_0_4/s3d_std0.4_ACETATE_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PC_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PC_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PC_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_C.inst.cfg | 2 +- .../strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_A.inst.cfg | 2 +- .../strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_B.inst.cfg | 2 +- .../strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_A.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_C.inst.cfg | 2 +- .../strateo3d/Standard_0_4/s3d_std0.4_TPU98A_A.inst.cfg | 2 +- .../strateo3d/Standard_0_4/s3d_std0.4_TPU98A_B.inst.cfg | 2 +- .../strateo3d/Standard_0_4/s3d_std0.4_TPU98A_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_D.inst.cfg | 2 +- .../strateo3d/Standard_0_6/s3d_std0.6_ACETATE_B.inst.cfg | 2 +- .../strateo3d/Standard_0_6/s3d_std0.6_ACETATE_C.inst.cfg | 2 +- .../strateo3d/Standard_0_6/s3d_std0.6_ACETATE_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_D.inst.cfg | 2 +- .../strateo3d/Standard_0_6/s3d_std0.6_Nylon-1030_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PC_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PC_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PC_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_D.inst.cfg | 2 +- .../strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_B.inst.cfg | 2 +- .../strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_C.inst.cfg | 2 +- .../strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_B.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_D.inst.cfg | 2 +- .../strateo3d/Standard_0_6/s3d_std0.6_TPU98A_B.inst.cfg | 2 +- .../strateo3d/Standard_0_6/s3d_std0.6_TPU98A_C.inst.cfg | 2 +- .../strateo3d/Standard_0_6/s3d_std0.6_TPU98A_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PC_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PC_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PC_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_E.inst.cfg | 2 +- .../strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_C.inst.cfg | 2 +- .../strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_D.inst.cfg | 2 +- .../strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_E.inst.cfg | 2 +- .../strateo3d/Standard_0_8/s3d_std0.8_TPU98A_C.inst.cfg | 2 +- .../strateo3d/Standard_0_8/s3d_std0.8_TPU98A_D.inst.cfg | 2 +- .../strateo3d/Standard_0_8/s3d_std0.8_TPU98A_E.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_C.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_D.inst.cfg | 2 +- .../quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_ABS_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_ABS_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_ABS_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_ASA-X_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_ASA-X_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_ASA-X_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_BVOH_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_BVOH_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_BVOH_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_HIPS_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_HIPS_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_HIPS_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PA6CF_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PA6CF_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PA6CF_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PA6GF_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PA6GF_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PA6GF_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PETG_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PETG_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PETG_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PLA_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PLA_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PLA_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PVA-M_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PVA-M_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PVA-M_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PVA-S_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PVA-S_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_PVA-S_F.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_TPU98A_D.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_TPU98A_E.inst.cfg | 2 +- .../Standard_1_0_Experimental/s3d_std1.0_TPU98A_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_ABS_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_ABS_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_ABS_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_ASA-X_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_ASA-X_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_ASA-X_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_BVOH_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_BVOH_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_BVOH_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_HIPS_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_HIPS_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_HIPS_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PA6CF_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PA6CF_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PA6CF_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PA6GF_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PA6GF_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PA6GF_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PETG_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PETG_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PETG_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PLA_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PLA_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PLA_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PVA-M_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PVA-M_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PVA-M_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PVA-S_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PVA-S_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_PVA-S_H.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_TPU98A_F.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_TPU98A_G.inst.cfg | 2 +- .../Standard_1_2_Experimental/s3d_std1.2_TPU98A_H.inst.cfg | 2 +- .../tizyx_evy_dual_global_Flex_Only_Quality.inst.cfg | 2 +- .../tizyx_evy_dual/tizyx_evy_dual_global_Flex_Quality.inst.cfg | 2 +- .../tizyx_evy_dual/tizyx_evy_dual_global_High_Quality.inst.cfg | 2 +- .../tizyx_evy_dual_global_Normal_Quality.inst.cfg | 2 +- .../tizyx_evy_dual/tizyx_evy_dual_global_PVA_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg | 2 +- .../ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg | 2 +- .../ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg | 2 +- .../ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg | 2 +- .../ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_TPLA_Draft_Print.inst.cfg | 2 +- .../ultimaker3/um3_aa0.8_TPLA_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.25_pc_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.25_pp_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.06mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.06mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.06mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_nylon_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_nylon_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_nylon_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.4mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.3mm.inst.cfg | 2 +- .../ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.06mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.25_pc_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.25_pp_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.06mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.06mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.06mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_nylon_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_nylon_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_nylon_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.4mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.3mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.4mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.3mm.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.4mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.06mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.1mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.3mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.2mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.15mm.inst.cfg | 2 +- resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.2mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.15mm.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.2mm.inst.cfg | 2 +- resources/variants/liquid/liquid_vo08.inst.cfg | 2 +- resources/variants/strateo3d/strateo3d_high_temp_04.inst.cfg | 2 +- resources/variants/strateo3d/strateo3d_standard_04.inst.cfg | 2 +- resources/variants/strateo3d/strateo3d_standard_06.inst.cfg | 2 +- resources/variants/strateo3d/strateo3d_standard_08.inst.cfg | 2 +- resources/variants/strateo3d/strateo3d_standard_10.inst.cfg | 2 +- resources/variants/strateo3d/strateo3d_standard_12.inst.cfg | 2 +- resources/variants/ultimaker3_aa0.8.inst.cfg | 2 +- resources/variants/ultimaker3_bb0.8.inst.cfg | 2 +- resources/variants/ultimaker3_extended_aa0.8.inst.cfg | 2 +- resources/variants/ultimaker3_extended_bb0.8.inst.cfg | 2 +- resources/variants/ultimaker_s3_aa0.8.inst.cfg | 2 +- resources/variants/ultimaker_s3_bb0.8.inst.cfg | 2 +- resources/variants/ultimaker_s5_aa0.8.inst.cfg | 2 +- resources/variants/ultimaker_s5_bb0.8.inst.cfg | 2 +- resources/variants/ultimaker_s7_aa0.8.inst.cfg | 2 +- resources/variants/ultimaker_s7_bb0.8.inst.cfg | 2 +- 627 files changed, 628 insertions(+), 624 deletions(-) diff --git a/plugins/LegacyProfileReader/DictionaryOfDoom.json b/plugins/LegacyProfileReader/DictionaryOfDoom.json index 90e973b779..f65cc271d1 100644 --- a/plugins/LegacyProfileReader/DictionaryOfDoom.json +++ b/plugins/LegacyProfileReader/DictionaryOfDoom.json @@ -68,7 +68,7 @@ "meshfix_keep_open_polygons": "fix_horrible_use_open_bits", "magic_mesh_surface_mode": "\"surface\" if simple_mode else \"normal\"", "magic_spiralize": "spiralize", - "prime_tower_mode": "\"normal\" if wipe_tower else \"none\"", + "prime_tower_enable": "wipe_tower", "prime_tower_size": "math.sqrt(float(wipe_tower_volume) / float(layer_height))", "ooze_shield_enabled": "ooze_shield", "skin_overlap": "fill_overlap" diff --git a/resources/definitions/atmat_signal_pro_base.def.json b/resources/definitions/atmat_signal_pro_base.def.json index 0b8761a62c..cd59e1c169 100644 --- a/resources/definitions/atmat_signal_pro_base.def.json +++ b/resources/definitions/atmat_signal_pro_base.def.json @@ -110,7 +110,7 @@ "min_infill_area": { "value": "5.0" }, "minimum_polygon_circumference": { "value": "0.2" }, "optimize_wall_printing_order": { "value": "True" }, - "prime_tower_mode": { "value": "'normal'" }, + "prime_tower_enable": { "value": "True" }, "retraction_amount": { "value": "1" }, "retraction_combing": { "value": "'noskin'" }, "retraction_combing_max_distance": { "value": "10" }, diff --git a/resources/definitions/deltacomb_dc20flux.def.json b/resources/definitions/deltacomb_dc20flux.def.json index f76ba3e4cd..f81909dae5 100644 --- a/resources/definitions/deltacomb_dc20flux.def.json +++ b/resources/definitions/deltacomb_dc20flux.def.json @@ -31,8 +31,8 @@ "material_final_print_temperature": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, + "prime_tower_enable": { "value": true }, "prime_tower_min_volume": { "value": "50" }, - "prime_tower_mode": { "value": "'normal'" }, "switch_extruder_retraction_amount": { "value": "0" } } } \ No newline at end of file diff --git a/resources/definitions/deltacomb_dc21flux.def.json b/resources/definitions/deltacomb_dc21flux.def.json index 3c2080a87b..dbcdf3ad37 100644 --- a/resources/definitions/deltacomb_dc21flux.def.json +++ b/resources/definitions/deltacomb_dc21flux.def.json @@ -31,8 +31,8 @@ "material_final_print_temperature": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, + "prime_tower_enable": { "value": true }, "prime_tower_min_volume": { "value": "50" }, - "prime_tower_mode": { "value": "'normal'" }, "switch_extruder_retraction_amount": { "value": "0" } } } \ No newline at end of file diff --git a/resources/definitions/deltacomb_dc30flux.def.json b/resources/definitions/deltacomb_dc30flux.def.json index 69249e42fd..7ba4f4252d 100644 --- a/resources/definitions/deltacomb_dc30flux.def.json +++ b/resources/definitions/deltacomb_dc30flux.def.json @@ -31,8 +31,8 @@ "material_final_print_temperature": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, + "prime_tower_enable": { "value": "True" }, "prime_tower_min_volume": { "value": "50" }, - "prime_tower_mode": { "value": "'normal'" }, "switch_extruder_retraction_amount": { "value": "0" } } } \ No newline at end of file diff --git a/resources/definitions/dxu_dual.def.json b/resources/definitions/dxu_dual.def.json index b81d148f80..6d30af005f 100644 --- a/resources/definitions/dxu_dual.def.json +++ b/resources/definitions/dxu_dual.def.json @@ -5,6 +5,7 @@ "overrides": { "machine_end_gcode": { "value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \"G90 ;absolute positioning\\nM104 S0 T0 ;extruder heater off\\nM104 S0 T1\\nM140 S0 ;turn off bed\\nT0 ; move to the first head\\nM107 ;fan off\"" }, - "machine_start_gcode": { "value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \";material_bed_temperature={material_bed_temperature} material_print_temperature={material_print_temperature} material_print_temperature_layer_0={material_print_temperature_layer_0}\\nM190 S{material_bed_temperature_layer_0}\\nM104 T0 S{material_standby_temperature, 0}\\nM104 T0 S{material_print_temperature_layer_0, 0}\\nG21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nM200 D0 T0 ;reset filament diameter\\nM200 D0 T1\\nG28 ;home all\\nT1 ; move to the nozzle 2\\nG0 Z20 F2400 ;move the platform to 30mm\\nM109 T1 S{material_print_temperature_layer_0, 1}\\nG0 X210 Y20 F7200\\nG92 E0\\nG92 E-7.0 ;prime distance\\nG1 E0 F45 ;purge nozzle\\nG1 E-6.5 F1500 ; retract\\nT0 ; move to the nozzle 1\\nM104 T1 S{material_standby_temperature, 1}\\nG0 Z20 F2400\\nM109 T0 S{material_print_temperature_layer_0, 0}\\nG0 X210 Y20 F7200\\nG92 E0\\nG92 E-7.0\\nG1 E0 F45 ;purge nozzle\\nG1 E-6.5 F1500\\nM104 T0 S{material_standby_temperature, 0}\\nT{initial_extruder_nr} ;switch to the first nozzle used for print\\nM109 T{initial_extruder_nr} S{material_print_temperature_layer_0, initial_extruder_nr}\\nM400 ;finish all moves\\nG1 E0 F1500\\nG92 E0\\n;end of startup sequence\\n\"" } + "machine_start_gcode": { "value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \";material_bed_temperature={material_bed_temperature} material_print_temperature={material_print_temperature} material_print_temperature_layer_0={material_print_temperature_layer_0}\\nM190 S{material_bed_temperature_layer_0}\\nM104 T0 S{material_standby_temperature, 0}\\nM104 T0 S{material_print_temperature_layer_0, 0}\\nG21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nM200 D0 T0 ;reset filament diameter\\nM200 D0 T1\\nG28 ;home all\\nT1 ; move to the nozzle 2\\nG0 Z20 F2400 ;move the platform to 30mm\\nM109 T1 S{material_print_temperature_layer_0, 1}\\nG0 X210 Y20 F7200\\nG92 E0\\nG92 E-7.0 ;prime distance\\nG1 E0 F45 ;purge nozzle\\nG1 E-6.5 F1500 ; retract\\nT0 ; move to the nozzle 1\\nM104 T1 S{material_standby_temperature, 1}\\nG0 Z20 F2400\\nM109 T0 S{material_print_temperature_layer_0, 0}\\nG0 X210 Y20 F7200\\nG92 E0\\nG92 E-7.0\\nG1 E0 F45 ;purge nozzle\\nG1 E-6.5 F1500\\nM104 T0 S{material_standby_temperature, 0}\\nT{initial_extruder_nr} ;switch to the first nozzle used for print\\nM109 T{initial_extruder_nr} S{material_print_temperature_layer_0, initial_extruder_nr}\\nM400 ;finish all moves\\nG1 E0 F1500\\nG92 E0\\n;end of startup sequence\\n\"" }, + "prime_tower_enable": { "default_value": true } } } \ No newline at end of file diff --git a/resources/definitions/elegoo_neptune_2D.def.json b/resources/definitions/elegoo_neptune_2D.def.json index dbdf066b21..c9aa5a0184 100644 --- a/resources/definitions/elegoo_neptune_2D.def.json +++ b/resources/definitions/elegoo_neptune_2D.def.json @@ -55,6 +55,7 @@ "settable_per_extruder": false }, "prime_blob_enable": { "default_value": false }, + "prime_tower_enable": { "default_value": true }, "prime_tower_min_volume": { "default_value": 90 }, "prime_tower_size": { "default_value": 30 }, "raft_airgap": { "default_value": 0.25 }, diff --git a/resources/definitions/leapfrog_bolt_pro.def.json b/resources/definitions/leapfrog_bolt_pro.def.json index 449967072f..e4a13217e5 100644 --- a/resources/definitions/leapfrog_bolt_pro.def.json +++ b/resources/definitions/leapfrog_bolt_pro.def.json @@ -80,7 +80,7 @@ "material_final_print_temperature": { "value": "default_material_print_temperature" }, "material_initial_print_temperature": { "value": "default_material_print_temperature" }, "material_standby_temperature": { "enabled": false }, - "prime_tower_mode": { "resolve": "'normal' if extruders_enabled_count > 1 else 'none'" }, + "prime_tower_enable": { "resolve": "extruders_enabled_count > 1" }, "retraction_amount": { "default_value": 2 }, "retraction_combing": { "value": "'all'" }, "skirt_line_count": { "default_value": 3 }, diff --git a/resources/definitions/lotmaxx_sc60.def.json b/resources/definitions/lotmaxx_sc60.def.json index 64220c372e..f4ce358be1 100644 --- a/resources/definitions/lotmaxx_sc60.def.json +++ b/resources/definitions/lotmaxx_sc60.def.json @@ -44,8 +44,8 @@ "machine_width": { "default_value": 235 }, "meshfix_maximum_resolution": { "value": 0.25 }, "optimize_wall_printing_order": { "value": true }, + "prime_tower_enable": { "value": true }, "prime_tower_min_volume": { "value": 30 }, - "prime_tower_mode": { "value": "'normal'" }, "retract_at_layer_change": { "value": false }, "retraction_amount": { "value": 4.5 }, "roofing_layer_count": { "value": 1 }, diff --git a/resources/definitions/strateo3d_IDEX420.def.json b/resources/definitions/strateo3d_IDEX420.def.json index 47a3af714b..d4236c126e 100644 --- a/resources/definitions/strateo3d_IDEX420.def.json +++ b/resources/definitions/strateo3d_IDEX420.def.json @@ -112,6 +112,7 @@ "machine_use_extruder_offset_to_offset_coords": { "default_value": false }, "machine_width": { "default_value": 420 }, "material_diameter": { "default_value": 1.75 }, + "prime_tower_enable": { "default_value": true }, "prime_tower_min_volume": { "default_value": 35.6 }, "raft_acceleration": { "value": "machine_acceleration" }, "raft_base_acceleration": { "value": "machine_acceleration" }, diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index 43f718e2db..17a4b6045e 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -149,6 +149,7 @@ "enabled": true, "value": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, + "prime_tower_enable": { "default_value": true }, "prime_tower_position_x": { "value": "185" }, "prime_tower_wipe_enabled": { "default_value": false }, "retraction_amount": { "value": "6.5" }, diff --git a/resources/definitions/ultimaker_method_base.def.json b/resources/definitions/ultimaker_method_base.def.json index 2c417913d5..983af7ea27 100644 --- a/resources/definitions/ultimaker_method_base.def.json +++ b/resources/definitions/ultimaker_method_base.def.json @@ -345,9 +345,9 @@ "prime_tower_base_curve_magnitude": { "value": 2 }, "prime_tower_base_height": { "value": 6 }, "prime_tower_base_size": { "value": 10 }, + "prime_tower_enable": { "value": false }, "prime_tower_flow": { "value": "material_flow" }, "prime_tower_line_width": { "value": 1 }, - "prime_tower_mode": { "value": "none" }, "prime_tower_raft_base_line_spacing": { "value": "raft_base_line_width" }, "prime_tower_wipe_enabled": { "value": true }, "print_sequence": { "enabled": false }, diff --git a/resources/definitions/ultimaker_s3.def.json b/resources/definitions/ultimaker_s3.def.json index ca40788581..483825df5a 100644 --- a/resources/definitions/ultimaker_s3.def.json +++ b/resources/definitions/ultimaker_s3.def.json @@ -103,7 +103,7 @@ "default_value": false, "enabled": true }, - "prime_tower_mode": { "value": "'normal'" }, + "prime_tower_enable": { "value": "True" }, "retraction_amount": { "value": "6.5" }, "retraction_hop": { "value": "2" }, "retraction_hop_enabled": { "value": "extruders_enabled_count > 1" }, diff --git a/resources/definitions/ultimaker_s5.def.json b/resources/definitions/ultimaker_s5.def.json index 73854f2890..cd48c4fd38 100644 --- a/resources/definitions/ultimaker_s5.def.json +++ b/resources/definitions/ultimaker_s5.def.json @@ -104,7 +104,7 @@ "default_value": false, "enabled": true }, - "prime_tower_mode": { "value": "'normal'" }, + "prime_tower_enable": { "value": "True" }, "retraction_amount": { "value": "6.5" }, "retraction_combing": { "value": "'no_outer_surfaces'" }, "retraction_hop": { "value": "2" }, diff --git a/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_brass0.4_abs_natural_standard.inst.cfg b/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_brass0.4_abs_natural_standard.inst.cfg index 54807c88b3..f4da80ded9 100644 --- a/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_brass0.4_abs_natural_standard.inst.cfg +++ b/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_brass0.4_abs_natural_standard.inst.cfg @@ -38,8 +38,8 @@ line_width = 0.4 min_infill_area = 0 optimize_wall_printing_order = True prime_tower_brim_enable = True +prime_tower_enable = True prime_tower_min_volume = 6 -prime_tower_mode = normal prime_tower_size = 20 prime_tower_wipe_enabled = True retract_at_layer_change = False diff --git a/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_nozzlex0.4_abs_natural_standard.inst.cfg b/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_nozzlex0.4_abs_natural_standard.inst.cfg index 312313c9c5..a052562cd3 100644 --- a/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_nozzlex0.4_abs_natural_standard.inst.cfg +++ b/resources/quality/Leapfrog_Bolt_Pro/abs/Leapfrog_Bolt_Pro_nozzlex0.4_abs_natural_standard.inst.cfg @@ -38,8 +38,8 @@ line_width = 0.4 min_infill_area = 0 optimize_wall_printing_order = True prime_tower_brim_enable = True +prime_tower_enable = True prime_tower_min_volume = 6 -prime_tower_mode = normal prime_tower_size = 20 prime_tower_wipe_enabled = True retract_at_layer_change = False diff --git a/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_brass0.4_epla_natural_standard.inst.cfg b/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_brass0.4_epla_natural_standard.inst.cfg index 485e82345a..145cd34ead 100644 --- a/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_brass0.4_epla_natural_standard.inst.cfg +++ b/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_brass0.4_epla_natural_standard.inst.cfg @@ -36,8 +36,8 @@ line_width = 0.4 min_infill_area = 0 optimize_wall_printing_order = True prime_tower_brim_enable = True +prime_tower_enable = True prime_tower_min_volume = 6 -prime_tower_mode = normal prime_tower_size = 20 prime_tower_wipe_enabled = True retract_at_layer_change = False diff --git a/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_nozzlex0.4_epla_natural_standard.inst.cfg b/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_nozzlex0.4_epla_natural_standard.inst.cfg index 7fb90fd093..e6e2cb78a0 100644 --- a/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_nozzlex0.4_epla_natural_standard.inst.cfg +++ b/resources/quality/Leapfrog_Bolt_Pro/epla/Leapfrog_Bolt_Pro_nozzlex0.4_epla_natural_standard.inst.cfg @@ -36,8 +36,8 @@ line_width = 0.4 min_infill_area = 0 optimize_wall_printing_order = True prime_tower_brim_enable = True +prime_tower_enable = True prime_tower_min_volume = 6 -prime_tower_mode = normal prime_tower_size = 20 prime_tower_wipe_enabled = True retract_at_layer_change = False diff --git a/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_brass0.4_pva_natural_standard.inst.cfg b/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_brass0.4_pva_natural_standard.inst.cfg index ce3fe8c60b..56587fe883 100644 --- a/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_brass0.4_pva_natural_standard.inst.cfg +++ b/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_brass0.4_pva_natural_standard.inst.cfg @@ -35,8 +35,8 @@ line_width = 0.4 min_infill_area = 0 optimize_wall_printing_order = True prime_tower_brim_enable = True +prime_tower_enable = True prime_tower_min_volume = 6 -prime_tower_mode = normal prime_tower_size = 20 prime_tower_wipe_enabled = True retract_at_layer_change = False diff --git a/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_nozzlex0.4_pva_natural_standard.inst.cfg b/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_nozzlex0.4_pva_natural_standard.inst.cfg index a95c6ce5d3..10353f6110 100644 --- a/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_nozzlex0.4_pva_natural_standard.inst.cfg +++ b/resources/quality/Leapfrog_Bolt_Pro/pva/Leapfrog_Bolt_Pro_nozzlex0.4_pva_natural_standard.inst.cfg @@ -35,8 +35,8 @@ line_width = 0.4 min_infill_area = 0 optimize_wall_printing_order = True prime_tower_brim_enable = True +prime_tower_enable = True prime_tower_min_volume = 6 -prime_tower_mode = normal prime_tower_size = 20 prime_tower_wipe_enabled = True retract_at_layer_change = False diff --git a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_A.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_A.inst.cfg index 2e0d11b6eb..33b5c2c111 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_A.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_A.inst.cfg @@ -13,7 +13,7 @@ variant = DBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_B.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_B.inst.cfg index fc487f97e4..5be0dc9527 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_B.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_B.inst.cfg @@ -13,7 +13,7 @@ variant = DBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_C.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_C.inst.cfg index 3eef71ef41..76aa867f8f 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_C.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_C.inst.cfg @@ -13,7 +13,7 @@ variant = DBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_D.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_D.inst.cfg index 35534c090e..20bb125cd9 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_D.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_D.inst.cfg @@ -13,7 +13,7 @@ variant = DBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_E.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_E.inst.cfg index d61061ff55..cc0224cf23 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_E.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_DBE0.40_PVA_E.inst.cfg @@ -13,7 +13,7 @@ variant = DBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_C.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_C.inst.cfg index df09da8d68..ec2ebdc647 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_C.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_C.inst.cfg @@ -13,7 +13,7 @@ variant = DBE 0.60mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_D.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_D.inst.cfg index be38167856..136ec93d16 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_D.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_D.inst.cfg @@ -13,7 +13,7 @@ variant = DBE 0.60mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_E.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_E.inst.cfg index 24299680ad..3a0a94782c 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_E.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_E.inst.cfg @@ -13,7 +13,7 @@ variant = DBE 0.60mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_F.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_F.inst.cfg index 2c89d60680..719a4bdcbd 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_F.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_DBE0.60_PVA_F.inst.cfg @@ -13,7 +13,7 @@ variant = DBE 0.60mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_A.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_A.inst.cfg index c3cbb96ae7..4486a1d3bc 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_A.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_A.inst.cfg @@ -13,7 +13,7 @@ variant = FBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_B.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_B.inst.cfg index 5e062678c3..b938502e85 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_B.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_B.inst.cfg @@ -13,7 +13,7 @@ variant = FBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_C.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_C.inst.cfg index b9651ddf53..3b88ca6b67 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_C.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_C.inst.cfg @@ -13,7 +13,7 @@ variant = FBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_D.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_D.inst.cfg index 3e36641037..4134717770 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_D.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_D.inst.cfg @@ -13,7 +13,7 @@ variant = FBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_E.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_E.inst.cfg index bdb9ca3ce5..e267e7c6eb 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_E.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_FBE0.40_PVA_E.inst.cfg @@ -13,7 +13,7 @@ variant = FBE 0.40mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_C.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_C.inst.cfg index 741e6c613a..35e2e07b41 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_C.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_C.inst.cfg @@ -13,7 +13,7 @@ variant = FBE 0.60mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_D.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_D.inst.cfg index c8421e34a5..dd944cbfd1 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_D.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_D.inst.cfg @@ -13,7 +13,7 @@ variant = FBE 0.60mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_E.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_E.inst.cfg index 39bafd45c6..8aa462e206 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_E.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_E.inst.cfg @@ -13,7 +13,7 @@ variant = FBE 0.60mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_F.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_F.inst.cfg index c73c5baecd..0691a01deb 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_F.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_FBE0.60_PVA_F.inst.cfg @@ -13,7 +13,7 @@ variant = FBE 0.60mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_D.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_D.inst.cfg index b9f63dff35..a4d0582c3a 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_D.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_D.inst.cfg @@ -13,7 +13,7 @@ variant = V-DBE 0.80mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_E.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_E.inst.cfg index 86e03b328c..831e17c018 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_E.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_E.inst.cfg @@ -13,7 +13,7 @@ variant = V-DBE 0.80mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_F.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_F.inst.cfg index b51b54cb62..d9a57d6012 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_F.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_F.inst.cfg @@ -13,7 +13,7 @@ variant = V-DBE 0.80mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_G.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_G.inst.cfg index 82ad7d5d49..8408fbc014 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_G.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_VDBE0.80_PVA_G.inst.cfg @@ -13,7 +13,7 @@ variant = V-DBE 0.80mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_D.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_D.inst.cfg index dcc7dfcd48..18c813a79a 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_D.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_D.inst.cfg @@ -13,7 +13,7 @@ variant = V-FBE 0.80mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_E.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_E.inst.cfg index d0fb6ec6e2..660c536a5e 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_E.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_E.inst.cfg @@ -13,7 +13,7 @@ variant = V-FBE 0.60mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_F.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_F.inst.cfg index 1817111e2a..5dbea58c49 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_F.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_F.inst.cfg @@ -13,7 +13,7 @@ variant = V-FBE 0.80mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_G.inst.cfg b/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_G.inst.cfg index 8ba8f905d6..9bfd649e99 100644 --- a/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_G.inst.cfg +++ b/resources/quality/deltacomb/PVA/deltacomb_VFBE0.80_PVA_G.inst.cfg @@ -13,7 +13,7 @@ variant = V-FBE 0.80mm [values] brim_replaces_support = False material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False support_bottom_distance = =support_z_distance support_bottom_stair_step_height = 0 support_bottom_stair_step_width = 0 diff --git a/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.10.inst.cfg b/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.10.inst.cfg index 82cfb879dd..d5a2f73729 100644 --- a/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.10.inst.cfg +++ b/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.10.inst.cfg @@ -13,7 +13,7 @@ variant = 0.40mm_Elegoo_Nozzle [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_prime_speed = =retraction_speed skin_overlap = 10 diff --git a/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.15.inst.cfg b/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.15.inst.cfg index 3b8cc5bb5f..e86f454664 100644 --- a/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.15.inst.cfg +++ b/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.15.inst.cfg @@ -13,7 +13,7 @@ variant = 0.40mm_Elegoo_Nozzle [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 70 diff --git a/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.20.inst.cfg b/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.20.inst.cfg index 23e6730f11..db7e5a43c7 100644 --- a/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.20.inst.cfg +++ b/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.20.inst.cfg @@ -17,7 +17,7 @@ infill_sparse_density = 15 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_prime_speed = =retraction_speed skin_overlap = 20 diff --git a/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.30.inst.cfg b/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.30.inst.cfg index f305930448..d84cc9e656 100644 --- a/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.30.inst.cfg +++ b/resources/quality/elegoo/base/pla/nozzle_0_40/elegoo_pla_nozzle_0.40_layer_0.30.inst.cfg @@ -20,7 +20,7 @@ infill_sparse_density = 15 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_prime_speed = =retraction_speed skin_overlap = 20 diff --git a/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.30.inst.cfg b/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.30.inst.cfg index cfc8fb9b32..b6c63fad0f 100644 --- a/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.30.inst.cfg +++ b/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.30.inst.cfg @@ -15,7 +15,7 @@ gradual_infill_step_height = =3 * layer_height machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.40.inst.cfg b/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.40.inst.cfg index 52ebc5566b..1e3eec080a 100644 --- a/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.40.inst.cfg +++ b/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.40.inst.cfg @@ -15,7 +15,7 @@ gradual_infill_step_height = =3 * layer_height machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_mode = normal +prime_tower_enable = True speed_infill = =math.ceil(speed_print * 35 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.60.inst.cfg b/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.60.inst.cfg index 683bfe317a..09bc57ffea 100644 --- a/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.60.inst.cfg +++ b/resources/quality/elegoo/base/pla/nozzle_0_80/elegoo_pla_nozzle_0.80_layer_0.60.inst.cfg @@ -15,7 +15,7 @@ gradual_infill_step_height = =3 * layer_height machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_mode = normal +prime_tower_enable = True speed_infill = =math.ceil(speed_print * 35 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.10.inst.cfg b/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.10.inst.cfg index 40cc88859a..66eb9f49c0 100644 --- a/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.10.inst.cfg +++ b/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.10.inst.cfg @@ -11,7 +11,7 @@ type = quality variant = 0.40mm_Elegoo_Nozzle [values] -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 skin_overlap = 10 speed_topbottom = =math.ceil(speed_print * 35 / 70) diff --git a/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.15.inst.cfg b/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.15.inst.cfg index 6043a569d0..209ce52fa2 100644 --- a/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.15.inst.cfg +++ b/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.15.inst.cfg @@ -11,7 +11,7 @@ type = quality variant = 0.40mm_Elegoo_Nozzle [values] -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 speed_topbottom = =math.ceil(speed_print * 35 / 70) speed_wall = =math.ceil(speed_print * 45 / 70) diff --git a/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.20.inst.cfg b/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.20.inst.cfg index 3076011555..9805a1ae5a 100644 --- a/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.20.inst.cfg +++ b/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.20.inst.cfg @@ -12,7 +12,7 @@ variant = 0.40mm_Elegoo_Nozzle [values] infill_sparse_density = 15 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 skin_overlap = 20 top_bottom_thickness = 0.8 diff --git a/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.30.inst.cfg b/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.30.inst.cfg index 562b84bf02..cb6ca323e6 100644 --- a/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.30.inst.cfg +++ b/resources/quality/elegoo/neptune_4/pla/nozzle_0_40/elegoo_n4_pla_nozzle_0.40_layer_0.30.inst.cfg @@ -14,7 +14,7 @@ variant = 0.40mm_Elegoo_Nozzle infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' infill_sparse_density = 15 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 skin_overlap = 20 top_bottom_thickness = 0.9 diff --git a/resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg index 7178468de7..d9f0a0aaea 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg @@ -30,7 +30,7 @@ material_standby_temperature = =material_print_temperature - 10 ooze_shield_angle = 20 ooze_shield_dist = 4 ooze_shield_enabled = True -prime_tower_mode = none +prime_tower_enable = False retraction_amount = 0.75 retraction_combing = off retraction_speed = 70 diff --git a/resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg index cb966418ec..620622e555 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg @@ -30,7 +30,7 @@ material_standby_temperature = =material_print_temperature - 10 ooze_shield_angle = 20 ooze_shield_dist = 4 ooze_shield_enabled = True -prime_tower_mode = none +prime_tower_enable = False retraction_amount = 0.75 retraction_combing = off retraction_speed = 70 diff --git a/resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg index 23733ea85e..05eeb68305 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg @@ -30,7 +30,7 @@ material_standby_temperature = =material_print_temperature - 10 ooze_shield_angle = 20 ooze_shield_dist = 4 ooze_shield_enabled = True -prime_tower_mode = none +prime_tower_enable = False retraction_amount = 0.75 retraction_combing = off retraction_speed = 70 diff --git a/resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg index 01577a46d0..b63ef09a6b 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg @@ -29,7 +29,7 @@ material_standby_temperature = =material_print_temperature - 10 ooze_shield_angle = 20 ooze_shield_dist = 4 ooze_shield_enabled = True -prime_tower_mode = none +prime_tower_enable = False retraction_amount = 0.75 retraction_combing = off retraction_speed = 70 diff --git a/resources/quality/liquid/liquid_vo0.4_ABS_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_ABS_Draft_Print.inst.cfg index dc279c6232..038affd56f 100644 --- a/resources/quality/liquid/liquid_vo0.4_ABS_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_ABS_Draft_Print.inst.cfg @@ -18,7 +18,7 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_initial_print_temperature = =material_print_temperature - 15 material_print_temperature = =default_material_print_temperature + 20 -prime_tower_mode = none +prime_tower_enable = False skin_overlap = 20 speed_infill = =math.ceil(speed_print * 50 / 60) speed_layer_0 = =math.ceil(speed_print * 20 / 60) diff --git a/resources/quality/liquid/liquid_vo0.4_ABS_Fast_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_ABS_Fast_Print.inst.cfg index d5684e3ccb..5091d36813 100644 --- a/resources/quality/liquid/liquid_vo0.4_ABS_Fast_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_ABS_Fast_Print.inst.cfg @@ -19,7 +19,7 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_initial_print_temperature = =material_print_temperature - 15 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_mode = none +prime_tower_enable = False speed_infill = =math.ceil(speed_print * 45 / 60) speed_layer_0 = =math.ceil(speed_print * 20 / 60) speed_print = 60 diff --git a/resources/quality/liquid/liquid_vo0.4_ABS_High_Quality.inst.cfg b/resources/quality/liquid/liquid_vo0.4_ABS_High_Quality.inst.cfg index bd43496eb4..0420284fa8 100644 --- a/resources/quality/liquid/liquid_vo0.4_ABS_High_Quality.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_ABS_High_Quality.inst.cfg @@ -19,7 +19,7 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_initial_print_temperature = =material_print_temperature - 15 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_mode = none +prime_tower_enable = False speed_infill = =math.ceil(speed_print * 40 / 50) speed_layer_0 = =math.ceil(speed_print * 20 / 50) speed_print = 50 diff --git a/resources/quality/liquid/liquid_vo0.4_ABS_Normal_Quality.inst.cfg b/resources/quality/liquid/liquid_vo0.4_ABS_Normal_Quality.inst.cfg index 420b8a9d9c..927bdbe7b9 100644 --- a/resources/quality/liquid/liquid_vo0.4_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_ABS_Normal_Quality.inst.cfg @@ -18,7 +18,7 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_initial_print_temperature = =material_print_temperature - 15 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = none +prime_tower_enable = False speed_infill = =math.ceil(speed_print * 40 / 55) speed_layer_0 = =math.ceil(speed_print * 20 / 55) speed_print = 55 diff --git a/resources/quality/liquid/liquid_vo0.4_PC_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PC_Draft_Print.inst.cfg index ec682feabd..02d1292c17 100644 --- a/resources/quality/liquid/liquid_vo0.4_PC_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PC_Draft_Print.inst.cfg @@ -36,7 +36,7 @@ material_print_temperature = =default_material_print_temperature + 10 material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 raft_interface_thickness = =max(layer_height * 1.5, 0.225) diff --git a/resources/quality/liquid/liquid_vo0.4_PC_Fast_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PC_Fast_Print.inst.cfg index 591e6e2964..b1c540d01e 100644 --- a/resources/quality/liquid/liquid_vo0.4_PC_Fast_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PC_Fast_Print.inst.cfg @@ -35,7 +35,7 @@ material_print_temperature = =default_material_print_temperature + 10 material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 raft_interface_thickness = =max(layer_height * 1.5, 0.225) diff --git a/resources/quality/liquid/liquid_vo0.4_PC_High_Quality.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PC_High_Quality.inst.cfg index 604e491db3..6aac1f4972 100644 --- a/resources/quality/liquid/liquid_vo0.4_PC_High_Quality.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PC_High_Quality.inst.cfg @@ -36,7 +36,7 @@ material_print_temperature = =default_material_print_temperature - 10 material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 raft_interface_thickness = =max(layer_height * 1.5, 0.225) diff --git a/resources/quality/liquid/liquid_vo0.4_PC_Normal_Quality.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PC_Normal_Quality.inst.cfg index e610dcf495..e831dfb254 100644 --- a/resources/quality/liquid/liquid_vo0.4_PC_Normal_Quality.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PC_Normal_Quality.inst.cfg @@ -34,7 +34,7 @@ material_initial_print_temperature = =material_print_temperature - 5 material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 raft_interface_thickness = =max(layer_height * 1.5, 0.225) diff --git a/resources/quality/liquid/liquid_vo0.4_PETG_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PETG_Draft_Print.inst.cfg index 37d77be67c..6e0ac10718 100644 --- a/resources/quality/liquid/liquid_vo0.4_PETG_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PETG_Draft_Print.inst.cfg @@ -24,7 +24,7 @@ machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False skin_overlap = 20 speed_layer_0 = =math.ceil(speed_print * 20 / 70) speed_print = 70 diff --git a/resources/quality/liquid/liquid_vo0.4_PETG_Fast_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PETG_Fast_Print.inst.cfg index f27381d0e3..5e84c3e1a1 100644 --- a/resources/quality/liquid/liquid_vo0.4_PETG_Fast_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PETG_Fast_Print.inst.cfg @@ -20,7 +20,7 @@ layer_height_0 = 0.2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False speed_layer_0 = =math.ceil(speed_print * 20 / 60) speed_print = 60 speed_topbottom = =math.ceil(speed_print * 35 / 60) diff --git a/resources/quality/liquid/liquid_vo0.4_PETG_High_Quality.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PETG_High_Quality.inst.cfg index 1c49689b2a..8974dcbb03 100644 --- a/resources/quality/liquid/liquid_vo0.4_PETG_High_Quality.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PETG_High_Quality.inst.cfg @@ -22,7 +22,7 @@ machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False skin_overlap = 10 speed_layer_0 = =math.ceil(speed_print * 20 / 50) speed_print = 50 diff --git a/resources/quality/liquid/liquid_vo0.4_PETG_Normal_Quality.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PETG_Normal_Quality.inst.cfg index 82b3f109f4..cbada0be18 100644 --- a/resources/quality/liquid/liquid_vo0.4_PETG_Normal_Quality.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PETG_Normal_Quality.inst.cfg @@ -21,7 +21,7 @@ layer_height_0 = 0.2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False skin_overlap = 10 speed_layer_0 = =math.ceil(speed_print * 20 / 70) top_bottom_thickness = 1 diff --git a/resources/quality/liquid/liquid_vo0.4_PLA_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PLA_Draft_Print.inst.cfg index e6e18da492..70817b06e3 100644 --- a/resources/quality/liquid/liquid_vo0.4_PLA_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PLA_Draft_Print.inst.cfg @@ -24,7 +24,7 @@ machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False skin_overlap = 20 speed_layer_0 = =math.ceil(speed_print * 20 / 70) speed_print = 70 diff --git a/resources/quality/liquid/liquid_vo0.4_PLA_Fast_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PLA_Fast_Print.inst.cfg index 50b8662604..b6991202b2 100644 --- a/resources/quality/liquid/liquid_vo0.4_PLA_Fast_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PLA_Fast_Print.inst.cfg @@ -20,7 +20,7 @@ layer_height_0 = 0.2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False speed_layer_0 = =math.ceil(speed_print * 20 / 60) speed_print = 60 speed_topbottom = =math.ceil(speed_print * 35 / 60) diff --git a/resources/quality/liquid/liquid_vo0.4_PLA_High_Quality.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PLA_High_Quality.inst.cfg index baf7af3fdc..930f5cf3fd 100644 --- a/resources/quality/liquid/liquid_vo0.4_PLA_High_Quality.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PLA_High_Quality.inst.cfg @@ -22,7 +22,7 @@ machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False skin_overlap = 10 speed_layer_0 = =math.ceil(speed_print * 20 / 50) speed_print = 50 diff --git a/resources/quality/liquid/liquid_vo0.4_PLA_Normal_Quality.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PLA_Normal_Quality.inst.cfg index bf5fb6b1c9..6595446fee 100644 --- a/resources/quality/liquid/liquid_vo0.4_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PLA_Normal_Quality.inst.cfg @@ -21,7 +21,7 @@ layer_height_0 = 0.2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_standby_temperature = 100 -prime_tower_mode = none +prime_tower_enable = False skin_overlap = 10 speed_layer_0 = =math.ceil(speed_print * 20 / 70) top_bottom_thickness = 1 diff --git a/resources/quality/liquid/liquid_vo0.4_PP_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PP_Draft_Print.inst.cfg index 86216145d9..1904758532 100644 --- a/resources/quality/liquid/liquid_vo0.4_PP_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PP_Draft_Print.inst.cfg @@ -36,7 +36,7 @@ material_print_temperature = =default_material_print_temperature - 5 material_print_temperature_layer_0 = =material_print_temperature + 5 material_standby_temperature = 100 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 12 diff --git a/resources/quality/liquid/liquid_vo0.4_PP_Fast_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PP_Fast_Print.inst.cfg index 7d4abe2d3f..2a0a5729ec 100644 --- a/resources/quality/liquid/liquid_vo0.4_PP_Fast_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PP_Fast_Print.inst.cfg @@ -36,7 +36,7 @@ material_print_temperature = =default_material_print_temperature - 13 material_print_temperature_layer_0 = =material_print_temperature + 3 material_standby_temperature = 100 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 12 diff --git a/resources/quality/liquid/liquid_vo0.4_PP_Normal_Quality.inst.cfg b/resources/quality/liquid/liquid_vo0.4_PP_Normal_Quality.inst.cfg index 3aace2ea38..304c4f17f0 100644 --- a/resources/quality/liquid/liquid_vo0.4_PP_Normal_Quality.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.4_PP_Normal_Quality.inst.cfg @@ -36,7 +36,7 @@ material_print_temperature = =default_material_print_temperature - 15 material_print_temperature_layer_0 = =material_print_temperature + 3 material_standby_temperature = 100 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 12 diff --git a/resources/quality/liquid/liquid_vo0.6_PETG_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.6_PETG_Draft_Print.inst.cfg index 04b769ec81..bc712bf999 100644 --- a/resources/quality/liquid/liquid_vo0.6_PETG_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.6_PETG_Draft_Print.inst.cfg @@ -26,7 +26,7 @@ material_final_print_temperature = =max(-273.15, material_print_temperature - 15 material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 material_standby_temperature = 100 -prime_tower_mode = normal +prime_tower_enable = True retract_at_layer_change = False speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/liquid/liquid_vo0.6_PETG_Fast_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.6_PETG_Fast_Print.inst.cfg index 5f7216e9b8..c51c068ae2 100644 --- a/resources/quality/liquid/liquid_vo0.6_PETG_Fast_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.6_PETG_Fast_Print.inst.cfg @@ -26,7 +26,7 @@ material_final_print_temperature = =max(-273.15, material_print_temperature - 15 material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 material_standby_temperature = 100 -prime_tower_mode = normal +prime_tower_enable = True retract_at_layer_change = False speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/liquid/liquid_vo0.6_PLA_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.6_PLA_Draft_Print.inst.cfg index 0f4b43d1ad..3b6749dfb9 100644 --- a/resources/quality/liquid/liquid_vo0.6_PLA_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.6_PLA_Draft_Print.inst.cfg @@ -26,7 +26,7 @@ material_final_print_temperature = =max(-273.15, material_print_temperature - 15 material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 material_standby_temperature = 100 -prime_tower_mode = normal +prime_tower_enable = True retract_at_layer_change = False speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/liquid/liquid_vo0.6_PLA_Fast_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.6_PLA_Fast_Print.inst.cfg index bf262d9b0d..45418e5994 100644 --- a/resources/quality/liquid/liquid_vo0.6_PLA_Fast_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.6_PLA_Fast_Print.inst.cfg @@ -26,7 +26,7 @@ material_final_print_temperature = =max(-273.15, material_print_temperature - 15 material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 material_standby_temperature = 100 -prime_tower_mode = normal +prime_tower_enable = True retract_at_layer_change = False speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/liquid/liquid_vo0.8_CPE_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_CPE_Draft_Print.inst.cfg index 6f15ddf686..90424ee65e 100644 --- a/resources/quality/liquid/liquid_vo0.8_CPE_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_CPE_Draft_Print.inst.cfg @@ -17,7 +17,7 @@ jerk_travel = 20 line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 15 material_standby_temperature = 100 -prime_tower_mode = normal +prime_tower_enable = True retraction_combing_max_distance = 50 speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) diff --git a/resources/quality/liquid/liquid_vo0.8_CPE_Superdraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_CPE_Superdraft_Print.inst.cfg index e56ee10a98..7857ed00e7 100644 --- a/resources/quality/liquid/liquid_vo0.8_CPE_Superdraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_CPE_Superdraft_Print.inst.cfg @@ -17,7 +17,7 @@ jerk_travel = 20 line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 20 material_standby_temperature = 100 -prime_tower_mode = normal +prime_tower_enable = True retraction_combing_max_distance = 50 speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/liquid/liquid_vo0.8_CPE_Verydraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_CPE_Verydraft_Print.inst.cfg index c8c93a744f..4194c6f3b7 100644 --- a/resources/quality/liquid/liquid_vo0.8_CPE_Verydraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_CPE_Verydraft_Print.inst.cfg @@ -17,7 +17,7 @@ jerk_travel = 20 line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 17 material_standby_temperature = 100 -prime_tower_mode = normal +prime_tower_enable = True retraction_combing_max_distance = 50 speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) diff --git a/resources/quality/liquid/liquid_vo0.8_Nylon_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_Nylon_Draft_Print.inst.cfg index 70db87df10..87dd876588 100644 --- a/resources/quality/liquid/liquid_vo0.8_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_Nylon_Draft_Print.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_standby_temperature = 100 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True raft_acceleration = =acceleration_layer_0 raft_airgap = =round(layer_height_0 * 0.85, 2) raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) diff --git a/resources/quality/liquid/liquid_vo0.8_Nylon_Superdraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_Nylon_Superdraft_Print.inst.cfg index a134533c46..891a20540d 100644 --- a/resources/quality/liquid/liquid_vo0.8_Nylon_Superdraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_Nylon_Superdraft_Print.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_standby_temperature = 100 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True raft_acceleration = =acceleration_layer_0 raft_airgap = =round(layer_height_0 * 0.85, 2) raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) diff --git a/resources/quality/liquid/liquid_vo0.8_Nylon_Verydraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_Nylon_Verydraft_Print.inst.cfg index d8c5450478..e009094760 100644 --- a/resources/quality/liquid/liquid_vo0.8_Nylon_Verydraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_Nylon_Verydraft_Print.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_standby_temperature = 100 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True raft_acceleration = =acceleration_layer_0 raft_airgap = =round(layer_height_0 * 0.85, 2) raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) diff --git a/resources/quality/liquid/liquid_vo0.8_PETG_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PETG_Draft_Print.inst.cfg index f941d5a55d..947c042b8c 100644 --- a/resources/quality/liquid/liquid_vo0.8_PETG_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PETG_Draft_Print.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True retract_at_layer_change = False speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/liquid/liquid_vo0.8_PETG_Superdraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PETG_Superdraft_Print.inst.cfg index d96bf8d17e..08cb14cb26 100644 --- a/resources/quality/liquid/liquid_vo0.8_PETG_Superdraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PETG_Superdraft_Print.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 15 -prime_tower_mode = normal +prime_tower_enable = True raft_margin = 10 retract_at_layer_change = False speed_print = 45 diff --git a/resources/quality/liquid/liquid_vo0.8_PETG_Verydraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PETG_Verydraft_Print.inst.cfg index 53142e5348..187ed1f212 100644 --- a/resources/quality/liquid/liquid_vo0.8_PETG_Verydraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PETG_Verydraft_Print.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True retract_at_layer_change = False speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/liquid/liquid_vo0.8_PLA_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PLA_Draft_Print.inst.cfg index 5a4cb62ee2..10b6e8185a 100644 --- a/resources/quality/liquid/liquid_vo0.8_PLA_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PLA_Draft_Print.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True retract_at_layer_change = False speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/liquid/liquid_vo0.8_PLA_Superdraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PLA_Superdraft_Print.inst.cfg index 4168b05c61..ed0fc7fd8a 100644 --- a/resources/quality/liquid/liquid_vo0.8_PLA_Superdraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PLA_Superdraft_Print.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 15 -prime_tower_mode = normal +prime_tower_enable = True raft_margin = 10 retract_at_layer_change = False speed_print = 45 diff --git a/resources/quality/liquid/liquid_vo0.8_PLA_Verydraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PLA_Verydraft_Print.inst.cfg index af930c749a..9def9ecb97 100644 --- a/resources/quality/liquid/liquid_vo0.8_PLA_Verydraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PLA_Verydraft_Print.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True retract_at_layer_change = False speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/liquid/liquid_vo0.8_PP_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PP_Draft_Print.inst.cfg index dab7612a6c..4c3f60a240 100644 --- a/resources/quality/liquid/liquid_vo0.8_PP_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PP_Draft_Print.inst.cfg @@ -26,9 +26,9 @@ material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 prime_tower_min_volume = 10 -prime_tower_mode = normal retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/liquid/liquid_vo0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PP_Superdraft_Print.inst.cfg index 7ec446e803..1b7c05ac3c 100644 --- a/resources/quality/liquid/liquid_vo0.8_PP_Superdraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PP_Superdraft_Print.inst.cfg @@ -26,9 +26,9 @@ material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 prime_tower_min_volume = 20 -prime_tower_mode = normal retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/liquid/liquid_vo0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_PP_Verydraft_Print.inst.cfg index 9913ea3779..7cbb60c3aa 100644 --- a/resources/quality/liquid/liquid_vo0.8_PP_Verydraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_PP_Verydraft_Print.inst.cfg @@ -25,9 +25,9 @@ material_bed_temperature_layer_0 = =material_bed_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 prime_tower_min_volume = 15 -prime_tower_mode = normal retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/liquid/liquid_vo0.8_TPU_Draft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_TPU_Draft_Print.inst.cfg index 54d9c23b98..4994e3f9f4 100644 --- a/resources/quality/liquid/liquid_vo0.8_TPU_Draft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_TPU_Draft_Print.inst.cfg @@ -30,8 +30,8 @@ material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =material_print_temperature + 19 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 -prime_tower_mode = normal retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/liquid/liquid_vo0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_TPU_Superdraft_Print.inst.cfg index 289e9d48b7..fd15d041b8 100644 --- a/resources/quality/liquid/liquid_vo0.8_TPU_Superdraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_TPU_Superdraft_Print.inst.cfg @@ -31,8 +31,8 @@ material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =material_print_temperature + 15 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 -prime_tower_mode = normal retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/liquid/liquid_vo0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/liquid/liquid_vo0.8_TPU_Verydraft_Print.inst.cfg index c8cad9bb3f..5c88fb165f 100644 --- a/resources/quality/liquid/liquid_vo0.8_TPU_Verydraft_Print.inst.cfg +++ b/resources/quality/liquid/liquid_vo0.8_TPU_Verydraft_Print.inst.cfg @@ -30,8 +30,8 @@ material_initial_print_temperature = =material_print_temperature material_print_temperature_layer_0 = =material_print_temperature + 17 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 -prime_tower_mode = normal retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 diff --git a/resources/quality/nps/nps_ABS_B.inst.cfg b/resources/quality/nps/nps_ABS_B.inst.cfg index 520bda4b05..3f700405bd 100644 --- a/resources/quality/nps/nps_ABS_B.inst.cfg +++ b/resources/quality/nps/nps_ABS_B.inst.cfg @@ -22,7 +22,7 @@ material_bed_temperature = 100 material_flow = 96 material_print_temperature = =default_material_print_temperature + 13 material_print_temperature_layer_0 = =243 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/nps/nps_ABS_C.inst.cfg b/resources/quality/nps/nps_ABS_C.inst.cfg index 1131f61d36..6138e4004c 100644 --- a/resources/quality/nps/nps_ABS_C.inst.cfg +++ b/resources/quality/nps/nps_ABS_C.inst.cfg @@ -22,7 +22,7 @@ material_bed_temperature = 100 material_flow = 91 material_print_temperature = =default_material_print_temperature + 15 material_print_temperature_layer_0 = =245 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/nps/nps_PC_A.inst.cfg b/resources/quality/nps/nps_PC_A.inst.cfg index 90cc71d951..8665f8ceae 100644 --- a/resources/quality/nps/nps_PC_A.inst.cfg +++ b/resources/quality/nps/nps_PC_A.inst.cfg @@ -32,7 +32,7 @@ material_bed_temperature = 110 material_flow = 100 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =280 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/nps/nps_PC_B.inst.cfg b/resources/quality/nps/nps_PC_B.inst.cfg index 3761d802d7..9ccb5cea53 100644 --- a/resources/quality/nps/nps_PC_B.inst.cfg +++ b/resources/quality/nps/nps_PC_B.inst.cfg @@ -32,7 +32,7 @@ material_bed_temperature = 110 material_flow = 88 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = 275 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/nps/nps_PC_C.inst.cfg b/resources/quality/nps/nps_PC_C.inst.cfg index 85752e78c2..30267d4237 100644 --- a/resources/quality/nps/nps_PC_C.inst.cfg +++ b/resources/quality/nps/nps_PC_C.inst.cfg @@ -32,7 +32,7 @@ material_bed_temperature = 110 material_flow = 88 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = 275 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/nps/nps_PETG_A.inst.cfg b/resources/quality/nps/nps_PETG_A.inst.cfg index 0985dd1b3a..3cae430f1c 100644 --- a/resources/quality/nps/nps_PETG_A.inst.cfg +++ b/resources/quality/nps/nps_PETG_A.inst.cfg @@ -22,7 +22,7 @@ material_bed_temperature = 80 material_flow = 98 material_print_temperature = =default_material_print_temperature + 20 material_print_temperature_layer_0 = =230 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/nps/nps_PETG_B.inst.cfg b/resources/quality/nps/nps_PETG_B.inst.cfg index e3a5f165ad..5860f65414 100644 --- a/resources/quality/nps/nps_PETG_B.inst.cfg +++ b/resources/quality/nps/nps_PETG_B.inst.cfg @@ -22,7 +22,7 @@ material_bed_temperature = 80 material_flow = 95 material_print_temperature = =default_material_print_temperature + 20 material_print_temperature_layer_0 = =230 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_A.inst.cfg index 0569a356f3..39ba32a332 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 100 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_B.inst.cfg index e906508f7f..dd0d167e6b 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 96 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_C.inst.cfg index a883aba2ec..f894a7dc13 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS-X_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_A.inst.cfg index dc595e8c5d..7642489c2a 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 100 material_print_temperature = =default_material_print_temperature + 1 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_B.inst.cfg index a84b12135f..bf5c18405b 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 96 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 1 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_C.inst.cfg index ef6358a6a0..6756384e4a 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ABS_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature +3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_A.inst.cfg index 7a0cd7ee8d..978484d813 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 98 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_B.inst.cfg index 4fa5d070aa..bcec4fe68f 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 95 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 0 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_C.inst.cfg index 7944c44371..85f79ebe7a 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ACETATE_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 93 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_A.inst.cfg index fb2ee81c9f..9b29e49624 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 100 material_print_temperature = =default_material_print_temperature + 1 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_B.inst.cfg index 4e63f1513d..07a46f0d05 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 96 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_C.inst.cfg index 5e158007ab..60410d8d34 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_ASA-X_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 7 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_A.inst.cfg index f73adbfa51..9304630630 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_A.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_B.inst.cfg index da2aa05237..d39d91c91a 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_B.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_C.inst.cfg index e636a5ebee..e716824cf0 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_COPA_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_A.inst.cfg index a997ac74dd..bd964bed2a 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_B.inst.cfg index 7055e3dadd..cd27f77737 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_C.inst.cfg index 6c66ffd76c..78191af7be 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_HIPS_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_A.inst.cfg index f451618a28..f37a3b4d6d 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_A.inst.cfg @@ -34,7 +34,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 88 material_print_temperature = 260 material_print_temperature_layer_0 = 265 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_B.inst.cfg index 5866dad50b..75fed99b1e 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_B.inst.cfg @@ -34,7 +34,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 88 material_print_temperature = 270 material_print_temperature_layer_0 = 275 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_C.inst.cfg index 502dd8be07..51911c3811 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PC_C.inst.cfg @@ -34,7 +34,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 88 material_print_temperature = 270 material_print_temperature_layer_0 = 275 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PEKK_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PEKK_B.inst.cfg index 5279228105..e4596d9def 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PEKK_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PEKK_B.inst.cfg @@ -33,7 +33,7 @@ material_flow = 105 material_flow_layer_0 = 120 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 15 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_A.inst.cfg index 92c62d2b43..d0faf6eb66 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 98 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_B.inst.cfg index 92811521ac..3a64a52254 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_C.inst.cfg index 234d33c2eb..debf74ed0d 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PETG_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature +5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_A.inst.cfg index 76ea2997ba..990d5cf645 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 98 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_B.inst.cfg index fc3d8e47ec..82f26cd66d 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_C.inst.cfg index f4bfb4c698..a91b035e38 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_A.inst.cfg index 82715060a6..c7194e18d2 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_A.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 10 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_amount = 2 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_B.inst.cfg index ca19b0ee14..078e213a26 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_B.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_amount = 2 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_C.inst.cfg index f61b83ab7b..bfb4c46c46 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_PLA_HT_C.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_amount = 2 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_A.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_A.inst.cfg index 85097b4506..8dd1c17ea6 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_A.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.38 material_flow = 107 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature - 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = False retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_B.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_B.inst.cfg index 967f7c21a5..cca98aa599 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_B.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.38 material_flow = 103 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = False retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_C.inst.cfg b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_C.inst.cfg index 9110650629..5a343d6893 100644 --- a/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_C.inst.cfg +++ b/resources/quality/strateo3d/HT0_4/s3d_ht0.4_TPU98A_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.38 material_flow = 101 material_print_temperature = =default_material_print_temperature + 7 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = False retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_A.inst.cfg index de6356694f..e6be881341 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 100 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_B.inst.cfg index ec119cba9f..c4342c149a 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 96 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_C.inst.cfg index 0b4df9f3a3..e3581e0823 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS-X_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_A.inst.cfg index ad5d8c8586..4c451894bd 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 100 material_print_temperature = =default_material_print_temperature + 1 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_B.inst.cfg index e0600e72d8..65c2c9e81f 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 96 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 1 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_C.inst.cfg index 5827b15cf9..2f5cf9cfa3 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ABS_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature +3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_A.inst.cfg index 3ee7204b92..36d6697edb 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 98 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_B.inst.cfg index 4834ca9eef..e92561350a 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 95 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 0 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_C.inst.cfg index 4850f68dc0..e61775fde0 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ACETATE_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 93 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_A.inst.cfg index ec7cbcc0fd..020b95dad2 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 100 material_print_temperature = =default_material_print_temperature + 1 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_B.inst.cfg index 6f086f0605..6688d82ec8 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 96 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_C.inst.cfg index ff5016d543..2c8d6a82d3 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_ASA-X_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 7 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_A.inst.cfg index e324931269..fe012ff873 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_B.inst.cfg index 5aea3605f5..c0adce0f84 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_C.inst.cfg index 24a1faed48..5b58c2f37b 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_BVOH_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_A.inst.cfg index d73b6ac796..f986831fd5 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_A.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_B.inst.cfg index 14d3867950..5d360b244b 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_B.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_C.inst.cfg index 26e6ebc4df..3875e668f4 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_COPA_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_A.inst.cfg index 54954ff567..d4d0e1c17e 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_B.inst.cfg index 057fb1b8cc..f2bb237ea2 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_C.inst.cfg index 63f71cff82..f6780fbded 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_HIPS_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_A.inst.cfg index afef00df11..6e726932a6 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_A.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_B.inst.cfg index 7b81803b0c..7ef50ff5b1 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_B.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_C.inst.cfg index c0ac99423d..4d4af1e0f7 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6CF_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_A.inst.cfg index bd0f177b1b..0d88c99c85 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_A.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_B.inst.cfg index 586d49b7db..de476e6e46 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_B.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_C.inst.cfg index 16c8c5e6aa..3fe7ff347c 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PA6GF_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_A.inst.cfg index 71a70f0849..9dd3039b65 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_A.inst.cfg @@ -34,7 +34,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 88 material_print_temperature = 260 material_print_temperature_layer_0 = 265 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_B.inst.cfg index ad26bba4cb..346f33bafb 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_B.inst.cfg @@ -34,7 +34,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 88 material_print_temperature = 270 material_print_temperature_layer_0 = 275 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_C.inst.cfg index e4da72d39a..8571e8c4b0 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PC_C.inst.cfg @@ -34,7 +34,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 88 material_print_temperature = 270 material_print_temperature_layer_0 = 275 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_A.inst.cfg index b7bebe13b7..4231e1b3a1 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 98 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_B.inst.cfg index f3bc48c8c9..c141a0ab07 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_C.inst.cfg index 70c2d3044c..9cd4262c55 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PETG_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature +5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_A.inst.cfg index d52ceb51ea..6f49ec9e3b 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 98 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_B.inst.cfg index 6124b1dfed..415379417c 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_C.inst.cfg index b4a8bc21f4..c4ce86563f 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 91 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_A.inst.cfg index a764026ca7..dc4505591f 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_A.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 10 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_amount = 2 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_B.inst.cfg index 11b9d689c8..224fa18cd6 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_B.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_amount = 2 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_C.inst.cfg index 7521ef5d62..44737981b0 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PLA_HT_C.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_amount = 2 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_A.inst.cfg index 6de69d4eba..8bf71b5cf5 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_B.inst.cfg index e2b282ab2a..3102afdc2c 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_C.inst.cfg index 60d02fac6d..ad6e361582 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-M_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_A.inst.cfg index 4969aad456..b7445aee86 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_B.inst.cfg index 7bf8dc30d4..cc849df9ba 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_C.inst.cfg index 27cef2d7c9..10cbd3a4cf 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_PVA-S_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.4 material_flow = 97 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_A.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_A.inst.cfg index 24e3a1f238..055bbb7623 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_A.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_A.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.38 material_flow = 107 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature - 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = False retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_B.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_B.inst.cfg index 4211634c6d..028586beb4 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.38 material_flow = 103 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = False retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_C.inst.cfg b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_C.inst.cfg index bd2c12c3f1..8bc0b97bc5 100644 --- a/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_4/s3d_std0.4_TPU98A_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.38 material_flow = 101 material_print_temperature = =default_material_print_temperature + 7 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = False retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_B.inst.cfg index 589f27a221..ec355cec15 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 100 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_C.inst.cfg index bca586491d..3ab4df020c 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 98 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_D.inst.cfg index 2e90b6fd6f..455cb44a7b 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS-X_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 96 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_B.inst.cfg index e2f63845ee..3475c621c3 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 100 material_print_temperature = =default_material_print_temperature + 1 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_C.inst.cfg index bc9df5fa14..d7d937fdef 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 98 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 1 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_D.inst.cfg index 7216eb093c..e83067bdc8 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ABS_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 96 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_B.inst.cfg index a90e755a49..188cddf0d6 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_C.inst.cfg index 1d54fd6b3c..6127c2ec43 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 93 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 0 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_D.inst.cfg index 90d3d00507..ca38be0476 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ACETATE_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 91 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_B.inst.cfg index ca2b4a9c9e..caa9003cb3 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 101 material_print_temperature = =default_material_print_temperature + 1 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_C.inst.cfg index b297719ba1..a10cbdac7d 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 99 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_D.inst.cfg index 34882ab1af..85fe174e95 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_ASA-X_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 97 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 7 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_B.inst.cfg index 07969b958a..9b48be1b8b 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_C.inst.cfg index ecd3384a5b..0440a0a34a 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_D.inst.cfg index a4a87bc3f3..7f124ae4ec 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_BVOH_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_B.inst.cfg index c0f93168da..f662c41048 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_B.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_amount = 3 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_C.inst.cfg index 4116205747..dae0dda098 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_amount = 3 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_D.inst.cfg index df1fb6e2e7..1079c746ec 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_COPA_D.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_amount = 3 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_B.inst.cfg index aa5bfa30f2..04991249e9 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_C.inst.cfg index 887a35f80e..685778f3f1 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_D.inst.cfg index a9a4bcb18f..ab5eca1d47 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_HIPS_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_Nylon-1030_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_Nylon-1030_C.inst.cfg index d73114c313..a5a2addbc6 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_Nylon-1030_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_Nylon-1030_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 93 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_B.inst.cfg index e3f0657f1f..6ecc9a3265 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_B.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_C.inst.cfg index 542f9405b1..9e060959dd 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_D.inst.cfg index 43ff676c46..322d30a975 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6CF_D.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_B.inst.cfg index 2cca8a5c45..5ae6c32cb8 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_B.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_C.inst.cfg index 951e26d841..3fbe1f6370 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_D.inst.cfg index f408c5a293..46aacdf22c 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PA6GF_D.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_B.inst.cfg index 8b72022a0d..6997dae536 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_B.inst.cfg @@ -33,7 +33,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 87 material_print_temperature = 270 material_print_temperature_layer_0 = 275 -prime_tower_mode = normal +prime_tower_enable = True retraction_amount = 2 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_C.inst.cfg index 2540f2bea9..70bb7206af 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_C.inst.cfg @@ -33,7 +33,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 87 material_print_temperature = 270 material_print_temperature_layer_0 = 275 -prime_tower_mode = normal +prime_tower_enable = True retraction_amount = 2 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_D.inst.cfg index c6bd8cc70e..eb89937ded 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PC_D.inst.cfg @@ -33,7 +33,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 87 material_print_temperature = 270 material_print_temperature_layer_0 = 275 -prime_tower_mode = normal +prime_tower_enable = True retraction_amount = 2 retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_B.inst.cfg index 02b8e45e22..4bc567a2d9 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 93 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_C.inst.cfg index 26e2eb5029..f08c2e68b7 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 92 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_D.inst.cfg index f97462d99c..4a9a1472b8 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PETG_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 91 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature +5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_B.inst.cfg index 540e14ba23..41edbc8e32 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 93 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_C.inst.cfg index af851371a1..10356ad344 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 92 material_print_temperature = =default_material_print_temperature + 8 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_D.inst.cfg index e2470b9ecf..9f04791ac2 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 91 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_B.inst.cfg index 21c4f9eccc..56e09ac385 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_B.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_C.inst.cfg index b210d0fd30..6c8a5462aa 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_C.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_D.inst.cfg index 6b6a5923ce..be4a045e0d 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PLA_HT_D.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_B.inst.cfg index f677ac9e32..6b107e9c9b 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_C.inst.cfg index 9ed4c381c9..ca169572b9 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_D.inst.cfg index 3f928f436d..7e7a3ed9d1 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-M_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_B.inst.cfg index d8e702dc7a..a08e251fe0 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_C.inst.cfg index 53516d4617..2bcf4d4b1d 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_D.inst.cfg index e7298a71d3..1352a75a8a 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_PVA-S_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.6 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_B.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_B.inst.cfg index cd9de526ec..ad699959aa 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_B.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_B.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.55 material_flow = 105 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature - 2 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = False retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_C.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_C.inst.cfg index 4de06235da..6fdabc1a83 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.55 material_flow = 103 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = False retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_D.inst.cfg b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_D.inst.cfg index 431623b7c6..1954931cc7 100644 --- a/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_6/s3d_std0.6_TPU98A_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.55 material_flow = 101 material_print_temperature = =default_material_print_temperature + 7 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.2 retraction_hop_only_when_collides = False retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_C.inst.cfg index e0c29062d7..913af1994b 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 1 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_D.inst.cfg index 9230df64e3..573834fc79 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 96 material_print_temperature = =default_material_print_temperature + 7 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_E.inst.cfg index 7117a889ed..3d5d1781ae 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS-X_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 95 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_C.inst.cfg index 97d2209bda..4910a69272 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_D.inst.cfg index 111504ad7b..28d395019a 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 96 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 2 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_E.inst.cfg index d5322c039a..b91ceb1f85 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ABS_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 95 material_print_temperature = =default_material_print_temperature + 7 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_C.inst.cfg index 74d0fa3869..4a32ddceaf 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature + 1 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_D.inst.cfg index 80dfbe8dbc..e45a8970f7 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 96 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_E.inst.cfg index 26decee7ba..c0a9632b95 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_ASA-X_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 7 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_C.inst.cfg index 850458ed36..bce7e2891f 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_D.inst.cfg index 06f9ed6686..0a053f123e 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_E.inst.cfg index 36398c0cfc..4f167ecacc 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_BVOH_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_C.inst.cfg index 8dd9bc10fb..8efea7e264 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop = 2 retraction_hop_enabled = True diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_D.inst.cfg index fb149908d1..d2f6973da7 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_D.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop = 2 retraction_hop_enabled = True diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_E.inst.cfg index 47d9a50940..57e9fc27a4 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_COPA_E.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop = 2 retraction_hop_enabled = True diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_C.inst.cfg index e57fefc2b9..2ef4a5b479 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_D.inst.cfg index 0cbddce4c9..a7549a851c 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_E.inst.cfg index 965c08e8f9..322f31e986 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_HIPS_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_C.inst.cfg index 4062997ba0..6f3fa578bf 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_D.inst.cfg index e6acfe27b8..ee3166e7da 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_D.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_E.inst.cfg index 602837f410..05eabcc6a3 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6CF_E.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_C.inst.cfg index d5bb0ac8ba..d10b2df53b 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_C.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_D.inst.cfg index 022a6f36bf..181d89f957 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_D.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_E.inst.cfg index 35421e68d6..38bd72884b 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PA6GF_E.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_C.inst.cfg index 65217b7ff9..d8b2e660fc 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_C.inst.cfg @@ -35,7 +35,7 @@ material_print_temperature = 280 material_print_temperature_layer_0 = 285 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_min_travel = =2*line_width retraction_speed = 35 diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_D.inst.cfg index 118acb433f..c39338eeca 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_D.inst.cfg @@ -35,7 +35,7 @@ material_print_temperature = 280 material_print_temperature_layer_0 = 285 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_min_travel = =2*line_width retraction_speed = 35 diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_E.inst.cfg index c8102ecdf9..f88eff1615 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PC_E.inst.cfg @@ -35,7 +35,7 @@ material_print_temperature = 280 material_print_temperature_layer_0 = 285 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_min_travel = =2*line_width retraction_speed = 35 diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_C.inst.cfg index df178b1807..59a6db473d 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.4 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_D.inst.cfg index 95973a4428..9a94498b12 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.4 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_E.inst.cfg index 32073574ea..2611e1deba 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PETG_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 93 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature +5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.4 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_C.inst.cfg index 4b306434b9..35644e47a8 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 99 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_D.inst.cfg index 99a245dfb4..a820dd8467 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 98 material_print_temperature = =default_material_print_temperature + 7 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_E.inst.cfg index d7ecb95748..a4f135a4fa 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_C.inst.cfg index 9a973d225d..ee58caf9e6 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_C.inst.cfg @@ -27,7 +27,7 @@ material_flow = 93 material_initial_print_temperature = =default_material_print_temperature material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_D.inst.cfg index 6ff6a8dd0e..6399e7fd1f 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_D.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_E.inst.cfg index 5f19e2ab77..e034d49e6e 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PLA_HT_E.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_C.inst.cfg index 5ea81eab76..632c45a51f 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_D.inst.cfg index cc5ecebffe..e882d42015 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_E.inst.cfg index d133a60b41..7b52c7bb2d 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-M_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_C.inst.cfg index 1e243bbea4..a0fcdc4a52 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_D.inst.cfg index 54889f9923..496e5fe215 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_E.inst.cfg index 8f484b0616..9c676c934b 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_PVA-S_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.8 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_C.inst.cfg index f328b88645..0b4c3c0281 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.7 material_flow = 105 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_D.inst.cfg index 9d11111b78..ffbb925a22 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.7 material_flow = 103 material_print_temperature = =default_material_print_temperature + 6 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_E.inst.cfg index ed25c0fb46..60af5617e3 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU98A_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.7 material_flow = 101 material_print_temperature = =default_material_print_temperature + 9 material_print_temperature_layer_0 = =default_material_print_temperature +5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_C.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_C.inst.cfg index 0b70ff0384..71581b46ad 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_C.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_C.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.7 material_flow = 100 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_D.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_D.inst.cfg index f519ec66d5..bcbb45062a 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.7 material_flow = 100 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_E.inst.cfg b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_E.inst.cfg index 83c109070a..827ae4a7ba 100644 --- a/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_0_8/s3d_std0.8_TPU_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.7 material_flow = 100 material_print_temperature = =default_material_print_temperature + 7 material_print_temperature_layer_0 = =default_material_print_temperature +3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_D.inst.cfg index 09ffbaed98..29f88f6e15 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_E.inst.cfg index ff50fd3deb..316e5d4447 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_F.inst.cfg index fbbc7a0187..44203ad144 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ABS_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature +5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_D.inst.cfg index 95a6d4e732..e322951476 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 100 material_print_temperature = =default_material_print_temperature + 1 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.4 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_E.inst.cfg index 2c0caa6a06..b4ee9ea985 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 100 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.4 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_F.inst.cfg index c896adef1b..708896fdb7 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_ASA-X_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 100 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 7 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.4 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_D.inst.cfg index 0dcc4405d7..63ca3d88ff 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_E.inst.cfg index 73dce76c2e..62ed1914db 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_F.inst.cfg index 36902a619f..ac9ec6324e 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_BVOH_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_D.inst.cfg index b0bc012110..b225d8a911 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_E.inst.cfg index baf4211645..6e859c8dd0 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_F.inst.cfg index 754d20c802..6b8ebd9d20 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_HIPS_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_D.inst.cfg index 717aed8e49..f168d4cf46 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_D.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_E.inst.cfg index d41dea9d7b..652876d6b2 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_E.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_F.inst.cfg index b708481aeb..482b99c2f6 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6CF_F.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_D.inst.cfg index 5e604e6f65..551e79a8e4 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_D.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_E.inst.cfg index 31f7a30f3f..5709736147 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_E.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_F.inst.cfg index f35389424c..38f3b2b2ef 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PA6GF_F.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_D.inst.cfg index 902e42aef1..54a6d54cc0 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 95 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_E.inst.cfg index f1fc4dd877..abdd37d98d 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 95 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_F.inst.cfg index 03c73269f8..50f3b04e16 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PETG_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 95 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_D.inst.cfg index ddf8abc4c1..35e9d19957 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_E.inst.cfg index 77eb559e6e..6e59384a4d 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 100 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_F.inst.cfg index 5053e91cbb..9df5f69d75 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PLA_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 100 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature +5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_D.inst.cfg index 0e658a7bd2..45b5a9e415 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_E.inst.cfg index f30a55729c..70ec1234ff 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_F.inst.cfg index eca2362651..6327502027 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-M_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_D.inst.cfg index ec460ac49e..d7056a3f11 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_E.inst.cfg index 1e85473f67..a5ec67621f 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_F.inst.cfg index 9650dac1c0..4ddc98ddd2 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_PVA-S_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.0 material_flow = 97 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_D.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_D.inst.cfg index 38cf5927f0..1b3a77ab8b 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_D.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_D.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.9 material_flow = 107 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_E.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_E.inst.cfg index 60baaa1038..be45c084a5 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_E.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_E.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.9 material_flow = 107 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_F.inst.cfg b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_F.inst.cfg index 385d21e44d..c02401c4d5 100644 --- a/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_0_Experimental/s3d_std1.0_TPU98A_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*0.9 material_flow = 107 material_print_temperature = =default_material_print_temperature + 8 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_F.inst.cfg index ef7573779d..ba91c749d5 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 103 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_G.inst.cfg index 86e4022a27..b1d4c72a34 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_G.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 102 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_H.inst.cfg index aa2af46845..4fac7e687d 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ABS_H.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 101 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature +5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_F.inst.cfg index 915523eadf..91b4699598 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature + 1 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_G.inst.cfg index d258496552..8d84bc4fd5 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_G.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_H.inst.cfg index 93420a5103..eafe3eef80 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_ASA-X_H.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 7 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_F.inst.cfg index 41764726df..3286e7fb08 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_G.inst.cfg index 2e4bb516b0..bb164bcd99 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_G.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_H.inst.cfg index 700c0102c2..82ad174a95 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_BVOH_H.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_F.inst.cfg index 941f0a6c81..f33abf1ec3 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 103 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_G.inst.cfg index 4cd7728a69..2edb0e32f8 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_G.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 102 material_print_temperature = =default_material_print_temperature + 3 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_H.inst.cfg index 01b584afcd..30d7139eb9 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_HIPS_H.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 101 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_F.inst.cfg index a4c6fd4046..1bf36453d1 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_F.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_G.inst.cfg index 376c9b1d51..f413dd3e17 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_G.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_H.inst.cfg index 5e27fec150..9b228f7b05 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6CF_H.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_F.inst.cfg index 5ca32bd655..68c8604a95 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_F.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_G.inst.cfg index bdebb9a0ac..66fc7c2f92 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_G.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_H.inst.cfg index 01c65f4586..aceba867c2 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PA6GF_H.inst.cfg @@ -37,7 +37,7 @@ material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 5 meshfix_maximum_deviation = 0.04 meshfix_maximum_resolution = 0.5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.1 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_F.inst.cfg index 9a8aaeb18e..a34c3a4d45 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_G.inst.cfg index ba4d2b22ec..bd41a808d0 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_G.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_H.inst.cfg index 2b1b5fb2f9..6036150353 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PETG_H.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 95 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_F.inst.cfg index 6e05ba15a6..c150380c74 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 107 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_G.inst.cfg index 56765cb156..74ce8559d2 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_G.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 105 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_H.inst.cfg index 36d6248682..f59b68f675 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PLA_H.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 103 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.5 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_F.inst.cfg index d88ff841d0..689c1fe076 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_G.inst.cfg index 9bb1258fc8..514cdcbfde 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_G.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_H.inst.cfg index 7a662ec6d1..123dc9a953 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-M_H.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_F.inst.cfg index 767b72a566..9c3f620a2d 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_G.inst.cfg index da088dc345..0b841dfb09 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_G.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_H.inst.cfg index 1ae6c25ebb..adfe816125 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_PVA-S_H.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.2 material_flow = 100 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = True retraction_min_travel = =3*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_F.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_F.inst.cfg index a9eb8331c8..4b6108e51d 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_F.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_F.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.1 material_flow = 111 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_G.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_G.inst.cfg index 03cb145944..99af35534f 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_G.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_G.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.1 material_flow = 111 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =default_material_print_temperature + 3 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_H.inst.cfg b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_H.inst.cfg index ac77c87265..21043cae58 100644 --- a/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_H.inst.cfg +++ b/resources/quality/strateo3d/Standard_1_2_Experimental/s3d_std1.2_TPU98A_H.inst.cfg @@ -24,7 +24,7 @@ line_width = =machine_nozzle_size/machine_nozzle_size*1.1 material_flow = 111 material_print_temperature = =default_material_print_temperature + 8 material_print_temperature_layer_0 = =default_material_print_temperature + 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_extra_prime_amount = 0.3 retraction_hop_only_when_collides = False retraction_min_travel = =2*line_width diff --git a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Only_Quality.inst.cfg b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Only_Quality.inst.cfg index 538bcfedb9..ac5f3e5bee 100644 --- a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Only_Quality.inst.cfg +++ b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Only_Quality.inst.cfg @@ -22,8 +22,8 @@ material_final_print_temperature = =material_print_temperature material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature optimize_wall_printing_order = True +prime_tower_enable = True prime_tower_flow = 110 -prime_tower_mode = normal prime_tower_size = 35 retraction_min_travel = 2 skirt_gap = 2 diff --git a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Quality.inst.cfg b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Quality.inst.cfg index 86c4cd1894..eca85becc6 100644 --- a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Quality.inst.cfg +++ b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Flex_Quality.inst.cfg @@ -19,8 +19,8 @@ material_final_print_temperature = =material_print_temperature material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature optimize_wall_printing_order = True +prime_tower_enable = True prime_tower_flow = 110 -prime_tower_mode = normal prime_tower_size = 35 retraction_hop_enabled = False support_enable = True diff --git a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_High_Quality.inst.cfg b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_High_Quality.inst.cfg index 83ec574663..8071d7193e 100644 --- a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_High_Quality.inst.cfg +++ b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_High_Quality.inst.cfg @@ -30,8 +30,8 @@ material_flow_layer_0 = 93 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature optimize_wall_printing_order = True +prime_tower_enable = True prime_tower_flow = 110 -prime_tower_mode = normal prime_tower_size = 35 retraction_amount = 5 retraction_hop_enabled = False diff --git a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Normal_Quality.inst.cfg b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Normal_Quality.inst.cfg index 2269a480a5..8354fba5e0 100644 --- a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Normal_Quality.inst.cfg +++ b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_Normal_Quality.inst.cfg @@ -30,8 +30,8 @@ material_flow_layer_0 = 93 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature optimize_wall_printing_order = True +prime_tower_enable = True prime_tower_flow = 110 -prime_tower_mode = normal prime_tower_size = 35 retraction_amount = 5 retraction_hop_enabled = False diff --git a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_PVA_Quality.inst.cfg b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_PVA_Quality.inst.cfg index 4fed169568..074632abda 100644 --- a/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_PVA_Quality.inst.cfg +++ b/resources/quality/tizyx/tizyx_evy_dual/tizyx_evy_dual_global_PVA_Quality.inst.cfg @@ -19,8 +19,8 @@ material_final_print_temperature = =material_print_temperature material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature optimize_wall_printing_order = True +prime_tower_enable = True prime_tower_flow = 110 -prime_tower_mode = normal prime_tower_size = 35 retraction_hop_enabled = False support_enable = True diff --git a/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg index 632a1fb46d..eeb924906f 100644 --- a/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg @@ -21,7 +21,7 @@ machine_min_cool_heat_time_window = 15 material_print_temperature = =default_material_print_temperature - 10 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg index 0667ef961d..a64c8298a2 100644 --- a/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg @@ -21,7 +21,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg index d93ba61d9d..16be0db845 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg @@ -15,7 +15,7 @@ weight = -2 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = none +prime_tower_enable = False skin_overlap = 20 speed_print = 60 speed_topbottom = =math.ceil(speed_print * 35 / 60) diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg index b92a826f5a..916b283c9c 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg @@ -15,7 +15,7 @@ weight = -1 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 10 -prime_tower_mode = none +prime_tower_enable = False speed_print = 60 speed_topbottom = =math.ceil(speed_print * 30 / 60) speed_wall = =math.ceil(speed_print * 40 / 60) diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg index 2fe35f1a2e..5dcbe80bbb 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg @@ -15,7 +15,7 @@ weight = 1 machine_nozzle_cool_down_speed = 0.8 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 20 -prime_tower_mode = none +prime_tower_enable = False speed_print = 50 speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_wall = =math.ceil(speed_print * 30 / 50) diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg index fcecc2701b..1420880995 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg @@ -15,7 +15,7 @@ weight = 0 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 15 -prime_tower_mode = none +prime_tower_enable = False speed_print = 55 speed_topbottom = =math.ceil(speed_print * 30 / 55) speed_wall = =math.ceil(speed_print * 30 / 55) diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg index cf417a84b6..e0dd43cc28 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg @@ -16,7 +16,7 @@ brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 skin_overlap = 20 speed_topbottom = =math.ceil(speed_print * 35 / 70) speed_wall = =math.ceil(speed_print * 50 / 70) diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg index 363a43975e..16ece7c2dd 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg @@ -15,7 +15,7 @@ weight = -1 brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 speed_print = 80 speed_topbottom = =math.ceil(speed_print * 30 / 80) speed_wall = =math.ceil(speed_print * 40 / 80) diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg index 92dae4a19f..ca7fd8cbf3 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg @@ -15,7 +15,7 @@ weight = 0 brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 skin_overlap = 10 support_angle = 45 support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg index 2540a78b21..5de59e58c9 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg @@ -18,7 +18,7 @@ infill_wipe_dist = 0 layer_height = 0.2 machine_min_cool_heat_time_window = 15 multiple_mesh_overlap = 0 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg index 37e8df992d..b2020831d7 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg @@ -18,7 +18,7 @@ infill_wipe_dist = 0 layer_height = 0.15 machine_min_cool_heat_time_window = 15 multiple_mesh_overlap = 0 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg index 5ba84b0564..4be3a9c13a 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 8 multiple_mesh_overlap = 0 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg index 0fb115b548..2e24f485d0 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg @@ -20,7 +20,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 5 multiple_mesh_overlap = 0 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg index d0d447acdf..28e8ccbf75 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg @@ -24,7 +24,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg index e55a49baba..5113277ab2 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg @@ -23,7 +23,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg index ee55427cf7..636ce41e71 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 20 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg index 15410514cd..a7c533bfea 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg @@ -23,7 +23,7 @@ machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 10 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg index a79b715ee0..1d44e48193 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg @@ -15,7 +15,7 @@ weight = -2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_mode = none +prime_tower_enable = False skin_overlap = 20 speed_topbottom = =math.ceil(speed_print * 40 / 70) speed_wall = =math.ceil(speed_print * 55 / 70) diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg index a838352f48..6b99ed5a70 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg @@ -14,7 +14,7 @@ weight = -1 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = none +prime_tower_enable = False speed_print = 80 speed_topbottom = =math.ceil(speed_print * 30 / 80) speed_wall = =math.ceil(speed_print * 40 / 80) diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg index e5a10d9222..97be45babc 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg @@ -15,7 +15,7 @@ weight = 1 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = none +prime_tower_enable = False skin_overlap = 10 speed_print = 60 speed_topbottom = =math.ceil(speed_print * 30 / 60) diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg index 486b74c1b2..f305caa82d 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg @@ -14,7 +14,7 @@ weight = 0 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = none +prime_tower_enable = False skin_overlap = 10 top_bottom_thickness = 1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg index 4293ca81f1..c82043d3af 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg @@ -24,7 +24,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 8 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_amount = 6.5 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg index 1b396f5417..74a628f7cb 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg @@ -23,7 +23,7 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg index 6c4ee71b82..fa9b4c54ea 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg @@ -23,7 +23,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg index d8fca155d3..cffd1e6075 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg @@ -14,7 +14,7 @@ weight = -2 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = none +prime_tower_enable = False skin_overlap = 20 speed_print = 50 speed_roofing = =math.ceil(speed_wall * 20 / 24) diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg index 5ea9fe9336..94fe824f5e 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg @@ -14,7 +14,7 @@ weight = -1 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = none +prime_tower_enable = False speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg index 4e03569ca6..05a6896646 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg @@ -15,7 +15,7 @@ weight = 0 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = none +prime_tower_enable = False skin_overlap = 10 speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg index 0443afa3f6..dcca81f3ef 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg @@ -17,7 +17,7 @@ brim_width = 14 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 20 -prime_tower_mode = normal +prime_tower_enable = True retraction_hop = 0.1 retraction_hop_enabled = False skin_overlap = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg index ccae2cc5d8..585ae8eefe 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -18,7 +18,7 @@ layer_height = 0.4 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 15 -prime_tower_mode = normal +prime_tower_enable = True retraction_hop = 0.1 retraction_hop_enabled = False skin_overlap = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg index 9596b00d33..2280a837ae 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -18,7 +18,7 @@ layer_height = 0.3 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 17 -prime_tower_mode = normal +prime_tower_enable = True retraction_hop = 0.1 retraction_hop_enabled = False skin_overlap = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg index 4a7e29ec36..b1f867807b 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg @@ -14,7 +14,7 @@ weight = -2 [values] brim_width = 15 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg index 5c5b732990..a75ae74ada 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg @@ -15,7 +15,7 @@ weight = -4 brim_width = 15 layer_height = 0.4 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_mode = normal +prime_tower_enable = True speed_infill = =math.ceil(speed_print * 33 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg index 9a48e11a7b..c1544a00e2 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg @@ -15,7 +15,7 @@ weight = -3 brim_width = 15 layer_height = 0.3 material_print_temperature = =default_material_print_temperature + 12 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg index 747730c0a7..a0fc036566 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg @@ -17,7 +17,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.45 support_angle = 70 switch_extruder_prime_speed = 30 diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg index 40f0779369..547ab013fb 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg @@ -18,7 +18,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.45 support_angle = 70 switch_extruder_prime_speed = 30 diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg index 03116ec10d..b17789ad0f 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg @@ -18,7 +18,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.45 support_angle = 70 switch_extruder_prime_speed = 30 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg index aab2e25ac2..3eafff9a07 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg @@ -14,7 +14,7 @@ weight = -2 [values] brim_width = 7 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_combing = all speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) diff --git a/resources/quality/ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg index 45ec96e089..fe36a86948 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg @@ -15,7 +15,7 @@ weight = -4 brim_width = 7 layer_height = 0.4 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_combing = all speed_infill = =math.ceil(speed_print * 33 / 45) speed_print = 45 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg index ee92c6add7..2bba762e2d 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg @@ -15,7 +15,7 @@ weight = -3 brim_width = 7 layer_height = 0.3 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = normal +prime_tower_enable = True retraction_combing = all speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg index 84a9b9a5fb..57a830402a 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg index ae59471ff3..40f710327f 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg @@ -18,7 +18,7 @@ layer_height = 0.4 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_mode = normal +prime_tower_enable = True speed_infill = =math.ceil(speed_print * 35 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg index 2a4c093dca..702c64bb78 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg @@ -18,7 +18,7 @@ layer_height = 0.3 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg index c9e31486c0..145389fbe4 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg @@ -16,9 +16,9 @@ brim_width = 25 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' material_print_temperature = =default_material_print_temperature + 11 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 prime_tower_min_volume = 10 -prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg index e821581360..68d54bd406 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg @@ -16,9 +16,9 @@ brim_width = 25 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' material_print_temperature = =default_material_print_temperature + 15 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 prime_tower_min_volume = 20 -prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg index a5817651d8..2aa79cad79 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg @@ -17,9 +17,9 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' layer_height = 0.3 material_print_temperature = =default_material_print_temperature + 13 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 prime_tower_min_volume = 15 -prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Draft_Print.inst.cfg index 5e0816ef9a..a9b7a92918 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Draft_Print.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = none +prime_tower_enable = False speed_print = 45 support_angle = 70 top_bottom_thickness = =layer_height * 6 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Superdraft_Print.inst.cfg index 36e25d258a..16e17c500e 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Superdraft_Print.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_mode = none +prime_tower_enable = False speed_infill = =math.ceil(speed_print * 30 / 30) speed_print = 30 speed_topbottom = =math.ceil(speed_print * 20 / 30) diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg index ffbc413b6e..96dec4f1c5 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_mode = none +prime_tower_enable = False speed_infill = =math.ceil(speed_print * 30 / 35) speed_topbottom = =math.ceil(speed_print * 20 / 35) speed_wall = =math.ceil(speed_print * 25/ 35) diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg index d8f7812d75..859eb3b33a 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg @@ -23,8 +23,8 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 4 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 -prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg index a689035132..61ace7da80 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg @@ -23,8 +23,8 @@ material_final_print_temperature = =material_print_temperature - 10 material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 -prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg index f4b61cac5d..e45b8f2d1d 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg @@ -24,8 +24,8 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 -prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg index 64ad8ff7f3..eab1a39931 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg @@ -15,7 +15,7 @@ weight = -2 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature + 5 -prime_tower_mode = none +prime_tower_enable = False retraction_count_max = 5 skin_overlap = 20 skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg index 2cdc81a5d9..ad1e26c7da 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg @@ -14,7 +14,7 @@ weight = -1 [values] brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) -prime_tower_mode = none +prime_tower_enable = False retraction_count_max = 5 skin_overlap = 15 skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg index fa2b7026a1..e5ae49b17d 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg @@ -15,7 +15,7 @@ weight = 1 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = none +prime_tower_enable = False retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) support_infill_sparse_thickness = =3*layer_height diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg index d16740c8ef..38334b4358 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg @@ -15,7 +15,7 @@ weight = 0 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = none +prime_tower_enable = False retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) support_infill_sparse_thickness = =2*layer_height diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_pc_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_pc_0.1mm.inst.cfg index acad5a484b..369cbcd563 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_pc_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_pc_0.1mm.inst.cfg @@ -20,7 +20,7 @@ machine_min_cool_heat_time_window = 15 material_print_temperature = =default_material_print_temperature - 10 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_pp_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_pp_0.1mm.inst.cfg index 262e4f4b54..6485844da8 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_pp_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_pp_0.1mm.inst.cfg @@ -21,7 +21,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.06mm.inst.cfg index ad25724904..6877d9b6a2 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.06mm.inst.cfg @@ -16,7 +16,7 @@ machine_nozzle_cool_down_speed = 0.8 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature - 10 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 40 / 50) speed_print = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.15mm.inst.cfg index c0890c9740..de1905e410 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.15mm.inst.cfg @@ -15,7 +15,7 @@ weight = -1 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 45 / 60) speed_print = 60 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.1mm.inst.cfg index fbe263ab43..ae5c9bcbc1 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.1mm.inst.cfg @@ -16,7 +16,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 40 / 55) speed_print = 55 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.2mm.inst.cfg index 059d39f6c1..701a2db84d 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.2mm.inst.cfg @@ -16,7 +16,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 50 / 60) speed_print = 60 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.3mm.inst.cfg index cb741764d6..684336d1eb 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_abs_0.3mm.inst.cfg @@ -16,7 +16,7 @@ weight = -3 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature + 7 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 support_bottom_distance = =support_z_distance support_interface_enable = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.15mm.inst.cfg index 3af6b9a69d..a7a17e5f69 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.15mm.inst.cfg @@ -15,7 +15,7 @@ weight = -1 brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 speed_print = 80 speed_topbottom = =math.ceil(speed_print * 30 / 80) speed_wall = =math.ceil(speed_print * 40 / 80) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.1mm.inst.cfg index 1526b46ba5..a3b8129ed7 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.1mm.inst.cfg @@ -15,7 +15,7 @@ weight = 0 brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 support_angle = 45 support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height support_infill_sparse_thickness = =2 * layer_height diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.2mm.inst.cfg index 999e2ce9c9..5c051039d0 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.2mm.inst.cfg @@ -16,7 +16,7 @@ brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 speed_topbottom = =math.ceil(speed_print * 35 / 70) speed_wall = =math.ceil(speed_print * 50 / 70) speed_wall_0 = =math.ceil(speed_wall * 35 / 50) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.3mm.inst.cfg index 42b98f5be7..61073067fc 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_bam_0.3mm.inst.cfg @@ -17,7 +17,7 @@ brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 speed_topbottom = =math.ceil(speed_print * 35 / 70) speed_wall = =math.ceil(speed_print * 50 / 70) speed_wall_0 = =math.ceil(speed_wall * 35 / 50) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.06mm.inst.cfg index 864421ed78..880461bccf 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.06mm.inst.cfg @@ -18,7 +18,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 8 multiple_mesh_overlap = 0 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.15mm.inst.cfg index 2591f15abb..5dd5e61f82 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.15mm.inst.cfg @@ -15,7 +15,7 @@ weight = -1 infill_wipe_dist = 0 machine_min_cool_heat_time_window = 15 multiple_mesh_overlap = 0 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.1mm.inst.cfg index ab0354f9ea..7617b35b3b 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.1mm.inst.cfg @@ -18,7 +18,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 5 multiple_mesh_overlap = 0 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.2mm.inst.cfg index 7ac2d06998..7ed1fcd298 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_cpe-plus_0.2mm.inst.cfg @@ -15,7 +15,7 @@ weight = -2 infill_wipe_dist = 0 machine_min_cool_heat_time_window = 15 multiple_mesh_overlap = 0 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.06mm.inst.cfg index 9968edc74c..c9eebee8a0 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.06mm.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 20 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.15mm.inst.cfg index 0138115976..bcd04f4b24 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.15mm.inst.cfg @@ -20,7 +20,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.1mm.inst.cfg index f2a006ce6c..278e502231 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.1mm.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 10 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.2mm.inst.cfg index 0e72f56e02..1baf43933c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pc_0.2mm.inst.cfg @@ -20,7 +20,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.06mm.inst.cfg index d313f08887..4b8f9f433b 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.06mm.inst.cfg @@ -15,7 +15,7 @@ weight = 1 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.15mm.inst.cfg index 73105ed512..5581284de4 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.15mm.inst.cfg @@ -14,7 +14,7 @@ weight = -1 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 70 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.1mm.inst.cfg index b6eac28eb9..30af138465 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.1mm.inst.cfg @@ -14,7 +14,7 @@ weight = 0 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_prime_speed = =retraction_speed support_bottom_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.2mm.inst.cfg index 7ee4df3cac..e5dc960d98 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_sparse_density = 15 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_topbottom = =math.ceil(speed_print * 40 / 70) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.3mm.inst.cfg index 80a564e05a..719adc820b 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pla_0.3mm.inst.cfg @@ -22,7 +22,7 @@ infill_sparse_density = 15 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.15mm.inst.cfg index 775e8420df..3b106196f2 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.15mm.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.1mm.inst.cfg index f8448e868b..455338a901 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.1mm.inst.cfg @@ -22,7 +22,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.2mm.inst.cfg index e561a64075..b1f5e1f19a 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_pp_0.2mm.inst.cfg @@ -22,7 +22,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 8 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.06mm.inst.cfg index 26cce4fcad..b5253cb077 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.06mm.inst.cfg @@ -15,7 +15,7 @@ weight = 1 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = none +prime_tower_enable = False retraction_prime_speed = =retraction_speed speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.15mm.inst.cfg index 86d98cfd6c..69cf85f349 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.15mm.inst.cfg @@ -14,7 +14,7 @@ weight = -1 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = none +prime_tower_enable = False retraction_prime_speed = =retraction_speed speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.1mm.inst.cfg index 2715630b07..397992c551 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.1mm.inst.cfg @@ -15,7 +15,7 @@ weight = 0 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = none +prime_tower_enable = False retraction_prime_speed = =retraction_speed speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.2mm.inst.cfg index 8446a7957f..773da6d3ac 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.2mm.inst.cfg @@ -14,7 +14,7 @@ weight = -2 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = none +prime_tower_enable = False retraction_prime_speed = =retraction_speed speed_print = 50 speed_roofing = =math.ceil(speed_wall * 20 / 24) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.3mm.inst.cfg index 8e4d4596af..10e43b5699 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_tough-pla_0.3mm.inst.cfg @@ -22,7 +22,7 @@ infill_sparse_density = 15 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg index 95f9c84609..de5e0faf2e 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.06mm.inst.cfg @@ -42,7 +42,7 @@ machine_nozzle_heat_up_speed = 1.9 material_extrusion_cool_down_speed = 0.8 material_max_flowrate = 20 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 retraction_amount = 6.5 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg index 447b6dfee5..c39c6d42c8 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.15mm.inst.cfg @@ -43,7 +43,7 @@ material_extrusion_cool_down_speed = 0.8 material_max_flowrate = 20 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 retraction_amount = 6.5 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg index 49a6120c8f..08bb2befdf 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.1mm.inst.cfg @@ -42,7 +42,7 @@ machine_nozzle_heat_up_speed = 1.9 material_extrusion_cool_down_speed = 0.8 material_max_flowrate = 20 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 retraction_amount = 6.5 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg index 2f595d38d0..89b8386d2f 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.2mm.inst.cfg @@ -45,7 +45,7 @@ material_max_flowrate = 20 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 retraction_amount = 6.5 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg index 5aa2ff791b..cc0da1a253 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-abs_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 20 material_print_temperature = =default_material_print_temperature + 7 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 retraction_amount = 6.5 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg index 170e2199be..d4431382dd 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.15mm.inst.cfg @@ -43,7 +43,7 @@ material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 20 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False retraction_amount = 8 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg index aae7ff42a2..c304f13e34 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.2mm.inst.cfg @@ -45,7 +45,7 @@ material_max_flowrate = 20 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False retraction_amount = 8 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg index 96c3513a97..854b868259 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-petg_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 20 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False retraction_amount = 8 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg index 3a87267e37..9678ba9523 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.06mm.inst.cfg @@ -42,7 +42,7 @@ machine_nozzle_heat_up_speed = 1.9 material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 12 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg index 17dd161346..c53596bc9f 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.15mm.inst.cfg @@ -43,7 +43,7 @@ material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 12 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg index 70b9a95dd4..58a8a1ebb0 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.1mm.inst.cfg @@ -42,7 +42,7 @@ machine_nozzle_heat_up_speed = 1.9 material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 12 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg index 564b251c4b..2870c09199 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.2mm.inst.cfg @@ -45,7 +45,7 @@ material_max_flowrate = 12 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg index 5d27f8e05e..6f450463b9 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-pla_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 12 material_print_temperature = =default_material_print_temperature + 10 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg index b1ac45f1b0..e193aa51c3 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.06mm.inst.cfg @@ -42,7 +42,7 @@ machine_nozzle_heat_up_speed = 1.9 material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 14 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg index 6201f53938..622f2030e4 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.15mm.inst.cfg @@ -43,7 +43,7 @@ material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 14 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg index 4c9e939ccc..09f02aa375 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.1mm.inst.cfg @@ -42,7 +42,7 @@ machine_nozzle_heat_up_speed = 1.9 material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 14 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg index dc07130b6c..3b82ebfac7 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.2mm.inst.cfg @@ -44,7 +44,7 @@ material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 14 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg index cbaf3cd89a..2fd9e5ef2c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_um-tough-pla_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 14 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.2mm.inst.cfg index ff96a0df68..c2d04c9bad 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.2mm.inst.cfg @@ -17,7 +17,7 @@ brim_width = 14 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 20 -prime_tower_mode = normal +prime_tower_enable = True retraction_hop = 0.1 retraction_hop_enabled = False speed_print = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.3mm.inst.cfg index a3d9b394b9..caf16e5f94 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.3mm.inst.cfg @@ -17,7 +17,7 @@ brim_width = 14 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 17 -prime_tower_mode = normal +prime_tower_enable = True retraction_hop = 0.1 retraction_hop_enabled = False speed_print = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.4mm.inst.cfg index dc46682c39..1cd46fab48 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe-plus_0.4mm.inst.cfg @@ -17,7 +17,7 @@ brim_width = 14 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 15 -prime_tower_mode = normal +prime_tower_enable = True retraction_hop = 0.1 retraction_hop_enabled = False speed_infill = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.2mm.inst.cfg index f2ea43800e..f9ee324f33 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.2mm.inst.cfg @@ -14,7 +14,7 @@ weight = -2 [values] brim_width = 15 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.3mm.inst.cfg index 58193faaaf..f883fe1998 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.3mm.inst.cfg @@ -14,7 +14,7 @@ weight = -3 [values] brim_width = 15 material_print_temperature = =default_material_print_temperature + 12 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.4mm.inst.cfg index 7e58326c02..a5c059c5e6 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_cpe_0.4mm.inst.cfg @@ -14,7 +14,7 @@ weight = -4 [values] brim_width = 15 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_mode = normal +prime_tower_enable = True speed_infill = =math.ceil(speed_print * 33 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.2mm.inst.cfg index 5b33c9854f..e7d656dcc4 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.2mm.inst.cfg @@ -17,7 +17,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.45 support_angle = 70 switch_extruder_prime_speed = 30 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.3mm.inst.cfg index 6ac1edf4e9..08c1f4933b 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.3mm.inst.cfg @@ -17,7 +17,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.45 support_angle = 70 switch_extruder_prime_speed = 30 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.4mm.inst.cfg index 536a00cc00..c4d2894885 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_nylon_0.4mm.inst.cfg @@ -17,7 +17,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.45 support_angle = 70 switch_extruder_prime_speed = 30 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.2mm.inst.cfg index 539a8c5a7c..d901c6c0dd 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.2mm.inst.cfg @@ -15,7 +15,7 @@ weight = -2 brim_width = 7 cool_fan_speed = 20 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.3mm.inst.cfg index bf92354310..0279882346 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.3mm.inst.cfg @@ -15,7 +15,7 @@ weight = -3 brim_width = 7 cool_fan_speed = 20 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.4mm.inst.cfg index 138369ef63..373d6a0b78 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_petg_0.4mm.inst.cfg @@ -15,7 +15,7 @@ weight = -4 brim_width = 7 cool_fan_speed = 20 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = normal +prime_tower_enable = True speed_infill = =math.ceil(speed_print * 33 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.2mm.inst.cfg index a3935c55f7..1feae070fc 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.2mm.inst.cfg @@ -16,7 +16,7 @@ gradual_infill_step_height = =3 * layer_height machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.3mm.inst.cfg index 9f7162abe0..f93f0848db 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.3mm.inst.cfg @@ -16,7 +16,7 @@ gradual_infill_step_height = =3 * layer_height machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.4mm.inst.cfg index 997095fcbf..67f9cdfcf0 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_pla_0.4mm.inst.cfg @@ -16,7 +16,7 @@ gradual_infill_step_height = =3 * layer_height machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_mode = normal +prime_tower_enable = True speed_infill = =math.ceil(speed_print * 35 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg index 2ec19359cf..7619fcf43d 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.2mm.inst.cfg @@ -18,9 +18,9 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 11 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 prime_tower_min_volume = 10 -prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg index 6726d34585..b157ed198c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.3mm.inst.cfg @@ -18,9 +18,9 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 13 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 prime_tower_min_volume = 15 -prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg index 0bf76412b2..550a26c7f8 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_pp_0.4mm.inst.cfg @@ -18,9 +18,9 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 15 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 prime_tower_min_volume = 20 -prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.2mm.inst.cfg index a59a80d04a..1f706632ce 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.2mm.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = none +prime_tower_enable = False speed_print = 45 speed_topbottom = =round(speed_print * 35 / 45) speed_wall = =round(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.3mm.inst.cfg index c840722681..b1437e9160 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.3mm.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_mode = none +prime_tower_enable = False speed_infill = =math.ceil(speed_print * 30 / 35) speed_print = 35 speed_topbottom = =math.ceil(speed_print * 20 / 35) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.4mm.inst.cfg index 1865589991..7c3c4ff6e9 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_tough-pla_0.4mm.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_mode = none +prime_tower_enable = False speed_infill = =math.ceil(speed_print * 30 / 30) speed_print = 30 speed_topbottom = =math.ceil(speed_print * 20 / 30) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg index 437fc03997..5d6ce58f7c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.2mm.inst.cfg @@ -21,8 +21,8 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 4 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 -prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg index 05401c0d34..1b69ada75d 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.3mm.inst.cfg @@ -22,8 +22,8 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 -prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg index a77cde65e6..d678d7e178 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_tpu_0.4mm.inst.cfg @@ -21,8 +21,8 @@ material_final_print_temperature = =material_print_temperature - 10 material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 -prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.2mm.inst.cfg index 79f23f9c2c..9d7b4455d6 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.2mm.inst.cfg @@ -47,7 +47,7 @@ material_max_flowrate = 22 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.15 retraction_amount = 4 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.3mm.inst.cfg index a187dc3179..e2a5c54c66 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 22 material_print_temperature = =default_material_print_temperature + 7 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.15 retraction_amount = 4 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.4mm.inst.cfg index cc2c57bcff..26d3dc7fb8 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-abs_0.4mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 22 material_print_temperature = =default_material_print_temperature + 10 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.15 retraction_amount = 4 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.2mm.inst.cfg index 9649f71775..b1dae1cb7a 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.2mm.inst.cfg @@ -47,7 +47,7 @@ material_max_flowrate = 23 material_print_temperature = =default_material_print_temperature - 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True retraction_amount = 3.5 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.3mm.inst.cfg index a0d9dbdee7..4d4ffa0059 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.3mm.inst.cfg @@ -46,7 +46,7 @@ material_flow = 93 material_max_flowrate = 23 material_print_temperature = =default_material_print_temperature - 5 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True retraction_amount = 3.5 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.4mm.inst.cfg index 840008f60d..5cc6a43e13 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-petg_0.4mm.inst.cfg @@ -46,7 +46,7 @@ material_flow = 93 material_max_flowrate = 23 material_print_temperature = =default_material_print_temperature - 5 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True retraction_amount = 3.5 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.2mm.inst.cfg index c0719e38b3..59f8409483 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.2mm.inst.cfg @@ -47,7 +47,7 @@ material_max_flowrate = 15 material_print_temperature = =default_material_print_temperature + 10 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.3mm.inst.cfg index 8f045a1238..a4cdd898f1 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 15 material_print_temperature = =default_material_print_temperature + 10 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.4mm.inst.cfg index b1e8b913fd..79dc105f86 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-pla_0.4mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 15 material_print_temperature = =default_material_print_temperature + 15 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg index 176cfb2cb2..a76864a1a3 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.2mm.inst.cfg @@ -47,7 +47,7 @@ material_max_flowrate = 17 material_print_temperature = =default_material_print_temperature + 10 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.3mm.inst.cfg index 404435e21b..d364232726 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 17 material_print_temperature = =default_material_print_temperature + 15 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.4mm.inst.cfg index 76724ad958..02a71fa9b7 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_um-tough-pla_0.4mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 17 material_print_temperature = =default_material_print_temperature + 15 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.06mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.06mm.inst.cfg index b69ddd1011..12b815d5ab 100644 --- a/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.06mm.inst.cfg @@ -15,7 +15,7 @@ weight = 1 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = none +prime_tower_enable = False retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) support_infill_sparse_thickness = =3 * layer_height diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.15mm.inst.cfg index 67a101d2bc..5390b3ecb7 100644 --- a/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.15mm.inst.cfg @@ -14,7 +14,7 @@ weight = -1 [values] brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) -prime_tower_mode = none +prime_tower_enable = False retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) support_infill_sparse_thickness = =2 * layer_height diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.1mm.inst.cfg index 66c0486b0f..b15b5958a7 100644 --- a/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.1mm.inst.cfg @@ -15,7 +15,7 @@ weight = 0 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = none +prime_tower_enable = False retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) support_infill_sparse_thickness = =2 * layer_height diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.2mm.inst.cfg index 6e36d9578f..e273e85eb5 100644 --- a/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_pva_0.2mm.inst.cfg @@ -15,7 +15,7 @@ weight = -2 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature + 5 -prime_tower_mode = none +prime_tower_enable = False retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) support_interface_enable = True diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.15mm.inst.cfg index 9b81b09599..ea2902cd6c 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.15mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.2mm.inst.cfg index e596c6fcd0..bbbad9be1f 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.15mm.inst.cfg index 5c9671c99e..300e2ebaed 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.15mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.2mm.inst.cfg index 872368142c..84040ede4e 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_um-pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.15mm.inst.cfg index 2b76474e5f..402ae15eba 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.15mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.2mm.inst.cfg index dc84108298..0c9154a233 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.15mm.inst.cfg index 3706d83424..e7b72d6cd0 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.15mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.2mm.inst.cfg index 6e03ebd7e5..38c857de5e 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_um-pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_pc_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_pc_0.1mm.inst.cfg index dc6dc3906d..eef6e66a5e 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_pc_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_pc_0.1mm.inst.cfg @@ -20,7 +20,7 @@ machine_min_cool_heat_time_window = 15 material_print_temperature = =default_material_print_temperature - 10 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_pp_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_pp_0.1mm.inst.cfg index 69a5af3102..56689c4bfa 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_pp_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_pp_0.1mm.inst.cfg @@ -21,7 +21,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.06mm.inst.cfg index f96f28e71f..573b758705 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.06mm.inst.cfg @@ -16,7 +16,7 @@ machine_nozzle_cool_down_speed = 0.8 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature - 10 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 40 / 50) speed_print = 50 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.15mm.inst.cfg index 9cc0a12b5a..926ef49922 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.15mm.inst.cfg @@ -15,7 +15,7 @@ weight = -1 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 45 / 60) speed_print = 60 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.1mm.inst.cfg index 651c780d32..598e83d922 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.1mm.inst.cfg @@ -16,7 +16,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 40 / 55) speed_print = 55 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.2mm.inst.cfg index 28bd4cddff..5f5e9e2fd3 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.2mm.inst.cfg @@ -16,7 +16,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 speed_infill = =math.ceil(speed_print * 50 / 60) speed_print = 60 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.3mm.inst.cfg index 49e70ecb1c..8656a28067 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_abs_0.3mm.inst.cfg @@ -16,7 +16,7 @@ weight = -3 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 20 material_print_temperature = =default_material_print_temperature + 7 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 support_bottom_distance = =support_z_distance support_interface_enable = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.15mm.inst.cfg index b2dd10f321..a4381e0e3b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.15mm.inst.cfg @@ -15,7 +15,7 @@ weight = -1 brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 speed_print = 80 speed_topbottom = =math.ceil(speed_print * 30 / 80) speed_wall = =math.ceil(speed_print * 40 / 80) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.1mm.inst.cfg index ba704aa34b..5f4c480fa4 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.1mm.inst.cfg @@ -15,7 +15,7 @@ weight = 0 brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 support_angle = 45 support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height support_infill_sparse_thickness = =2 * layer_height diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.2mm.inst.cfg index ccccb2d3e8..9e3c0153b1 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.2mm.inst.cfg @@ -16,7 +16,7 @@ brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 speed_topbottom = =math.ceil(speed_print * 35 / 70) speed_wall = =math.ceil(speed_print * 50 / 70) speed_wall_0 = =math.ceil(speed_wall * 35 / 50) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.3mm.inst.cfg index cc6e8f9453..bd4e13ebaf 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_bam_0.3mm.inst.cfg @@ -17,7 +17,7 @@ brim_replaces_support = False machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_mode = ='normal' if (min(extruderValues('material_surface_energy')) < 100) else 'none' +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 speed_topbottom = =math.ceil(speed_print * 35 / 70) speed_wall = =math.ceil(speed_print * 50 / 70) speed_wall_0 = =math.ceil(speed_wall * 35 / 50) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.06mm.inst.cfg index 0b11bc463b..a77d1b4233 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.06mm.inst.cfg @@ -18,7 +18,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 8 multiple_mesh_overlap = 0 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.15mm.inst.cfg index 476cdad5ce..805fb08ead 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.15mm.inst.cfg @@ -15,7 +15,7 @@ weight = -1 infill_wipe_dist = 0 machine_min_cool_heat_time_window = 15 multiple_mesh_overlap = 0 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.1mm.inst.cfg index 6a18d6a859..77f775d672 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.1mm.inst.cfg @@ -18,7 +18,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 5 multiple_mesh_overlap = 0 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.2mm.inst.cfg index dcd01b1084..877c48c42d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_cpe-plus_0.2mm.inst.cfg @@ -15,7 +15,7 @@ weight = -2 infill_wipe_dist = 0 machine_min_cool_heat_time_window = 15 multiple_mesh_overlap = 0 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.06mm.inst.cfg index c2d943bb77..c58107dcf9 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.06mm.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 20 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.15mm.inst.cfg index 30b1896528..b210b894e5 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.15mm.inst.cfg @@ -20,7 +20,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.1mm.inst.cfg index aa58bd07b3..aa17d35a97 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.1mm.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 10 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.2mm.inst.cfg index e74d6a6532..616443b129 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pc_0.2mm.inst.cfg @@ -20,7 +20,7 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 multiple_mesh_overlap = 0 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True prime_tower_wipe_enabled = True raft_airgap = 0.25 retraction_hop = 2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.06mm.inst.cfg index e724f809d5..f34549bc78 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.06mm.inst.cfg @@ -15,7 +15,7 @@ weight = 1 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 50 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.15mm.inst.cfg index 2cce79480c..4a9e914b99 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.15mm.inst.cfg @@ -14,7 +14,7 @@ weight = -1 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 70 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.1mm.inst.cfg index 5a730aba3a..dc73f13bb5 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.1mm.inst.cfg @@ -14,7 +14,7 @@ weight = 0 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_prime_speed = =retraction_speed support_bottom_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.2mm.inst.cfg index a1bde9d68d..ead512bb50 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_sparse_density = 15 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_topbottom = =math.ceil(speed_print * 40 / 70) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.3mm.inst.cfg index e0070ff73b..c6641e7a08 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pla_0.3mm.inst.cfg @@ -22,7 +22,7 @@ infill_sparse_density = 15 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 50 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.15mm.inst.cfg index 0f06f432d4..8eb0d257d6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.15mm.inst.cfg @@ -21,7 +21,7 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.1mm.inst.cfg index 68aeea4c25..bd4dd317bb 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.1mm.inst.cfg @@ -22,7 +22,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.2mm.inst.cfg index 2f7a70bfa0..1e5ea9efb6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_pp_0.2mm.inst.cfg @@ -22,7 +22,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 8 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_size = 16 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.06mm.inst.cfg index 2bf08e3489..cf7a8335b8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.06mm.inst.cfg @@ -15,7 +15,7 @@ weight = 1 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = none +prime_tower_enable = False retraction_prime_speed = =retraction_speed speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.15mm.inst.cfg index 3b44a9eb37..a7dcb61128 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.15mm.inst.cfg @@ -14,7 +14,7 @@ weight = -1 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = none +prime_tower_enable = False retraction_prime_speed = =retraction_speed speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.1mm.inst.cfg index 3167f39563..f053b33478 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.1mm.inst.cfg @@ -15,7 +15,7 @@ weight = 0 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = none +prime_tower_enable = False retraction_prime_speed = =retraction_speed speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.2mm.inst.cfg index 238468f784..4e98b6005a 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.2mm.inst.cfg @@ -14,7 +14,7 @@ weight = -2 [values] machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -prime_tower_mode = none +prime_tower_enable = False retraction_prime_speed = =retraction_speed speed_print = 50 speed_roofing = =math.ceil(speed_wall * 20 / 24) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.3mm.inst.cfg index 208277dc9b..5c6ed28548 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_tough-pla_0.3mm.inst.cfg @@ -22,7 +22,7 @@ infill_sparse_density = 15 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_prime_speed = =retraction_speed speed_print = 50 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg index e7d58a1001..c0b4799ca9 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.06mm.inst.cfg @@ -42,7 +42,7 @@ machine_nozzle_heat_up_speed = 1.9 material_extrusion_cool_down_speed = 0.8 material_max_flowrate = 20 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 retraction_amount = 6.5 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg index 20e10b3e78..d430f867d8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.15mm.inst.cfg @@ -43,7 +43,7 @@ material_extrusion_cool_down_speed = 0.8 material_max_flowrate = 20 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 retraction_amount = 6.5 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg index fe37499b76..b2c25e26c7 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.1mm.inst.cfg @@ -42,7 +42,7 @@ machine_nozzle_heat_up_speed = 1.9 material_extrusion_cool_down_speed = 0.8 material_max_flowrate = 20 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 retraction_amount = 6.5 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg index 5f85f0b6d1..15b87d8229 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.2mm.inst.cfg @@ -45,7 +45,7 @@ material_max_flowrate = 20 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 retraction_amount = 6.5 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg index 7d9bd13d07..9a10024813 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-abs_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 20 material_print_temperature = =default_material_print_temperature + 7 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.15 retraction_amount = 6.5 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg index 4673f7dddc..5d14f014b9 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.15mm.inst.cfg @@ -43,7 +43,7 @@ material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 20 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False retraction_amount = 8 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg index 7ffa9aa60a..4e1b0f535f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.2mm.inst.cfg @@ -45,7 +45,7 @@ material_max_flowrate = 20 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False retraction_amount = 8 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg index 5cf1740ad1..ab66eed0ab 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-petg_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 20 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False retraction_amount = 8 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg index cc05029e74..2b192e8c1c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.06mm.inst.cfg @@ -42,7 +42,7 @@ machine_nozzle_heat_up_speed = 1.9 material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 12 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg index a7bebed472..11301a2990 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.15mm.inst.cfg @@ -43,7 +43,7 @@ material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 12 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg index 4ca8ccaa86..28cf131812 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.2mm.inst.cfg @@ -45,7 +45,7 @@ material_max_flowrate = 12 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg index c1ea2d98dd..a01b433eb2 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-pla_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 12 material_print_temperature = =default_material_print_temperature + 10 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg index 597bf3b302..f368ac13d8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.06mm.inst.cfg @@ -42,7 +42,7 @@ machine_nozzle_heat_up_speed = 1.9 material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 14 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg index 81f4e207be..b699ebc9f3 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.15mm.inst.cfg @@ -43,7 +43,7 @@ material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 14 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg index a38a73679d..d0ee391c65 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.1mm.inst.cfg @@ -42,7 +42,7 @@ machine_nozzle_heat_up_speed = 1.9 material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 14 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg index f045d5425d..9869a18bb3 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.2mm.inst.cfg @@ -44,7 +44,7 @@ material_extrusion_cool_down_speed = 0.7 material_max_flowrate = 14 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg index 79e8161047..fc8507c42b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_um-tough-pla_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_max_flowrate = 14 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = none +prime_tower_enable = False raft_airgap = 0.25 retraction_amount = 6.5 retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.2mm.inst.cfg index a7877d90e1..0dd369e4dd 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.2mm.inst.cfg @@ -17,7 +17,7 @@ brim_width = 14 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 20 -prime_tower_mode = normal +prime_tower_enable = True retraction_hop = 0.1 retraction_hop_enabled = False speed_print = 50 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.3mm.inst.cfg index 2b5b521f02..e6ce183f4a 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.3mm.inst.cfg @@ -17,7 +17,7 @@ brim_width = 14 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 17 -prime_tower_mode = normal +prime_tower_enable = True retraction_hop = 0.1 retraction_hop_enabled = False speed_print = 50 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.4mm.inst.cfg index ff9a049f7e..0c3abc6e3f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe-plus_0.4mm.inst.cfg @@ -17,7 +17,7 @@ brim_width = 14 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 15 -prime_tower_mode = normal +prime_tower_enable = True retraction_hop = 0.1 retraction_hop_enabled = False speed_infill = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.2mm.inst.cfg index a3340f81a8..eb6e07e080 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.2mm.inst.cfg @@ -14,7 +14,7 @@ weight = -2 [values] brim_width = 15 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.3mm.inst.cfg index 7c80d16f24..e7958d9841 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.3mm.inst.cfg @@ -14,7 +14,7 @@ weight = -3 [values] brim_width = 15 material_print_temperature = =default_material_print_temperature + 12 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.4mm.inst.cfg index 18ec3e9dbe..0683b2959b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_cpe_0.4mm.inst.cfg @@ -14,7 +14,7 @@ weight = -4 [values] brim_width = 15 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_mode = normal +prime_tower_enable = True speed_infill = =math.ceil(speed_print * 33 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.2mm.inst.cfg index 798db0dfc8..5a774e0750 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.2mm.inst.cfg @@ -17,7 +17,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.45 support_angle = 70 switch_extruder_prime_speed = 30 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.3mm.inst.cfg index 86d6130a70..bed4ac46d7 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.3mm.inst.cfg @@ -17,7 +17,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.45 support_angle = 70 switch_extruder_prime_speed = 30 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.4mm.inst.cfg index 2d9c3ebabe..a0d58757da 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_nylon_0.4mm.inst.cfg @@ -17,7 +17,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 ooze_shield_angle = 40 -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.45 support_angle = 70 switch_extruder_prime_speed = 30 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.2mm.inst.cfg index 7f51af7154..6208ad9bec 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.2mm.inst.cfg @@ -15,7 +15,7 @@ weight = -2 brim_width = 7 cool_fan_speed = 20 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.3mm.inst.cfg index 81d08397f3..98b0d3f5f8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.3mm.inst.cfg @@ -15,7 +15,7 @@ weight = -3 brim_width = 7 cool_fan_speed = 20 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.4mm.inst.cfg index 689455183f..156113b809 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_petg_0.4mm.inst.cfg @@ -15,7 +15,7 @@ weight = -4 brim_width = 7 cool_fan_speed = 20 material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = normal +prime_tower_enable = True speed_infill = =math.ceil(speed_print * 33 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.2mm.inst.cfg index d00e5235ba..10bf06fbb5 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.2mm.inst.cfg @@ -16,7 +16,7 @@ gradual_infill_step_height = =3 * layer_height machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.3mm.inst.cfg index a22439011e..1a63005ced 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.3mm.inst.cfg @@ -16,7 +16,7 @@ gradual_infill_step_height = =3 * layer_height machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.4mm.inst.cfg index 7a97620cb4..5e22cee246 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_pla_0.4mm.inst.cfg @@ -16,7 +16,7 @@ gradual_infill_step_height = =3 * layer_height machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_mode = normal +prime_tower_enable = True speed_infill = =math.ceil(speed_print * 35 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg index 355e3afa78..c338c4b7ff 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.2mm.inst.cfg @@ -18,9 +18,9 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 11 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 prime_tower_min_volume = 10 -prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg index e89b5d717b..62d9eb235d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.3mm.inst.cfg @@ -18,9 +18,9 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 13 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 prime_tower_min_volume = 15 -prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg index 542ba0bb5b..b2792b6fee 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_pp_0.4mm.inst.cfg @@ -18,9 +18,9 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature + 15 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 prime_tower_min_volume = 20 -prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.2mm.inst.cfg index 1c5161a635..26c20268ea 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.2mm.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = none +prime_tower_enable = False speed_print = 45 speed_topbottom = =round(speed_print * 35 / 45) speed_wall = =round(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.3mm.inst.cfg index 0a4c4ad2c7..cc28dc5150 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.3mm.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_mode = none +prime_tower_enable = False speed_infill = =math.ceil(speed_print * 30 / 35) speed_print = 35 speed_topbottom = =math.ceil(speed_print * 20 / 35) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.4mm.inst.cfg index 2fc8aaf746..eb338d1e1d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_tough-pla_0.4mm.inst.cfg @@ -17,7 +17,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 15 -prime_tower_mode = none +prime_tower_enable = False speed_infill = =math.ceil(speed_print * 30 / 30) speed_print = 30 speed_topbottom = =math.ceil(speed_print * 20 / 30) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg index 3deb8f57a0..2491d0ed88 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.2mm.inst.cfg @@ -21,8 +21,8 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 4 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 -prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg index fd30dfc228..e975175ce0 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.3mm.inst.cfg @@ -22,8 +22,8 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 2 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 -prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg index 2f21317657..5334fac1f0 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_tpu_0.4mm.inst.cfg @@ -21,8 +21,8 @@ material_final_print_temperature = =material_print_temperature - 10 material_flow = 105 material_initial_print_temperature = =material_print_temperature - 10 multiple_mesh_overlap = 0.2 +prime_tower_enable = True prime_tower_flow = 100 -prime_tower_mode = normal retraction_count_max = 15 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.2mm.inst.cfg index e308015dd8..9ba4a38c6e 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.2mm.inst.cfg @@ -47,7 +47,7 @@ material_max_flowrate = 22 material_print_temperature = =default_material_print_temperature + 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.15 retraction_amount = 4 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.3mm.inst.cfg index 3d7cabe23d..4ab74980ef 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 22 material_print_temperature = =default_material_print_temperature + 7 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.15 retraction_amount = 4 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.4mm.inst.cfg index f7ab03fac0..269d51dd4b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-abs_0.4mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 22 material_print_temperature = =default_material_print_temperature + 10 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.15 retraction_amount = 4 retraction_prime_speed = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.2mm.inst.cfg index 692f4f8aa7..4f56167ffd 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.2mm.inst.cfg @@ -47,7 +47,7 @@ material_max_flowrate = 23 material_print_temperature = =default_material_print_temperature - 5 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True retraction_amount = 3.5 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.3mm.inst.cfg index 93e4e071f5..9fdf9a665b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.3mm.inst.cfg @@ -46,7 +46,7 @@ material_flow = 93 material_max_flowrate = 23 material_print_temperature = =default_material_print_temperature - 5 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True retraction_amount = 3.5 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.4mm.inst.cfg index 592c835689..3368ae6e2d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-petg_0.4mm.inst.cfg @@ -46,7 +46,7 @@ material_flow = 93 material_max_flowrate = 23 material_print_temperature = =default_material_print_temperature - 5 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True retraction_amount = 3.5 retraction_prime_speed = 15 retraction_speed = 45 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.2mm.inst.cfg index fd0b6da130..ca93df9dc1 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.2mm.inst.cfg @@ -47,7 +47,7 @@ material_max_flowrate = 15 material_print_temperature = =default_material_print_temperature + 10 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.3mm.inst.cfg index a6b7ac0439..4461ae0772 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 15 material_print_temperature = =default_material_print_temperature + 10 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.4mm.inst.cfg index c873edfacb..1acdad53a0 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-pla_0.4mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 15 material_print_temperature = =default_material_print_temperature + 15 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg index 413903a8e8..4973ec35bb 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.2mm.inst.cfg @@ -47,7 +47,7 @@ material_max_flowrate = 17 material_print_temperature = =default_material_print_temperature + 10 meshfix_maximum_resolution = 0.7 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.3mm.inst.cfg index f0c5169389..2bcf3fa82d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.3mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 17 material_print_temperature = =default_material_print_temperature + 15 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.4mm.inst.cfg index cb12b8740c..3e4693c115 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_um-tough-pla_0.4mm.inst.cfg @@ -44,7 +44,7 @@ material_flow = 93 material_max_flowrate = 17 material_print_temperature = =default_material_print_temperature + 15 optimize_wall_printing_order = False -prime_tower_mode = normal +prime_tower_enable = True raft_airgap = 0.25 retraction_amount = 4 retraction_prime_speed = 22 diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.06mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.06mm.inst.cfg index 022e91ed9f..2bc28f4c1a 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.06mm.inst.cfg @@ -15,7 +15,7 @@ weight = 1 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = none +prime_tower_enable = False retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) support_infill_sparse_thickness = =3 * layer_height diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.15mm.inst.cfg index 40cf72eff4..f5b8c35298 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.15mm.inst.cfg @@ -14,7 +14,7 @@ weight = -1 [values] brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) -prime_tower_mode = none +prime_tower_enable = False retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) support_infill_sparse_thickness = =2 * layer_height diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.1mm.inst.cfg index 8b5a3e9f67..6457f97c9c 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.1mm.inst.cfg @@ -15,7 +15,7 @@ weight = 0 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = none +prime_tower_enable = False retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) support_infill_sparse_thickness = =2 * layer_height diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.2mm.inst.cfg index 1ff95a0e3b..eef90f5f17 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.2mm.inst.cfg @@ -15,7 +15,7 @@ weight = -2 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature + 5 -prime_tower_mode = none +prime_tower_enable = False retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) support_interface_enable = True diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.3mm.inst.cfg index 58796a07a4..e1862ce3c4 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_pva_0.3mm.inst.cfg @@ -16,7 +16,7 @@ weight = -3 brim_replaces_support = False cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) material_print_temperature = =default_material_print_temperature - 5 -prime_tower_mode = none +prime_tower_enable = False retraction_count_max = 5 skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) support_infill_sparse_thickness = 0.3 diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.15mm.inst.cfg index b7d9b2a05f..8b807c1eb5 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.15mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.2mm.inst.cfg index e3e8d486b0..ebc58413e2 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.15mm.inst.cfg index f01921353b..1204be4c15 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.15mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.2mm.inst.cfg index 0a1cc1204d..6a7d52af4b 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_um-pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.15mm.inst.cfg index 4437f2c531..40d414cbcb 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.15mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.2mm.inst.cfg index 3796177bc5..6144a2c3f0 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.15mm.inst.cfg index 1ec4911676..5bf5d910e8 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.15mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.2mm.inst.cfg index 36b56b6513..21407b6e66 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_um-pla_0.2mm.inst.cfg @@ -18,7 +18,7 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 10 -prime_tower_mode = normal +prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/variants/liquid/liquid_vo08.inst.cfg b/resources/variants/liquid/liquid_vo08.inst.cfg index a69a0f806e..58cbea1b9d 100644 --- a/resources/variants/liquid/liquid_vo08.inst.cfg +++ b/resources/variants/liquid/liquid_vo08.inst.cfg @@ -37,7 +37,7 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_standby_temperature = 100 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_wipe_enabled = True retract_at_layer_change = =not magic_spiralize retraction_amount = 3 diff --git a/resources/variants/strateo3d/strateo3d_high_temp_04.inst.cfg b/resources/variants/strateo3d/strateo3d_high_temp_04.inst.cfg index b66b984346..4bf51a967a 100644 --- a/resources/variants/strateo3d/strateo3d_high_temp_04.inst.cfg +++ b/resources/variants/strateo3d/strateo3d_high_temp_04.inst.cfg @@ -14,7 +14,7 @@ layer_height_0 = 0.3 machine_nozzle_id = HT0.4 machine_nozzle_size = 0.4 machine_nozzle_tip_outer_diameter = 1.0 -prime_tower_mode = normal +prime_tower_enable = True retract_at_layer_change = False support_angle = 45 support_use_towers = True diff --git a/resources/variants/strateo3d/strateo3d_standard_04.inst.cfg b/resources/variants/strateo3d/strateo3d_standard_04.inst.cfg index 968c7c7262..3d705453d8 100644 --- a/resources/variants/strateo3d/strateo3d_standard_04.inst.cfg +++ b/resources/variants/strateo3d/strateo3d_standard_04.inst.cfg @@ -14,7 +14,7 @@ layer_height_0 = 0.3 machine_nozzle_id = Standard 0.4 machine_nozzle_size = 0.4 machine_nozzle_tip_outer_diameter = 1.0 -prime_tower_mode = normal +prime_tower_enable = True retract_at_layer_change = False support_angle = 60 support_use_towers = True diff --git a/resources/variants/strateo3d/strateo3d_standard_06.inst.cfg b/resources/variants/strateo3d/strateo3d_standard_06.inst.cfg index 9b6d921d70..3443f64531 100644 --- a/resources/variants/strateo3d/strateo3d_standard_06.inst.cfg +++ b/resources/variants/strateo3d/strateo3d_standard_06.inst.cfg @@ -14,7 +14,7 @@ layer_height_0 = 0.4 machine_nozzle_id = Standard 0.6 machine_nozzle_size = 0.6 machine_nozzle_tip_outer_diameter = 1.5 -prime_tower_mode = normal +prime_tower_enable = True retract_at_layer_change = False support_angle = 55 support_use_towers = True diff --git a/resources/variants/strateo3d/strateo3d_standard_08.inst.cfg b/resources/variants/strateo3d/strateo3d_standard_08.inst.cfg index 11ff582ef1..f436ce1fe7 100644 --- a/resources/variants/strateo3d/strateo3d_standard_08.inst.cfg +++ b/resources/variants/strateo3d/strateo3d_standard_08.inst.cfg @@ -14,7 +14,7 @@ layer_height_0 = 0.5 machine_nozzle_id = Standard 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 -prime_tower_mode = normal +prime_tower_enable = True retract_at_layer_change = True support_angle = 50 support_use_towers = True diff --git a/resources/variants/strateo3d/strateo3d_standard_10.inst.cfg b/resources/variants/strateo3d/strateo3d_standard_10.inst.cfg index c9d50d91c3..b957d58d9f 100644 --- a/resources/variants/strateo3d/strateo3d_standard_10.inst.cfg +++ b/resources/variants/strateo3d/strateo3d_standard_10.inst.cfg @@ -14,7 +14,7 @@ layer_height_0 = 0.6 machine_nozzle_id = Standard 1.0 Experimental machine_nozzle_size = 1.0 machine_nozzle_tip_outer_diameter = 2.5 -prime_tower_mode = normal +prime_tower_enable = True retract_at_layer_change = True support_angle = 50 support_use_towers = True diff --git a/resources/variants/strateo3d/strateo3d_standard_12.inst.cfg b/resources/variants/strateo3d/strateo3d_standard_12.inst.cfg index f1f03bfcb4..3a35f9c4a2 100644 --- a/resources/variants/strateo3d/strateo3d_standard_12.inst.cfg +++ b/resources/variants/strateo3d/strateo3d_standard_12.inst.cfg @@ -14,7 +14,7 @@ layer_height_0 = 0.7 machine_nozzle_id = Standard 1.2 Experimental machine_nozzle_size = 1.2 machine_nozzle_tip_outer_diameter = 3.0 -prime_tower_mode = normal +prime_tower_enable = True retract_at_layer_change = True support_angle = 50 support_use_towers = True diff --git a/resources/variants/ultimaker3_aa0.8.inst.cfg b/resources/variants/ultimaker3_aa0.8.inst.cfg index baf5f4043a..4190aab0cd 100644 --- a/resources/variants/ultimaker3_aa0.8.inst.cfg +++ b/resources/variants/ultimaker3_aa0.8.inst.cfg @@ -23,7 +23,7 @@ machine_nozzle_id = AA 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_amount = 6.5 diff --git a/resources/variants/ultimaker3_bb0.8.inst.cfg b/resources/variants/ultimaker3_bb0.8.inst.cfg index 5250dff5e9..62227f50f6 100644 --- a/resources/variants/ultimaker3_bb0.8.inst.cfg +++ b/resources/variants/ultimaker3_bb0.8.inst.cfg @@ -26,7 +26,7 @@ machine_nozzle_id = BB 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_hop = 2 diff --git a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg index 109cd55a9d..941634e3a6 100644 --- a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg +++ b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg @@ -23,7 +23,7 @@ machine_nozzle_id = AA 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_amount = 6.5 diff --git a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg index c40c69ff62..2a88f165e6 100644 --- a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg +++ b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg @@ -26,7 +26,7 @@ machine_nozzle_id = BB 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_hop = 2 diff --git a/resources/variants/ultimaker_s3_aa0.8.inst.cfg b/resources/variants/ultimaker_s3_aa0.8.inst.cfg index 5385e5e540..e7d3487503 100644 --- a/resources/variants/ultimaker_s3_aa0.8.inst.cfg +++ b/resources/variants/ultimaker_s3_aa0.8.inst.cfg @@ -23,7 +23,7 @@ machine_nozzle_id = AA 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_amount = 6.5 diff --git a/resources/variants/ultimaker_s3_bb0.8.inst.cfg b/resources/variants/ultimaker_s3_bb0.8.inst.cfg index 56b1ea9af7..d0f78ac3bd 100644 --- a/resources/variants/ultimaker_s3_bb0.8.inst.cfg +++ b/resources/variants/ultimaker_s3_bb0.8.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_id = BB 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_hop = 2 diff --git a/resources/variants/ultimaker_s5_aa0.8.inst.cfg b/resources/variants/ultimaker_s5_aa0.8.inst.cfg index 4bb5eda5db..04a3a97d11 100644 --- a/resources/variants/ultimaker_s5_aa0.8.inst.cfg +++ b/resources/variants/ultimaker_s5_aa0.8.inst.cfg @@ -23,7 +23,7 @@ machine_nozzle_id = AA 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_amount = 6.5 diff --git a/resources/variants/ultimaker_s5_bb0.8.inst.cfg b/resources/variants/ultimaker_s5_bb0.8.inst.cfg index b833c4bcf3..07b556d206 100644 --- a/resources/variants/ultimaker_s5_bb0.8.inst.cfg +++ b/resources/variants/ultimaker_s5_bb0.8.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_id = BB 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_hop = 2 diff --git a/resources/variants/ultimaker_s7_aa0.8.inst.cfg b/resources/variants/ultimaker_s7_aa0.8.inst.cfg index 1feea8c676..b3253f7d25 100644 --- a/resources/variants/ultimaker_s7_aa0.8.inst.cfg +++ b/resources/variants/ultimaker_s7_aa0.8.inst.cfg @@ -23,7 +23,7 @@ machine_nozzle_id = AA 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_amount = 6.5 diff --git a/resources/variants/ultimaker_s7_bb0.8.inst.cfg b/resources/variants/ultimaker_s7_bb0.8.inst.cfg index 17a9971002..010d5c7cf1 100644 --- a/resources/variants/ultimaker_s7_bb0.8.inst.cfg +++ b/resources/variants/ultimaker_s7_bb0.8.inst.cfg @@ -25,7 +25,7 @@ machine_nozzle_id = BB 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 multiple_mesh_overlap = 0 -prime_tower_mode = none +prime_tower_enable = False prime_tower_wipe_enabled = True raft_surface_layers = 1 retraction_amount = 4.5 From bb439e586775089a500de32956ee9d56a2069d1e Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 22 Feb 2024 16:21:32 +0100 Subject: [PATCH 239/269] Introduce `primetower_enable` setting CURA-11645 --- resources/definitions/fdmprinter.def.json | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 1d453456a8..9dbd7b19a0 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6794,20 +6794,29 @@ "description": "Settings used for printing with multiple extruders.", "children": { + "prime_tower_enable": { + "label": "Enable Prime Tower", + "description": "Print a tower next to the print which serves to prime the material after each nozzle switch.", + "type": "bool", + "enabled": "extruders_enabled_count > 1", + "default_value": false, + "resolve": "(extruders_enabled_count > 1) and any(extruderValues('prime_tower_enable'))", + "settable_per_mesh": false, + "settable_per_extruder": false + }, "prime_tower_mode": { "label": "Prime Tower", - "description": "Print a tower next to the model, which serves to prime the material after each nozzle switch.
  • None: do not generate a prime tower
  • Normal: generate a bucket in which secondary materials are primed
  • Interleaved: generate a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other.
", + "description": "Print a tower next to the model, which serves to prime the material after each nozzle switch.
  • Normal: generate a bucket in which secondary materials are primed
  • Interleaved: generate a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other.
", "type": "enum", - "value": "'none' if (extruders_enabled_count < 2) else ('interleaved' if (all(material_type_var == extruderValues('material_type')[0] for material_type_var in extruderValues('material_type')) and all(material_brand_var == extruderValues('material_brand')[0] for material_brand_var in extruderValues('material_brand'))) else 'normal')", + "value": "'interleaved' if (all(material_type_var == extruderValues('material_type')[0] for material_type_var in extruderValues('material_type')) and all(material_brand_var == extruderValues('material_brand')[0] for material_brand_var in extruderValues('material_brand'))) else 'normal'", "options": { - "none": "None", "normal": "Normal", "interleaved": "Interleaved" }, - "default_value": "none", - "enabled": "extruders_enabled_count > 1", + "default_value": "normal", + "enabled": "prime_tower_enabled", "settable_per_mesh": false, "settable_per_extruder": false }, From 0a09cee0c6bda29c15b76e3074b8b043c2c4ad94 Mon Sep 17 00:00:00 2001 From: casperlamboo Date: Thu, 22 Feb 2024 15:22:31 +0000 Subject: [PATCH 240/269] Applied printer-linter format --- resources/definitions/fdmprinter.def.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 9dbd7b19a0..a22a06c19f 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6794,7 +6794,8 @@ "description": "Settings used for printing with multiple extruders.", "children": { - "prime_tower_enable": { + "prime_tower_enable": + { "label": "Enable Prime Tower", "description": "Print a tower next to the print which serves to prime the material after each nozzle switch.", "type": "bool", From d4ba499d68fca86b6ccf2e3f9beb8b0824e59207 Mon Sep 17 00:00:00 2001 From: Casper Lamboo Date: Thu, 22 Feb 2024 17:13:01 +0100 Subject: [PATCH 241/269] Update resources/definitions/fdmprinter.def.json --- 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 a22a06c19f..8b5a1e5e92 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6817,7 +6817,7 @@ "interleaved": "Interleaved" }, "default_value": "normal", - "enabled": "prime_tower_enabled", + "enabled": "prime_tower_enable", "settable_per_mesh": false, "settable_per_extruder": false }, From d2ae315522d9c1a0b26e5ac814b862d7e1bc2692 Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Fri, 23 Feb 2024 09:02:26 +0100 Subject: [PATCH 242/269] Update resources/definitions/ultimaker_method_base.def.json Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- 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 19fe80b2e2..ed7b6597e5 100644 --- a/resources/definitions/ultimaker_method_base.def.json +++ b/resources/definitions/ultimaker_method_base.def.json @@ -377,7 +377,7 @@ "retraction_prime_speed": { "value": "retraction_speed" }, "retraction_speed": { "value": 5 }, "roofing_layer_count": { "value": 2 }, - "roofing_material_flow": { "value": "material_flow" }, + "roofing_monotonic": { "value": true }, "skin_material_flow": { "value": "0.95*material_flow" }, "skin_outline_count": { "value": 0 }, From 21032311028a3e97ec175060bb2ca6bd5dca6859 Mon Sep 17 00:00:00 2001 From: pkuiper-ultimaker Date: Fri, 23 Feb 2024 08:03:17 +0000 Subject: [PATCH 243/269] Applied printer-linter format --- resources/definitions/ultimaker_method_base.def.json | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/definitions/ultimaker_method_base.def.json b/resources/definitions/ultimaker_method_base.def.json index ed7b6597e5..07a5a3d253 100644 --- a/resources/definitions/ultimaker_method_base.def.json +++ b/resources/definitions/ultimaker_method_base.def.json @@ -377,7 +377,6 @@ "retraction_prime_speed": { "value": "retraction_speed" }, "retraction_speed": { "value": 5 }, "roofing_layer_count": { "value": 2 }, - "roofing_monotonic": { "value": true }, "skin_material_flow": { "value": "0.95*material_flow" }, "skin_outline_count": { "value": 0 }, From de91761b8af6b1b350a36c09ec40133229a74652 Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Fri, 23 Feb 2024 09:24:05 +0100 Subject: [PATCH 244/269] Update ultimaker.def.json --- resources/definitions/ultimaker.def.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/definitions/ultimaker.def.json b/resources/definitions/ultimaker.def.json index 97eaf278e8..b8d6d33375 100644 --- a/resources/definitions/ultimaker.def.json +++ b/resources/definitions/ultimaker.def.json @@ -101,7 +101,6 @@ "relative_extrusion": { "enabled": false, - "value": false }, "retraction_combing": { "value": "'no_outer_surfaces'" }, "retraction_combing_max_distance": { "value": 15 }, @@ -140,4 +139,4 @@ "z_seam_corner": { "value": "'z_seam_corner_none'" }, "zig_zaggify_support": { "value": true } } -} \ No newline at end of file +} From 1b12617e01ff558ebc18bd2634b18020186c08bb Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Fri, 23 Feb 2024 09:27:31 +0100 Subject: [PATCH 245/269] Update ultimaker.def.json --- resources/definitions/ultimaker.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/ultimaker.def.json b/resources/definitions/ultimaker.def.json index b8d6d33375..7686bd1301 100644 --- a/resources/definitions/ultimaker.def.json +++ b/resources/definitions/ultimaker.def.json @@ -100,7 +100,7 @@ "raft_surface_speed": { "value": "speed_topbottom" }, "relative_extrusion": { - "enabled": false, + "enabled": false }, "retraction_combing": { "value": "'no_outer_surfaces'" }, "retraction_combing_max_distance": { "value": 15 }, From 3eee666d6ad35eb357efc3df46f48e2446effc97 Mon Sep 17 00:00:00 2001 From: pkuiper-ultimaker Date: Fri, 23 Feb 2024 08:28:25 +0000 Subject: [PATCH 246/269] Applied printer-linter format --- resources/definitions/ultimaker.def.json | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/resources/definitions/ultimaker.def.json b/resources/definitions/ultimaker.def.json index 7686bd1301..f62e98f30f 100644 --- a/resources/definitions/ultimaker.def.json +++ b/resources/definitions/ultimaker.def.json @@ -98,10 +98,7 @@ "raft_surface_fan_speed": { "value": "cool_fan_speed_min" }, "raft_surface_monotonic": { "value": true }, "raft_surface_speed": { "value": "speed_topbottom" }, - "relative_extrusion": - { - "enabled": false - }, + "relative_extrusion": { "enabled": false }, "retraction_combing": { "value": "'no_outer_surfaces'" }, "retraction_combing_max_distance": { "value": 15 }, "retraction_count_max": { "value": 25 }, @@ -139,4 +136,4 @@ "z_seam_corner": { "value": "'z_seam_corner_none'" }, "zig_zaggify_support": { "value": true } } -} +} \ No newline at end of file From cd9ce966af097a755b2f82714d5214978fae64b9 Mon Sep 17 00:00:00 2001 From: Nikita Chernukhin Date: Fri, 2 Feb 2024 20:46:14 +0100 Subject: [PATCH 247/269] Fix bed mesh offsets for Ratrig V-Core3 200mm and V-Minion --- resources/definitions/ratrig_vcore3_200.def.json | 2 +- resources/definitions/ratrig_vminion.def.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/ratrig_vcore3_200.def.json b/resources/definitions/ratrig_vcore3_200.def.json index d16f15b476..143063b95f 100644 --- a/resources/definitions/ratrig_vcore3_200.def.json +++ b/resources/definitions/ratrig_vcore3_200.def.json @@ -8,7 +8,7 @@ "platform": "ratrig_vcore3_200.stl", "platform_offset": [ 0, - 5, + 0, 0 ], "weight": 16 diff --git a/resources/definitions/ratrig_vminion.def.json b/resources/definitions/ratrig_vminion.def.json index bdc8d0d8a1..daf0d4f302 100644 --- a/resources/definitions/ratrig_vminion.def.json +++ b/resources/definitions/ratrig_vminion.def.json @@ -11,7 +11,7 @@ "machine_extruder_trains": { "0": "ratrig_base_extruder_0" }, "platform_offset": [ 0, - 5, + 0, 0 ], "preferred_variant_name": "0.4mm Nozzle", From ec138516eb1f46d9bb1d7aaa01394d55542c67ba Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Mon, 26 Feb 2024 06:53:23 +0100 Subject: [PATCH 248/269] override Protobuf requirement deps Fix versions conflict --- conanfile.py | 1 + 1 file changed, 1 insertion(+) diff --git a/conanfile.py b/conanfile.py index ca6b4eabd0..2b45c288e9 100644 --- a/conanfile.py +++ b/conanfile.py @@ -355,6 +355,7 @@ class CuraConan(ConanFile): self.requires("spdlog/1.12.0") self.requires("fmt/10.1.1") self.requires("zlib/1.2.13") + self.requires("protobuf/3.21.12") def build_requirements(self): if self.options.get_safe("enable_i18n", False): From fca8d2a75185e19938b4029bc3f70146ae0fcc5e Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Mon, 26 Feb 2024 06:54:20 +0100 Subject: [PATCH 249/269] Revert "override Protobuf requirement deps" This reverts commit ec138516eb1f46d9bb1d7aaa01394d55542c67ba. --- conanfile.py | 1 - 1 file changed, 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 2b45c288e9..ca6b4eabd0 100644 --- a/conanfile.py +++ b/conanfile.py @@ -355,7 +355,6 @@ class CuraConan(ConanFile): self.requires("spdlog/1.12.0") self.requires("fmt/10.1.1") self.requires("zlib/1.2.13") - self.requires("protobuf/3.21.12") def build_requirements(self): if self.options.get_safe("enable_i18n", False): From d5e8a0acb9d740296e5ee04f91b1b084afac58db Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 26 Feb 2024 11:12:31 +0100 Subject: [PATCH 250/269] Fix prime tower shadow visible when disabled CURA-11645 --- cura/BuildVolume.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index 56abfc0fa1..0f906332eb 100755 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -880,7 +880,7 @@ class BuildVolume(SceneNode): result[extruder.getId()] = [] # Currently, the only normally printed object is the prime tower. - if self._global_container_stack.getProperty("prime_tower_mode", "value") != 'none': + if self._global_container_stack.getProperty("prime_tower_enable", "value"): prime_tower_size = self._global_container_stack.getProperty("prime_tower_size", "value") machine_width = self._global_container_stack.getProperty("machine_width", "value") machine_depth = self._global_container_stack.getProperty("machine_depth", "value") From fb33dfe665778dbcf36480dd1f8f8041c42aea46 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 26 Feb 2024 11:15:34 +0100 Subject: [PATCH 251/269] Register notification on prime tower enable CURA-11645 --- cura/BuildVolume.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index 0f906332eb..742d1872cb 100755 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -1208,7 +1208,7 @@ class BuildVolume(SceneNode): _raft_settings = ["adhesion_type", "raft_base_thickness", "raft_interface_layers", "raft_interface_thickness", "raft_surface_layers", "raft_surface_thickness", "raft_airgap", "layer_0_z_overlap"] _extra_z_settings = ["retraction_hop_enabled", "retraction_hop"] _prime_settings = ["extruder_prime_pos_x", "extruder_prime_pos_y", "prime_blob_enable"] - _tower_settings = ["prime_tower_mode", "prime_tower_size", "prime_tower_position_x", "prime_tower_position_y", "prime_tower_brim_enable", "prime_tower_base_size", "prime_tower_base_height"] + _tower_settings = ["prime_tower_enable", "prime_tower_size", "prime_tower_position_x", "prime_tower_position_y", "prime_tower_brim_enable", "prime_tower_base_size", "prime_tower_base_height"] _ooze_shield_settings = ["ooze_shield_enabled", "ooze_shield_dist"] _distance_settings = ["infill_wipe_dist", "travel_avoid_distance", "support_offset", "support_enable", "travel_avoid_other_parts", "travel_avoid_supports", "wall_line_count", "wall_line_width_0", "wall_line_width_x"] _extruder_settings = ["support_enable", "support_bottom_enable", "support_roof_enable", "support_infill_extruder_nr", "support_extruder_nr_layer_0", "support_bottom_extruder_nr", "support_roof_extruder_nr", "brim_line_count", "skirt_brim_extruder_nr", "raft_base_extruder_nr", "raft_interface_extruder_nr", "raft_surface_extruder_nr", "adhesion_type"] #Settings that can affect which extruders are used. From af494883ccd8f20ce16efee27ca04dd5737f6bf8 Mon Sep 17 00:00:00 2001 From: Casper Lamboo Date: Mon, 26 Feb 2024 12:28:19 +0100 Subject: [PATCH 252/269] Update resources/definitions/fdmprinter.def.json Co-authored-by: Erwan MATHIEU --- 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 8b5a1e5e92..4fac6e1d6e 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6808,7 +6808,7 @@ "prime_tower_mode": { "label": "Prime Tower", - "description": "Print a tower next to the model, which serves to prime the material after each nozzle switch.
  • Normal: generate a bucket in which secondary materials are primed
  • Interleaved: generate a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other.
", + "description": "How to generate the prime tower:
  • Normal: create a bucket in which secondary materials are primed
  • Interleaved: create a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other.
", "type": "enum", "value": "'interleaved' if (all(material_type_var == extruderValues('material_type')[0] for material_type_var in extruderValues('material_type')) and all(material_brand_var == extruderValues('material_brand')[0] for material_brand_var in extruderValues('material_brand'))) else 'normal'", "options": From 55e5cd8982e266a8b28b062fb113e150aaef815d Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Mon, 26 Feb 2024 14:58:53 +0100 Subject: [PATCH 253/269] adding dropto buildplate drop per model in 3mf CURA-10542 --- cura/PlatformPhysics.py | 19 ++++++++++++------- cura/Scene/CuraSceneNode.py | 6 ++++++ plugins/3MFReader/ThreeMFReader.py | 4 ++++ plugins/3MFReader/WorkspaceDialog.qml | 1 + plugins/3MFWriter/ThreeMFWriter.py | 1 + 5 files changed, 24 insertions(+), 7 deletions(-) diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index 6a26190a56..306f6a837a 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -39,7 +39,7 @@ class PlatformPhysics: Application.getInstance().getPreferences().addPreference("physics/automatic_push_free", False) Application.getInstance().getPreferences().addPreference("physics/automatic_drop_down", False) - self._app_per_model_drop = Application.getInstance().getPreferences().getValue("physics/automatic_drop_down") + self._app_per_model_drop = None def getAppPerModelDropDown(self): return self._app_per_model_drop @@ -78,6 +78,14 @@ class PlatformPhysics: # We try to shuffle all the nodes to prevent "locked" situations, where iteration B inverts iteration A. # By shuffling the order of the nodes, this might happen a few times, but at some point it will resolve. random.shuffle(nodes) + drop_down = False + # drop down in case nodes are asked to drop down from the user from workspaceDialog while opening 3mf + if self._app_per_model_drop and (self._app_per_model_drop != app_automatic_drop_down): + drop_down = True + # drop down in case the user has selected automated drop down preference for 3mf opening + if self._app_per_model_drop and app_automatic_drop_down: + drop_down= True + for node in nodes: if node is root or not isinstance(node, SceneNode) or node.getBoundingBox() is None: @@ -88,12 +96,9 @@ class PlatformPhysics: # Move it downwards if bottom is above platform move_vector = Vector() - # if per model drop is different then app_automatic_drop, in case of 3mf loading when user changes this setting for that model - if (self._app_per_model_drop != app_automatic_drop_down): - node.setSetting(SceneNodeSettings.AutoDropDown, self._app_per_model_drop) - if node.getSetting(SceneNodeSettings.AutoDropDown, self._app_per_model_drop) and not (node.getParent() and node.getParent().callDecoration("isGroup") or node.getParent() != root) and node.isEnabled(): #If an object is grouped, don't move it down + if (node.getSetting(SceneNodeSettings.AutoDropDown, app_automatic_drop_down) or drop_down) and not (node.getParent() and node.getParent().callDecoration("isGroup") or node.getParent() != root) and node.isEnabled(): z_offset = node.callDecoration("getZOffset") if node.getDecorator(ZOffsetDecorator.ZOffsetDecorator) else 0 - move_vector = move_vector.set(y = -bbox.bottom + z_offset) + move_vector = move_vector.set(y=-bbox.bottom + z_offset) # If there is no convex hull for the node, start calculating it and continue. if not node.getDecorator(ConvexHullDecorator) and not node.callDecoration("isNonPrintingMesh") and node.callDecoration("getLayerData") is None: @@ -180,7 +185,7 @@ class PlatformPhysics: op.push() # setting this drop to model same as app_automatic_drop_down - self._app_per_model_drop = app_automatic_drop_down + self._app_per_model_drop = None # After moving, we have to evaluate the boundary checks for nodes build_volume.updateNodeBoundaryCheck() diff --git a/cura/Scene/CuraSceneNode.py b/cura/Scene/CuraSceneNode.py index 9b412c7d4f..5a47fa0f0b 100644 --- a/cura/Scene/CuraSceneNode.py +++ b/cura/Scene/CuraSceneNode.py @@ -11,6 +11,7 @@ from UM.Scene.SceneNode import SceneNode from UM.Scene.SceneNodeDecorator import SceneNodeDecorator # To cast the deepcopy of every decorator back to SceneNodeDecorator. import cura.CuraApplication # To get the build plate. +from UM.Scene.SceneNodeSettings import SceneNodeSettings from cura.Settings.ExtruderStack import ExtruderStack # For typing. from cura.Settings.SettingOverrideDecorator import SettingOverrideDecorator # For per-object settings. @@ -26,6 +27,7 @@ class CuraSceneNode(SceneNode): self.addDecorator(SettingOverrideDecorator()) # Now we always have a getActiveExtruderPosition, unless explicitly disabled self._outside_buildarea = False self._print_order = 0 + self._drop_down = Application.getInstance().getPreferences().getValue("physics/automatic_drop_down") def setOutsideBuildArea(self, new_value: bool) -> None: self._outside_buildarea = new_value @@ -41,6 +43,10 @@ class CuraSceneNode(SceneNode): def isOutsideBuildArea(self) -> bool: return self._outside_buildarea or self.callDecoration("getBuildPlateNumber") < 0 + @property + def isDropDownEnabled(self) ->bool: + return self.getSetting(SceneNodeSettings.AutoDropDown, self._drop_down) + def isVisible(self) -> bool: return super().isVisible() and self.callDecoration("getBuildPlateNumber") == cura.CuraApplication.CuraApplication.getInstance().getMultiBuildPlateModel().activeBuildPlate diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index ac94282136..99852d84ce 100755 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -16,6 +16,7 @@ from UM.Mesh.MeshReader import MeshReader from UM.MimeTypeDatabase import MimeTypeDatabase, MimeType from UM.Scene.GroupDecorator import GroupDecorator from UM.Scene.SceneNode import SceneNode # For typing. +from UM.Scene.SceneNodeSettings import SceneNodeSettings from cura.CuraApplication import CuraApplication from cura.Machines.ContainerTree import ContainerTree from cura.Scene.BuildPlateDecorator import BuildPlateDecorator @@ -180,6 +181,9 @@ class ThreeMFReader(MeshReader): if key == "print_order": um_node.printOrder = int(setting_value) continue + if key =="drop_to_buildplate": + um_node.setSetting(SceneNodeSettings.AutoDropDown, eval(setting_value)) + continue if key in known_setting_keys: setting_container.setProperty(key, "value", setting_value) else: diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 334317e0dc..0cef71fd42 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -366,6 +366,7 @@ UM.Dialog } function reloadValue() { + manager.manager.setDropToBuildPlateForModel(checkDropModels.checked) checkDropModels.checked = UM.Preferences.getValue("physics/automatic_drop_down") } } diff --git a/plugins/3MFWriter/ThreeMFWriter.py b/plugins/3MFWriter/ThreeMFWriter.py index 6fda1742f8..c321505643 100644 --- a/plugins/3MFWriter/ThreeMFWriter.py +++ b/plugins/3MFWriter/ThreeMFWriter.py @@ -155,6 +155,7 @@ class ThreeMFWriter(MeshWriter): if isinstance(um_node, CuraSceneNode): savitar_node.setSetting("cura:print_order", str(um_node.printOrder)) + savitar_node.setSetting("cura:drop_to_buildplate", str(um_node.isDropDownEnabled)) # Store the metadata. for key, value in um_node.metadata.items(): From fb233d8b16460e3d5b38167a45d834e005dc0920 Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Mon, 26 Feb 2024 14:59:48 +0100 Subject: [PATCH 254/269] preference setting of "drop+to_buildplate" preseve from previous versions CURA-10542 --- cura/PlatformPhysics.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index 306f6a837a..74fe05927d 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -38,7 +38,7 @@ class PlatformPhysics: self._minimum_gap = 2 # It is a minimum distance (in mm) between two models, applicable for small models Application.getInstance().getPreferences().addPreference("physics/automatic_push_free", False) - Application.getInstance().getPreferences().addPreference("physics/automatic_drop_down", False) + Application.getInstance().getPreferences().addPreference("physics/automatic_drop_down", True) self._app_per_model_drop = None def getAppPerModelDropDown(self): From 0d40d2b07f09d41255e75699682d350248214f00 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 26 Feb 2024 15:37:54 +0100 Subject: [PATCH 255/269] Fix crash when saving ucp project CURA-11403 --- plugins/3MFWriter/SettingsExportModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/3MFWriter/SettingsExportModel.py b/plugins/3MFWriter/SettingsExportModel.py index 0c34278067..3b034236c8 100644 --- a/plugins/3MFWriter/SettingsExportModel.py +++ b/plugins/3MFWriter/SettingsExportModel.py @@ -118,7 +118,7 @@ class SettingsExportModel(QObject): setting_type = settings_stack.getProperty(setting_to_export, "type") if setting_type is not None: # This is not very good looking, but will do for now - value = SettingDefinition.settingValueToString(setting_type, value) + " " + unit + value = f"{str(SettingDefinition.settingValueToString(setting_type, value))} {unit}" else: value = str(value) From b5b9dd0e572378e8b6376994cd60e3a8ee5e6089 Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Mon, 26 Feb 2024 15:51:36 +0100 Subject: [PATCH 256/269] fixing unit-test CURA-10542 --- cura/Scene/CuraSceneNode.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cura/Scene/CuraSceneNode.py b/cura/Scene/CuraSceneNode.py index 5a47fa0f0b..65b7c1e593 100644 --- a/cura/Scene/CuraSceneNode.py +++ b/cura/Scene/CuraSceneNode.py @@ -27,7 +27,6 @@ class CuraSceneNode(SceneNode): self.addDecorator(SettingOverrideDecorator()) # Now we always have a getActiveExtruderPosition, unless explicitly disabled self._outside_buildarea = False self._print_order = 0 - self._drop_down = Application.getInstance().getPreferences().getValue("physics/automatic_drop_down") def setOutsideBuildArea(self, new_value: bool) -> None: self._outside_buildarea = new_value @@ -45,7 +44,7 @@ class CuraSceneNode(SceneNode): @property def isDropDownEnabled(self) ->bool: - return self.getSetting(SceneNodeSettings.AutoDropDown, self._drop_down) + return self.getSetting(SceneNodeSettings.AutoDropDown, Application.getInstance().getPreferences().getValue("physics/automatic_drop_down")) def isVisible(self) -> bool: return super().isVisible() and self.callDecoration("getBuildPlateNumber") == cura.CuraApplication.CuraApplication.getInstance().getMultiBuildPlateModel().activeBuildPlate From 6cd8196a9660a8d73d66c454398f0b6d8ec6f464 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 26 Feb 2024 15:53:15 +0100 Subject: [PATCH 257/269] Fix crash when saving ucp project CURA-11403 --- resources/qml/Menus/FileMenu.qml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/resources/qml/Menus/FileMenu.qml b/resources/qml/Menus/FileMenu.qml index 4ca09cc9f1..67edcc5962 100644 --- a/resources/qml/Menus/FileMenu.qml +++ b/resources/qml/Menus/FileMenu.qml @@ -47,6 +47,11 @@ Cura.Menu enabled: UM.WorkspaceFileHandler.enabled && saveProjectMenu.model.count == 1 onTriggered: { + const args = { + "filter_by_machine": false, + "file_type": "workspace", + "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml", + }; if (UM.Preferences.getValue("cura/dialog_on_project_save")) { saveWorkspaceDialog.args = args @@ -54,11 +59,6 @@ Cura.Menu } else { - const args = { - "filter_by_machine": false, - "file_type": "workspace", - "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml", - }; UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args) } } From 2bdc70c76b0e6238155636528087b50296102bba Mon Sep 17 00:00:00 2001 From: HellAholic Date: Mon, 26 Feb 2024 19:06:35 +0000 Subject: [PATCH 258/269] Applied printer-linter format --- resources/definitions/creality_ender3v3se.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/creality_ender3v3se.def.json b/resources/definitions/creality_ender3v3se.def.json index 8e32a44eb9..86d6818166 100644 --- a/resources/definitions/creality_ender3v3se.def.json +++ b/resources/definitions/creality_ender3v3se.def.json @@ -52,4 +52,4 @@ "speed_layer_0": { "value": 30 }, "speed_print": { "value": 180 } } -} +} \ No newline at end of file From 59d6593c176a8fcc252eb45b2eb82e4ed3e11dc0 Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Tue, 27 Feb 2024 09:57:39 +0100 Subject: [PATCH 259/269] fixing reloadvalue manager CURA-10542 --- plugins/3MFReader/WorkspaceDialog.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 0cef71fd42..dbd6356e94 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -366,7 +366,7 @@ UM.Dialog } function reloadValue() { - manager.manager.setDropToBuildPlateForModel(checkDropModels.checked) + manager.setDropToBuildPlateForModel(checkDropModels.checked) checkDropModels.checked = UM.Preferences.getValue("physics/automatic_drop_down") } } From caf710ff606a0fcfb1c27e6986fb0a64251d8adf Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 27 Feb 2024 12:46:58 +0100 Subject: [PATCH 260/269] Change some left over prime tower mode -> enable CURA-11645 --- plugins/SliceInfoPlugin/SliceInfo.py | 1 + resources/definitions/fdmprinter.def.json | 30 +++++++++++------------ resources/setting_visibility/advanced.cfg | 1 + resources/setting_visibility/basic.cfg | 2 +- resources/setting_visibility/expert.cfg | 1 + 5 files changed, 19 insertions(+), 16 deletions(-) diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index f61f5cf295..411146d065 100755 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -263,6 +263,7 @@ class SliceInfo(QObject, Extension): print_settings["retraction_enable"] = global_stack.getProperty("retraction_enable", "value") # Prime tower settings + print_settings["prime_tower_enable"] = global_stack.getProperty("prime_tower_enable", "value") print_settings["prime_tower_mode"] = global_stack.getProperty("prime_tower_mode", "value") # Infill settings diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 4fac6e1d6e..92856e9613 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -979,7 +979,7 @@ "description": "Width of a single prime tower line.", "type": "float", "unit": "mm", - "enabled": "resolveOrValue('prime_tower_mode') != 'none'", + "enabled": "'prime_tower_enable'", "default_value": 0.4, "value": "line_width", "minimum_value": "0.001", @@ -3363,7 +3363,7 @@ "description": "The speed at which the prime tower is printed. Printing the prime tower slower can make it more stable when the adhesion between the different filaments is suboptimal.", "type": "float", "unit": "mm/s", - "enabled": "resolveOrValue('prime_tower_mode') != 'none'", + "enabled": "'prime_tower_enable'", "default_value": 60, "value": "speed_print", "minimum_value": "0.1", @@ -3741,7 +3741,7 @@ "maximum_value_warning": "10000", "default_value": 3000, "value": "acceleration_print", - "enabled": "resolveOrValue('prime_tower_mode') != 'none' and resolveOrValue('acceleration_enabled')", + "enabled": "'prime_tower_enable' and resolveOrValue('acceleration_enabled')", "settable_per_mesh": false } } @@ -4060,7 +4060,7 @@ "maximum_value_warning": "50", "default_value": 20, "value": "jerk_print", - "enabled": "resolveOrValue('prime_tower_mode') != 'none' and resolveOrValue('jerk_enabled')", + "enabled": "'prime_tower_enable' and resolveOrValue('jerk_enabled')", "settable_per_mesh": false } } @@ -6827,7 +6827,7 @@ "description": "The width of the prime tower.", "type": "float", "unit": "mm", - "enabled": "resolveOrValue('prime_tower_mode') != 'none'", + "enabled": "'prime_tower_enable'", "default_value": 20, "resolve": "max(extruderValues('prime_tower_size'))", "minimum_value": "0", @@ -6846,7 +6846,7 @@ "default_value": 6, "minimum_value": "0", "maximum_value_warning": "(resolveOrValue('prime_tower_size') * 0.5) ** 2 * 3.14159 * resolveOrValue('layer_height') - sum(extruderValues('prime_tower_min_volume')) + prime_tower_min_volume", - "enabled": "resolveOrValue('prime_tower_mode') != 'none'", + "enabled": "'prime_tower_enable'", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -6859,7 +6859,7 @@ "default_value": 5, "minimum_value": "line_width", "maximum_value_warning": "10.0", - "enabled": "resolveOrValue('prime_tower_mode') != 'none'", + "enabled": "'prime_tower_enable'", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -6869,7 +6869,7 @@ "description": "The x coordinate of the position of the prime tower.", "type": "float", "unit": "mm", - "enabled": "resolveOrValue('prime_tower_mode') != 'none'", + "enabled": "'prime_tower_enable'", "default_value": 200, "value": "(resolveOrValue('machine_width') / 2 + resolveOrValue('prime_tower_size') / 2) if resolveOrValue('machine_shape') == 'elliptic' else (resolveOrValue('machine_width') - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0) - max(max(extruderValues('travel_avoid_distance')) + max(extruderValues('machine_nozzle_offset_x')) + max(extruderValues('support_offset')) + (extruderValue(skirt_brim_extruder_nr, 'skirt_brim_line_width') * extruderValue(skirt_brim_extruder_nr, 'skirt_line_count') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 + extruderValue(skirt_brim_extruder_nr, 'skirt_gap') if resolveOrValue('adhesion_type') == 'skirt' else 0) + (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0), max(map(abs, extruderValues('machine_nozzle_offset_x'))), 1)) - (resolveOrValue('machine_width') / 2 if resolveOrValue('machine_center_is_zero') else 0)", "maximum_value": "(machine_width / 2 if machine_center_is_zero else machine_width) - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0)", @@ -6883,7 +6883,7 @@ "description": "The y coordinate of the position of the prime tower.", "type": "float", "unit": "mm", - "enabled": "resolveOrValue('prime_tower_mode') != 'none'", + "enabled": "'prime_tower_enable'", "default_value": 200, "value": "machine_depth - prime_tower_size - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0) - max(max(extruderValues('travel_avoid_distance')) + max(extruderValues('machine_nozzle_offset_y')) + max(extruderValues('support_offset')) + (extruderValue(skirt_brim_extruder_nr, 'skirt_brim_line_width') * extruderValue(skirt_brim_extruder_nr, 'skirt_line_count') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 + extruderValue(skirt_brim_extruder_nr, 'skirt_gap') if resolveOrValue('adhesion_type') == 'skirt' else 0) + (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0), max(map(abs, extruderValues('machine_nozzle_offset_y'))), 1) - (resolveOrValue('machine_depth') / 2 if resolveOrValue('machine_center_is_zero') else 0)", "maximum_value": "(machine_depth / 2 - resolveOrValue('prime_tower_size') if machine_center_is_zero else machine_depth - resolveOrValue('prime_tower_size')) - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0)", @@ -6896,7 +6896,7 @@ "label": "Wipe Inactive Nozzle on Prime Tower", "description": "After printing the prime tower with one nozzle, wipe the oozed material from the other nozzle off on the prime tower.", "type": "bool", - "enabled": "resolveOrValue('prime_tower_mode') != 'none'", + "enabled": "'prime_tower_enable'", "default_value": true, "settable_per_mesh": false, "settable_per_extruder": true @@ -6907,7 +6907,7 @@ "label": "Prime Tower Base", "description": "By enabling this setting, your prime-tower will get a brim, even if the model doesn't. If you want a sturdier base for a high tower, you can increase the base height.", "type": "bool", - "enabled": "resolveOrValue('prime_tower_mode') != 'none' and resolveOrValue('adhesion_type') != 'raft'", + "enabled": "'prime_tower_enable' and resolveOrValue('adhesion_type') != 'raft'", "default_value": false, "settable_per_mesh": false, "settable_per_extruder": false @@ -6919,7 +6919,7 @@ "description": "The width of the prime tower brim/base. A larger base enhances adhesion to the build plate, but also reduces the effective print area.", "type": "float", "unit": "mm", - "enabled": "resolveOrValue('prime_tower_mode') != 'none' and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", + "enabled": "'prime_tower_enable' and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", "default_value": 1.2, "minimum_value": "0", "maximum_value": "min(0.5 * machine_width, 0.5 * machine_depth)", @@ -6933,7 +6933,7 @@ "description": "The height of the prime tower base. Increasing this value will result in a more sturdy prime tower because the base will be wider. If this setting is too low, the prime tower will not have a sturdy base.", "type": "float", "unit": "mm", - "enabled": "resolveOrValue('prime_tower_mode') != 'none' and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", + "enabled": "'prime_tower_enable' and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", "default_value": 0, "minimum_value": "0", "maximum_value": "machine_height", @@ -6945,7 +6945,7 @@ "label": "Prime Tower Base Slope", "description": "The magnitude factor used for the slope of the prime tower base. If you increase this value, the base will become slimmer. If you decrease it, the base will become thicker.", "type": "float", - "enabled": "resolveOrValue('prime_tower_mode') != 'none' and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", + "enabled": "'prime_tower_enable' and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", "default_value": 4, "minimum_value": "0", "maximum_value": "10", @@ -6963,7 +6963,7 @@ "minimum_value": "0", "minimum_value_warning": "raft_base_line_width", "maximum_value_warning": "100", - "enabled": "resolveOrValue('prime_tower_mode') != 'none' and resolveOrValue('adhesion_type') == 'raft'", + "enabled": "'prime_tower_enable' and resolveOrValue('adhesion_type') == 'raft'", "settable_per_mesh": false, "settable_per_extruder": true, "limit_to_extruder": "raft_base_extruder_nr" diff --git a/resources/setting_visibility/advanced.cfg b/resources/setting_visibility/advanced.cfg index 57698bf252..55a36075be 100644 --- a/resources/setting_visibility/advanced.cfg +++ b/resources/setting_visibility/advanced.cfg @@ -127,6 +127,7 @@ brim_line_count brim_outside_only [dual] +prime_tower_enable prime_tower_mode prime_tower_position_x prime_tower_position_y diff --git a/resources/setting_visibility/basic.cfg b/resources/setting_visibility/basic.cfg index f5552f3cd8..0193eb26ba 100644 --- a/resources/setting_visibility/basic.cfg +++ b/resources/setting_visibility/basic.cfg @@ -53,7 +53,7 @@ adhesion_type adhesion_extruder_nr [dual] -prime_tower_mode +prime_tower_enable prime_tower_position_x prime_tower_position_y diff --git a/resources/setting_visibility/expert.cfg b/resources/setting_visibility/expert.cfg index 0a07fff449..130b2580a4 100644 --- a/resources/setting_visibility/expert.cfg +++ b/resources/setting_visibility/expert.cfg @@ -356,6 +356,7 @@ raft_fan_speed raft_is_shrink_plate [dual] +prime_tower_enable prime_tower_mode prime_tower_size prime_tower_min_volume From 85a82ea986c91ab4b88551dc2d15a497ffb6122d Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Tue, 27 Feb 2024 12:57:38 +0100 Subject: [PATCH 261/269] Fix prime_tower_enable setting use CURA-11645 --- resources/definitions/fdmprinter.def.json | 30 +++++++++++------------ 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 92856e9613..2cea608c33 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -979,7 +979,7 @@ "description": "Width of a single prime tower line.", "type": "float", "unit": "mm", - "enabled": "'prime_tower_enable'", + "enabled": "prime_tower_enable", "default_value": 0.4, "value": "line_width", "minimum_value": "0.001", @@ -3363,7 +3363,7 @@ "description": "The speed at which the prime tower is printed. Printing the prime tower slower can make it more stable when the adhesion between the different filaments is suboptimal.", "type": "float", "unit": "mm/s", - "enabled": "'prime_tower_enable'", + "enabled": "prime_tower_enable", "default_value": 60, "value": "speed_print", "minimum_value": "0.1", @@ -3741,7 +3741,7 @@ "maximum_value_warning": "10000", "default_value": 3000, "value": "acceleration_print", - "enabled": "'prime_tower_enable' and resolveOrValue('acceleration_enabled')", + "enabled": "prime_tower_enable and resolveOrValue('acceleration_enabled')", "settable_per_mesh": false } } @@ -4060,7 +4060,7 @@ "maximum_value_warning": "50", "default_value": 20, "value": "jerk_print", - "enabled": "'prime_tower_enable' and resolveOrValue('jerk_enabled')", + "enabled": "prime_tower_enable and resolveOrValue('jerk_enabled')", "settable_per_mesh": false } } @@ -6827,7 +6827,7 @@ "description": "The width of the prime tower.", "type": "float", "unit": "mm", - "enabled": "'prime_tower_enable'", + "enabled": "prime_tower_enable", "default_value": 20, "resolve": "max(extruderValues('prime_tower_size'))", "minimum_value": "0", @@ -6846,7 +6846,7 @@ "default_value": 6, "minimum_value": "0", "maximum_value_warning": "(resolveOrValue('prime_tower_size') * 0.5) ** 2 * 3.14159 * resolveOrValue('layer_height') - sum(extruderValues('prime_tower_min_volume')) + prime_tower_min_volume", - "enabled": "'prime_tower_enable'", + "enabled": "prime_tower_enable", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -6859,7 +6859,7 @@ "default_value": 5, "minimum_value": "line_width", "maximum_value_warning": "10.0", - "enabled": "'prime_tower_enable'", + "enabled": "prime_tower_enable", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -6869,7 +6869,7 @@ "description": "The x coordinate of the position of the prime tower.", "type": "float", "unit": "mm", - "enabled": "'prime_tower_enable'", + "enabled": "prime_tower_enable", "default_value": 200, "value": "(resolveOrValue('machine_width') / 2 + resolveOrValue('prime_tower_size') / 2) if resolveOrValue('machine_shape') == 'elliptic' else (resolveOrValue('machine_width') - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0) - max(max(extruderValues('travel_avoid_distance')) + max(extruderValues('machine_nozzle_offset_x')) + max(extruderValues('support_offset')) + (extruderValue(skirt_brim_extruder_nr, 'skirt_brim_line_width') * extruderValue(skirt_brim_extruder_nr, 'skirt_line_count') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 + extruderValue(skirt_brim_extruder_nr, 'skirt_gap') if resolveOrValue('adhesion_type') == 'skirt' else 0) + (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0), max(map(abs, extruderValues('machine_nozzle_offset_x'))), 1)) - (resolveOrValue('machine_width') / 2 if resolveOrValue('machine_center_is_zero') else 0)", "maximum_value": "(machine_width / 2 if machine_center_is_zero else machine_width) - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0)", @@ -6883,7 +6883,7 @@ "description": "The y coordinate of the position of the prime tower.", "type": "float", "unit": "mm", - "enabled": "'prime_tower_enable'", + "enabled": "prime_tower_enable", "default_value": 200, "value": "machine_depth - prime_tower_size - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0) - max(max(extruderValues('travel_avoid_distance')) + max(extruderValues('machine_nozzle_offset_y')) + max(extruderValues('support_offset')) + (extruderValue(skirt_brim_extruder_nr, 'skirt_brim_line_width') * extruderValue(skirt_brim_extruder_nr, 'skirt_line_count') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 + extruderValue(skirt_brim_extruder_nr, 'skirt_gap') if resolveOrValue('adhesion_type') == 'skirt' else 0) + (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0), max(map(abs, extruderValues('machine_nozzle_offset_y'))), 1) - (resolveOrValue('machine_depth') / 2 if resolveOrValue('machine_center_is_zero') else 0)", "maximum_value": "(machine_depth / 2 - resolveOrValue('prime_tower_size') if machine_center_is_zero else machine_depth - resolveOrValue('prime_tower_size')) - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0)", @@ -6896,7 +6896,7 @@ "label": "Wipe Inactive Nozzle on Prime Tower", "description": "After printing the prime tower with one nozzle, wipe the oozed material from the other nozzle off on the prime tower.", "type": "bool", - "enabled": "'prime_tower_enable'", + "enabled": "prime_tower_enable", "default_value": true, "settable_per_mesh": false, "settable_per_extruder": true @@ -6907,7 +6907,7 @@ "label": "Prime Tower Base", "description": "By enabling this setting, your prime-tower will get a brim, even if the model doesn't. If you want a sturdier base for a high tower, you can increase the base height.", "type": "bool", - "enabled": "'prime_tower_enable' and resolveOrValue('adhesion_type') != 'raft'", + "enabled": "prime_tower_enable and resolveOrValue('adhesion_type') != 'raft'", "default_value": false, "settable_per_mesh": false, "settable_per_extruder": false @@ -6919,7 +6919,7 @@ "description": "The width of the prime tower brim/base. A larger base enhances adhesion to the build plate, but also reduces the effective print area.", "type": "float", "unit": "mm", - "enabled": "'prime_tower_enable' and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", + "enabled": "prime_tower_enable and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", "default_value": 1.2, "minimum_value": "0", "maximum_value": "min(0.5 * machine_width, 0.5 * machine_depth)", @@ -6933,7 +6933,7 @@ "description": "The height of the prime tower base. Increasing this value will result in a more sturdy prime tower because the base will be wider. If this setting is too low, the prime tower will not have a sturdy base.", "type": "float", "unit": "mm", - "enabled": "'prime_tower_enable' and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", + "enabled": "prime_tower_enable and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", "default_value": 0, "minimum_value": "0", "maximum_value": "machine_height", @@ -6945,7 +6945,7 @@ "label": "Prime Tower Base Slope", "description": "The magnitude factor used for the slope of the prime tower base. If you increase this value, the base will become slimmer. If you decrease it, the base will become thicker.", "type": "float", - "enabled": "'prime_tower_enable' and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", + "enabled": "prime_tower_enable and (resolveOrValue('prime_tower_brim_enable') or resolveOrValue('adhesion_type') == 'raft')", "default_value": 4, "minimum_value": "0", "maximum_value": "10", @@ -6963,7 +6963,7 @@ "minimum_value": "0", "minimum_value_warning": "raft_base_line_width", "maximum_value_warning": "100", - "enabled": "'prime_tower_enable' and resolveOrValue('adhesion_type') == 'raft'", + "enabled": "prime_tower_enable and resolveOrValue('adhesion_type') == 'raft'", "settable_per_mesh": false, "settable_per_extruder": true, "limit_to_extruder": "raft_base_extruder_nr" From 98becc9f25c901565eef3250c108caa0152cf29c Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Tue, 27 Feb 2024 13:02:46 +0100 Subject: [PATCH 262/269] Minor prime tower setting wording CURA-11645 --- 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 2cea608c33..1db28b289c 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6807,7 +6807,7 @@ }, "prime_tower_mode": { - "label": "Prime Tower", + "label": "Prime Tower Type", "description": "How to generate the prime tower:
  • Normal: create a bucket in which secondary materials are primed
  • Interleaved: create a prime tower as sparse as possible. This will save time and filament, but is only possible if the used materials adhere to each other.
", "type": "enum", "value": "'interleaved' if (all(material_type_var == extruderValues('material_type')[0] for material_type_var in extruderValues('material_type')) and all(material_brand_var == extruderValues('material_brand')[0] for material_brand_var in extruderValues('material_brand'))) else 'normal'", From 1338a562efca7169a3dc38c5aec76180dbe3aa7a Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Tue, 27 Feb 2024 13:45:10 +0100 Subject: [PATCH 263/269] added drop models to buildplate as a right click option Also shortcut: ctrl+B CURA-10542 --- cura/CuraApplication.py | 6 +++--- cura/PlatformPhysics.py | 16 ++++------------ plugins/3MFReader/WorkspaceDialog.py | 5 ----- plugins/3MFReader/WorkspaceDialog.qml | 21 --------------------- resources/qml/Actions.qml | 10 +++++++++- resources/qml/Menus/ContextMenu.qml | 1 + resources/qml/Menus/EditMenu.qml | 1 + resources/qml/Preferences/GeneralPage.qml | 1 - 8 files changed, 18 insertions(+), 43 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 6132d8ab36..680baefdb3 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1085,9 +1085,9 @@ class CuraApplication(QtApplication): def getTextManager(self, *args) -> "TextManager": return self._text_manager - @pyqtSlot(bool) - def getWorkplaceDropToBuildplate(self, drop_to_build_plate: bool) ->None: - return self._physics.setAppPerModelDropDown(drop_to_build_plate) + @pyqtSlot() + def setWorkplaceDropToBuildplate(self): + return self._physics.setAppPerModelDropDown() def getCuraFormulaFunctions(self, *args) -> "CuraFormulaFunctions": if self._cura_formula_functions is None: diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index 74fe05927d..1f86258b42 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -41,11 +41,9 @@ class PlatformPhysics: Application.getInstance().getPreferences().addPreference("physics/automatic_drop_down", True) self._app_per_model_drop = None - def getAppPerModelDropDown(self): - return self._app_per_model_drop - - def setAppPerModelDropDown(self, drop_to_buildplate): - self._app_per_model_drop = drop_to_buildplate + def setAppPerModelDropDown(self): + self._app_per_model_drop = True + self._onChangeTimerFinished() def _onSceneChanged(self, source): if not source.callDecoration("isSliceable"): @@ -79,13 +77,7 @@ class PlatformPhysics: # By shuffling the order of the nodes, this might happen a few times, but at some point it will resolve. random.shuffle(nodes) drop_down = False - # drop down in case nodes are asked to drop down from the user from workspaceDialog while opening 3mf - if self._app_per_model_drop and (self._app_per_model_drop != app_automatic_drop_down): - drop_down = True - # drop down in case the user has selected automated drop down preference for 3mf opening - if self._app_per_model_drop and app_automatic_drop_down: - drop_down= True - + if self._app_per_model_drop == True: drop_down = True for node in nodes: if node is root or not isinstance(node, SceneNode) or node.getBoundingBox() is None: diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index c0ea950915..1fafcf59f5 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/plugins/3MFReader/WorkspaceDialog.py @@ -353,11 +353,6 @@ class WorkspaceDialog(QObject): Application.getInstance().getBackend().close() - @pyqtSlot(bool) - def setDropToBuildPlateForModel(self, drop_to_buildplate: bool) -> None: - CuraApplication.getInstance().getWorkplaceDropToBuildplate(drop_to_buildplate) - - def setMaterialConflict(self, material_conflict: bool) -> None: if self._has_material_conflict != material_conflict: self._has_material_conflict = material_conflict diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index dbd6356e94..8d06b32e14 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -351,26 +351,6 @@ UM.Dialog } } - Row - { - id: dropToBuildPlate - width: parent.width - height: childrenRect.height - spacing: UM.Theme.getSize("default_margin").width - UM.CheckBox - { - id: checkDropModels - text: catalog.i18nc("@text:window", "Drop models to buildplate") - checked: UM.Preferences.getValue("physics/automatic_drop_down") - onCheckedChanged: manager.setDropToBuildPlateForModel(checked) - } - function reloadValue() - { - manager.setDropToBuildPlateForModel(checkDropModels.checked) - checkDropModels.checked = UM.Preferences.getValue("physics/automatic_drop_down") - } - } - Row { id: clearBuildPlateWarning @@ -493,7 +473,6 @@ UM.Dialog materialSection.reloadValues() profileSection.reloadValues() printerSection.reloadValues() - dropToBuildPlate.reloadValue() } } } diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index 8fe4a11847..7acf39ecb2 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -39,7 +39,7 @@ Item property alias printObjectAfterNext: printObjectAfterNextAction property alias multiplyObject: multiplyObjectAction - + property alias dropAll: dropAllAction property alias selectAll: selectAllAction property alias deleteAll: deleteAllAction property alias reloadAll: reloadAllAction @@ -490,6 +490,14 @@ Item shortcut: "Shift+Ctrl+R" } + Action + { + id: dropAllAction + text: catalog.i18nc("@action:inmenu menubar:edit","Drop All Models to buildplate") + shortcut: "Ctrl+B" + onTriggered: CuraApplication.setWorkplaceDropToBuildplate() + } + Action { id: resetAllTranslationAction diff --git a/resources/qml/Menus/ContextMenu.qml b/resources/qml/Menus/ContextMenu.qml index 1b32c24254..1ab0a1332e 100644 --- a/resources/qml/Menus/ContextMenu.qml +++ b/resources/qml/Menus/ContextMenu.qml @@ -71,6 +71,7 @@ Cura.Menu Cura.MenuItem { action: Cura.Actions.reloadAll } Cura.MenuItem { action: Cura.Actions.resetAllTranslation } Cura.MenuItem { action: Cura.Actions.resetAll } + Cura.MenuItem { action: Cura.Actions.dropAll } // Group actions Cura.MenuSeparator {} diff --git a/resources/qml/Menus/EditMenu.qml b/resources/qml/Menus/EditMenu.qml index 728b3b212b..fdab70360e 100644 --- a/resources/qml/Menus/EditMenu.qml +++ b/resources/qml/Menus/EditMenu.qml @@ -21,6 +21,7 @@ Cura.Menu Cura.MenuItem { action: Cura.Actions.deleteAll } Cura.MenuItem { action: Cura.Actions.resetAllTranslation } Cura.MenuItem { action: Cura.Actions.resetAll } + Cura.MenuItem { action: Cura.Actions.dropAll } Cura.MenuSeparator { } Cura.MenuItem { action: Cura.Actions.groupObjects } Cura.MenuItem { action: Cura.Actions.mergeObjects } diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index d87ecac0b3..0f50f169ef 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -513,7 +513,6 @@ UM.PreferencesPage onCheckedChanged: { UM.Preferences.setValue("physics/automatic_drop_down", checked) - CuraApplication.getWorkplaceDropToBuildplate(checked) } } } From 586590605774c8bca7a08a71f62571e8fac80332 Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Tue, 27 Feb 2024 13:52:59 +0100 Subject: [PATCH 264/269] function Name change CURA-10542 --- cura/CuraApplication.py | 2 +- cura/PlatformPhysics.py | 13 +++++-------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 680baefdb3..c32017371f 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1087,7 +1087,7 @@ class CuraApplication(QtApplication): @pyqtSlot() def setWorkplaceDropToBuildplate(self): - return self._physics.setAppPerModelDropDown() + return self._physics.setAppAllModelDropDown() def getCuraFormulaFunctions(self, *args) -> "CuraFormulaFunctions": if self._cura_formula_functions is None: diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index 1f86258b42..c61f78d86e 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -39,10 +39,10 @@ class PlatformPhysics: Application.getInstance().getPreferences().addPreference("physics/automatic_push_free", False) Application.getInstance().getPreferences().addPreference("physics/automatic_drop_down", True) - self._app_per_model_drop = None + self._app_all_model_drop = False - def setAppPerModelDropDown(self): - self._app_per_model_drop = True + def setAppAllModelDropDown(self): + self._app_all_model_drop = True self._onChangeTimerFinished() def _onSceneChanged(self, source): @@ -76,9 +76,6 @@ class PlatformPhysics: # We try to shuffle all the nodes to prevent "locked" situations, where iteration B inverts iteration A. # By shuffling the order of the nodes, this might happen a few times, but at some point it will resolve. random.shuffle(nodes) - drop_down = False - if self._app_per_model_drop == True: drop_down = True - for node in nodes: if node is root or not isinstance(node, SceneNode) or node.getBoundingBox() is None: continue @@ -88,7 +85,7 @@ class PlatformPhysics: # Move it downwards if bottom is above platform move_vector = Vector() - if (node.getSetting(SceneNodeSettings.AutoDropDown, app_automatic_drop_down) or drop_down) and not (node.getParent() and node.getParent().callDecoration("isGroup") or node.getParent() != root) and node.isEnabled(): + if (node.getSetting(SceneNodeSettings.AutoDropDown, app_automatic_drop_down) or self._app_all_model_drop) and not (node.getParent() and node.getParent().callDecoration("isGroup") or node.getParent() != root) and node.isEnabled(): z_offset = node.callDecoration("getZOffset") if node.getDecorator(ZOffsetDecorator.ZOffsetDecorator) else 0 move_vector = move_vector.set(y=-bbox.bottom + z_offset) @@ -177,7 +174,7 @@ class PlatformPhysics: op.push() # setting this drop to model same as app_automatic_drop_down - self._app_per_model_drop = None + self._app_all_model_drop = False # After moving, we have to evaluate the boundary checks for nodes build_volume.updateNodeBoundaryCheck() From 002af4eb81e07be1b44620700e7e343e4d191369 Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Tue, 27 Feb 2024 16:48:44 +0100 Subject: [PATCH 265/269] saving extruder settings on model exported_model_settings were supposed to be None instead of {} for 3mf saving CURA-10542 --- plugins/3MFWriter/ThreeMFWriter.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/3MFWriter/ThreeMFWriter.py b/plugins/3MFWriter/ThreeMFWriter.py index c321505643..f1f0e08741 100644 --- a/plugins/3MFWriter/ThreeMFWriter.py +++ b/plugins/3MFWriter/ThreeMFWriter.py @@ -272,7 +272,8 @@ class ThreeMFWriter(MeshWriter): transformation_matrix.preMultiply(translation_matrix) root_node = UM.Application.Application.getInstance().getController().getScene().getRoot() - exported_model_settings = ThreeMFWriter._extractModelExportedSettings(export_settings_model) + exported_model_settings = ThreeMFWriter._extractModelExportedSettings(export_settings_model) if export_settings_model != None else None + for node in nodes: if node == root_node: for root_child in node.getChildren(): From 72448eec5bb6a8b0905d053c96fdd8b1110e7e99 Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Wed, 28 Feb 2024 10:22:35 +0100 Subject: [PATCH 266/269] commit to create package CURA-10542 --- plugins/3MFWriter/ThreeMFWriter.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/3MFWriter/ThreeMFWriter.py b/plugins/3MFWriter/ThreeMFWriter.py index f1f0e08741..8759cd3cac 100644 --- a/plugins/3MFWriter/ThreeMFWriter.py +++ b/plugins/3MFWriter/ThreeMFWriter.py @@ -295,10 +295,12 @@ class ThreeMFWriter(MeshWriter): archive.writestr(model_file, scene_string) archive.writestr(content_types_file, b' \n' + ET.tostring(content_types)) archive.writestr(relations_file, b' \n' + ET.tostring(relations_element)) + except Exception as error: Logger.logException("e", "Error writing zip file") self.setInformation(str(error)) return False + finally: if not self._store_archive: archive.close() From bf73623711ab4200f5b6228be36f7a7cdfee7a63 Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Wed, 28 Feb 2024 10:38:28 +0100 Subject: [PATCH 267/269] commit to create package CURA-11403 --- plugins/3MFWriter/ThreeMFWriter.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/3MFWriter/ThreeMFWriter.py b/plugins/3MFWriter/ThreeMFWriter.py index 8759cd3cac..f1f0e08741 100644 --- a/plugins/3MFWriter/ThreeMFWriter.py +++ b/plugins/3MFWriter/ThreeMFWriter.py @@ -295,12 +295,10 @@ class ThreeMFWriter(MeshWriter): archive.writestr(model_file, scene_string) archive.writestr(content_types_file, b' \n' + ET.tostring(content_types)) archive.writestr(relations_file, b' \n' + ET.tostring(relations_element)) - except Exception as error: Logger.logException("e", "Error writing zip file") self.setInformation(str(error)) return False - finally: if not self._store_archive: archive.close() From 8d2e72a10928426b8e8b903011714fb6e25bf5d1 Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Wed, 28 Feb 2024 14:31:51 +0100 Subject: [PATCH 268/269] adding logo for cura project CURA-11403 --- plugins/3MFWriter/ThreeMFWriter.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/3MFWriter/ThreeMFWriter.py b/plugins/3MFWriter/ThreeMFWriter.py index f1f0e08741..5583059a2f 100644 --- a/plugins/3MFWriter/ThreeMFWriter.py +++ b/plugins/3MFWriter/ThreeMFWriter.py @@ -175,9 +175,9 @@ class ThreeMFWriter(MeshWriter): def getArchive(self): return self._archive - def _addShareLogoToThumbnail(self, primary_image): + def _addLogoToThumbnail(self, primary_image, logo_name): # Load the icon png image - icon_image = QImage(Resources.getPath(Resources.Images, "cura-share.png")) + icon_image = QImage(Resources.getPath(Resources.Images, logo_name)) # Resize icon_image to be 1/4 of primary_image size new_width = int(primary_image.width() / 4) @@ -217,7 +217,9 @@ class ThreeMFWriter(MeshWriter): snapshot = self._createSnapshot() if snapshot: if export_settings_model != None: - self._addShareLogoToThumbnail(snapshot) + self._addLogoToThumbnail(snapshot, "cura-share.png") + elif export_settings_model == None and self._store_archive: + self._addLogoToThumbnail(snapshot, "cura-icon.png") thumbnail_buffer = QBuffer() thumbnail_buffer.open(QBuffer.OpenModeFlag.ReadWrite) snapshot.save(thumbnail_buffer, "PNG") From b342574c1991552b545b9c63a98bd902b94957df Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 1 Mar 2024 09:17:37 +0100 Subject: [PATCH 269/269] Change slicing crash error message CURA-11445 --- plugins/CuraEngineBackend/CuraEngineBackend.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 66949eeaf5..c73dee2fb0 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -181,7 +181,10 @@ class CuraEngineBackend(QObject, Backend): application.getPreferences().preferenceChanged.connect(self._onPreferencesChanged) self._slicing_error_message = Message( - text = catalog.i18nc("@message", "Slicing failed with an unexpected error. Please consider reporting a bug on our issue tracker."), + text = catalog.i18nc("@message", "Oops! We encountered an unexpected error during your slicing process. " + "Rest assured, we've automatically received the crash logs for analysis, " + "if you have not disabled data sharing in your preferences. To assist us " + "further, consider sharing your project details on our issue tracker."), title = catalog.i18nc("@message:title", "Slicing failed"), message_type = Message.MessageType.ERROR )