Skip to content

Commit 0c6d7d6

Browse files
authored
Merge pull request #21206 from Ultimaker/CURA-12361_add-skin-support
CURA-12361 add skin support
2 parents e5508f5 + c63e0e9 commit 0c6d7d6

File tree

148 files changed

+74
-226
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

148 files changed

+74
-226
lines changed

plugins/3MFWriter/SettingsExportModel.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ class SettingsExportModel(QObject):
5757
'brim_smart_ordering',
5858
'ooze_shield_enabled',
5959
'bottom_skin_preshrink',
60-
'skin_edge_support_thickness',
6160
'alternate_carve_order',
6261
'top_skin_preshrink',
6362
'interlocking_enable'}

resources/definitions/fdmprinter.def.json

Lines changed: 74 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -2455,52 +2455,86 @@
24552455
"limit_to_extruder": "infill_extruder_nr",
24562456
"settable_per_mesh": true
24572457
},
2458-
"skin_edge_support_thickness":
2458+
"skin_support":
24592459
{
2460-
"label": "Skin Edge Support Thickness",
2461-
"description": "The thickness of the extra infill that supports skin edges.",
2462-
"unit": "mm",
2463-
"default_value": 0,
2460+
"label": "Infill Skin Support",
2461+
"description": "Print a solid infill pattern just below skin to avoid printing the skin over air.",
2462+
"type": "bool",
2463+
"default_value": true,
2464+
"value": "infill_sparse_density < 50",
2465+
"enabled": "infill_sparse_density > 0 and top_layers > 0",
2466+
"settable_per_mesh": true,
2467+
"settable_per_extruder": true
2468+
},
2469+
"skin_support_speed":
2470+
{
2471+
"label": "Skin Support Speed",
2472+
"description": "The speed at which skin support regions are printed.",
2473+
"unit": "mm/s",
2474+
"type": "float",
24642475
"minimum_value": "0",
2465-
"maximum_value": "machine_height",
2466-
"maximum_value_warning": "resolveOrValue('infill_sparse_thickness') * 10",
2476+
"maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)",
2477+
"maximum_value_warning": "300",
2478+
"default_value": 15,
2479+
"value": "bridge_skin_speed",
2480+
"enabled": "skin_support",
2481+
"settable_per_mesh": true,
2482+
"settable_per_extruder": true
2483+
},
2484+
"skin_support_material_flow":
2485+
{
2486+
"label": "Skin Support Flow",
2487+
"description": "When printing skin support regions, the amount of material extruded is multiplied by this value.",
2488+
"unit": "%",
2489+
"default_value": 60,
2490+
"value": "bridge_skin_material_flow",
24672491
"type": "float",
2468-
"value": "0",
2469-
"limit_to_extruder": "infill_extruder_nr",
2470-
"enabled": "infill_sparse_density > 0",
2492+
"minimum_value": "5",
2493+
"minimum_value_warning": "50",
2494+
"maximum_value_warning": "250",
2495+
"enabled": "skin_support",
24712496
"settable_per_mesh": true,
2472-
"children":
2473-
{
2474-
"skin_edge_support_layers":
2475-
{
2476-
"label": "Skin Edge Support Layers",
2477-
"description": "The number of infill layers that supports skin edges.",
2478-
"default_value": 0,
2479-
"minimum_value": "0",
2480-
"maximum_value_warning": "10",
2481-
"type": "int",
2482-
"maximum_value": "999999",
2483-
"value": "math.ceil(round(skin_edge_support_thickness / resolveOrValue('infill_sparse_thickness'), 4))",
2484-
"limit_to_extruder": "infill_extruder_nr",
2485-
"enabled": "infill_sparse_density > 0",
2486-
"settable_per_mesh": true
2487-
}
2488-
}
2497+
"settable_per_extruder": true
24892498
},
2490-
"extra_infill_lines_to_support_skins":
2499+
"skin_support_density":
24912500
{
2492-
"label": "Extra Infill Lines To Support Skins",
2493-
"description": "Add extra lines into the infill pattern to support skins above. This option prevents holes or plastic blobs that sometime show in complex shaped skins due to the infill below not correctly supporting the skin layer being printed above. 'Walls' supports just the outlines of the skin, whereas 'Walls and Lines' also supports the ends of the lines that make up the skin.",
2494-
"type": "enum",
2495-
"options":
2496-
{
2497-
"walls_and_lines": "Walls and Lines",
2498-
"walls": "Walls Only",
2499-
"none": "None"
2500-
},
2501-
"default_value": "walls_and_lines",
2502-
"value": "'none' if infill_sparse_density > 50 else 'walls' if skin_edge_support_thickness > 0 else 'walls_and_lines'",
2503-
"enabled": "infill_sparse_density > 0 and infill_pattern not in ('lightning', 'concentric', 'cross','cross_3d') and wall_line_count > 0 and top_layers > 0"
2501+
"label": "Skin Support Density",
2502+
"description": "The density of the skin support layer. Values less than 100 will increase the gaps between the lines.",
2503+
"unit": "%",
2504+
"default_value": 100,
2505+
"value": "bridge_skin_density",
2506+
"type": "float",
2507+
"minimum_value": "5",
2508+
"minimum_value_warning": "20",
2509+
"maximum_value_warning": "100",
2510+
"enabled": "skin_support",
2511+
"settable_per_mesh": true,
2512+
"settable_per_extruder": true
2513+
},
2514+
"skin_support_fan_speed":
2515+
{
2516+
"label": "Skin Support Fan Speed",
2517+
"description": "Percentage fan speed to use when printing skin support.",
2518+
"unit": "%",
2519+
"minimum_value": "0",
2520+
"maximum_value": "100",
2521+
"default_value": 100,
2522+
"value": "bridge_fan_speed",
2523+
"type": "float",
2524+
"enabled": "skin_support",
2525+
"settable_per_mesh": true,
2526+
"settable_per_extruder": true
2527+
},
2528+
"skin_support_interlace_lines":
2529+
{
2530+
"label": "Interlace Skin Support Lines",
2531+
"description": "When enabled, skin support lines will be printed interlaced, i.e. in 2 monotonic passes so that adjacent lines won't be printed just after each other. The lines of the first pass then have more time to cool down and are stronger when the second pass is added.",
2532+
"default_value": false,
2533+
"value": "bridge_interlace_lines",
2534+
"type": "bool",
2535+
"enabled": "skin_support",
2536+
"settable_per_mesh": true,
2537+
"settable_per_extruder": true
25042538
},
25052539
"lightning_infill_support_angle":
25062540
{
@@ -8922,17 +8956,6 @@
89228956
"enabled": "bridge_settings_enabled",
89238957
"settable_per_mesh": true
89248958
},
8925-
"bridge_sparse_infill_max_density":
8926-
{
8927-
"label": "Bridge Sparse Infill Max Density",
8928-
"description": "Maximum density of infill considered to be sparse. Skin over sparse infill is considered to be unsupported and so may be treated as a bridge skin.",
8929-
"unit": "%",
8930-
"type": "float",
8931-
"default_value": 0,
8932-
"minimum_value": "0",
8933-
"enabled": "bridge_settings_enabled",
8934-
"settable_per_mesh": true
8935-
},
89368959
"bridge_wall_coast":
89378960
{
89388961
"label": "Bridge Wall Coasting",

resources/definitions/skriware_2.def.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,6 @@
181181
"retraction_speed": { "default_value": 30 },
182182
"roofing_layer_count": { "value": "1" },
183183
"roofing_material_flow": { "value": "99" },
184-
"skin_edge_support_layers": { "value": "0" },
185-
"skin_edge_support_thickness": { "value": "0" },
186184
"skin_material_flow": { "value": "99" },
187185
"skin_no_small_gaps_heuristic": { "default_value": true },
188186
"skin_outline_count": { "value": 0 },

resources/definitions/ultimaker.def.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
"bridge_skin_speed_2": { "value": "speed_topbottom" },
3232
"bridge_skin_speed_3": { "value": "speed_topbottom" },
3333
"bridge_skin_support_threshold": { "value": 50 },
34-
"bridge_sparse_infill_max_density": { "value": 0 },
3534
"bridge_wall_coast": { "value": 0 },
3635
"bridge_wall_material_flow": { "value": "wall_material_flow" },
3736
"bridge_wall_speed": { "value": "bridge_skin_speed" },
@@ -41,7 +40,6 @@
4140
"cool_min_layer_time_fan_speed_max": { "value": "cool_min_layer_time + 5" },
4241
"cool_min_speed": { "value": "round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 5)" },
4342
"cool_min_temperature": { "value": "max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15])" },
44-
"extra_infill_lines_to_support_skins": { "value": "'none'" },
4543
"gradual_support_infill_step_height": { "value": "4 * layer_height" },
4644
"gradual_support_infill_steps": { "value": "2 if support_interface_enable and support_structure != 'tree' else 0" },
4745
"infill_material_flow": { "value": "(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow" },
@@ -197,7 +195,6 @@
197195
"roofing_layer_count": { "value": "1" },
198196
"roofing_material_flow": { "value": "material_flow" },
199197
"skin_angles": { "value": "[] if infill_pattern not in ['cross', 'cross_3d'] else [20, 110]" },
200-
"skin_edge_support_thickness": { "value": "4 * layer_height if infill_sparse_density < 30 else 0" },
201198
"skin_material_flow": { "value": "0.95 * material_flow" },
202199
"skin_material_flow_layer_0": { "value": "95" },
203200
"skin_monotonic": { "value": "roofing_layer_count == 0" },

resources/definitions/ultimaker_factor4.def.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@
6666
"bridge_skin_material_flow": { "maximum_value": "100" },
6767
"bridge_skin_material_flow_2": { "maximum_value": "100" },
6868
"bridge_skin_material_flow_3": { "maximum_value": "100" },
69-
"bridge_sparse_infill_max_density": { "value": "50" },
7069
"bridge_wall_material_flow": { "maximum_value": "100" },
7170
"bridge_wall_speed": { "value": "speed_wall" },
7271
"brim_width": { "value": "5" },

resources/definitions/ultimaker_method_base.def.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,6 @@
199199
"bridge_skin_speed": { "value": "speed_topbottom" },
200200
"bridge_skin_speed_2": { "value": "speed_topbottom" },
201201
"bridge_skin_speed_3": { "value": "speed_topbottom" },
202-
"bridge_sparse_infill_max_density": { "value": 50 },
203202
"bridge_wall_coast": { "value": 0 },
204203
"bridge_wall_material_flow": { "value": "material_flow" },
205204
"bridge_wall_speed": { "value": "speed_wall" },

resources/definitions/ultimaker_s8.def.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,6 @@
210210
},
211211
"bridge_skin_speed_2": { "value": "speed_print*2/3" },
212212
"bridge_skin_support_threshold": { "value": 20 },
213-
"bridge_sparse_infill_max_density": { "value": 20 },
214213
"bridge_wall_material_flow": { "value": 200 },
215214
"bridge_wall_min_length": { "value": 2 },
216215
"bridge_wall_speed": { "value": 50 },
@@ -232,7 +231,6 @@
232231
"value": "material_print_temperature-15"
233232
},
234233
"default_material_print_temperature": { "maximum_value_warning": 320 },
235-
"extra_infill_lines_to_support_skins": { "value": "'walls_and_lines'" },
236234
"flooring_layer_count": { "value": 1 },
237235
"flooring_material_flow": { "value": "skin_material_flow * 110/93" },
238236
"flooring_monotonic": { "value": false },
@@ -455,7 +453,6 @@
455453
"roofing_expansion": { "value": 1.2 },
456454
"roofing_pattern": { "value": "'lines'" },
457455
"seam_overhang_angle": { "value": 35 },
458-
"skin_edge_support_thickness": { "value": 0.8 },
459456
"skin_material_flow": { "value": 93 },
460457
"skin_outline_count": { "value": 0 },
461458
"skin_overlap": { "value": 20 },

