Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FR: Anti-aliased top layers #5860

Open
Battlevaria opened this issue Jan 23, 2021 · 3 comments
Open

FR: Anti-aliased top layers #5860

Battlevaria opened this issue Jan 23, 2021 · 3 comments

Comments

@Battlevaria
Copy link

Version

2.3.0

Operating system type + version

macOS Catalina 10.15.7

3D printer brand / version + firmware version (if known)

Prusa i3 mk3s

Behavior

On a slanted top surface, the well-known stair-stepping problem ought to be fixable with anti-aliasing. For example, when printing the avocado boat (https://www.thingiverse.com/thing:2769468), the stair steps are clearly visible. Using the variable layer height feature, I was able to improve this model a fair amount, at the cost of having a lot of thing layers in most of the part. See photo for comparison (smaller layers on the right).
PXL_20210120_082327259

This is a hack, though. It ought to be possible to make reduced stair-stepping a feature of PrusaSlicer: Interpolate the heights between "stair steps" and print thinner final layers in between. I expect printing the thinner layers first would work best, avoiding bringing a hot nozzle down close to a higher layer.

Without:

--------------    <-- 0.2mm layer
|            |
|            |
|            |
|            |
---------------------------------------
|                                     |
|                                     |
|                                     |
|                                     |
----------------------------------------------------------------

With:

--------------   <-- 0.2mm layer
|            |-----    <-- 0.16mm layer
|            |    |-----  <-- 0.12mm layer
|            |    |    |-----  <-- 0.08mm layer
|            |    |    |    |-----  <-- 0.04mm layer
---------------------------------------  <-- 0.2mm layer
|                                     |-----    <-- 0.16mm layer
|                                     |    |-----  <-- 0.12mm layer
|                                     |    |    |-----  <-- 0.08mm layer
|                                     |    |    |    |-----  <-- 0.04mm layer
-----------------------------------------------------------------

Is this a new feature request?
Yes.

@alidorauxier
Copy link

I like this idea. Compared to variable layer height, think the difference would be that the 'substep' layers would only be used on the external perimeter and only on segments where the layer is offset enough from the last one to benefit from the intermediate steps.
This would avoid printing the entire layer multiple times and concentrate only on the shallow details.

@Battlevaria
Copy link
Author

alidorauxier is right. As you can see in my original post, I already use variable layer height to help on this, but it's a very coarse instrument. Having this only on the final layer would be a lot easier and faster.

@starthal
Copy link
Contributor

I expect printing the thinner layers first would work best, avoiding bringing a hot nozzle down close to a higher layer.

On the other hand, this almost describes how "ironing" works today, correct? Intentionally return the hot nozzle to an already-printed layer and extrude a bit more while passing over it.

As I understand it, ironing does happen on these "stair steps", but it uses the same method as on the topmost surface.

image

In this case, instead of returning to the same layer n, you could descend lower (between layer n-1 and layer n) and extrude an additional "antialias" perimeter. The new material along with the heat might give the desired smoothing.

(This would likely need to pair with an "exclusive" tolerance mode #8138 to avoid exceeding the model envelope)

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

No branches or pull requests

4 participants