diff --git a/doc/print_settings/quality/quality_settings_ironing.md b/doc/print_settings/quality/quality_settings_ironing.md index 5b34cfb31a..c764a9124c 100644 --- a/doc/print_settings/quality/quality_settings_ironing.md +++ b/doc/print_settings/quality/quality_settings_ironing.md @@ -33,7 +33,9 @@ The pattern that will be used when ironing. Usually, the best pattern is the one ## Flow The amount of material to extrude during ironing. -This % is a percentage of the normal flow rate. A lower value will result in a smoother finish but may not cover the surface completely. A higher value may cover the surface better but can lead to over extrusion or rougher finish. +This % is a percentage of the normal flow rate. A lower value will result in a smoother finish but may not cover the surface completely. A higher value may cover the surface better but can lead to over extrusion or rougher finish. + +A lower layer height may require higher flow due to less volumetric extrusion per distance. ## Line spacing @@ -48,10 +50,9 @@ The distance to keep from the edges, which can help prevent over-extrusion at th If this value is set to 0, the ironing toolpath will start directly at the perimeter edges without any inward offset. This means the [ironing pattern](#pattern) will extend all the way to the outer boundaries of the top surface being ironed. -## Angle +## Angle Offset -The angle ironing is done at. -A negative number disables this function and uses the [sparse infill direction](strength_settings_infill#direction). +The angle of ironing lines offset relative to the top surface solid infill direction. Commonly used ironing angle offsets are 0°, 45°, and 90° each producing a [different surface finish](https://github.com/SoftFever/OrcaSlicer/issues/10834#issuecomment-3322628589) which will depend on your printer nozzle. ## Speed diff --git a/resources/profiles/Anycubic/process/0.08mm HighDetail @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.08mm HighDetail @Anycubic Kobra 3 0.4 nozzle.json index 14e6d07c55..2231465b6a 100644 --- a/resources/profiles/Anycubic/process/0.08mm HighDetail @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.08mm HighDetail @Anycubic Kobra 3 0.4 nozzle.json @@ -91,7 +91,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "zig-zag", "internal_solid_infill_speed": "200", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Anycubic/process/0.10mm Detail @Anycubic Kobra 3 0.2 nozzle.json b/resources/profiles/Anycubic/process/0.10mm Detail @Anycubic Kobra 3 0.2 nozzle.json index 3c86bca3cb..429c756708 100644 --- a/resources/profiles/Anycubic/process/0.10mm Detail @Anycubic Kobra 3 0.2 nozzle.json +++ b/resources/profiles/Anycubic/process/0.10mm Detail @Anycubic Kobra 3 0.2 nozzle.json @@ -91,7 +91,7 @@ "internal_solid_infill_line_width": "0.22", "internal_solid_infill_pattern": "zig-zag", "internal_solid_infill_speed": "120", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra 3 0.4 nozzle.json index 3114c07ea1..9171007fe2 100644 --- a/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra 3 0.4 nozzle.json @@ -91,7 +91,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "zig-zag", "internal_solid_infill_speed": "200", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 2 Pro 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 2 Pro 0.4 nozzle.json index ac729ec122..72040f5d3e 100644 --- a/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 2 Pro 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 2 Pro 0.4 nozzle.json @@ -91,7 +91,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "240", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "10%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.15", diff --git a/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 3 0.4 nozzle.json index 4b30de8de0..91cd4e155a 100644 --- a/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 3 0.4 nozzle.json @@ -91,7 +91,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "zig-zag", "internal_solid_infill_speed": "150", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Max 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Max 0.4 nozzle.json index 4ae781ef7b..077a3af03e 100644 --- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Max 0.4 nozzle.json @@ -91,7 +91,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "130", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "10%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.15", diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json index ba195fdb71..3ee0511436 100644 --- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json @@ -91,7 +91,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "zig-zag", "internal_solid_infill_speed": "100", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Plus 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Plus 0.4 nozzle.json index 7fd2f802fd..3531b421fc 100644 --- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Plus 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Plus 0.4 nozzle.json @@ -91,7 +91,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "130", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "10%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.15", diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Pro 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Pro 0.4 nozzle.json index ca6c31851d..4a912876df 100644 --- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Pro 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Pro 0.4 nozzle.json @@ -91,7 +91,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "130", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "10%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.15", diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 0.4 nozzle.json index a41ebfda03..75df40bb96 100644 --- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 0.4 nozzle.json @@ -91,7 +91,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "zig-zag", "internal_solid_infill_speed": "130", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra S1 0.4 nozzle.json index fe300766b9..681061a1ca 100644 --- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra S1 0.4 nozzle.json @@ -90,7 +90,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "250", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "10%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.15", diff --git a/resources/profiles/Anycubic/process/0.24mm Draft @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.24mm Draft @Anycubic Kobra 3 0.4 nozzle.json index 7a78799c68..ee2e848f26 100644 --- a/resources/profiles/Anycubic/process/0.24mm Draft @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.24mm Draft @Anycubic Kobra 3 0.4 nozzle.json @@ -91,7 +91,7 @@ "internal_solid_infill_line_width": "0.45", "internal_solid_infill_pattern": "zig-zag", "internal_solid_infill_speed": "200", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Anycubic/process/0.28mm Draft @Anycubic Kobra 2 Pro 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.28mm Draft @Anycubic Kobra 2 Pro 0.4 nozzle.json index 29299c1e9c..f5cf2a58a5 100644 --- a/resources/profiles/Anycubic/process/0.28mm Draft @Anycubic Kobra 2 Pro 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.28mm Draft @Anycubic Kobra 2 Pro 0.4 nozzle.json @@ -91,7 +91,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "120", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "10%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.15", diff --git a/resources/profiles/Anycubic/process/0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle.json index a3f88f28d9..79b1031696 100644 --- a/resources/profiles/Anycubic/process/0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/process/0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle.json @@ -91,7 +91,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "zig-zag", "internal_solid_infill_speed": "180", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Anycubic/process/0.30mm Standard @Anycubic Kobra 3 0.6 nozzle.json b/resources/profiles/Anycubic/process/0.30mm Standard @Anycubic Kobra 3 0.6 nozzle.json index f4384a42bb..85b6b0406d 100644 --- a/resources/profiles/Anycubic/process/0.30mm Standard @Anycubic Kobra 3 0.6 nozzle.json +++ b/resources/profiles/Anycubic/process/0.30mm Standard @Anycubic Kobra 3 0.6 nozzle.json @@ -91,7 +91,7 @@ "internal_solid_infill_line_width": "0.62", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "150", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Anycubic/process/0.40mm Standard @Anycubic Kobra 3 0.8 nozzle.json b/resources/profiles/Anycubic/process/0.40mm Standard @Anycubic Kobra 3 0.8 nozzle.json index 3b76c7e3c9..242c46ab1b 100644 --- a/resources/profiles/Anycubic/process/0.40mm Standard @Anycubic Kobra 3 0.8 nozzle.json +++ b/resources/profiles/Anycubic/process/0.40mm Standard @Anycubic Kobra 3 0.8 nozzle.json @@ -91,7 +91,7 @@ "internal_solid_infill_line_width": "0.82", "internal_solid_infill_pattern": "zig-zag", "internal_solid_infill_speed": "150", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Artillery/process/0.08mm Extra Fine @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.08mm Extra Fine @Artillery M1 Pro 0.4 nozzle.json index 0d34e48320..6782b66043 100644 --- a/resources/profiles/Artillery/process/0.08mm Extra Fine @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.08mm Extra Fine @Artillery M1 Pro 0.4 nozzle.json @@ -101,7 +101,7 @@ "internal_solid_infill_acceleration": "100%", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "300", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Artillery/process/0.08mm High Quality @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/process/0.08mm High Quality @Artillery M1 Pro 0.2 nozzle.json index b08ec4a36a..2f78eb25c1 100644 --- a/resources/profiles/Artillery/process/0.08mm High Quality @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/process/0.08mm High Quality @Artillery M1 Pro 0.2 nozzle.json @@ -93,7 +93,7 @@ "internal_solid_infill_line_width": "0.22", "internal_solid_infill_pattern": "zig-zag", "internal_solid_infill_speed": "150", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Artillery/process/0.08mm High Quality @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.08mm High Quality @Artillery M1 Pro 0.4 nozzle.json index a7edc4d623..f83d5abd27 100644 --- a/resources/profiles/Artillery/process/0.08mm High Quality @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.08mm High Quality @Artillery M1 Pro 0.4 nozzle.json @@ -98,7 +98,7 @@ "internal_bridge_speed": "150%", "internal_solid_infill_acceleration": "100%", "internal_solid_infill_pattern": "monotonic", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Artillery/process/0.12mm Fine @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.12mm Fine @Artillery M1 Pro 0.4 nozzle.json index 4392f735cb..817bb4adfa 100644 --- a/resources/profiles/Artillery/process/0.12mm Fine @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.12mm Fine @Artillery M1 Pro 0.4 nozzle.json @@ -99,7 +99,7 @@ "internal_solid_infill_acceleration": "100%", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "300", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Artillery/process/0.12mm High Quality @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.12mm High Quality @Artillery M1 Pro 0.4 nozzle.json index d4e859d445..62dc77f66d 100644 --- a/resources/profiles/Artillery/process/0.12mm High Quality @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.12mm High Quality @Artillery M1 Pro 0.4 nozzle.json @@ -99,7 +99,7 @@ "internal_bridge_speed": "150%", "internal_solid_infill_acceleration": "100%", "internal_solid_infill_pattern": "monotonic", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Artillery/process/0.16mm High Quality @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.16mm High Quality @Artillery M1 Pro 0.4 nozzle.json index f4d59cc9fa..c5a47dce99 100644 --- a/resources/profiles/Artillery/process/0.16mm High Quality @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.16mm High Quality @Artillery M1 Pro 0.4 nozzle.json @@ -100,7 +100,7 @@ "internal_bridge_speed": "150%", "internal_solid_infill_acceleration": "100%", "internal_solid_infill_pattern": "monotonic", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Artillery/process/0.16mm Optimal @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.16mm Optimal @Artillery M1 Pro 0.4 nozzle.json index 20382f1ec6..79729dfa9a 100644 --- a/resources/profiles/Artillery/process/0.16mm Optimal @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.16mm Optimal @Artillery M1 Pro 0.4 nozzle.json @@ -102,7 +102,7 @@ "internal_bridge_speed": "150%", "internal_solid_infill_acceleration": "100%", "internal_solid_infill_pattern": "monotonic", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Artillery/process/0.20mm Standard @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.20mm Standard @Artillery M1 Pro 0.4 nozzle.json index d7fdadf076..e7464ceaac 100644 --- a/resources/profiles/Artillery/process/0.20mm Standard @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.20mm Standard @Artillery M1 Pro 0.4 nozzle.json @@ -103,7 +103,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "250", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Plus 0.4 nozzle.json b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Plus 0.4 nozzle.json index 609e4e0449..095eca39f6 100644 --- a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Plus 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Plus 0.4 nozzle.json @@ -87,7 +87,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "150", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Pro 0.4 nozzle.json index 03596bb89b..4f2ba17308 100644 --- a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Pro 0.4 nozzle.json @@ -87,7 +87,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "150", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Plus 0.4 nozzle.json b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Plus 0.4 nozzle.json index ffc4990277..6cd017a2a2 100644 --- a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Plus 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Plus 0.4 nozzle.json @@ -87,7 +87,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "300", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Pro 0.4 nozzle.json index 9d9f9fa94b..205850caa9 100644 --- a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Pro 0.4 nozzle.json @@ -87,7 +87,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "300", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Artillery/process/0.20mm Strength @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.20mm Strength @Artillery M1 Pro 0.4 nozzle.json index 7e7511a827..3c82b8e353 100644 --- a/resources/profiles/Artillery/process/0.20mm Strength @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.20mm Strength @Artillery M1 Pro 0.4 nozzle.json @@ -98,7 +98,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "300", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.4 nozzle.json index cb39c30cfe..b0bbf7da19 100644 --- a/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.4 nozzle.json @@ -96,7 +96,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "300", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.6 nozzle.json index 76f2a27d95..e2e13de246 100644 --- a/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.6 nozzle.json @@ -93,7 +93,7 @@ "internal_solid_infill_line_width": "0.62", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "150", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.8 nozzle.json index 1f8c58c0c5..73faaa0416 100644 --- a/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/process/0.24mm Draft @Artillery M1 Pro 0.8 nozzle.json @@ -93,7 +93,7 @@ "internal_solid_infill_line_width": "0.82", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "150", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Artillery/process/0.28mm Extra Draft @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.28mm Extra Draft @Artillery M1 Pro 0.4 nozzle.json index 073bf7e5af..82d05cd7f9 100644 --- a/resources/profiles/Artillery/process/0.28mm Extra Draft @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.28mm Extra Draft @Artillery M1 Pro 0.4 nozzle.json @@ -99,7 +99,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "300", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/CoLiDo/process/fdm_process_colidodiy40_common.json b/resources/profiles/CoLiDo/process/fdm_process_colidodiy40_common.json index 42140b6af0..746335aaf5 100644 --- a/resources/profiles/CoLiDo/process/fdm_process_colidodiy40_common.json +++ b/resources/profiles/CoLiDo/process/fdm_process_colidodiy40_common.json @@ -87,7 +87,7 @@ "internal_solid_infill_line_width": "0.4", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "250", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "10%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.15", diff --git a/resources/profiles/CoLiDo/process/fdm_process_colidox16_common.json b/resources/profiles/CoLiDo/process/fdm_process_colidox16_common.json index 4ee6991395..5966d9c818 100644 --- a/resources/profiles/CoLiDo/process/fdm_process_colidox16_common.json +++ b/resources/profiles/CoLiDo/process/fdm_process_colidox16_common.json @@ -94,7 +94,7 @@ "internal_solid_infill_line_width": "0.4", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "90", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "10%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.15", diff --git a/resources/profiles/Comgrow/process/fdm_process_comgrow_common.json b/resources/profiles/Comgrow/process/fdm_process_comgrow_common.json index f05c33ad01..65a123843d 100644 --- a/resources/profiles/Comgrow/process/fdm_process_comgrow_common.json +++ b/resources/profiles/Comgrow/process/fdm_process_comgrow_common.json @@ -76,7 +76,7 @@ "internal_solid_infill_line_width": "0", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "200", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.25", diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-5 Max 0.4mm nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-5 Max 0.4mm nozzle.json index 011735e4a5..c0beaa6fbd 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-5 Max 0.4mm nozzle.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-5 Max 0.4mm nozzle.json @@ -89,7 +89,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "500", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Creality/process/0.20mm Ultrafast @Creality Ender-5 Max 0.4mm nozzle.json b/resources/profiles/Creality/process/0.20mm Ultrafast @Creality Ender-5 Max 0.4mm nozzle.json index 36f5a44408..3a4c005dc6 100644 --- a/resources/profiles/Creality/process/0.20mm Ultrafast @Creality Ender-5 Max 0.4mm nozzle.json +++ b/resources/profiles/Creality/process/0.20mm Ultrafast @Creality Ender-5 Max 0.4mm nozzle.json @@ -89,7 +89,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "500", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Cubicon/process/process template @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/process/process template @Cubicon xCeler-I 0.4 nozzle.json index 4478100260..5046b8b8f4 100644 --- a/resources/profiles/Cubicon/process/process template @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/process/process template @Cubicon xCeler-I 0.4 nozzle.json @@ -104,7 +104,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "zig-zag", "internal_solid_infill_speed": "250", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "10%", "ironing_inset": "0", "ironing_pattern": "zig-zag", diff --git a/resources/profiles/Eryone/process/0.20mm Standard @Thinker X400.json b/resources/profiles/Eryone/process/0.20mm Standard @Thinker X400.json index 05e8ac0755..bdd93a714c 100644 --- a/resources/profiles/Eryone/process/0.20mm Standard @Thinker X400.json +++ b/resources/profiles/Eryone/process/0.20mm Standard @Thinker X400.json @@ -80,7 +80,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "250", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "10%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.15", diff --git a/resources/profiles/Flashforge/process/0.20mm Standard @Flashforge G3U 0.4 Nozzle.json b/resources/profiles/Flashforge/process/0.20mm Standard @Flashforge G3U 0.4 Nozzle.json index e6412eaaf6..b9c8cc8c02 100644 --- a/resources/profiles/Flashforge/process/0.20mm Standard @Flashforge G3U 0.4 Nozzle.json +++ b/resources/profiles/Flashforge/process/0.20mm Standard @Flashforge G3U 0.4 Nozzle.json @@ -83,7 +83,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "250", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "15%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Ginger Additive/process/fdm_process_common.json b/resources/profiles/Ginger Additive/process/fdm_process_common.json index ec7d5e4646..f517188d37 100644 --- a/resources/profiles/Ginger Additive/process/fdm_process_common.json +++ b/resources/profiles/Ginger Additive/process/fdm_process_common.json @@ -84,7 +84,7 @@ "internal_solid_infill_line_width": "3", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "100", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "10%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.1", diff --git a/resources/profiles/Phrozen/process/0.20mm Standard @Phrozen Arco 0.4 nozzle.json b/resources/profiles/Phrozen/process/0.20mm Standard @Phrozen Arco 0.4 nozzle.json index ac76e85ada..c341766281 100644 --- a/resources/profiles/Phrozen/process/0.20mm Standard @Phrozen Arco 0.4 nozzle.json +++ b/resources/profiles/Phrozen/process/0.20mm Standard @Phrozen Arco 0.4 nozzle.json @@ -90,7 +90,7 @@ "internal_solid_infill_line_width": "0.42", "internal_solid_infill_pattern": "monotonic", "internal_solid_infill_speed": "250", - "ironing_angle": "-1", + "ironing_angle": "0", "ironing_flow": "10%", "ironing_pattern": "zig-zag", "ironing_spacing": "0.15", diff --git a/src/libslic3r/Fill/Fill.cpp b/src/libslic3r/Fill/Fill.cpp index e8294ea673..3ae8446190 100644 --- a/src/libslic3r/Fill/Fill.cpp +++ b/src/libslic3r/Fill/Fill.cpp @@ -1461,43 +1461,31 @@ void Layer::make_ironing() double height; double speed; double angle; + bool is_using_template_angle; double inset; bool operator<(const IroningParams &rhs) const { - if (this->extruder < rhs.extruder) - return true; - if (this->extruder > rhs.extruder) - return false; - if (int(this->just_infill) < int(rhs.just_infill)) - return true; - if (int(this->just_infill) > int(rhs.just_infill)) - return false; - if (this->line_spacing < rhs.line_spacing) - return true; - if (this->line_spacing > rhs.line_spacing) - return false; - if (this->height < rhs.height) - return true; - if (this->height > rhs.height) - return false; - if (this->speed < rhs.speed) - return true; - if (this->speed > rhs.speed) - return false; - if (this->angle < rhs.angle) - return true; - if (this->angle > rhs.angle) - return false; - if (this->inset < rhs.inset) - return true; - if (this->inset > rhs.inset) - return false; + RETURN_COMPARE_NON_EQUAL(extruder); + RETURN_COMPARE_NON_EQUAL(just_infill); + RETURN_COMPARE_NON_EQUAL(line_spacing); + RETURN_COMPARE_NON_EQUAL(height); + RETURN_COMPARE_NON_EQUAL(speed); + RETURN_COMPARE_NON_EQUAL(angle); + RETURN_COMPARE_NON_EQUAL(is_using_template_angle); + RETURN_COMPARE_NON_EQUAL(inset); return false; } bool operator==(const IroningParams &rhs) const { - return this->extruder == rhs.extruder && this->just_infill == rhs.just_infill && - this->line_spacing == rhs.line_spacing && this->height == rhs.height && this->speed == rhs.speed && this->angle == rhs.angle && this->pattern == rhs.pattern && this->inset == rhs.inset; + return this->extruder == rhs.extruder && + this->just_infill == rhs.just_infill && + this->line_spacing == rhs.line_spacing && + this->height == rhs.height && + this->speed == rhs.speed && + this->angle == rhs.angle && + this->is_using_template_angle == rhs.is_using_template_angle && + this->pattern == rhs.pattern && + this->inset == rhs.inset; } LayerRegion *layerm = nullptr; @@ -1544,7 +1532,8 @@ void Layer::make_ironing() ironing_params.inset = config.ironing_inset; ironing_params.height = default_layer_height * 0.01 * config.ironing_flow; ironing_params.speed = config.ironing_speed; - ironing_params.angle = (config.ironing_angle >= 0 ? config.ironing_angle : config.infill_direction) * M_PI / 180.; + ironing_params.angle = calculate_infill_rotation_angle(this->object(), this->id(), config.solid_infill_direction.value, config.solid_infill_rotate_template.value) + config.ironing_angle * M_PI / 180.; + ironing_params.is_using_template_angle = !config.solid_infill_rotate_template.value.empty(); ironing_params.pattern = config.ironing_pattern; ironing_params.layerm = layerm; by_extruder.emplace_back(ironing_params); @@ -1640,6 +1629,7 @@ void Layer::make_ironing() // Create the filler object. f->spacing = ironing_params.line_spacing; f->angle = float(ironing_params.angle); + f->is_using_template_angle = ironing_params.is_using_template_angle; f->link_max_length = (coord_t) scale_(3. * f->spacing); double extrusion_height = ironing_params.height * f->spacing / nozzle_dmr; float extrusion_width = Flow::rounded_rectangle_extrusion_width_from_spacing(float(nozzle_dmr), float(extrusion_height)); diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 5f74991526..c80c2e7cc7 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -3497,14 +3497,14 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionFloat(20)); def = this->add("ironing_angle", coFloat); - def->label = L("Ironing angle"); + def->label = L("Ironing angle offset"); def->category = L("Quality"); - def->tooltip = L("The angle ironing is done at. A negative number disables this function and uses the default method."); + def->tooltip = L("The angle of ironing lines offset from the top surface."); def->sidetext = u8"°"; // degrees, don't need translation - def->min = -1; + def->min = 0; def->max = 359; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloat(-1)); + def->set_default_value(new ConfigOptionFloat(0)); def = this->add("layer_change_gcode", coString); def->label = L("Layer change G-code"); @@ -6863,6 +6863,8 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va opt_key = "bottom_solid_infill_flow_ratio"; } else if (opt_key == "ironing_direction") { opt_key = "ironing_angle"; + } else if (opt_key == "ironing_angle" && boost::starts_with(value, "-")) { + value = "0"; } else if (opt_key == "counterbole_hole_bridging") { opt_key = "counterbore_hole_bridging"; } else if (opt_key == "draft_shield" && value == "limited") { diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 33f441d2f9..69cffa7571 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -2163,7 +2163,7 @@ void TabPrint::build() optgroup->append_single_option_line("ironing_flow", "quality_settings_ironing#flow"); optgroup->append_single_option_line("ironing_spacing", "quality_settings_ironing#line-spacing"); optgroup->append_single_option_line("ironing_inset", "quality_settings_ironing#inset"); - optgroup->append_single_option_line("ironing_angle", "quality_settings_ironing#angle"); + optgroup->append_single_option_line("ironing_angle", "quality_settings_ironing#angle-offset"); optgroup = page->new_optgroup(L("Wall generator"), L"param_wall_generator"); optgroup->append_single_option_line("wall_generator", "quality_settings_wall_generator");