resources/definitions/ultimaker_sketch_sprint.def.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,6 @@
102102
"bridge_skin_speed": { "value": 50 },
103103
"bridge_skin_speed_2": { "value": 50 },
104104
"bridge_skin_speed_3": { "value": 50 },
105-
"bridge_sparse_infill_max_density": { "value": 15 },
106105
"bridge_wall_min_length": { "value": 2.4 },
107106
"bridge_wall_speed": { "value": 20 },
108107
"brim_gap": { "value": 0.32 },
@@ -223,7 +222,6 @@
223222
"retraction_prime_speed": { "value": "35" },
224223
"retraction_speed": { "value": "35" },
225224
"seam_overhang_angle": { "value": 30 },
226-
"skin_edge_support_thickness": { "value": 0 },
227225
"skin_material_flow": { "value": "material_flow" },
228226
"skin_material_flow_layer_0": { "value": "material_flow * 0.95" },
229227
"skin_monotonic": { "value": true },

resources/quality/ultimaker_s3/um_s3_aa0.25_um-abs_0.1mm.inst.cfg

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ acceleration_wall = =acceleration_infill
2222
acceleration_wall_0 = 1500
2323
acceleration_wall_x = =acceleration_wall
2424
bridge_skin_speed = =bridge_wall_speed
25-
bridge_sparse_infill_max_density = 50
2625
bridge_wall_speed = 30
2726
cool_fan_speed_0 = 0
2827
cool_min_layer_time = 4

resources/quality/ultimaker_s3/um_s3_aa0.25_um-petg_0.1mm.inst.cfg

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ acceleration_wall = =acceleration_infill
2222
acceleration_wall_0 = 1500
2323
acceleration_wall_x = =acceleration_wall
2424
bridge_skin_speed = =bridge_wall_speed
25-
bridge_sparse_infill_max_density = 50
2625
bridge_wall_speed = 30
2726
cool_min_layer_time = 4
2827
gradual_flow_discretisation_step_size = 0.2

0 commit comments

Comments
 (0)