Add fixed Ironing Angle setting for uniform surface finish #1780

Closed
opened 2026-04-05 19:51:49 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @ansonl on 10/29/2025

Description

image

Add new fixed Ironing Angle setting as a checkbox. When the ironing angle is fixed (absolute angle):

  • Ironing angle is the same on every layer and does not alternate like top surface line direction
  • Ironed surface finish is more uniform
  • Ironed surfaces reflect light in the same direction
  • Ironing surface effect between adjacent layers is similar to Monotonic surface finishes because the lines are not offset

I printed a model with a low angle upwards that gets steeper towards the center with a flat section in the center. This results in wide and narrow ironing areas being tested. The results match what is expected and confirm that a fixed ironing angle does result in a more uniform surface finish and light reflection.

IMG_5427

Top row of samples are No Ironing / 0° offset / 45° offset / 90° offset
Bottom row of samples 0° fixed / 90° fixed / 45° fixed / 22.5° fixed (my printer didn't do the 0 fixed angle so well, so look at the right 3). Even the 45° fixed looks pretty good despite having a ironing angle offset that flips between 0° and 90°due to the default alternating 45°/135° top surface line direction.

The printed top row has a more visible tiger striping pattern than bottom row when viewed with light reflection.

@Noisyfox brought up an idea for fixed ironing angle when we changed the Ironing Angle setting to be a relative degree offset in #10841. No one has tried this before to my knowledge because most slicers alternate the ironing angle relative to the top surface infill direction. Currently Ironing angle is rotated with the layer infill direction so the top surface has a tiger striping effect when viewed in the light. Depending on the model you are printing this might not be desirable because the layers are more visible, the surface alternates between matte and glossy depending on the light angle, etc.

I added a new alternate_fill_direction property to Fill object to determine if the fill direction should be rotated as usual in fill_surface > _infill_direction > _layer_angle. This new boolean property defaults to true so the existing behavior is not changed. When the new ironing_angle_fixed setting is enabled, the alternate_fill_direction is set to false so that the alternating fill direction operation performed after ironing params are calculated keeps the ironing angle.

This way we do not need to unnecessarily calculate the flipped fill direction that alternates for each layer a second time when determining ironing params before the fill operation. If we did that calculation during ironing params, we would be adding the alternate fill angle to the ironing angle and then flipping it back again in fill operation which seems more confusing and hard to keep track of (especially when we intend to not use the alternate fill direction result.

Ironing test 3MF project and Presliced Gcode 3MF for P1S
iron-hill.zip

Screenshots/Recordings/Graphs

Clockwise from top: No Ironing, 0 offset, 90 fixed, 0 fixed

image image

Tests

IMG_5423
IMG_5425
IMG_5422
IMG_5420
IMG_5421

*Originally created by @ansonl on 10/29/2025* # Description <img width="780" height="477" alt="image" src="https://github.com/user-attachments/assets/f38ba6ca-a388-4cdc-a359-0e340d5334a0" /> Add new fixed Ironing Angle setting as a checkbox. When the ironing angle is fixed (absolute angle): - Ironing angle is the same on **every** layer and does not alternate like top surface line direction - Ironed surface finish is more uniform - Ironed surfaces reflect light in the same direction - Ironing surface effect between adjacent layers is similar to Monotonic surface finishes because the lines are not offset I printed a model with a low angle upwards that gets steeper towards the center with a flat section in the center. This results in wide and narrow ironing areas being tested. The results match what is expected and confirm that a fixed ironing angle does result in a more uniform surface finish and light reflection. ![IMG_5427](https://github.com/user-attachments/assets/5be125fd-bec6-46e6-a88b-e1d2842ab490) Top row of samples are **No Ironing / 0° offset / 45° offset / 90° offset** Bottom row of samples **0° fixed / 90° fixed / 45° fixed / 22.5° fixed** (my printer didn't do the 0 fixed angle so well, so look at the right 3). Even the 45° fixed looks pretty good despite having a ironing angle offset that flips between 0° and 90°due to the default alternating 45°/135° top surface line direction. The printed top row has a more visible tiger striping pattern than bottom row when viewed with light reflection. @Noisyfox brought up an idea for fixed ironing angle when we changed the Ironing Angle setting to be a relative degree offset in #10841. No one has tried this before to my knowledge because most slicers alternate the ironing angle relative to the top surface infill direction. Currently Ironing angle is rotated with the layer infill direction so the top surface has a tiger striping effect when viewed in the light. Depending on the model you are printing this might not be desirable because the layers are more visible, the surface alternates between matte and glossy depending on the light angle, etc. I added a new `alternate_fill_direction` property to `Fill` object to determine if the fill direction should be rotated as usual in `fill_surface` > `_infill_direction` > `_layer_angle`. This new boolean property defaults to true so the existing behavior is not changed. When the new `ironing_angle_fixed` setting is enabled, the `alternate_fill_direction` is set to false so that the alternating fill direction operation performed after ironing params are calculated keeps the ironing angle. This way we do not need to unnecessarily calculate the flipped fill direction that alternates for each layer a second time when determining ironing params before the fill operation. If we did that calculation during ironing params, we would be adding the alternate fill angle to the ironing angle and then flipping it back again in fill operation which seems more confusing and hard to keep track of (especially when we intend to not use the alternate fill direction result. Ironing test 3MF project and Presliced Gcode 3MF for P1S [iron-hill.zip](https://github.com/user-attachments/files/23217434/iron-hill.zip) # Screenshots/Recordings/Graphs Clockwise from top: No Ironing, 0 offset, 90 fixed, 0 fixed <img width="1768" height="1593" alt="image" src="https://github.com/user-attachments/assets/83f30aa6-9dc3-45b5-a03d-b22f6dca615c" /> <img width="3068" height="1857" alt="image" src="https://github.com/user-attachments/assets/b31ae640-5ed8-479c-8cdd-6645ad625692" /> ## Tests ![IMG_5423](https://github.com/user-attachments/assets/c8fb760f-ea08-4ffe-9247-c6edf9dfa2af) ![IMG_5425](https://github.com/user-attachments/assets/bceeb417-23bd-48c4-aed0-20e791d1f776) ![IMG_5422](https://github.com/user-attachments/assets/6662671d-6498-4762-b588-b2e43b5c2a86) ![IMG_5420](https://github.com/user-attachments/assets/da946bd1-c53f-4559-b185-603fe9574087) ![IMG_5421](https://github.com/user-attachments/assets/46001349-5ec6-4dca-94ed-c3e9184ce993)
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#1780