Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGhostkeeper <rubend@tutanota.com>2017-04-25 17:46:30 +0300
committerGhostkeeper <rubend@tutanota.com>2017-04-25 17:46:30 +0300
commit6e5f7ac28a5c8c3f258dad8944ccab03ce43c421 (patch)
treef12ad894e252ae3074cd40e1bd797a55d84f5fa5
parentada614e413dbaaa9b40bd60ca58c2c0ebd59bb12 (diff)
parent15593de404396ef3c0e47060bbf6372622cdafba (diff)
Merge branch 'feature_support_top_bottom_speed'
Contributes to issue CURA-3491.
-rwxr-xr-xcura/BuildVolume.py2
-rwxr-xr-xcura/Settings/ExtruderManager.py15
-rwxr-xr-xresources/definitions/fdmprinter.def.json361
-rw-r--r--resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg132
-rw-r--r--resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg130
-rw-r--r--resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg132
6 files changed, 530 insertions, 242 deletions
diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py
index 203c00b445..fbf4ba5080 100755
--- a/cura/BuildVolume.py
+++ b/cura/BuildVolume.py
@@ -955,4 +955,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_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 43d580001f..21cd164ed4 100755
--- a/cura/Settings/ExtruderManager.py
+++ b/cura/Settings/ExtruderManager.py
@@ -404,7 +404,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:
@@ -417,18 +418,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_interface_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 ca05191185..39d24e8788 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",
@@ -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_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_roof_enable",
+ "limit_to_extruder": "support_roof_extruder_nr",
+ "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
+ }
+ }
},
"prime_tower_line_width":
{
@@ -1923,7 +1958,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 floors of support are printed. Printing them at lower speeds can improve overhang quality.",
"unit": "mm/s",
"type": "float",
"default_value": 40,
@@ -1934,7 +1969,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_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_roof_extruder_nr, 'support_roof_enable') and support_enable",
+ "limit_to_extruder": "support_roof_extruder_nr",
+ "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
+ }
+ }
}
}
},
@@ -2209,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 accelerations 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,
@@ -2220,7 +2290,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_roof":
+ {
+ "label": "Support Roof Acceleration",
+ "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,
+ "value": "acceleration_support_interface",
+ "minimum_value": "0.1",
+ "minimum_value_warning": "100",
+ "maximum_value_warning": "10000",
+ "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
+ },
+ "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
+ }
+ }
}
}
},
@@ -2440,7 +2545,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,
@@ -2450,7 +2555,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_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_roof_extruder_nr, 'support_roof_enable') and support_enable",
+ "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
+ }
+ }
}
}
},
@@ -2878,13 +3018,38 @@
"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",
"enabled": "support_enable and machine_extruder_count > 1",
"settable_per_mesh": false,
- "settable_per_extruder": false
+ "settable_per_extruder": false,
+ "children":
+ {
+ "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
+ },
+ "support_bottom_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.",
+ "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
+ }
+ }
}
}
},
@@ -2914,7 +3079,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_roof_enable else support_infill_extruder_nr",
"enabled": "support_enable",
"settable_per_mesh": true
},
@@ -3006,7 +3171,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_roof_enable else support_infill_extruder_nr",
"settable_per_mesh": true
},
"support_bottom_distance":
@@ -3018,7 +3183,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_bottom_enable else support_infill_extruder_nr",
"type": "float",
"enabled": "support_enable and resolveOrValue('support_type') == 'everywhere'",
"settable_per_mesh": true
@@ -3074,7 +3239,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_bottom_enable else support_infill_extruder_nr",
"minimum_value": "0",
"maximum_value_warning": "1.0",
"enabled": "support_enable",
@@ -3114,7 +3279,32 @@
"default_value": false,
"limit_to_extruder": "support_interface_extruder_nr",
"enabled": "support_enable",
- "settable_per_mesh": true
+ "settable_per_mesh": true,
+ "children":
+ {
+ "support_roof_enable":
+ {
+ "label": "Enable Support Roof",
+ "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",
+ "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
+ }
+ }
},
"support_interface_height":
{
@@ -3141,32 +3331,31 @@
"minimum_value": "0",
"minimum_value_warning": "0.2 + 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_roof_enable') and support_enable",
"settable_per_mesh": true
},
"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,
- "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(0.2 + resolveOrValue('layer_height'), extruderValue(support_interface_extruder_nr, 'support_bottom_stair_step_height'))",
+ "minimum_value_warning": "min(0.2 + 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_bottom_enable') and support_enable",
"settable_per_mesh": true
}
}
},
- "support_interface_skip_height":
- {
+ "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,
@@ -3179,7 +3368,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,
@@ -3191,20 +3380,69 @@
"settable_per_extruder": true,
"children":
{
- "support_interface_line_distance":
+ "support_roof_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 Roof Density",
+ "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": 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))",
- "limit_to_extruder": "support_interface_extruder_nr",
- "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable",
+ "maximum_value": "100",
+ "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
+ "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_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_roof_enable') and support_enable",
+ "settable_per_mesh": false,
+ "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
+ }
+ }
}
}
},
@@ -3226,7 +3464,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_roof_pattern":
+ {
+ "label": "Support Roof Pattern",
+ "description": "The pattern with which the roofs 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_roof_extruder_nr",
+ "enabled": "extruderValue(support_roof_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
+ }
+ }
},
"support_use_towers":
{
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 12463ab831..94b40e427c 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
@@ -1,66 +1,66 @@
-[general]
-version = 2
-name = Draft Print
-definition = ultimaker3
-
-[metadata]
-type = quality
-quality_type = draft
-material = generic_pc_ultimaker3_AA_0.4
-weight = -2
-
-[values]
-acceleration_enabled = True
-acceleration_print = 4000
-adhesion_type = raft
-brim_width = 20
-cool_fan_full_at_height = =layer_height_0 + layer_height
-cool_fan_speed_max = 90
-cool_min_layer_time_fan_speed_max = 5
-cool_min_speed = 6
-infill_line_width = =round(line_width * 0.4 / 0.35, 2)
-infill_overlap = 0
-infill_overlap_mm = 0.05
-infill_pattern = triangles
-infill_wipe_dist = 0.1
-jerk_enabled = True
-jerk_print = 25
-layer_height = 0.2
-machine_min_cool_heat_time_window = 15
-machine_nozzle_cool_down_speed = 0.85
-machine_nozzle_heat_up_speed = 1.5
-material_final_print_temperature = =material_print_temperature - 10
-material_initial_print_temperature = =material_print_temperature - 5
-material_print_temperature = =default_material_print_temperature + 10
-material_standby_temperature = 100
-multiple_mesh_overlap = 0
-ooze_shield_angle = 40
-prime_tower_enable = True
-prime_tower_size = 16
-prime_tower_wipe_enabled = True
-raft_airgap = 0.25
-retraction_count_max = 80
-retraction_extrusion_window = 1
-retraction_hop = 2
-retraction_hop_enabled = True
-retraction_hop_only_when_collides = True
-retraction_min_travel = 0.8
-retraction_prime_speed = 15
-skin_overlap = 30
-speed_layer_0 = 25
-speed_print = 50
-speed_topbottom = 25
-speed_travel = 250
-speed_wall = =math.ceil(speed_print * 40 / 50)
-speed_wall_0 = =math.ceil(speed_wall * 25 / 40)
-support_bottom_distance = =support_z_distance
-support_interface_density = 87.5
-support_interface_pattern = lines
-switch_extruder_prime_speed = 15
-switch_extruder_retraction_amount = 20
-switch_extruder_retraction_speeds = 35
-travel_avoid_distance = 3
-wall_0_inset = 0
-wall_line_width_x = =round(line_width * 0.4 / 0.35, 2)
-wall_thickness = 1.2
-xy_offset = -0.15
+[general]
+version = 2
+name = Draft Print
+definition = ultimaker3
+
+[metadata]
+type = quality
+quality_type = draft
+material = generic_pc_ultimaker3_AA_0.4
+weight = -2
+
+[values]
+acceleration_enabled = True
+acceleration_print = 4000
+adhesion_type = raft
+brim_width = 20
+cool_fan_full_at_height = =layer_height_0 + layer_height
+cool_fan_speed_max = 90
+cool_min_layer_time_fan_speed_max = 5
+cool_min_speed = 6
+infill_line_width = =round(line_width * 0.4 / 0.35, 2)
+infill_overlap = 0
+infill_overlap_mm = 0.05
+infill_pattern = triangles
+infill_wipe_dist = 0.1
+jerk_enabled = True
+jerk_print = 25
+layer_height = 0.2
+machine_min_cool_heat_time_window = 15
+machine_nozzle_cool_down_speed = 0.85
+machine_nozzle_heat_up_speed = 1.5
+material_final_print_temperature = =material_print_temperature - 10
+material_initial_print_temperature = =material_print_temperature - 5
+material_print_temperature = =default_material_print_temperature + 10
+material_standby_temperature = 100
+multiple_mesh_overlap = 0
+ooze_shield_angle = 40
+prime_tower_enable = True
+prime_tower_size = 16
+prime_tower_wipe_enabled = True
+raft_airgap = 0.25
+retraction_count_max = 80
+retraction_extrusion_window = 1
+retraction_hop = 2
+retraction_hop_enabled = True
+retraction_hop_only_when_collides = True
+retraction_min_travel = 0.8
+retraction_prime_speed = 15
+skin_overlap = 30
+speed_layer_0 = 25
+speed_print = 50
+speed_topbottom = 25
+speed_travel = 250
+speed_wall = =math.ceil(speed_print * 40 / 50)
+speed_wall_0 = =math.ceil(speed_wall * 25 / 40)
+support_bottom_distance = =support_z_distance
+support_interface_density = 87.5
+support_interface_pattern = lines
+switch_extruder_prime_speed = 15
+switch_extruder_retraction_amount = 20
+switch_extruder_retraction_speeds = 35
+travel_avoid_distance = 3
+wall_0_inset = 0
+wall_line_width_x = =round(line_width * 0.4 / 0.35, 2)
+wall_thickness = 1.2
+xy_offset = -0.15
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 9353a6c6fa..5d848d67dc 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
@@ -1,65 +1,65 @@
-[general]
-version = 2
-name = Fast Print
-definition = ultimaker3
-
-[metadata]
-type = quality
-quality_type = fast
-material = generic_pc_ultimaker3_AA_0.4
-weight = -1
-
-[values]
-acceleration_enabled = True
-acceleration_print = 4000
-adhesion_type = raft
-brim_width = 20
-cool_fan_full_at_height = =layer_height_0 + layer_height
-cool_fan_speed_max = 85
-cool_min_layer_time_fan_speed_max = 5
-cool_min_speed = 7
-infill_line_width = =round(line_width * 0.4 / 0.35, 2)
-infill_overlap_mm = 0.05
-infill_pattern = triangles
-infill_wipe_dist = 0.1
-jerk_enabled = True
-jerk_print = 25
-layer_height = 0.15
-machine_min_cool_heat_time_window = 15
-machine_nozzle_cool_down_speed = 0.85
-machine_nozzle_heat_up_speed = 1.5
-material_final_print_temperature = =material_print_temperature - 10
-material_initial_print_temperature = =material_print_temperature - 5
-material_print_temperature = =default_material_print_temperature + 10
-material_standby_temperature = 100
-multiple_mesh_overlap = 0
-ooze_shield_angle = 40
-prime_tower_enable = True
-prime_tower_size = 16
-prime_tower_wipe_enabled = True
-raft_airgap = 0.25
-retraction_count_max = 80
-retraction_extrusion_window = 1
-retraction_hop = 2
-retraction_hop_enabled = True
-retraction_hop_only_when_collides = True
-retraction_min_travel = 0.8
-retraction_prime_speed = 15
-skin_overlap = 30
-speed_layer_0 = 25
-speed_print = 50
-speed_topbottom = 25
-speed_travel = 250
-speed_wall = =math.ceil(speed_print * 40 / 50)
-speed_wall_0 = =math.ceil(speed_wall * 25 / 40)
-support_bottom_distance = =support_z_distance
-support_interface_density = 87.5
-support_interface_pattern = lines
-switch_extruder_prime_speed = 15
-switch_extruder_retraction_amount = 20
-switch_extruder_retraction_speeds = 35
-travel_avoid_distance = 3
-wall_0_inset = 0
-wall_line_width_x = =round(line_width * 0.4 / 0.35, 2)
-wall_thickness = 1.2
-xy_offset = -0.15
+[general]
+version = 2
+name = Fast Print
+definition = ultimaker3
+
+[metadata]
+type = quality
+quality_type = fast
+material = generic_pc_ultimaker3_AA_0.4
+weight = -1
+
+[values]
+acceleration_enabled = True
+acceleration_print = 4000
+adhesion_type = raft
+brim_width = 20
+cool_fan_full_at_height = =layer_height_0 + layer_height
+cool_fan_speed_max = 85
+cool_min_layer_time_fan_speed_max = 5
+cool_min_speed = 7
+infill_line_width = =round(line_width * 0.4 / 0.35, 2)
+infill_overlap_mm = 0.05
+infill_pattern = triangles
+infill_wipe_dist = 0.1
+jerk_enabled = True
+jerk_print = 25
+layer_height = 0.15
+machine_min_cool_heat_time_window = 15
+machine_nozzle_cool_down_speed = 0.85
+machine_nozzle_heat_up_speed = 1.5
+material_final_print_temperature = =material_print_temperature - 10
+material_initial_print_temperature = =material_print_temperature - 5
+material_print_temperature = =default_material_print_temperature + 10
+material_standby_temperature = 100
+multiple_mesh_overlap = 0
+ooze_shield_angle = 40
+prime_tower_enable = True
+prime_tower_size = 16
+prime_tower_wipe_enabled = True
+raft_airgap = 0.25
+retraction_count_max = 80
+retraction_extrusion_window = 1
+retraction_hop = 2
+retraction_hop_enabled = True
+retraction_hop_only_when_collides = True
+retraction_min_travel = 0.8
+retraction_prime_speed = 15
+skin_overlap = 30
+speed_layer_0 = 25
+speed_print = 50
+speed_topbottom = 25
+speed_travel = 250
+speed_wall = =math.ceil(speed_print * 40 / 50)
+speed_wall_0 = =math.ceil(speed_wall * 25 / 40)
+support_bottom_distance = =support_z_distance
+support_interface_density = 87.5
+support_interface_pattern = lines
+switch_extruder_prime_speed = 15
+switch_extruder_retraction_amount = 20
+switch_extruder_retraction_speeds = 35
+travel_avoid_distance = 3
+wall_0_inset = 0
+wall_line_width_x = =round(line_width * 0.4 / 0.35, 2)
+wall_thickness = 1.2
+xy_offset = -0.15
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 01fe47a6a2..451aa19f60 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
@@ -1,66 +1,66 @@
-[general]
-version = 2
-name = High Quality
-definition = ultimaker3
-
-[metadata]
-type = quality
-quality_type = high
-material = generic_pc_ultimaker3_AA_0.4
-weight = 1
-
-[values]
-acceleration_enabled = True
-acceleration_print = 4000
-adhesion_type = raft
-brim_width = 20
-cool_fan_full_at_height = =layer_height_0 + layer_height
-cool_fan_speed_max = 50
-cool_min_layer_time_fan_speed_max = 5
-cool_min_speed = 8
-infill_line_width = =round(line_width * 0.4 / 0.35, 2)
-infill_overlap = 0
-infill_overlap_mm = 0.05
-infill_pattern = triangles
-infill_wipe_dist = 0.1
-jerk_enabled = True
-jerk_print = 25
-layer_height = 0.06
-machine_min_cool_heat_time_window = 15
-machine_nozzle_cool_down_speed = 0.85
-machine_nozzle_heat_up_speed = 1.5
-material_final_print_temperature = =material_print_temperature - 10
-material_initial_print_temperature = =material_print_temperature - 5
-material_print_temperature = =default_material_print_temperature - 10
-material_standby_temperature = 100
-multiple_mesh_overlap = 0
-ooze_shield_angle = 40
-prime_tower_enable = True
-prime_tower_size = 16
-prime_tower_wipe_enabled = True
-raft_airgap = 0.25
-retraction_count_max = 80
-retraction_extrusion_window = 1
-retraction_hop = 2
-retraction_hop_enabled = True
-retraction_hop_only_when_collides = True
-retraction_min_travel = 0.8
-retraction_prime_speed = 15
-skin_overlap = 30
-speed_layer_0 = 25
-speed_print = 50
-speed_topbottom = 25
-speed_travel = 250
-speed_wall = =math.ceil(speed_print * 40 / 50)
-speed_wall_0 = =math.ceil(speed_wall * 25 / 40)
-support_bottom_distance = =support_z_distance
-support_interface_density = 87.5
-support_interface_pattern = lines
-switch_extruder_prime_speed = 15
-switch_extruder_retraction_amount = 20
-switch_extruder_retraction_speeds = 35
-travel_avoid_distance = 3
-wall_0_inset = 0
-wall_line_width_x = =round(line_width * 0.4 / 0.35, 2)
-wall_thickness = 1.2
-xy_offset = -0.15
+[general]
+version = 2
+name = High Quality
+definition = ultimaker3
+
+[metadata]
+type = quality
+quality_type = high
+material = generic_pc_ultimaker3_AA_0.4
+weight = 1
+
+[values]
+acceleration_enabled = True
+acceleration_print = 4000
+adhesion_type = raft
+brim_width = 20
+cool_fan_full_at_height = =layer_height_0 + layer_height
+cool_fan_speed_max = 50
+cool_min_layer_time_fan_speed_max = 5
+cool_min_speed = 8
+infill_line_width = =round(line_width * 0.4 / 0.35, 2)
+infill_overlap = 0
+infill_overlap_mm = 0.05
+infill_pattern = triangles
+infill_wipe_dist = 0.1
+jerk_enabled = True
+jerk_print = 25
+layer_height = 0.06
+machine_min_cool_heat_time_window = 15
+machine_nozzle_cool_down_speed = 0.85
+machine_nozzle_heat_up_speed = 1.5
+material_final_print_temperature = =material_print_temperature - 10
+material_initial_print_temperature = =material_print_temperature - 5
+material_print_temperature = =default_material_print_temperature - 10
+material_standby_temperature = 100
+multiple_mesh_overlap = 0
+ooze_shield_angle = 40
+prime_tower_enable = True
+prime_tower_size = 16
+prime_tower_wipe_enabled = True
+raft_airgap = 0.25
+retraction_count_max = 80
+retraction_extrusion_window = 1
+retraction_hop = 2
+retraction_hop_enabled = True
+retraction_hop_only_when_collides = True
+retraction_min_travel = 0.8
+retraction_prime_speed = 15
+skin_overlap = 30
+speed_layer_0 = 25
+speed_print = 50
+speed_topbottom = 25
+speed_travel = 250
+speed_wall = =math.ceil(speed_print * 40 / 50)
+speed_wall_0 = =math.ceil(speed_wall * 25 / 40)
+support_bottom_distance = =support_z_distance
+support_interface_density = 87.5
+support_interface_pattern = lines
+switch_extruder_prime_speed = 15
+switch_extruder_retraction_amount = 20
+switch_extruder_retraction_speeds = 35
+travel_avoid_distance = 3
+wall_0_inset = 0
+wall_line_width_x = =round(line_width * 0.4 / 0.35, 2)
+wall_thickness = 1.2
+xy_offset = -0.15