From 078fccc8393eb11f254948549312b17d8b2d32b3 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 16 Dec 2024 13:25:41 +0100 Subject: [PATCH 1/5] Add setting for minimum layer time with overhang CURA-12352 --- resources/definitions/fdmprinter.def.json | 13 +++++++++++++ resources/setting_visibility/expert.cfg | 1 + 2 files changed, 14 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 08bfe11d31..098ab7ec58 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4699,6 +4699,19 @@ "settable_per_mesh": false, "settable_per_extruder": true }, + "cool_min_layer_time_overhang": + { + "label": "Minimum Layer Time with Overhang", + "description": "The minimum time spent in a layer that contains overhanging extrusions. This forces the printer to slow down, to at least spend the time set here in one layer. This allows the printed material to cool down properly before printing the next layer. Layers may still take shorter than the minimal layer time if Lift Head is disabled and if the Minimum Speed would otherwise be violated.", + "unit": "s", + "type": "float", + "default_value": 5, + "value": "cool_min_layer_time", + "minimum_value": "0", + "maximum_value_warning": "600", + "settable_per_mesh": false, + "settable_per_extruder": true + }, "cool_min_speed": { "label": "Minimum Speed", diff --git a/resources/setting_visibility/expert.cfg b/resources/setting_visibility/expert.cfg index b13618e5c1..a070b28041 100644 --- a/resources/setting_visibility/expert.cfg +++ b/resources/setting_visibility/expert.cfg @@ -248,6 +248,7 @@ cool_fan_speed_0 cool_fan_full_at_height cool_fan_full_layer cool_min_layer_time +cool_min_layer_time_overhang cool_min_speed cool_lift_head cool_during_extruder_switch From 3276fc2eb6e00c1e258967fc0382451321dbd3d6 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Thu, 9 Jan 2025 13:54:58 +0100 Subject: [PATCH 2/5] Add setting to filter out layers that have small overhanging faetures CURA-12352 --- 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 098ab7ec58..67e9a8439a 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4712,6 +4712,18 @@ "settable_per_mesh": false, "settable_per_extruder": true }, + "cool_min_layer_time_overhang_min_segment_length": + { + "label": "Minimum Overhang Segment Length", + "description": "When trying to apply the minimum layer time specific for overhanging layers, it will be applied only if at least one consecutive overhanging extrusion move is longer than this value.", + "unit": "mm", + "type": "float", + "default_value": 5, + "minimum_value": "0", + "maximum_value_warning": "500", + "settable_per_mesh": false, + "settable_per_extruder": true + }, "cool_min_speed": { "label": "Minimum Speed", From 2db4d16a80bb0b449871399b8d236205e58c09b9 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Thu, 16 Jan 2025 13:26:08 +0100 Subject: [PATCH 3/5] Update altered overhang wall-speed setting to new version. part of CURA-12352 --- resources/definitions/ankermake_m5.def.json | 2 +- resources/definitions/ankermake_m5c.def.json | 2 +- resources/definitions/atmat_signal_pro_base.def.json | 2 +- resources/definitions/blocks_base.def.json | 2 +- resources/definitions/gutenberg_base.def.json | 2 +- resources/definitions/lotmaxx_sc60.def.json | 2 +- resources/definitions/snakeoil_standard_base.def.json | 2 +- resources/definitions/ultimaker_sketch_sprint.def.json | 4 ++-- resources/definitions/voron2_base.def.json | 2 +- resources/definitions/vzbot_base.def.json | 2 +- resources/quality/flsun_v400/flsun_v400_normal.inst.cfg | 2 +- .../ultimaker_methodx/um_methodx_1c_um-abs-175_0.2mm.inst.cfg | 2 +- .../um_methodx_1c_um-abscf-175_0.2mm.inst.cfg | 2 +- .../um_methodx_1c_um-absr-175_0.2mm.inst.cfg | 2 +- .../ultimaker_methodx/um_methodx_1c_um-asa-175_0.2mm.inst.cfg | 2 +- .../um_methodx_1xa_um-abs-175_0.2mm.inst.cfg | 2 +- .../um_methodx_1xa_um-absr-175_0.2mm.inst.cfg | 2 +- .../um_methodx_1xa_um-asa-175_0.2mm.inst.cfg | 2 +- .../um_methodx_labs_polymaker-polymax-pc-175_0.2mm.inst.cfg | 2 +- .../um_methodx_labs_um-abs-175_0.2mm.inst.cfg | 2 +- .../um_methodx_labs_um-abscf-175_0.2mm.inst.cfg | 2 +- .../um_methodx_labs_um-absr-175_0.2mm.inst.cfg | 2 +- .../um_methodx_labs_um-asa-175_0.2mm.inst.cfg | 2 +- .../um_methodxl_1c_um-abs-175_0.2mm.inst.cfg | 2 +- .../um_methodxl_1c_um-abscf-175_0.2mm.inst.cfg | 2 +- .../um_methodxl_1c_um-absr-175_0.2mm.inst.cfg | 2 +- .../um_methodxl_1c_um-asa-175_0.2mm.inst.cfg | 2 +- .../um_methodxl_1xa_um-abs-175_0.2mm.inst.cfg | 2 +- .../um_methodxl_1xa_um-absr-175_0.2mm.inst.cfg | 2 +- .../um_methodxl_1xa_um-asa-175_0.2mm.inst.cfg | 2 +- .../um_methodxl_labs_polymaker-polymax-pc-175_0.2mm.inst.cfg | 2 +- .../um_methodxl_labs_um-abs-175_0.2mm.inst.cfg | 2 +- .../um_methodxl_labs_um-abscf-175_0.2mm.inst.cfg | 2 +- .../um_methodxl_labs_um-absr-175_0.2mm.inst.cfg | 2 +- .../um_methodxl_labs_um-asa-175_0.2mm.inst.cfg | 2 +- 35 files changed, 36 insertions(+), 36 deletions(-) diff --git a/resources/definitions/ankermake_m5.def.json b/resources/definitions/ankermake_m5.def.json index 4a70851e33..5e4d77cf39 100644 --- a/resources/definitions/ankermake_m5.def.json +++ b/resources/definitions/ankermake_m5.def.json @@ -120,7 +120,7 @@ "support_z_distance": { "value": "layer_height * 2" }, "top_bottom_thickness": { "value": "layer_height * 4" }, "wall_overhang_angle": { "value": 55 }, - "wall_overhang_speed_factor": { "value": 55 }, + "wall_overhang_speed_factors": { "value": [55] }, "zig_zaggify_infill": { "value": "infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_pattern == 'lines'" } } } \ No newline at end of file diff --git a/resources/definitions/ankermake_m5c.def.json b/resources/definitions/ankermake_m5c.def.json index 131bd6bd7a..ade5c3f40c 100644 --- a/resources/definitions/ankermake_m5c.def.json +++ b/resources/definitions/ankermake_m5c.def.json @@ -238,7 +238,7 @@ "wall_extruder_nr": { "value": -1 }, "wall_line_width_0": { "value": 0.44 }, "wall_overhang_angle": { "value": 45 }, - "wall_overhang_speed_factor": { "value": 40 }, + "wall_overhang_speed_factors": { "value": [40] }, "wall_thickness": { "value": 0.84 }, "wall_x_extruder_nr": { "value": -1 }, "zig_zaggify_infill": { "value": true } diff --git a/resources/definitions/atmat_signal_pro_base.def.json b/resources/definitions/atmat_signal_pro_base.def.json index cd59e1c169..78eccf4a56 100644 --- a/resources/definitions/atmat_signal_pro_base.def.json +++ b/resources/definitions/atmat_signal_pro_base.def.json @@ -167,7 +167,7 @@ "travel_avoid_supports": { "value": "True" }, "wall_line_width": { "value": "machine_nozzle_size" }, "wall_overhang_angle": { "value": "75" }, - "wall_overhang_speed_factor": { "value": "50" }, + "wall_overhang_speed_factors": { "value": [50] }, "zig_zaggify_infill": { "value": "True" } } } \ No newline at end of file diff --git a/resources/definitions/blocks_base.def.json b/resources/definitions/blocks_base.def.json index fde5f912da..64e4213d5f 100644 --- a/resources/definitions/blocks_base.def.json +++ b/resources/definitions/blocks_base.def.json @@ -107,7 +107,7 @@ "travel_retract_before_outer_wall": { "value": true }, "wall_0_wipe_dist": { "value": 0.0 }, "wall_overhang_angle": { "default_value": 75 }, - "wall_overhang_speed_factor": { "default_value": 50 }, + "wall_overhang_speed_factors": { "default_value": "[50]" }, "wall_thickness": { "value": "line_width * 2" }, "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, "z_seam_type": { "value": "'back'" } diff --git a/resources/definitions/gutenberg_base.def.json b/resources/definitions/gutenberg_base.def.json index f0329bef6d..b1d0e76686 100644 --- a/resources/definitions/gutenberg_base.def.json +++ b/resources/definitions/gutenberg_base.def.json @@ -109,7 +109,7 @@ "travel_avoid_other_parts": { "default_value": false }, "wall_line_width": { "value": "machine_nozzle_size" }, "wall_overhang_angle": { "default_value": 75 }, - "wall_overhang_speed_factor": { "default_value": 50 }, + "wall_overhang_speed_factors": { "default_value": [50] }, "zig_zaggify_infill": { "value": true } } } \ No newline at end of file diff --git a/resources/definitions/lotmaxx_sc60.def.json b/resources/definitions/lotmaxx_sc60.def.json index f4ce358be1..f6deef1358 100644 --- a/resources/definitions/lotmaxx_sc60.def.json +++ b/resources/definitions/lotmaxx_sc60.def.json @@ -61,7 +61,7 @@ "support_pattern": { "default_value": "lines" }, "switch_extruder_retraction_amount": { "value": 100 }, "switch_extruder_retraction_speeds": { "value": 60 }, - "wall_overhang_speed_factor": { "value": 50 }, + "wall_overhang_speed_factors": { "value": [50] }, "z_seam_corner": { "default_value": "z_seam_corner_any" }, "z_seam_relative": { "value": true }, "z_seam_type": { "default_value": "sharpest_corner" }, diff --git a/resources/definitions/snakeoil_standard_base.def.json b/resources/definitions/snakeoil_standard_base.def.json index 700edf3d35..59faf27d3b 100644 --- a/resources/definitions/snakeoil_standard_base.def.json +++ b/resources/definitions/snakeoil_standard_base.def.json @@ -109,7 +109,7 @@ "travel_avoid_other_parts": { "default_value": false }, "wall_line_width": { "value": "machine_nozzle_size" }, "wall_overhang_angle": { "default_value": 75 }, - "wall_overhang_speed_factor": { "default_value": 50 }, + "wall_overhang_speed_factors": { "default_value": [50] }, "zig_zaggify_infill": { "value": true } } } \ No newline at end of file diff --git a/resources/definitions/ultimaker_sketch_sprint.def.json b/resources/definitions/ultimaker_sketch_sprint.def.json index cde655e70f..66a4a44268 100644 --- a/resources/definitions/ultimaker_sketch_sprint.def.json +++ b/resources/definitions/ultimaker_sketch_sprint.def.json @@ -380,10 +380,10 @@ "wall_0_wipe_dist": { "value": 0.2 }, "wall_line_width_x": { "value": 0.58 }, "wall_overhang_angle": { "value": 35 }, - "wall_overhang_speed_factor": + "wall_overhang_speed_factors": { "minimum_value_warning": 15, - "value": 17.5 + "value": [18] }, "wall_thickness": { "value": 1 }, "wall_x_material_flow_layer_0": { "value": "material_flow" }, diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index dc6cd255bb..a8cd73a3c5 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -119,7 +119,7 @@ "travel_avoid_other_parts": { "default_value": false }, "wall_line_width": { "value": "machine_nozzle_size" }, "wall_overhang_angle": { "default_value": 75 }, - "wall_overhang_speed_factor": { "default_value": 50 }, + "wall_overhang_speed_factors": { "default_value": [50] }, "zig_zaggify_infill": { "value": true } } } \ No newline at end of file diff --git a/resources/definitions/vzbot_base.def.json b/resources/definitions/vzbot_base.def.json index 4efdbc2f66..cc44dbc6c6 100644 --- a/resources/definitions/vzbot_base.def.json +++ b/resources/definitions/vzbot_base.def.json @@ -195,7 +195,7 @@ "travel_avoid_other_parts": { "default_value": false }, "wall_line_width": { "value": "machine_nozzle_size" }, "wall_overhang_angle": { "default_value": 75 }, - "wall_overhang_speed_factor": { "default_value": 50 }, + "wall_overhang_speed_factors": { "default_value": [50] }, "xy_offset_layer_0": { "value": -0.3 }, "z_seam_type": { "value": "'back'" }, "zig_zaggify_infill": { "value": true } diff --git a/resources/quality/flsun_v400/flsun_v400_normal.inst.cfg b/resources/quality/flsun_v400/flsun_v400_normal.inst.cfg index 50ed6266a0..d058a2d219 100644 --- a/resources/quality/flsun_v400/flsun_v400_normal.inst.cfg +++ b/resources/quality/flsun_v400/flsun_v400_normal.inst.cfg @@ -115,7 +115,7 @@ travel_avoid_other_parts = True travel_avoid_supports = True travel_retract_before_outer_wall = False wall_overhang_angle = 35.0 -wall_overhang_speed_factor = 60.0 +wall_overhang_speed_factors = [60] wall_thickness = =line_width*2 z_seam_corner = z_seam_corner_inner z_seam_position = backright diff --git a/resources/quality/ultimaker_methodx/um_methodx_1c_um-abs-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1c_um-abs-175_0.2mm.inst.cfg index 4f5ae8282d..cf7eab6e73 100644 --- a/resources/quality/ultimaker_methodx/um_methodx_1c_um-abs-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodx/um_methodx_1c_um-abs-175_0.2mm.inst.cfg @@ -59,5 +59,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.15 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] diff --git a/resources/quality/ultimaker_methodx/um_methodx_1c_um-abscf-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1c_um-abscf-175_0.2mm.inst.cfg index 0ff8f11091..f0eafdde7e 100644 --- a/resources/quality/ultimaker_methodx/um_methodx_1c_um-abscf-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodx/um_methodx_1c_um-abscf-175_0.2mm.inst.cfg @@ -52,5 +52,5 @@ support_xy_distance = 0.3 support_xy_distance_overhang = 0.25 support_z_distance = 0.15 wall_overhang_angle = 30 -wall_overhang_speed_factor = 50 +wall_overhang_speed_factors = [50] diff --git a/resources/quality/ultimaker_methodx/um_methodx_1c_um-absr-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1c_um-absr-175_0.2mm.inst.cfg index ff1861c695..057ae522ed 100644 --- a/resources/quality/ultimaker_methodx/um_methodx_1c_um-absr-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodx/um_methodx_1c_um-absr-175_0.2mm.inst.cfg @@ -58,5 +58,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.15 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] 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 index fe6c6fa10c..7e03bcd23c 100644 --- 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 @@ -57,5 +57,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.15 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] diff --git a/resources/quality/ultimaker_methodx/um_methodx_1xa_um-abs-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1xa_um-abs-175_0.2mm.inst.cfg index 45e11f5e9d..f2a60264b1 100644 --- a/resources/quality/ultimaker_methodx/um_methodx_1xa_um-abs-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodx/um_methodx_1xa_um-abs-175_0.2mm.inst.cfg @@ -59,5 +59,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.15 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] diff --git a/resources/quality/ultimaker_methodx/um_methodx_1xa_um-absr-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1xa_um-absr-175_0.2mm.inst.cfg index 18b44fda57..e87533888b 100644 --- a/resources/quality/ultimaker_methodx/um_methodx_1xa_um-absr-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodx/um_methodx_1xa_um-absr-175_0.2mm.inst.cfg @@ -58,5 +58,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.15 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] 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 index 774b8fb2a8..1ad566527f 100644 --- 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 @@ -57,5 +57,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.15 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] diff --git a/resources/quality/ultimaker_methodx/um_methodx_labs_polymaker-polymax-pc-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_labs_polymaker-polymax-pc-175_0.2mm.inst.cfg index e9d09c2c34..795235c75e 100644 --- a/resources/quality/ultimaker_methodx/um_methodx_labs_polymaker-polymax-pc-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodx/um_methodx_labs_polymaker-polymax-pc-175_0.2mm.inst.cfg @@ -54,5 +54,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.22 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] diff --git a/resources/quality/ultimaker_methodx/um_methodx_labs_um-abs-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_labs_um-abs-175_0.2mm.inst.cfg index a5f7d05d6e..c4ab6ee115 100644 --- a/resources/quality/ultimaker_methodx/um_methodx_labs_um-abs-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodx/um_methodx_labs_um-abs-175_0.2mm.inst.cfg @@ -59,5 +59,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.15 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] diff --git a/resources/quality/ultimaker_methodx/um_methodx_labs_um-abscf-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_labs_um-abscf-175_0.2mm.inst.cfg index 56e2126cb2..25dbd1868a 100644 --- a/resources/quality/ultimaker_methodx/um_methodx_labs_um-abscf-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodx/um_methodx_labs_um-abscf-175_0.2mm.inst.cfg @@ -52,5 +52,5 @@ support_xy_distance = 0.3 support_xy_distance_overhang = 0.25 support_z_distance = 0.15 wall_overhang_angle = 30 -wall_overhang_speed_factor = 50 +wall_overhang_speed_factors = [50] diff --git a/resources/quality/ultimaker_methodx/um_methodx_labs_um-absr-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_labs_um-absr-175_0.2mm.inst.cfg index 7447dc5085..8b19d722d4 100644 --- a/resources/quality/ultimaker_methodx/um_methodx_labs_um-absr-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodx/um_methodx_labs_um-absr-175_0.2mm.inst.cfg @@ -58,5 +58,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.15 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] 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 index d2f64e3b65..c19ff979bf 100644 --- 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 @@ -57,5 +57,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.15 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-abs-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-abs-175_0.2mm.inst.cfg index caf364adc9..fe70d6d0c6 100644 --- a/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-abs-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-abs-175_0.2mm.inst.cfg @@ -59,5 +59,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.15 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-abscf-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-abscf-175_0.2mm.inst.cfg index e4a889749a..d4d053df9f 100644 --- a/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-abscf-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-abscf-175_0.2mm.inst.cfg @@ -54,5 +54,5 @@ support_xy_distance = 0.3 support_xy_distance_overhang = 0.25 support_z_distance = 0.15 wall_overhang_angle = 30 -wall_overhang_speed_factor = 50 +wall_overhang_speed_factors = [50] 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 a08dd10302..29b3de7eac 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 @@ -57,5 +57,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.15 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] 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 index 420a719235..a3b23179cb 100644 --- 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 @@ -57,5 +57,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.15 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-abs-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-abs-175_0.2mm.inst.cfg index 39b7d69230..e31448572e 100644 --- a/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-abs-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-abs-175_0.2mm.inst.cfg @@ -59,5 +59,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.15 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] 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 84086e1856..3596d12095 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 @@ -57,5 +57,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.15 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] 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 index 155696925f..5d3c07cde9 100644 --- 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 @@ -57,5 +57,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.15 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_labs_polymaker-polymax-pc-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_labs_polymaker-polymax-pc-175_0.2mm.inst.cfg index a075d5ffe6..29433f8387 100644 --- a/resources/quality/ultimaker_methodxl/um_methodxl_labs_polymaker-polymax-pc-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodxl/um_methodxl_labs_polymaker-polymax-pc-175_0.2mm.inst.cfg @@ -54,5 +54,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.22 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-abs-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-abs-175_0.2mm.inst.cfg index 3309bb6660..627ff55215 100644 --- a/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-abs-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-abs-175_0.2mm.inst.cfg @@ -59,5 +59,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.15 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-abscf-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-abscf-175_0.2mm.inst.cfg index 6596cdd4df..71bcca17c0 100644 --- a/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-abscf-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-abscf-175_0.2mm.inst.cfg @@ -54,5 +54,5 @@ support_xy_distance = 0.3 support_xy_distance_overhang = 0.25 support_z_distance = 0.15 wall_overhang_angle = 30 -wall_overhang_speed_factor = 50 +wall_overhang_speed_factors = [50] 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 e7a46cdcee..fa7a1b5e56 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 @@ -57,5 +57,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.15 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] 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 index 972840dde0..d9f9ba645e 100644 --- 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 @@ -57,5 +57,5 @@ support_xy_overrides_z = xy_overrides_z support_z_distance = 0.15 top_skin_expand_distance = 2.4 wall_overhang_angle = 30 -wall_overhang_speed_factor = 40 +wall_overhang_speed_factors = [40] From 2ca18cc2056c883b8a346446e3efd7e9ffd60c51 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Thu, 16 Jan 2025 13:27:28 +0100 Subject: [PATCH 4/5] Add version-upgrader to 5.10 Nescesary because of the updated overhang wall-speed setting. part of CURA-12352 --- .../VersionUpgrade59to510.py | 68 +++++++++++++++++++ .../VersionUpgrade59to510/__init__.py | 60 ++++++++++++++++ .../VersionUpgrade59to510/plugin.json | 8 +++ 3 files changed, 136 insertions(+) create mode 100644 plugins/VersionUpgrade/VersionUpgrade59to510/VersionUpgrade59to510.py create mode 100644 plugins/VersionUpgrade/VersionUpgrade59to510/__init__.py create mode 100644 plugins/VersionUpgrade/VersionUpgrade59to510/plugin.json diff --git a/plugins/VersionUpgrade/VersionUpgrade59to510/VersionUpgrade59to510.py b/plugins/VersionUpgrade/VersionUpgrade59to510/VersionUpgrade59to510.py new file mode 100644 index 0000000000..70190b6e7f --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade59to510/VersionUpgrade59to510.py @@ -0,0 +1,68 @@ +import configparser +import io +from typing import Dict, Tuple, List + +from UM.VersionUpgrade import VersionUpgrade + +_RENAMED_SETTINGS = { + "wall_overhang_speed_factor": "wall_overhang_speed_factors" +} # type: Dict[str, str] + +_NEW_SETTING_VERSION = "25" + + +class VersionUpgrade59to510(VersionUpgrade): + def upgradePreferences(self, serialized: str, filename: str): + parser = configparser.ConfigParser(interpolation = None) + parser.read_string(serialized) + + # Fix 'renamed'(ish) settings for visibility + if "visible_settings" in parser["general"]: + all_setting_keys = parser["general"]["visible_settings"].strip().split(";") + if all_setting_keys: + for idx, key in enumerate(all_setting_keys): + if key in _RENAMED_SETTINGS: + all_setting_keys[idx] = _RENAMED_SETTINGS[key] + parser["general"]["visible_settings"] = ";".join(all_setting_keys) + + # Update version number. + parser["metadata"]["setting_version"] = _NEW_SETTING_VERSION + + result = io.StringIO() + parser.write(result) + return [filename], [result.getvalue()] + + def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: + 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: + for old_name, new_name in _RENAMED_SETTINGS.items(): + if old_name in parser["values"]: + parser["values"][new_name] = parser["values"][old_name] + del parser["values"][old_name] + if "wall_overhang_speed_factors" in parser["values"]: + old_value = float(parser["values"]["wall_overhang_speed_factors"]) + new_value = [max(1, int(round(old_value)))] + parser["values"]["wall_overhang_speed_factor"] = str(new_value) + + result = io.StringIO() + parser.write(result) + return [filename], [result.getvalue()] + + def upgradeStack(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: + 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/VersionUpgrade59to510/__init__.py b/plugins/VersionUpgrade/VersionUpgrade59to510/__init__.py new file mode 100644 index 0000000000..4c2b2622b1 --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade59to510/__init__.py @@ -0,0 +1,60 @@ +# Copyright (c) 2024 UltiMaker +# Cura is released under the terms of the LGPLv3 or higher. + +from typing import Any, Dict, TYPE_CHECKING + +from . import VersionUpgrade59to510 + +if TYPE_CHECKING: + from UM.Application import Application + +upgrade = VersionUpgrade59to510.VersionUpgrade59to510() + +def getMetaData() -> Dict[str, Any]: + return { + "version_upgrade": { + # From To Upgrade function + ("preferences", 7000024): ("preferences", 7000025, upgrade.upgradePreferences), + ("machine_stack", 6000024): ("machine_stack", 6000025, upgrade.upgradeStack), + ("extruder_train", 6000024): ("extruder_train", 6000025, upgrade.upgradeStack), + ("definition_changes", 4000024): ("definition_changes", 4000025, upgrade.upgradeInstanceContainer), + ("quality_changes", 4000024): ("quality_changes", 4000025, upgrade.upgradeInstanceContainer), + ("quality", 4000024): ("quality", 4000025, upgrade.upgradeInstanceContainer), + ("user", 4000024): ("user", 4000025, upgrade.upgradeInstanceContainer), + ("intent", 4000024): ("intent", 4000025, 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/VersionUpgrade59to510/plugin.json b/plugins/VersionUpgrade/VersionUpgrade59to510/plugin.json new file mode 100644 index 0000000000..f06d6b3161 --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade59to510/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Version Upgrade 5.9 to 5.10", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Upgrades configurations from Cura 5.9 to Cura 5.10", + "api": 8, + "i18n-catalog": "cura" +} From fbe871778a84063414f300efaf422de279983b5b Mon Sep 17 00:00:00 2001 From: rburema <41987080+rburema@users.noreply.github.com> Date: Thu, 16 Jan 2025 12:28:50 +0000 Subject: [PATCH 5/5] Apply printer-linter format --- resources/definitions/ankermake_m5.def.json | 7 ++++++- resources/definitions/ankermake_m5c.def.json | 7 ++++++- resources/definitions/atmat_signal_pro_base.def.json | 7 ++++++- resources/definitions/gutenberg_base.def.json | 7 ++++++- resources/definitions/lotmaxx_sc60.def.json | 7 ++++++- resources/definitions/snakeoil_standard_base.def.json | 7 ++++++- resources/definitions/ultimaker_sketch_sprint.def.json | 4 +++- resources/definitions/voron2_base.def.json | 7 ++++++- resources/definitions/vzbot_base.def.json | 7 ++++++- 9 files changed, 51 insertions(+), 9 deletions(-) diff --git a/resources/definitions/ankermake_m5.def.json b/resources/definitions/ankermake_m5.def.json index 5e4d77cf39..a4bc967108 100644 --- a/resources/definitions/ankermake_m5.def.json +++ b/resources/definitions/ankermake_m5.def.json @@ -120,7 +120,12 @@ "support_z_distance": { "value": "layer_height * 2" }, "top_bottom_thickness": { "value": "layer_height * 4" }, "wall_overhang_angle": { "value": 55 }, - "wall_overhang_speed_factors": { "value": [55] }, + "wall_overhang_speed_factors": + { + "value": [ + 55 + ] + }, "zig_zaggify_infill": { "value": "infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_pattern == 'lines'" } } } \ No newline at end of file diff --git a/resources/definitions/ankermake_m5c.def.json b/resources/definitions/ankermake_m5c.def.json index ade5c3f40c..3e1d7db0a9 100644 --- a/resources/definitions/ankermake_m5c.def.json +++ b/resources/definitions/ankermake_m5c.def.json @@ -238,7 +238,12 @@ "wall_extruder_nr": { "value": -1 }, "wall_line_width_0": { "value": 0.44 }, "wall_overhang_angle": { "value": 45 }, - "wall_overhang_speed_factors": { "value": [40] }, + "wall_overhang_speed_factors": + { + "value": [ + 40 + ] + }, "wall_thickness": { "value": 0.84 }, "wall_x_extruder_nr": { "value": -1 }, "zig_zaggify_infill": { "value": true } diff --git a/resources/definitions/atmat_signal_pro_base.def.json b/resources/definitions/atmat_signal_pro_base.def.json index 78eccf4a56..01ecc1bdfe 100644 --- a/resources/definitions/atmat_signal_pro_base.def.json +++ b/resources/definitions/atmat_signal_pro_base.def.json @@ -167,7 +167,12 @@ "travel_avoid_supports": { "value": "True" }, "wall_line_width": { "value": "machine_nozzle_size" }, "wall_overhang_angle": { "value": "75" }, - "wall_overhang_speed_factors": { "value": [50] }, + "wall_overhang_speed_factors": + { + "value": [ + 50 + ] + }, "zig_zaggify_infill": { "value": "True" } } } \ No newline at end of file diff --git a/resources/definitions/gutenberg_base.def.json b/resources/definitions/gutenberg_base.def.json index b1d0e76686..335718c21a 100644 --- a/resources/definitions/gutenberg_base.def.json +++ b/resources/definitions/gutenberg_base.def.json @@ -109,7 +109,12 @@ "travel_avoid_other_parts": { "default_value": false }, "wall_line_width": { "value": "machine_nozzle_size" }, "wall_overhang_angle": { "default_value": 75 }, - "wall_overhang_speed_factors": { "default_value": [50] }, + "wall_overhang_speed_factors": + { + "default_value": [ + 50 + ] + }, "zig_zaggify_infill": { "value": true } } } \ No newline at end of file diff --git a/resources/definitions/lotmaxx_sc60.def.json b/resources/definitions/lotmaxx_sc60.def.json index f6deef1358..f283e56442 100644 --- a/resources/definitions/lotmaxx_sc60.def.json +++ b/resources/definitions/lotmaxx_sc60.def.json @@ -61,7 +61,12 @@ "support_pattern": { "default_value": "lines" }, "switch_extruder_retraction_amount": { "value": 100 }, "switch_extruder_retraction_speeds": { "value": 60 }, - "wall_overhang_speed_factors": { "value": [50] }, + "wall_overhang_speed_factors": + { + "value": [ + 50 + ] + }, "z_seam_corner": { "default_value": "z_seam_corner_any" }, "z_seam_relative": { "value": true }, "z_seam_type": { "default_value": "sharpest_corner" }, diff --git a/resources/definitions/snakeoil_standard_base.def.json b/resources/definitions/snakeoil_standard_base.def.json index 59faf27d3b..16bec69636 100644 --- a/resources/definitions/snakeoil_standard_base.def.json +++ b/resources/definitions/snakeoil_standard_base.def.json @@ -109,7 +109,12 @@ "travel_avoid_other_parts": { "default_value": false }, "wall_line_width": { "value": "machine_nozzle_size" }, "wall_overhang_angle": { "default_value": 75 }, - "wall_overhang_speed_factors": { "default_value": [50] }, + "wall_overhang_speed_factors": + { + "default_value": [ + 50 + ] + }, "zig_zaggify_infill": { "value": true } } } \ No newline at end of file diff --git a/resources/definitions/ultimaker_sketch_sprint.def.json b/resources/definitions/ultimaker_sketch_sprint.def.json index 66a4a44268..dbe9171817 100644 --- a/resources/definitions/ultimaker_sketch_sprint.def.json +++ b/resources/definitions/ultimaker_sketch_sprint.def.json @@ -383,7 +383,9 @@ "wall_overhang_speed_factors": { "minimum_value_warning": 15, - "value": [18] + "value": [ + 18 + ] }, "wall_thickness": { "value": 1 }, "wall_x_material_flow_layer_0": { "value": "material_flow" }, diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index a8cd73a3c5..d08166d60d 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -119,7 +119,12 @@ "travel_avoid_other_parts": { "default_value": false }, "wall_line_width": { "value": "machine_nozzle_size" }, "wall_overhang_angle": { "default_value": 75 }, - "wall_overhang_speed_factors": { "default_value": [50] }, + "wall_overhang_speed_factors": + { + "default_value": [ + 50 + ] + }, "zig_zaggify_infill": { "value": true } } } \ No newline at end of file diff --git a/resources/definitions/vzbot_base.def.json b/resources/definitions/vzbot_base.def.json index cc44dbc6c6..a447f1acdb 100644 --- a/resources/definitions/vzbot_base.def.json +++ b/resources/definitions/vzbot_base.def.json @@ -195,7 +195,12 @@ "travel_avoid_other_parts": { "default_value": false }, "wall_line_width": { "value": "machine_nozzle_size" }, "wall_overhang_angle": { "default_value": 75 }, - "wall_overhang_speed_factors": { "default_value": [50] }, + "wall_overhang_speed_factors": + { + "default_value": [ + 50 + ] + }, "xy_offset_layer_0": { "value": -0.3 }, "z_seam_type": { "value": "'back'" }, "zig_zaggify_infill": { "value": true }