From ab3d2e35700e3f64422c8f27494ae132d16383a5 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 17 Mar 2017 10:41:27 +0100 Subject: [PATCH 01/26] Fix typo in support interface description Contributes to issue CURA-3491. --- 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 273f3ad265..eb62c40d17 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1864,7 +1864,7 @@ "speed_support_interface": { "label": "Support Interface Speed", - "description": "The speed at which the roofs and bottoms of support are printed. Printing the them at lower speeds can improve overhang quality.", + "description": "The speed at which the roofs and bottoms of support are printed. Printing them at lower speeds can improve overhang quality.", "unit": "mm/s", "type": "float", "default_value": 40, From 03ae29838955b87d68d93aa9c5fd609aa47147bc Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 17 Mar 2017 10:43:01 +0100 Subject: [PATCH 02/26] Add support roof and bottom speeds They can now be separately adjusted instead of just support interface. Contributes to issue CURA-3491. --- resources/definitions/fdmprinter.def.json | 37 ++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index eb62c40d17..10de93e514 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1875,7 +1875,42 @@ "limit_to_extruder": "support_interface_extruder_nr", "value": "speed_support / 1.5", "settable_per_mesh": false, - "settable_per_extruder": true + "settable_per_extruder": true, + "children": + { + "speed_support_bottom": + { + "label": "Support Bottom Speed", + "description": "The speed at which the bottoms of support are printed. Printing them at lower speeds can improve overhang quality.", + "unit": "mm/s", + "type": "float", + "default_value": 40, + "minimum_value": "0.1", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", + "maximum_value_warning": "150", + "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", + "limit_to_extruder": "support_interface_extruder_nr", + "value": "speed_support_interface", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "speed_support_roof": + { + "label": "Support Roof Speed", + "description": "The speed at which the roofs of support are printed. Printing them at lower speeds can improve overhang quality.", + "unit": "mm/s", + "type": "float", + "default_value": 40, + "minimum_value": "0.1", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", + "maximum_value_warning": "150", + "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", + "limit_to_extruder": "support_interface_extruder_nr", + "value": "speed_support_interface", + "settable_per_mesh": false, + "settable_per_extruder": true + } + } } } }, From c15e70a6a6d43a55822031a9e8f3a11bce75e9fa Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 17 Mar 2017 11:13:30 +0100 Subject: [PATCH 03/26] Make support bottom speed description more accurate It doesn't affect overhang really. Contributes to issue CURA-3491. --- 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 10de93e514..30dc8b58f3 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1897,7 +1897,7 @@ "speed_support_roof": { "label": "Support Roof Speed", - "description": "The speed at which the roofs of support are printed. Printing them at lower speeds can improve overhang quality.", + "description": "The speed at which the roofs of support are printed. Printing them at lower speeds can improve adhesion of support on top of your model.", "unit": "mm/s", "type": "float", "default_value": 40, From 250995611aff6b66b3a9a6bc467308ca44128b10 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 17 Mar 2017 11:14:02 +0100 Subject: [PATCH 04/26] Fix typo in Support Interface Acceleration Contributes to issue CURA-3491. --- 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 30dc8b58f3..79c5143ea2 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2185,7 +2185,7 @@ "acceleration_support_interface": { "label": "Support Interface Acceleration", - "description": "The acceleration with which the roofs and bottoms of support are printed. Printing them at lower accelerations can improve overhang quality.", + "description": "The acceleration with which the roofs and bottoms of support are printed. Printing them at lower acceleration can improve overhang quality.", "unit": "mm/s²", "type": "float", "default_value": 3000, From 65daa86fb0002e3bed6062b0ac18f04a05f4a9ca Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 17 Mar 2017 11:14:48 +0100 Subject: [PATCH 05/26] Add separate settings for support roof and bottom acceleration You can now tune them separately. Contributes to issue CURA-3491. --- resources/definitions/fdmprinter.def.json | 37 ++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 79c5143ea2..a3731edff7 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2196,7 +2196,42 @@ "enabled": "resolveOrValue('acceleration_enabled') and extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", "limit_to_extruder": "support_interface_extruder_nr", "settable_per_mesh": false, - "settable_per_extruder": true + "settable_per_extruder": true, + "children": + { + "acceleration_support_bottom": + { + "label": "Support Bottom Acceleration", + "description": "The accelerations with which the bottoms of support are printed. Printing them at lower acceleration can improve adhesion of support on top of your model.", + "unit": "mm/s²", + "type": "float", + "default_value": 3000, + "value": "acceleration_support_interface", + "minimum_value": "0.1", + "minimum_value_warning": "100", + "maximum_value_warning": "10000", + "enabled": "resolveOrValue('acceleration_enabled') and extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", + "limit_to_extruder": "support_interface_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "acceleration_support_roof": + { + "label": "Support Roof Acceleration", + "description": "The accelerations with which the roofs of support are printed. Printing them at lower acceleration can improve overhang quality.", + "unit": "mm/s²", + "type": "float", + "default_value": 3000, + "value": "acceleration_support_interface", + "minimum_value": "0.1", + "minimum_value_warning": "100", + "maximum_value_warning": "10000", + "enabled": "resolveOrValue('acceleration_enabled') and extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", + "limit_to_extruder": "support_interface_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true + } + } } } }, From d33c8e843611a66fbc0e3eb88d80c6f1bd8f0d90 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 17 Mar 2017 11:24:10 +0100 Subject: [PATCH 06/26] Fix spelling of support interface acceleration descriptions My own copy-paste mistake here. Contributes to issue CURA-3491. --- 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 a3731edff7..f5402dd294 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2202,7 +2202,7 @@ "acceleration_support_bottom": { "label": "Support Bottom Acceleration", - "description": "The accelerations with which the bottoms of support are printed. Printing them at lower acceleration can improve adhesion of support on top of your model.", + "description": "The acceleration with which the bottoms of support are printed. Printing them at lower acceleration can improve adhesion of support on top of your model.", "unit": "mm/s²", "type": "float", "default_value": 3000, @@ -2218,7 +2218,7 @@ "acceleration_support_roof": { "label": "Support Roof Acceleration", - "description": "The accelerations with which the roofs of support are printed. Printing them at lower acceleration can improve overhang quality.", + "description": "The acceleration with which the roofs of support are printed. Printing them at lower acceleration can improve overhang quality.", "unit": "mm/s²", "type": "float", "default_value": 3000, From 933ca7089006f78021c9757c479757c8daec22b9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 17 Mar 2017 11:29:33 +0100 Subject: [PATCH 07/26] Add separate settings for support roof/bottom jerk You can now tune them separately. Contributes to issue CURA-3491. --- resources/definitions/fdmprinter.def.json | 37 ++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index f5402dd294..cebac1e0c7 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2470,7 +2470,42 @@ "enabled": "resolveOrValue('jerk_enabled') and extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", "limit_to_extruder": "support_interface_extruder_nr", "settable_per_mesh": false, - "settable_per_extruder": true + "settable_per_extruder": true, + "children": + { + "jerk_support_bottom": + { + "label": "Support Bottom Jerk", + "description": "The maximum instantaneous velocity change with which the bottoms of support are printed.", + "unit": "mm/s", + "type": "float", + "default_value": 20, + "value": "jerk_support_interface", + "minimum_value": "0.1", + "minimum_value_warning": "5", + "maximum_value_warning": "50", + "enabled": "resolveOrValue('jerk_enabled') and extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", + "limit_to_extruder": "support_interface_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "jerk_support_roof": + { + "label": "Support Roof Jerk", + "description": "The maximum instantaneous velocity change with which the roofs of support are printed.", + "unit": "mm/s", + "type": "float", + "default_value": 20, + "value": "jerk_support_interface", + "minimum_value": "0.1", + "minimum_value_warning": "5", + "maximum_value_warning": "50", + "enabled": "resolveOrValue('jerk_enabled') and extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", + "limit_to_extruder": "support_interface_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true + } + } } } }, From cdaeb13c3abf57d3ec7a9117462b790b31967f93 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 17 Mar 2017 13:29:15 +0100 Subject: [PATCH 08/26] Use support infill density instead of line distance Making these profiles use line distance prevents the user from setting their own density. This density is exactly equivalent. Contributes to issue CURA-3491. --- 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 +- 4 files changed, 4 insertions(+), 4 deletions(-) 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 e9370877e7..0f61ccb0cd 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 @@ -28,7 +28,7 @@ raft_margin = 15 retraction_count_max = 80 skin_overlap = 30 speed_layer_0 = 25 -support_interface_line_distance = 0.4 +support_interface_density = 87.5 support_interface_pattern = lines support_pattern = zigzag wall_line_width_x = =round(line_width * 0.4 / 0.35, 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 cdb37b8f12..103198fc59 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 @@ -29,7 +29,7 @@ raft_margin = 15 retraction_count_max = 80 skin_overlap = 30 speed_layer_0 = 25 -support_interface_line_distance = 0.4 +support_interface_density = 87.5 support_interface_pattern = lines support_pattern = zigzag wall_line_width_x = =round(line_width * 0.4 / 0.35, 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 f5e91fa71b..eb76d8c42a 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 @@ -27,7 +27,7 @@ raft_margin = 15 retraction_count_max = 80 skin_overlap = 30 speed_layer_0 = 25 -support_interface_line_distance = 0.4 +support_interface_density = 87.5 support_interface_pattern = lines support_pattern = zigzag wall_line_width_x = =round(line_width * 0.4 / 0.35, 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 d391e9df4f..364ff16bf6 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 @@ -26,7 +26,7 @@ raft_margin = 15 retraction_count_max = 80 skin_overlap = 30 speed_layer_0 = 25 -support_interface_line_distance = 0.4 +support_interface_density = 87.5 support_interface_pattern = lines support_pattern = zigzag wall_line_width_x = =round(line_width * 0.4 / 0.35, 2) From 3e464964db445dbfaa534d767257d493041e66cc Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 17 Mar 2017 14:47:17 +0100 Subject: [PATCH 09/26] Split support interface density into roof/bottom Each has its own line distance setting. The original support interface line distance is no longer used then. Contributes to issue CURA-3491. --- resources/definitions/fdmprinter.def.json | 65 ++++++++++++++++++++--- 1 file changed, 57 insertions(+), 8 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index cebac1e0c7..b282ac8fd2 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3252,20 +3252,69 @@ "settable_per_extruder": true, "children": { - "support_interface_line_distance": + "support_bottom_density": { - "label": "Support Interface Line Distance", - "description": "Distance between the printed support interface lines. This setting is calculated by the Support Interface Density, but can be adjusted separately.", - "unit": "mm", + "label": "Support Bottom Density", + "description": "Adjusts the density of the bottoms of the support structure. A higher value results in better adhesion of the support on top of the model.", + "unit": "%", "type": "float", - "default_value": 0.4, + "default_value": 100, "minimum_value": "0", - "minimum_value_warning": "support_interface_line_width - 0.0001", - "value": "0 if support_interface_density == 0 else (support_interface_line_width * 100) / support_interface_density * (2 if support_interface_pattern == 'grid' else (3 if support_interface_pattern == 'triangles' else 1))", + "maximum_value": "100", "limit_to_extruder": "support_interface_extruder_nr", "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, - "settable_per_extruder": true + "settable_per_extruder": true, + "children": + { + "support_bottom_line_distance": + { + "label": "Support Bottom Line Distance", + "description": "Distance between the printed support bottom lines. This setting is calculated by the Support Bottom Density, but can be adjusted separately.", + "unit": "mm", + "type": "float", + "default_value": 0.4, + "minimum_value": "0", + "minimum_value_warning": "support_interface_line_width - 0.0001", + "value": "0 if support_bottom_density == 0 else (support_interface_line_width * 100) / support_bottom_density * (2 if support_interface_pattern == 'grid' else (3 if support_interface_pattern == 'triangles' else 1))", + "limit_to_extruder": "support_interface_extruder_nr", + "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", + "settable_per_mesh": false, + "settable_per_extruder": true + } + } + }, + "support_roof_density": + { + "label": "Support Roof Density", + "description": "Adjusts the density of the roofs of the support structure. A higher value results in better overhangs, but the supports are harder to remove.", + "unit": "%", + "type": "float", + "default_value": 100, + "minimum_value": "0", + "maximum_value": "100", + "limit_to_extruder": "support_interface_extruder_nr", + "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", + "settable_per_mesh": false, + "settable_per_extruder": true, + "children": + { + "support_roof_line_distance": + { + "label": "Support Roof Line Distance", + "description": "Distance between the printed support roof lines. This setting is calculated by the Support Roof Density, but can be adjusted separately.", + "unit": "mm", + "type": "float", + "default_value": 0.4, + "minimum_value": "0", + "minimum_value_warning": "support_interface_line_width - 0.0001", + "value": "0 if support_roof_density == 0 else (support_interface_line_width * 100) / support_roof_density * (2 if support_interface_pattern == 'grid' else (3 if support_interface_pattern == 'triangles' else 1))", + "limit_to_extruder": "support_interface_extruder_nr", + "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", + "settable_per_mesh": false, + "settable_per_extruder": true + } + } } } }, From 8de0bd60c795202452b022c9ecbf021e9a8d509d Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 17 Mar 2017 15:02:44 +0100 Subject: [PATCH 10/26] Split support inerface line width into roof and bottom This way you can change them separately. Contributes to issue CURA-3491. --- resources/definitions/fdmprinter.def.json | 45 ++++++++++++++++++++--- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index b282ac8fd2..2d837f90af 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -757,7 +757,42 @@ "limit_to_extruder": "support_interface_extruder_nr", "value": "line_width", "settable_per_mesh": false, - "settable_per_extruder": true + "settable_per_extruder": true, + "children": + { + "support_bottom_line_width": + { + "label": "Support Bottom Line Width", + "description": "Width of a single support bottom line.", + "unit": "mm", + "default_value": 0.4, + "minimum_value": "0.001", + "minimum_value_warning": "0.4 * machine_nozzle_size", + "maximum_value_warning": "2 * machine_nozzle_size", + "type": "float", + "enabled": "support_enable and support_interface_enable", + "limit_to_extruder": "support_interface_extruder_nr", + "value": "support_interface_line_width", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "support_roof_line_width": + { + "label": "Support Roof Line Width", + "description": "Width of a single support roof line.", + "unit": "mm", + "default_value": 0.4, + "minimum_value": "0.001", + "minimum_value_warning": "0.4 * machine_nozzle_size", + "maximum_value_warning": "2 * machine_nozzle_size", + "type": "float", + "enabled": "support_enable and support_interface_enable", + "limit_to_extruder": "support_interface_extruder_nr", + "value": "support_interface_line_width", + "settable_per_mesh": false, + "settable_per_extruder": true + } + } }, "prime_tower_line_width": { @@ -3275,8 +3310,8 @@ "type": "float", "default_value": 0.4, "minimum_value": "0", - "minimum_value_warning": "support_interface_line_width - 0.0001", - "value": "0 if support_bottom_density == 0 else (support_interface_line_width * 100) / support_bottom_density * (2 if support_interface_pattern == 'grid' else (3 if support_interface_pattern == 'triangles' else 1))", + "minimum_value_warning": "support_bottom_line_width - 0.0001", + "value": "0 if support_bottom_density == 0 else (support_bottom_line_width * 100) / support_bottom_density * (2 if support_interface_pattern == 'grid' else (3 if support_interface_pattern == 'triangles' else 1))", "limit_to_extruder": "support_interface_extruder_nr", "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, @@ -3307,8 +3342,8 @@ "type": "float", "default_value": 0.4, "minimum_value": "0", - "minimum_value_warning": "support_interface_line_width - 0.0001", - "value": "0 if support_roof_density == 0 else (support_interface_line_width * 100) / support_roof_density * (2 if support_interface_pattern == 'grid' else (3 if support_interface_pattern == 'triangles' else 1))", + "minimum_value_warning": "support_roof_line_width - 0.0001", + "value": "0 if support_roof_density == 0 else (support_roof_line_width * 100) / support_roof_density * (2 if support_interface_pattern == 'grid' else (3 if support_interface_pattern == 'triangles' else 1))", "limit_to_extruder": "support_interface_extruder_nr", "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, From 2d9b2216a3909c4a24530a3af49ea99b9d6d7af9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 17 Mar 2017 15:55:18 +0100 Subject: [PATCH 11/26] Allow printing support roof and bottom with different extruders Note that currently the support_interface_extruder_nr is still used by the engine for some things and therefore the build volume calculations may not be 100% correct. I'll fix that up soon. Contributes to issue CURA-3491. --- cura/BuildVolume.py | 2 +- cura/Settings/ExtruderManager.py | 3 +- resources/definitions/fdmprinter.def.json | 91 +++++++++++++++-------- 3 files changed, 61 insertions(+), 35 deletions(-) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index 1b04e0390a..4ad5a81552 100755 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -899,4 +899,4 @@ class BuildVolume(SceneNode): _tower_settings = ["prime_tower_enable", "prime_tower_size", "prime_tower_position_x", "prime_tower_position_y"] _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"] - _extruder_settings = ["support_enable", "support_interface_enable", "support_infill_extruder_nr", "support_extruder_nr_layer_0", "support_interface_extruder_nr", "brim_line_count", "adhesion_extruder_nr", "adhesion_type"] #Settings that can affect which extruders are used. + _extruder_settings = ["support_enable", "support_interface_enable", "support_infill_extruder_nr", "support_extruder_nr_layer_0", "support_bottom_extruder_nr", "support_roof_extruder_nr", "brim_line_count", "adhesion_extruder_nr", "adhesion_type"] #Settings that can affect which extruders are used. diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index f6c1759078..55621d0e3b 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -370,7 +370,8 @@ class ExtruderManager(QObject): used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_infill_extruder_nr", "value"))]) used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_extruder_nr_layer_0", "value"))]) if support_interface_enabled: - used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_interface_extruder_nr", "value"))]) + used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_roof_extruder_nr", "value"))]) + used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_bottom_extruder_nr", "value"))]) #The platform adhesion extruder. Not used if using none. if global_stack.getProperty("adhesion_type", "value") != "none": diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 2d837f90af..1e7da3228f 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -771,7 +771,7 @@ "maximum_value_warning": "2 * machine_nozzle_size", "type": "float", "enabled": "support_enable and support_interface_enable", - "limit_to_extruder": "support_interface_extruder_nr", + "limit_to_extruder": "support_bottom_extruder_nr", "value": "support_interface_line_width", "settable_per_mesh": false, "settable_per_extruder": true @@ -787,7 +787,7 @@ "maximum_value_warning": "2 * machine_nozzle_size", "type": "float", "enabled": "support_enable and support_interface_enable", - "limit_to_extruder": "support_interface_extruder_nr", + "limit_to_extruder": "support_roof_extruder_nr", "value": "support_interface_line_width", "settable_per_mesh": false, "settable_per_extruder": true @@ -1923,8 +1923,8 @@ "minimum_value": "0.1", "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "150", - "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", - "limit_to_extruder": "support_interface_extruder_nr", + "enabled": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", + "limit_to_extruder": "support_bottom_extruder_nr", "value": "speed_support_interface", "settable_per_mesh": false, "settable_per_extruder": true @@ -1939,8 +1939,8 @@ "minimum_value": "0.1", "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "150", - "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", - "limit_to_extruder": "support_interface_extruder_nr", + "enabled": "extruderValue(support_roof_extruder_nr, 'support_interface_enable') and support_enable", + "limit_to_extruder": "support_roof_extruder_nr", "value": "speed_support_interface", "settable_per_mesh": false, "settable_per_extruder": true @@ -2245,8 +2245,8 @@ "minimum_value": "0.1", "minimum_value_warning": "100", "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled') and extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", - "limit_to_extruder": "support_interface_extruder_nr", + "enabled": "resolveOrValue('acceleration_enabled') and extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", + "limit_to_extruder": "support_bottom_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -2261,8 +2261,8 @@ "minimum_value": "0.1", "minimum_value_warning": "100", "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled') and extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", - "limit_to_extruder": "support_interface_extruder_nr", + "enabled": "resolveOrValue('acceleration_enabled') and extruderValue(support_roof_extruder_nr, 'support_interface_enable') and support_enable", + "limit_to_extruder": "support_roof_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true } @@ -2519,8 +2519,8 @@ "minimum_value": "0.1", "minimum_value_warning": "5", "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled') and extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", - "limit_to_extruder": "support_interface_extruder_nr", + "enabled": "resolveOrValue('jerk_enabled') and extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", + "limit_to_extruder": "support_bottom_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -2535,8 +2535,8 @@ "minimum_value": "0.1", "minimum_value_warning": "5", "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled') and extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", - "limit_to_extruder": "support_interface_extruder_nr", + "enabled": "resolveOrValue('jerk_enabled') and extruderValue(support_roof_extruder_nr, 'support_interface_enable') and support_enable", + "limit_to_extruder": "support_roof_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true } @@ -2980,7 +2980,32 @@ "value": "support_extruder_nr", "enabled": "support_enable and machine_extruder_count > 1", "settable_per_mesh": false, - "settable_per_extruder": false + "settable_per_extruder": false, + "children": + { + "support_bottom_extruder_nr": + { + "label": "Support Bottom Extruder", + "description": "The extruder train to use for printing the bottoms of the support. This is used in multi-extrusion.", + "type": "extruder", + "default_value": "0", + "value": "support_interface_extruder_nr", + "enabled": "support_enable and machine_extruder_count > 1", + "settable_per_mesh": false, + "settable_per_extruder": false + }, + "support_roof_extruder_nr": + { + "label": "Support Roof Extruder", + "description": "The extruder train to use for printing the roofs of the support. This is used in multi-extrusion.", + "type": "extruder", + "default_value": "0", + "value": "support_interface_extruder_nr", + "enabled": "support_enable and machine_extruder_count > 1", + "settable_per_mesh": false, + "settable_per_extruder": false + } + } } } }, @@ -3102,7 +3127,7 @@ "type": "float", "enabled": "support_enable", "value": "extruderValue(support_extruder_nr, 'support_z_distance')", - "limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", + "limit_to_extruder": "support_roof_extruder_nr if support_interface_enable else support_infill_extruder_nr", "settable_per_mesh": true }, "support_bottom_distance": @@ -3114,7 +3139,7 @@ "maximum_value_warning": "machine_nozzle_size", "default_value": 0.1, "value": "extruderValue(support_extruder_nr, 'support_z_distance') if resolveOrValue('support_type') == 'everywhere' else 0", - "limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", + "limit_to_extruder": "support_bottom_extruder_nr if support_interface_enable else support_infill_extruder_nr", "type": "float", "enabled": "support_enable and resolveOrValue('support_type') == 'everywhere'", "settable_per_mesh": true @@ -3170,7 +3195,7 @@ "unit": "mm", "type": "float", "default_value": 0.3, - "limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", + "limit_to_extruder": "support_bottom_extruder_nr if support_interface_enable else support_infill_extruder_nr", "minimum_value": "0", "maximum_value_warning": "1.0", "enabled": "support_enable", @@ -3237,9 +3262,9 @@ "minimum_value": "0", "minimum_value_warning": "3 * resolveOrValue('layer_height')", "maximum_value_warning": "10", - "value": "extruderValue(support_interface_extruder_nr, 'support_interface_height')", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", + "value": "extruderValue(support_roof_extruder_nr, 'support_interface_height')", + "limit_to_extruder": "support_roof_extruder_nr", + "enabled": "extruderValue(support_roof_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": true }, "support_bottom_height": @@ -3249,12 +3274,12 @@ "unit": "mm", "type": "float", "default_value": 1, - "value": "extruderValue(support_interface_extruder_nr, 'support_interface_height')", + "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_height')", "minimum_value": "0", - "minimum_value_warning": "min(3 * resolveOrValue('layer_height'), extruderValue(support_interface_extruder_nr, 'support_bottom_stair_step_height'))", + "minimum_value_warning": "min(3 * resolveOrValue('layer_height'), extruderValue(support_bottom_extruder_nr, 'support_bottom_stair_step_height'))", "maximum_value_warning": "10", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", + "limit_to_extruder": "support_bottom_extruder_nr", + "enabled": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": true } } @@ -3296,8 +3321,8 @@ "default_value": 100, "minimum_value": "0", "maximum_value": "100", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", + "limit_to_extruder": "support_bottom_extruder_nr", + "enabled": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true, "children": @@ -3312,8 +3337,8 @@ "minimum_value": "0", "minimum_value_warning": "support_bottom_line_width - 0.0001", "value": "0 if support_bottom_density == 0 else (support_bottom_line_width * 100) / support_bottom_density * (2 if support_interface_pattern == 'grid' else (3 if support_interface_pattern == 'triangles' else 1))", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", + "limit_to_extruder": "support_bottom_extruder_nr", + "enabled": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true } @@ -3328,8 +3353,8 @@ "default_value": 100, "minimum_value": "0", "maximum_value": "100", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", + "limit_to_extruder": "support_roof_extruder_nr", + "enabled": "extruderValue(support_roof_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true, "children": @@ -3344,8 +3369,8 @@ "minimum_value": "0", "minimum_value_warning": "support_roof_line_width - 0.0001", "value": "0 if support_roof_density == 0 else (support_roof_line_width * 100) / support_roof_density * (2 if support_interface_pattern == 'grid' else (3 if support_interface_pattern == 'triangles' else 1))", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", + "limit_to_extruder": "support_roof_extruder_nr", + "enabled": "extruderValue(support_roof_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true } From 5d6f2d93dc9557a913678ee4ebd19fcdb487b68a Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 20 Mar 2017 09:13:57 +0100 Subject: [PATCH 12/26] Make support angle depend on support roof extruder instead of interface It's the roof that matters for the overhang angle. The bottom has no influence. Contributes to issue CURA-3491. --- 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 1e7da3228f..ae6525234d 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3035,7 +3035,7 @@ "maximum_value": "90", "maximum_value_warning": "80", "default_value": 50, - "limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", + "limit_to_extruder": "support_roof_extruder_nr if support_interface_enable else support_infill_extruder_nr", "enabled": "support_enable", "settable_per_mesh": true }, From 3bae49f1d47368347f1ff645dd093f580ad5625b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 20 Mar 2017 09:26:35 +0100 Subject: [PATCH 13/26] Split support interface pattern in two You can select a pattern separately for roof and bottom. Contributes to issue CURA-3491. --- resources/definitions/fdmprinter.def.json | 51 +++++++++++++++++++++-- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index ae6525234d..b844e55991 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3336,7 +3336,7 @@ "default_value": 0.4, "minimum_value": "0", "minimum_value_warning": "support_bottom_line_width - 0.0001", - "value": "0 if support_bottom_density == 0 else (support_bottom_line_width * 100) / support_bottom_density * (2 if support_interface_pattern == 'grid' else (3 if support_interface_pattern == 'triangles' else 1))", + "value": "0 if support_bottom_density == 0 else (support_bottom_line_width * 100) / support_bottom_density * (2 if support_bottom_pattern == 'grid' else (3 if support_bottom_pattern == 'triangles' else 1))", "limit_to_extruder": "support_bottom_extruder_nr", "enabled": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, @@ -3368,7 +3368,7 @@ "default_value": 0.4, "minimum_value": "0", "minimum_value_warning": "support_roof_line_width - 0.0001", - "value": "0 if support_roof_density == 0 else (support_roof_line_width * 100) / support_roof_density * (2 if support_interface_pattern == 'grid' else (3 if support_interface_pattern == 'triangles' else 1))", + "value": "0 if support_roof_density == 0 else (support_roof_line_width * 100) / support_roof_density * (2 if support_roof_pattern == 'grid' else (3 if support_roof_pattern == 'triangles' else 1))", "limit_to_extruder": "support_roof_extruder_nr", "enabled": "extruderValue(support_roof_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, @@ -3396,7 +3396,52 @@ "limit_to_extruder": "support_interface_extruder_nr", "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, - "settable_per_extruder": true + "settable_per_extruder": true, + "children": + { + "support_bottom_pattern": + { + "label": "Support Bottom Pattern", + "description": "The pattern with which the bottoms of the support are printed.", + "type": "enum", + "options": + { + "lines": "Lines", + "grid": "Grid", + "triangles": "Triangles", + "concentric": "Concentric", + "concentric_3d": "Concentric 3D", + "zigzag": "Zig Zag" + }, + "default_value": "concentric", + "value": "support_interface_pattern", + "limit_to_extruder": "support_bottom_extruder_nr", + "enabled": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "support_roof_pattern": + { + "label": "Support Roof Pattern", + "description": "The pattern with which the bottoms of the support are printed.", + "type": "enum", + "options": + { + "lines": "Lines", + "grid": "Grid", + "triangles": "Triangles", + "concentric": "Concentric", + "concentric_3d": "Concentric 3D", + "zigzag": "Zig Zag" + }, + "default_value": "concentric", + "value": "support_interface_pattern", + "limit_to_extruder": "support_bottom_extruder_nr", + "enabled": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", + "settable_per_mesh": false, + "settable_per_extruder": true + } + } }, "support_use_towers": { From 92d34a8d7293923646224054c2afcfa57504847e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 20 Mar 2017 09:40:54 +0100 Subject: [PATCH 14/26] Split support interface resolution into roof and bottom You can now tune them separately. Contributes to issue CURA-3491. --- resources/definitions/fdmprinter.def.json | 35 +++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index b844e55991..af36b6fb73 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3287,7 +3287,7 @@ "support_interface_skip_height": { "label": "Support Interface Resolution", - "description": "When checking where there's model above 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.", + "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.3, @@ -3295,7 +3295,38 @@ "maximum_value_warning": "support_interface_height", "limit_to_extruder": "support_interface_extruder_nr", "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", - "settable_per_mesh": true + "settable_per_mesh": true, + "children": + { + "support_bottom_skip_height": + { + "label": "Support Bottom Resolution", + "description": "When checking where there's model 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 the bottom of support.", + "unit": "mm", + "type": "float", + "default_value": 0.3, + "value": "support_interface_skip_height", + "minimum_value": "0", + "maximum_value_warning": "support_bottom_height", + "limit_to_extruder": "support_bottom_extruder_nr", + "enabled": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", + "settable_per_mesh": true + }, + "support_roof_skip_height": + { + "label": "Support Roof Resolution", + "description": "When checking where there's model above 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 roof on the support.", + "unit": "mm", + "type": "float", + "default_value": 0.3, + "value": "support_interface_skip_height", + "minimum_value": "0", + "maximum_value_warning": "support_roof_height", + "limit_to_extruder": "support_roof_extruder_nr", + "enabled": "extruderValue(support_roof_extruder_nr, 'support_interface_enable') and support_enable", + "settable_per_mesh": true + } + } }, "support_interface_density": { From 2f1d957f99f791d0472e915a37e472473c098ab0 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 20 Mar 2017 10:47:37 +0100 Subject: [PATCH 15/26] Split support_interface_enable into roof and bottom You can activate the roof and bottom separately now. If you want, of course. The original interface setting sets both of them unless overwritten. Contributes to issue CURA-3491. --- cura/BuildVolume.py | 2 +- cura/Settings/ExtruderManager.py | 14 +++-- resources/definitions/fdmprinter.def.json | 71 +++++++++++++++-------- 3 files changed, 58 insertions(+), 29 deletions(-) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index 4ad5a81552..35138a5ea7 100755 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -899,4 +899,4 @@ class BuildVolume(SceneNode): _tower_settings = ["prime_tower_enable", "prime_tower_size", "prime_tower_position_x", "prime_tower_position_y"] _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"] - _extruder_settings = ["support_enable", "support_interface_enable", "support_infill_extruder_nr", "support_extruder_nr_layer_0", "support_bottom_extruder_nr", "support_roof_extruder_nr", "brim_line_count", "adhesion_extruder_nr", "adhesion_type"] #Settings that can affect which extruders are used. + _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", "adhesion_extruder_nr", "adhesion_type"] #Settings that can affect which extruders are used. diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 55621d0e3b..85b30ba9d6 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -346,7 +346,8 @@ class ExtruderManager(QObject): #Get the extruders of all meshes in the scene. support_enabled = False - support_interface_enabled = False + support_bottom_enabled = False + support_roof_enabled = False scene_root = Application.getInstance().getController().getScene().getRoot() meshes = [node for node in DepthFirstIterator(scene_root) if type(node) is SceneNode and node.isSelectable()] #Only use the nodes that will be printed. for mesh in meshes: @@ -359,19 +360,22 @@ class ExtruderManager(QObject): per_mesh_stack = mesh.callDecoration("getStack") if per_mesh_stack: support_enabled |= per_mesh_stack.getProperty("support_enable", "value") - support_interface_enabled |= per_mesh_stack.getProperty("support_interface_enable", "value") + support_bottom_enabled |= per_mesh_stack.getProperty("support_bottom_enable", "value") + support_roof_enabled |= per_mesh_stack.getProperty("support_roof_enable", "value") else: #Take the setting from the build extruder stack. extruder_stack = container_registry.findContainerStacks(id = extruder_stack_id)[0] support_enabled |= extruder_stack.getProperty("support_enable", "value") - support_interface_enabled |= extruder_stack.getProperty("support_enable", "value") + support_bottom_enabled |= extruder_stack.getProperty("support_bottom_enable", "value") + support_roof_enabled |= extruder_stack.getProperty("support_roof_enable", "value") #The support extruders. if support_enabled: used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_infill_extruder_nr", "value"))]) used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_extruder_nr_layer_0", "value"))]) - if support_interface_enabled: - used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_roof_extruder_nr", "value"))]) + if support_bottom_enabled: used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_bottom_extruder_nr", "value"))]) + if support_roof_enabled: + used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_roof_extruder_nr", "value"))]) #The platform adhesion extruder. Not used if using none. if global_stack.getProperty("adhesion_type", "value") != "none": diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index af36b6fb73..498b6334a2 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -770,7 +770,7 @@ "minimum_value_warning": "0.4 * machine_nozzle_size", "maximum_value_warning": "2 * machine_nozzle_size", "type": "float", - "enabled": "support_enable and support_interface_enable", + "enabled": "support_enable and support_bottom_enable", "limit_to_extruder": "support_bottom_extruder_nr", "value": "support_interface_line_width", "settable_per_mesh": false, @@ -786,7 +786,7 @@ "minimum_value_warning": "0.4 * machine_nozzle_size", "maximum_value_warning": "2 * machine_nozzle_size", "type": "float", - "enabled": "support_enable and support_interface_enable", + "enabled": "support_enable and support_roof_enable", "limit_to_extruder": "support_roof_extruder_nr", "value": "support_interface_line_width", "settable_per_mesh": false, @@ -1923,7 +1923,7 @@ "minimum_value": "0.1", "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "150", - "enabled": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", "limit_to_extruder": "support_bottom_extruder_nr", "value": "speed_support_interface", "settable_per_mesh": false, @@ -1939,7 +1939,7 @@ "minimum_value": "0.1", "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "150", - "enabled": "extruderValue(support_roof_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "extruderValue(support_roof_extruder_nr, 'support_roof_enable') and support_enable", "limit_to_extruder": "support_roof_extruder_nr", "value": "speed_support_interface", "settable_per_mesh": false, @@ -2245,7 +2245,7 @@ "minimum_value": "0.1", "minimum_value_warning": "100", "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled') and extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "resolveOrValue('acceleration_enabled') and extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", "limit_to_extruder": "support_bottom_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true @@ -2261,7 +2261,7 @@ "minimum_value": "0.1", "minimum_value_warning": "100", "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled') and extruderValue(support_roof_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "resolveOrValue('acceleration_enabled') and extruderValue(support_roof_extruder_nr, 'support_roof_enable') and support_enable", "limit_to_extruder": "support_roof_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true @@ -2519,7 +2519,7 @@ "minimum_value": "0.1", "minimum_value_warning": "5", "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled') and extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "resolveOrValue('jerk_enabled') and extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", "limit_to_extruder": "support_bottom_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true @@ -2535,7 +2535,7 @@ "minimum_value": "0.1", "minimum_value_warning": "5", "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled') and extruderValue(support_roof_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "resolveOrValue('jerk_enabled') and extruderValue(support_roof_extruder_nr, 'support_roof_enable') and support_enable", "limit_to_extruder": "support_roof_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true @@ -3035,7 +3035,7 @@ "maximum_value": "90", "maximum_value_warning": "80", "default_value": 50, - "limit_to_extruder": "support_roof_extruder_nr if support_interface_enable else support_infill_extruder_nr", + "limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr", "enabled": "support_enable", "settable_per_mesh": true }, @@ -3127,7 +3127,7 @@ "type": "float", "enabled": "support_enable", "value": "extruderValue(support_extruder_nr, 'support_z_distance')", - "limit_to_extruder": "support_roof_extruder_nr if support_interface_enable else support_infill_extruder_nr", + "limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr", "settable_per_mesh": true }, "support_bottom_distance": @@ -3139,7 +3139,7 @@ "maximum_value_warning": "machine_nozzle_size", "default_value": 0.1, "value": "extruderValue(support_extruder_nr, 'support_z_distance') if resolveOrValue('support_type') == 'everywhere' else 0", - "limit_to_extruder": "support_bottom_extruder_nr if support_interface_enable else support_infill_extruder_nr", + "limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr", "type": "float", "enabled": "support_enable and resolveOrValue('support_type') == 'everywhere'", "settable_per_mesh": true @@ -3195,7 +3195,7 @@ "unit": "mm", "type": "float", "default_value": 0.3, - "limit_to_extruder": "support_bottom_extruder_nr if support_interface_enable else support_infill_extruder_nr", + "limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr", "minimum_value": "0", "maximum_value_warning": "1.0", "enabled": "support_enable", @@ -3235,7 +3235,32 @@ "default_value": false, "limit_to_extruder": "support_interface_extruder_nr", "enabled": "support_enable", - "settable_per_mesh": true + "settable_per_mesh": true, + "children": + { + "support_bottom_enable": + { + "label": "Enable Support Bottom", + "description": "Generate a dense flooring below the support where it rests on the model. This will create a skin between the model and support.", + "type": "bool", + "default_value": false, + "value": "support_interface_enable", + "limit_to_extruder": "support_bottom_extruder_nr", + "enabled": "support_interface_enable", + "settable_per_mesh": true + }, + "support_roof_enable": + { + "label": "Enable Support Roof", + "description": "Generate a dense roof above the support where the model rests on the support. This will create a skin between the model and support.", + "type": "bool", + "default_value": false, + "value": "support_interface_enable", + "limit_to_extruder": "support_roof_extruder_nr", + "enabled": "support_interface_enable", + "settable_per_mesh": true + } + } }, "support_interface_height": { @@ -3264,7 +3289,7 @@ "maximum_value_warning": "10", "value": "extruderValue(support_roof_extruder_nr, 'support_interface_height')", "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "extruderValue(support_roof_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "extruderValue(support_roof_extruder_nr, 'support_roof_enable') and support_enable", "settable_per_mesh": true }, "support_bottom_height": @@ -3279,7 +3304,7 @@ "minimum_value_warning": "min(3 * resolveOrValue('layer_height'), extruderValue(support_bottom_extruder_nr, 'support_bottom_stair_step_height'))", "maximum_value_warning": "10", "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", "settable_per_mesh": true } } @@ -3309,7 +3334,7 @@ "minimum_value": "0", "maximum_value_warning": "support_bottom_height", "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", "settable_per_mesh": true }, "support_roof_skip_height": @@ -3323,7 +3348,7 @@ "minimum_value": "0", "maximum_value_warning": "support_roof_height", "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "extruderValue(support_roof_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "extruderValue(support_roof_extruder_nr, 'support_roof_enable') and support_enable", "settable_per_mesh": true } } @@ -3353,7 +3378,7 @@ "minimum_value": "0", "maximum_value": "100", "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true, "children": @@ -3369,7 +3394,7 @@ "minimum_value_warning": "support_bottom_line_width - 0.0001", "value": "0 if support_bottom_density == 0 else (support_bottom_line_width * 100) / support_bottom_density * (2 if support_bottom_pattern == 'grid' else (3 if support_bottom_pattern == 'triangles' else 1))", "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true } @@ -3385,7 +3410,7 @@ "minimum_value": "0", "maximum_value": "100", "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "extruderValue(support_roof_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "extruderValue(support_roof_extruder_nr, 'support_roof_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true, "children": @@ -3401,7 +3426,7 @@ "minimum_value_warning": "support_roof_line_width - 0.0001", "value": "0 if support_roof_density == 0 else (support_roof_line_width * 100) / support_roof_density * (2 if support_roof_pattern == 'grid' else (3 if support_roof_pattern == 'triangles' else 1))", "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "extruderValue(support_roof_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "extruderValue(support_roof_extruder_nr, 'support_roof_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true } @@ -3447,7 +3472,7 @@ "default_value": "concentric", "value": "support_interface_pattern", "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -3468,7 +3493,7 @@ "default_value": "concentric", "value": "support_interface_pattern", "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "extruderValue(support_bottom_extruder_nr, 'support_roof_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true } From 7915dfa103640c8d23df6e9b714c850501dc05f3 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 20 Mar 2017 10:55:04 +0100 Subject: [PATCH 16/26] Enable support roof/bottom enabled settings when support is active Their enabling shouldn't be dependent on the setting they are themselves dependent on. The settings are still effective even if support_interface_enable is off, if they are just overwritten. Contributes to issue CURA-3491. --- 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 498b6334a2..5565737242 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3246,7 +3246,7 @@ "default_value": false, "value": "support_interface_enable", "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_interface_enable", + "enabled": "support_enable", "settable_per_mesh": true }, "support_roof_enable": @@ -3257,7 +3257,7 @@ "default_value": false, "value": "support_interface_enable", "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_interface_enable", + "enabled": "support_enable", "settable_per_mesh": true } } From e09dc40dff2bd76d3957c572a28c3372b0d79181 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 5 Apr 2017 13:33:42 +0200 Subject: [PATCH 17/26] Switch descriptions of support top and bottom speed Had it wrong way around on what it affects. Contributes to issue CURA-3491. --- 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 5565737242..d30c27e861 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1916,7 +1916,7 @@ "speed_support_bottom": { "label": "Support Bottom Speed", - "description": "The speed at which the bottoms of support are printed. Printing them at lower speeds can improve overhang quality.", + "description": "The speed at which the bottoms of support are printed. Printing them at lower speeds can improve adhesion of support on top of your model.", "unit": "mm/s", "type": "float", "default_value": 40, @@ -1932,7 +1932,7 @@ "speed_support_roof": { "label": "Support Roof Speed", - "description": "The speed at which the roofs of support are printed. Printing them at lower speeds can improve adhesion of support on top of your model.", + "description": "The speed at which the roofs of support are printed. Printing them at lower speeds can improve overhang quality.", "unit": "mm/s", "type": "float", "default_value": 40, From d65cc00c6971b7aea30aea425a67c1dbd7bb6781 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 5 Apr 2017 13:39:03 +0200 Subject: [PATCH 18/26] Rephrase description of enable support bottoms It must have a different phrasing than 'support bottom', or else it won't give an actual explanation of what support bottoms are, but 'flooring' was not acceptable. Contributes to issue CURA-3491. --- 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 d30c27e861..6404c01f8d 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3241,7 +3241,7 @@ "support_bottom_enable": { "label": "Enable Support Bottom", - "description": "Generate a dense flooring below the support where it rests on the model. This will create a skin between the model and support.", + "description": "Generate dense floors below the support where it rests on the model. This will create a skin between the model and support.", "type": "bool", "default_value": false, "value": "support_interface_enable", From 945c438c229f53eee8a526d7fda5f885ce882504 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 5 Apr 2017 14:02:19 +0200 Subject: [PATCH 19/26] Remove support interface resolution settings This reverts commit 92d34a8d7293923646224054c2afcfa57504847e, but not entirely because I wanted to retain the new description for support interface resolution itself. Contributes to issue CURA-3491. --- resources/definitions/fdmprinter.def.json | 36 ++--------------------- 1 file changed, 2 insertions(+), 34 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 6404c01f8d..b2a53c6484 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3309,8 +3309,7 @@ } } }, - "support_interface_skip_height": - { + "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", @@ -3320,38 +3319,7 @@ "maximum_value_warning": "support_interface_height", "limit_to_extruder": "support_interface_extruder_nr", "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", - "settable_per_mesh": true, - "children": - { - "support_bottom_skip_height": - { - "label": "Support Bottom Resolution", - "description": "When checking where there's model 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 the bottom of support.", - "unit": "mm", - "type": "float", - "default_value": 0.3, - "value": "support_interface_skip_height", - "minimum_value": "0", - "maximum_value_warning": "support_bottom_height", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", - "settable_per_mesh": true - }, - "support_roof_skip_height": - { - "label": "Support Roof Resolution", - "description": "When checking where there's model above 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 roof on the support.", - "unit": "mm", - "type": "float", - "default_value": 0.3, - "value": "support_interface_skip_height", - "minimum_value": "0", - "maximum_value_warning": "support_roof_height", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "extruderValue(support_roof_extruder_nr, 'support_roof_enable') and support_enable", - "settable_per_mesh": true - } - } + "settable_per_mesh": true }, "support_interface_density": { From 89b296ef655d81b901b07134cf1355a3025a669c Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 5 Apr 2017 14:06:23 +0200 Subject: [PATCH 20/26] Describe the value of the support interface density settings rather than the action We use an object form rather than a verb form. Contributes to issue CURA-3491. --- 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 b2a53c6484..1eacae635d 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3339,7 +3339,7 @@ "support_bottom_density": { "label": "Support Bottom Density", - "description": "Adjusts the density of the bottoms of the support structure. A higher value results in better adhesion of the support on top of the model.", + "description": "The density of the bottoms of the support structure. A higher value results in better adhesion of the support on top of the model.", "unit": "%", "type": "float", "default_value": 100, @@ -3371,7 +3371,7 @@ "support_roof_density": { "label": "Support Roof Density", - "description": "Adjusts the density of the roofs of the support structure. A higher value results in better overhangs, but the supports are harder to remove.", + "description": "The density of the roofs of the support structure. A higher value results in better overhangs, but the supports are harder to remove.", "unit": "%", "type": "float", "default_value": 100, From 041481107963232cb58d658a20417d798dd58060 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 5 Apr 2017 14:07:45 +0200 Subject: [PATCH 21/26] Correct description of support roof pattern This was a copy-paste error. Contributes to issue CURA-3491. --- 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 1eacae635d..8d6f4fd997 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3447,7 +3447,7 @@ "support_roof_pattern": { "label": "Support Roof Pattern", - "description": "The pattern with which the bottoms of the support are printed.", + "description": "The pattern with which the roofs of the support are printed.", "type": "enum", "options": { From 548338440a289742ba9eb1c41aa7476fcf626e66 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 13 Apr 2017 17:11:36 +0200 Subject: [PATCH 22/26] Rename all support bottom settings to support floor Only in the front-end though. No settings are renamed. No documentation updated. As far as the back-end implementation is concerned, it's still called support bottom. Contributes to issue CURA-3491. --- resources/definitions/fdmprinter.def.json | 48 +++++++++++------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 4b634c3b76..dd2755e7b8 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -746,7 +746,7 @@ "support_interface_line_width": { "label": "Support Interface Line Width", - "description": "Width of a single support interface line.", + "description": "Width of a single line of support roof or floor.", "unit": "mm", "default_value": 0.4, "minimum_value": "0.001", @@ -762,8 +762,8 @@ { "support_bottom_line_width": { - "label": "Support Bottom Line Width", - "description": "Width of a single support bottom line.", + "label": "Support Floor Line Width", + "description": "Width of a single support floor line.", "unit": "mm", "default_value": 0.4, "minimum_value": "0.001", @@ -1958,7 +1958,7 @@ "speed_support_interface": { "label": "Support Interface Speed", - "description": "The speed at which the roofs and bottoms of support are printed. Printing them at lower speeds can improve overhang quality.", + "description": "The speed at which the roofs and floors of support are printed. Printing them at lower speeds can improve overhang quality.", "unit": "mm/s", "type": "float", "default_value": 40, @@ -1974,8 +1974,8 @@ { "speed_support_bottom": { - "label": "Support Bottom Speed", - "description": "The speed at which the bottoms of support are printed. Printing them at lower speeds can improve adhesion of support on top of your model.", + "label": "Support Floor Speed", + "description": "The speed at which the floor of support is printed. Printing it at lower speed can improve adhesion of support on top of your model.", "unit": "mm/s", "type": "float", "default_value": 40, @@ -2279,7 +2279,7 @@ "acceleration_support_interface": { "label": "Support Interface Acceleration", - "description": "The acceleration with which the roofs and bottoms of support are printed. Printing them at lower acceleration can improve overhang quality.", + "description": "The acceleration with which the roofs and floors of support are printed. Printing them at lower acceleration can improve overhang quality.", "unit": "mm/s²", "type": "float", "default_value": 3000, @@ -2295,8 +2295,8 @@ { "acceleration_support_bottom": { - "label": "Support Bottom Acceleration", - "description": "The acceleration with which the bottoms of support are printed. Printing them at lower acceleration can improve adhesion of support on top of your model.", + "label": "Support Floor Acceleration", + "description": "The acceleration with which the floors of support are printed. Printing them at lower acceleration can improve adhesion of support on top of your model.", "unit": "mm/s²", "type": "float", "default_value": 3000, @@ -2553,7 +2553,7 @@ "jerk_support_interface": { "label": "Support Interface Jerk", - "description": "The maximum instantaneous velocity change with which the roofs and bottoms of support are printed.", + "description": "The maximum instantaneous velocity change with which the roofs and floors of support are printed.", "unit": "mm/s", "type": "float", "default_value": 20, @@ -2569,8 +2569,8 @@ { "jerk_support_bottom": { - "label": "Support Bottom Jerk", - "description": "The maximum instantaneous velocity change with which the bottoms of support are printed.", + "label": "Support Floor Jerk", + "description": "The maximum instantaneous velocity change with which the floors of support are printed.", "unit": "mm/s", "type": "float", "default_value": 20, @@ -3044,8 +3044,8 @@ { "support_bottom_extruder_nr": { - "label": "Support Bottom Extruder", - "description": "The extruder train to use for printing the bottoms of the support. This is used in multi-extrusion.", + "label": "Support Floor Extruder", + "description": "The extruder train to use for printing the floors of the support. This is used in multi-extrusion.", "type": "extruder", "default_value": "0", "value": "support_interface_extruder_nr", @@ -3299,8 +3299,8 @@ { "support_bottom_enable": { - "label": "Enable Support Bottom", - "description": "Generate dense floors below the support where it rests on the model. This will create a skin between the model and support.", + "label": "Enable Support Floor", + "description": "Generate a dense slab of material below the support where it rests on the model. This will create a skin between the model and support.", "type": "bool", "default_value": false, "value": "support_interface_enable", @@ -3353,8 +3353,8 @@ }, "support_bottom_height": { - "label": "Support Bottom Thickness", - "description": "The thickness of the support bottoms. This controls the number of dense layers are printed on top of places of a model on which support rests.", + "label": "Support Floor Thickness", + "description": "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.", "unit": "mm", "type": "float", "default_value": 1, @@ -3397,8 +3397,8 @@ { "support_bottom_density": { - "label": "Support Bottom Density", - "description": "The density of the bottoms of the support structure. A higher value results in better adhesion of the support on top of the model.", + "label": "Support Floor Density", + "description": "The density of the floors of the support structure. A higher value results in better adhesion of the support on top of the model.", "unit": "%", "type": "float", "default_value": 100, @@ -3412,8 +3412,8 @@ { "support_bottom_line_distance": { - "label": "Support Bottom Line Distance", - "description": "Distance between the printed support bottom lines. This setting is calculated by the Support Bottom Density, but can be adjusted separately.", + "label": "Support Floor Line Distance", + "description": "Distance between the printed support floor lines. This setting is calculated by the Support Floor Density, but can be adjusted separately.", "unit": "mm", "type": "float", "default_value": 0.4, @@ -3484,8 +3484,8 @@ { "support_bottom_pattern": { - "label": "Support Bottom Pattern", - "description": "The pattern with which the bottoms of the support are printed.", + "label": "Support Floor Pattern", + "description": "The pattern with which the floors of the support are printed.", "type": "enum", "options": { From fb29948f888b48937ba7cfdef01d90384962c956 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 13 Apr 2017 18:10:28 +0200 Subject: [PATCH 23/26] Update description of support_roof/bottom_enable Better terminology according to our UX designer. Contributes to issue CURA-3491. --- 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 dd2755e7b8..3199398eba 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3300,7 +3300,7 @@ "support_bottom_enable": { "label": "Enable Support Floor", - "description": "Generate a dense slab of material below the support where it rests on the model. This will create a skin between the model and support.", + "description": "Generate a dense slab of material between the bottom of the support and the model. This will create a skin between the model and support.", "type": "bool", "default_value": false, "value": "support_interface_enable", @@ -3311,7 +3311,7 @@ "support_roof_enable": { "label": "Enable Support Roof", - "description": "Generate a dense roof above the support where the model rests on the support. This will create a skin between the model and support.", + "description": "Generate a dense slab of material between the top of support and the model. This will create a skin between the model and support.", "type": "bool", "default_value": false, "value": "support_interface_enable", From fdf20fcb154d00c7680e95701b5a2cbac55e9e00 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Tue, 18 Apr 2017 13:49:55 +0200 Subject: [PATCH 24/26] fix: forgotten floor in descriptions (CURA-3491) --- 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 3199398eba..1ae26bc40f 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3033,7 +3033,7 @@ "support_interface_extruder_nr": { "label": "Support Interface Extruder", - "description": "The extruder train to use for printing the roofs and bottoms of the support. This is used in multi-extrusion.", + "description": "The extruder train to use for printing the roofs and floors of the support. This is used in multi-extrusion.", "type": "extruder", "default_value": "0", "value": "support_extruder_nr", @@ -3383,7 +3383,7 @@ "support_interface_density": { "label": "Support Interface Density", - "description": "Adjusts the density of the roofs and bottoms of the support structure. A higher value results in better overhangs, but the supports are harder to remove.", + "description": "Adjusts the density of the roofs and floors of the support structure. A higher value results in better overhangs, but the supports are harder to remove.", "unit": "%", "type": "float", "default_value": 100, From 2eae1cdf228048a8c5603ca43d54f7c5be8fa1e0 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 24 Apr 2017 14:28:10 +0200 Subject: [PATCH 25/26] Move support roof settings above support bottom settings This was deemed the most logical ordering. Contributes to issue CURA-3491. --- resources/definitions/fdmprinter.def.json | 268 +++++++++++----------- 1 file changed, 134 insertions(+), 134 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 1ae26bc40f..3cc47b2633 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -760,22 +760,6 @@ "settable_per_extruder": true, "children": { - "support_bottom_line_width": - { - "label": "Support Floor Line Width", - "description": "Width of a single support floor line.", - "unit": "mm", - "default_value": 0.4, - "minimum_value": "0.001", - "minimum_value_warning": "0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "type": "float", - "enabled": "support_enable and support_bottom_enable", - "limit_to_extruder": "support_bottom_extruder_nr", - "value": "support_interface_line_width", - "settable_per_mesh": false, - "settable_per_extruder": true - }, "support_roof_line_width": { "label": "Support Roof Line Width", @@ -791,6 +775,22 @@ "value": "support_interface_line_width", "settable_per_mesh": false, "settable_per_extruder": true + }, + "support_bottom_line_width": + { + "label": "Support Floor Line Width", + "description": "Width of a single support floor line.", + "unit": "mm", + "default_value": 0.4, + "minimum_value": "0.001", + "minimum_value_warning": "0.4 * machine_nozzle_size", + "maximum_value_warning": "2 * machine_nozzle_size", + "type": "float", + "enabled": "support_enable and support_bottom_enable", + "limit_to_extruder": "support_bottom_extruder_nr", + "value": "support_interface_line_width", + "settable_per_mesh": false, + "settable_per_extruder": true } } }, @@ -1972,22 +1972,6 @@ "settable_per_extruder": true, "children": { - "speed_support_bottom": - { - "label": "Support Floor Speed", - "description": "The speed at which the floor of support is printed. Printing it at lower speed can improve adhesion of support on top of your model.", - "unit": "mm/s", - "type": "float", - "default_value": 40, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "enabled": "extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", - "limit_to_extruder": "support_bottom_extruder_nr", - "value": "speed_support_interface", - "settable_per_mesh": false, - "settable_per_extruder": true - }, "speed_support_roof": { "label": "Support Roof Speed", @@ -2003,6 +1987,22 @@ "value": "speed_support_interface", "settable_per_mesh": false, "settable_per_extruder": true + }, + "speed_support_bottom": + { + "label": "Support Floor Speed", + "description": "The speed at which the floor of support is printed. Printing it at lower speed can improve adhesion of support on top of your model.", + "unit": "mm/s", + "type": "float", + "default_value": 40, + "minimum_value": "0.1", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", + "maximum_value_warning": "150", + "enabled": "extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", + "limit_to_extruder": "support_bottom_extruder_nr", + "value": "speed_support_interface", + "settable_per_mesh": false, + "settable_per_extruder": true } } } @@ -2293,22 +2293,6 @@ "settable_per_extruder": true, "children": { - "acceleration_support_bottom": - { - "label": "Support Floor Acceleration", - "description": "The acceleration with which the floors of support are printed. Printing them at lower acceleration can improve adhesion of support on top of your model.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_support_interface", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled') and extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", - "limit_to_extruder": "support_bottom_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, "acceleration_support_roof": { "label": "Support Roof Acceleration", @@ -2324,6 +2308,22 @@ "limit_to_extruder": "support_roof_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true + }, + "acceleration_support_bottom": + { + "label": "Support Floor Acceleration", + "description": "The acceleration with which the floors of support are printed. Printing them at lower acceleration can improve adhesion of support on top of your model.", + "unit": "mm/s²", + "type": "float", + "default_value": 3000, + "value": "acceleration_support_interface", + "minimum_value": "0.1", + "minimum_value_warning": "100", + "maximum_value_warning": "10000", + "enabled": "resolveOrValue('acceleration_enabled') and extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", + "limit_to_extruder": "support_bottom_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true } } } @@ -2567,22 +2567,6 @@ "settable_per_extruder": true, "children": { - "jerk_support_bottom": - { - "label": "Support Floor Jerk", - "description": "The maximum instantaneous velocity change with which the floors of support are printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "jerk_support_interface", - "minimum_value": "0.1", - "minimum_value_warning": "5", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled') and extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", - "limit_to_extruder": "support_bottom_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, "jerk_support_roof": { "label": "Support Roof Jerk", @@ -2598,6 +2582,22 @@ "limit_to_extruder": "support_roof_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true + }, + "jerk_support_bottom": + { + "label": "Support Floor Jerk", + "description": "The maximum instantaneous velocity change with which the floors of support are printed.", + "unit": "mm/s", + "type": "float", + "default_value": 20, + "value": "jerk_support_interface", + "minimum_value": "0.1", + "minimum_value_warning": "5", + "maximum_value_warning": "50", + "enabled": "resolveOrValue('jerk_enabled') and extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", + "limit_to_extruder": "support_bottom_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true } } } @@ -3042,10 +3042,10 @@ "settable_per_extruder": false, "children": { - "support_bottom_extruder_nr": + "support_roof_extruder_nr": { - "label": "Support Floor Extruder", - "description": "The extruder train to use for printing the floors of the support. This is used in multi-extrusion.", + "label": "Support Roof Extruder", + "description": "The extruder train to use for printing the roofs of the support. This is used in multi-extrusion.", "type": "extruder", "default_value": "0", "value": "support_interface_extruder_nr", @@ -3053,10 +3053,10 @@ "settable_per_mesh": false, "settable_per_extruder": false }, - "support_roof_extruder_nr": + "support_bottom_extruder_nr": { - "label": "Support Roof Extruder", - "description": "The extruder train to use for printing the roofs of the support. This is used in multi-extrusion.", + "label": "Support Floor Extruder", + "description": "The extruder train to use for printing the floors of the support. This is used in multi-extrusion.", "type": "extruder", "default_value": "0", "value": "support_interface_extruder_nr", @@ -3297,17 +3297,6 @@ "settable_per_mesh": true, "children": { - "support_bottom_enable": - { - "label": "Enable Support Floor", - "description": "Generate a dense slab of material between the bottom of the support and the model. This will create a skin between the model and support.", - "type": "bool", - "default_value": false, - "value": "support_interface_enable", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_enable", - "settable_per_mesh": true - }, "support_roof_enable": { "label": "Enable Support Roof", @@ -3318,6 +3307,17 @@ "limit_to_extruder": "support_roof_extruder_nr", "enabled": "support_enable", "settable_per_mesh": true + }, + "support_bottom_enable": + { + "label": "Enable Support Floor", + "description": "Generate a dense slab of material between the bottom of the support and the model. This will create a skin between the model and support.", + "type": "bool", + "default_value": false, + "value": "support_interface_enable", + "limit_to_extruder": "support_bottom_extruder_nr", + "enabled": "support_enable", + "settable_per_mesh": true } } }, @@ -3395,38 +3395,6 @@ "settable_per_extruder": true, "children": { - "support_bottom_density": - { - "label": "Support Floor Density", - "description": "The density of the floors of the support structure. A higher value results in better adhesion of the support on top of the model.", - "unit": "%", - "type": "float", - "default_value": 100, - "minimum_value": "0", - "maximum_value": "100", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_bottom_line_distance": - { - "label": "Support Floor Line Distance", - "description": "Distance between the printed support floor lines. This setting is calculated by the Support Floor Density, but can be adjusted separately.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "minimum_value": "0", - "minimum_value_warning": "support_bottom_line_width - 0.0001", - "value": "0 if support_bottom_density == 0 else (support_bottom_line_width * 100) / support_bottom_density * (2 if support_bottom_pattern == 'grid' else (3 if support_bottom_pattern == 'triangles' else 1))", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, "support_roof_density": { "label": "Support Roof Density", @@ -3458,6 +3426,38 @@ "settable_per_extruder": true } } + }, + "support_bottom_density": + { + "label": "Support Floor Density", + "description": "The density of the floors of the support structure. A higher value results in better adhesion of the support on top of the model.", + "unit": "%", + "type": "float", + "default_value": 100, + "minimum_value": "0", + "maximum_value": "100", + "limit_to_extruder": "support_bottom_extruder_nr", + "enabled": "extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", + "settable_per_mesh": false, + "settable_per_extruder": true, + "children": + { + "support_bottom_line_distance": + { + "label": "Support Floor Line Distance", + "description": "Distance between the printed support floor lines. This setting is calculated by the Support Floor Density, but can be adjusted separately.", + "unit": "mm", + "type": "float", + "default_value": 0.4, + "minimum_value": "0", + "minimum_value_warning": "support_bottom_line_width - 0.0001", + "value": "0 if support_bottom_density == 0 else (support_bottom_line_width * 100) / support_bottom_density * (2 if support_bottom_pattern == 'grid' else (3 if support_bottom_pattern == 'triangles' else 1))", + "limit_to_extruder": "support_bottom_extruder_nr", + "enabled": "extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", + "settable_per_mesh": false, + "settable_per_extruder": true + } + } } } }, @@ -3482,27 +3482,6 @@ "settable_per_extruder": true, "children": { - "support_bottom_pattern": - { - "label": "Support Floor Pattern", - "description": "The pattern with which the floors of the support are printed.", - "type": "enum", - "options": - { - "lines": "Lines", - "grid": "Grid", - "triangles": "Triangles", - "concentric": "Concentric", - "concentric_3d": "Concentric 3D", - "zigzag": "Zig Zag" - }, - "default_value": "concentric", - "value": "support_interface_pattern", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, "support_roof_pattern": { "label": "Support Roof Pattern", @@ -3523,6 +3502,27 @@ "enabled": "extruderValue(support_bottom_extruder_nr, 'support_roof_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true + }, + "support_bottom_pattern": + { + "label": "Support Floor Pattern", + "description": "The pattern with which the floors of the support are printed.", + "type": "enum", + "options": + { + "lines": "Lines", + "grid": "Grid", + "triangles": "Triangles", + "concentric": "Concentric", + "concentric_3d": "Concentric 3D", + "zigzag": "Zig Zag" + }, + "default_value": "concentric", + "value": "support_interface_pattern", + "limit_to_extruder": "support_bottom_extruder_nr", + "enabled": "extruderValue(support_bottom_extruder_nr, 'support_bottom_enable') and support_enable", + "settable_per_mesh": false, + "settable_per_extruder": true } } }, From 15593de404396ef3c0e47060bbf6372622cdafba Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 24 Apr 2017 17:31:07 +0200 Subject: [PATCH 26/26] Fix extruder number dependency of support roof pattern It was depending on support bottom extruder. Contributes to issue CURA-3491. --- 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 3cc47b2633..40467ecec9 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3498,8 +3498,8 @@ }, "default_value": "concentric", "value": "support_interface_pattern", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "extruderValue(support_bottom_extruder_nr, 'support_roof_enable') and support_enable", + "limit_to_extruder": "support_roof_extruder_nr", + "enabled": "extruderValue(support_roof_extruder_nr, 'support_roof_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true },