Skip to content

"Smooth" outer perimeters#8443

Open
philyeahz wants to merge 3 commits into
OrcaSlicer:mainfrom
philyeahz:feature/smooth_outline
Open

"Smooth" outer perimeters#8443
philyeahz wants to merge 3 commits into
OrcaSlicer:mainfrom
philyeahz:feature/smooth_outline

Conversation

@philyeahz

@philyeahz philyeahz commented Feb 17, 2025

Copy link
Copy Markdown

Description

benchy_small

Adds a new parameter called "Outer perimeter layer divider".
This division factor is used to generate sub slices for each layer, which will be used to generate the outer perimeters.

While trying some stuff on the brick layers, I found the need for generating sub slices for slanted walls. Incidentally the outer perimeter "smoothing" could be implemented with this as well.

Not happy with the current state, but it's a start, so someone else could build on it and make it better.
Also tried implementing it the other way around, merging internal layers together,
but adding sub slices to the outer perimeters resulted in less resistance inside the code base.

Screenshots/Recordings/Graphs

benchy_full

Tests

Nozzle: 0.4mm
Layer height: 0.2mm
Outer perimeter layer divider: 2 (Outer perimeter layer height: 0.1mm)

result
Outer perimeter artifacts are mainly due to inconsistent extrusion speed.
speed

Known Issues

  • Classic wall generator
    • Thin wall and small wall detection not implemented for sub slices
  • No check for minimal nozzle layer height
  • Sub slice height infill will be needed for most accurate results
    • Outer perimeters might float and/or intersect on top infill
    • Top infill can peak out of outer perimeter
  • Inconsistent speed on outer perimeters
  • Remaining print time is not correct on printer
  • Probably many more...

@philyeahz philyeahz marked this pull request as draft February 17, 2025 21:42
@philyeahz

philyeahz commented Feb 23, 2025

Copy link
Copy Markdown
Author

Miniature Test (with Arachne)

miniature
Still got some under-extrusion going on but could also be due to the speed of 60mm/s being too high.

miniature_assembled

Parameters

Nozzle: 0.2mm
Wall Generator: Arachne
Minimum wall width/feature size: 20%
Layer height: 0.14mm
Outer perimeter layer divider: 3 (Outer layer height: 46μm)
Outer wall speed: 60mm/s
Wall loops: 3
Sparse infill: Gyroid at 10%
Minimum sparse infill threshold: 5mm²
Tree support: enabled
Top/bottom z distance: 0.08

Time saving

Layer height 46μm: 3h05m
Outer perimeter divider 46μm: 1h32m
About 50% time saving

After some tests the time saving can be between 20-50% depending on the models.

@philyeahz philyeahz marked this pull request as ready for review February 23, 2025 19:34
@philyeahz philyeahz changed the title Draft: "Smooth" outer perimeters "Smooth" outer perimeters Feb 23, 2025
@SoftFever SoftFever added Crazy Orca Community Community testers wanted Looking for community testers and feedback labels Mar 8, 2025
@SoftFever

Copy link
Copy Markdown
Collaborator

That's an interesting idea. These artifacts will probably be less obvious if we print with a 0.3 mm layer height and use 2 outer wall dividers (resulting in 0.15 mm per divider). Is this intended to achieve fast printing while still maintaining a smooth finish?

@philyeahz philyeahz force-pushed the feature/smooth_outline branch from 9d24ee2 to 4b67ef1 Compare March 10, 2025 19:29
@philyeahz

Copy link
Copy Markdown
Author

These artifacts will probably be less obvious if we print with a 0.3 mm layer height and use 2 outer wall dividers (resulting in 0.15 mm per divider).

Probably, at that small scale the artifacts could be many factors, slower outer wall speed definitely helps, but still not perfect.

Is this intended to achieve fast printing while still maintaining a smooth finish?

Yes, this is based on one of the many post processing scripts from TenTech.
Specifically this one https://github.com/TengerTechnologies/Smoothificator

@TengerTechnologies

TengerTechnologies commented Apr 9, 2025

Copy link
Copy Markdown

These artifacts will probably be less obvious if we print with a 0.3 mm layer height and use 2 outer wall dividers (resulting in 0.15 mm per divider).

Probably, at that small scale the artifacts could be many factors, slower outer wall speed definitely helps, but still not perfect.

Is this intended to achieve fast printing while still maintaining a smooth finish?

Yes, this is based on one of the many post processing scripts from TenTech. Specifically this one https://github.com/TengerTechnologies/Smoothificator

I'm glad that there are skilled people like you, which turn concepts into actual slicer implementations. I love the opensource community, thanks for working on this!
I don't know if you have seen the update to the script @philyeahz @SoftFever . I didn't have the time to make a good read.me. So sorry for that. I've changed some things and "miss-used" adaptive layerheight to keep a more accurate dimensional accuracy. https://youtu.be/eIHOYqJPfSY It also now tries to get as close as possible to the desired layerheight which is not a very visible difference in layerheight to the naked eye

@SoftFever

Copy link
Copy Markdown
Collaborator

Just checking, is this PR still active?

@philyeahz

Copy link
Copy Markdown
Author

Just checking, is this PR still active?

Not really, I could rebase and fix the small issues so it could be merged as an experimental feature,
but to really make it good would still need a lot of work, like designing proper handling of multi layer height layers (sorting, collision checking, overhang and bridging) and not just blind z-shifting.

@TengerTechnologies

Copy link
Copy Markdown

Just checking, is this PR still active?

Would it be interesting enough to have it in the slicer?

There are still a couple of problems with the concept itself. If there is general interest in the topic, I could revisit it. But unfortunatly only in my script, as I'm not experienced with the Orca code.

@marcinsmialek

Copy link
Copy Markdown

Another benefit I can see is that it would help tremendously with steep overhangs without supports.
This way we could have denser flatter overhang steps without decreasing layer height globally. Speed + quality + strength boost simultaneously.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Community testers wanted Looking for community testers and feedback Crazy Orca Community

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants