From 9a4836a7b082c7778d1fccea51c9d221c18ccf7b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 24 Nov 2021 13:03:33 +0100 Subject: [PATCH] Increase top distance by 1 layer for profiles using tree support We changed tree support to have a correct top distance now. If you ask for 0 top distance, you get 0 top distance. If you ask for 0.2mm top distance, you get 0.2mm top distance (rounded to layers). Previously the top distance was too high. Yet it seems that people were happy with how easily Tree Support was removed from the print. So this is a best-effort attempt to keep the final result similar to what it was originally. It won't work for everything, I fear. But it's about as good as we can make it. Contributes to issue CURA-7624. --- resources/definitions/anycubic_i3_mega_s.def.json | 5 +++-- resources/definitions/creality_base.def.json | 3 ++- resources/definitions/fdmprinter.def.json | 2 +- resources/quality/inat/inat_base_tree_support.inst.cfg | 1 + 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/resources/definitions/anycubic_i3_mega_s.def.json b/resources/definitions/anycubic_i3_mega_s.def.json index 2552c95178..57ada7f548 100644 --- a/resources/definitions/anycubic_i3_mega_s.def.json +++ b/resources/definitions/anycubic_i3_mega_s.def.json @@ -124,14 +124,15 @@ "support_xy_distance": { "value": "wall_line_width_0 * 2" }, "support_xy_distance_overhang": { "value": "wall_line_width_0" }, "support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height * 2" }, + "support_top_distance": { "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance') + (layer_height if support_structure == 'tree' else 0)"}, "support_xy_overrides_z": { "value": "'xy_overrides_z'" }, "support_wall_count": { "value": 1 }, "support_brim_enable": { "value": true }, "support_brim_width": { "value": 4 }, "support_interface_enable": { "value": true }, - "support_structure": { "value": "'tree'" }, - "support_type": { "value": "'buildplate' if support_structure == 'tree' else 'everywhere'" }, + "support_structure": { "value": "'tree'" }, + "support_type": { "value": "'buildplate' if support_structure == 'tree' else 'everywhere'" }, "support_interface_height": { "value": "layer_height * 4" }, "support_interface_density": { "value": 33.333 }, "support_interface_pattern": { "value": "'grid'" }, diff --git a/resources/definitions/creality_base.def.json b/resources/definitions/creality_base.def.json index ccf085bb11..ff7cb23ab2 100644 --- a/resources/definitions/creality_base.def.json +++ b/resources/definitions/creality_base.def.json @@ -247,7 +247,8 @@ "support_use_towers": { "value": false }, "support_xy_distance": { "value": "wall_line_width_0 * 2" }, "support_xy_distance_overhang": { "value": "wall_line_width_0" }, - "support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height*2" }, + "support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height * 2" }, + "support_top_distance": { "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance') + (layer_height if support_structure == 'tree' else 0)"}, "support_xy_overrides_z": { "value": "'xy_overrides_z'" }, "support_wall_count": { "value": 1 }, "support_brim_enable": { "value": true }, diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 22d6aa8dd0..6d0fd54fed 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4609,7 +4609,7 @@ "default_value": 0.1, "type": "float", "enabled": "support_enable or support_meshes_present", - "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance')", + "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance') + (layer_height if support_structure == 'tree' else 0)", "limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr", "settable_per_mesh": true }, diff --git a/resources/quality/inat/inat_base_tree_support.inst.cfg b/resources/quality/inat/inat_base_tree_support.inst.cfg index 2467379c3e..1913667a16 100644 --- a/resources/quality/inat/inat_base_tree_support.inst.cfg +++ b/resources/quality/inat/inat_base_tree_support.inst.cfg @@ -14,3 +14,4 @@ global_quality = True support_structure = tree support_type = buildplate support_enable = True +support_top_distance = 0.4 \ No newline at end of file