SoftFever / OrcaSlicer

G-code generator for 3D printers (Bambu, Prusa, Voron, VzBot, RatRig, Creality, etc.)
https://discord.gg/P4VE9UY9gJ
GNU Affero General Public License v3.0
5.86k stars 669 forks source link

Improve overhang performance with adaptive outer wall line width #5746

Open Ataraxia-Mechanica opened 1 week ago

Ataraxia-Mechanica commented 1 week ago

Is there an existing issue for this feature request?

Is your feature request related to a problem?

When printing objects with steep overhangs, using a thicker outer wall line width could increase overhang performance. This is due to more materials being deposited on top of previous layer.

image

But thicker outer walls make sharp details look worse. I wonder whether if it would be possible to detect overhangs and make them thicker, but make non-overhang areas use the original line width.

Which printers will be beneficial to this feature?

All

Describe the solution you'd like

image

Detect overhangs and use thicker outer wall width on them, while not changing non-overhang wall line width.

Describe alternatives you've considered

No response

Additional context

No response

vgdh commented 1 week ago

That would be a great improvement! I wonder what @SoftFever @Noisyfox @igiannakas think about it.

vgdh commented 1 week ago

It also could be not a whole layer width but only places with big overhang.

igiannakas commented 1 week ago

Without trying it we can’t say for sure what it will do, but from first looks it will improve step over and overhang performance for sure - I personally run 0.48 external wall line width in my profiles and 0.42 internal.

However varying line widths on a single surface may cause appearance inconsistencies - my theory is that you want the extrusion to be as consistent as possible between layers.

So I’m presuming that the other side of the overhangs will appear slightly worse than if you just kept a larger line width throughout all the external walls.

But won’t be sure unless we test it!!

Noisyfox commented 1 week ago

However varying line widths on a single surface may cause appearance inconsistencies

And also make it harder to implement too. Pretty much like traditional wall generator with a thicker wall width vs enhanced Arachne that knows where an overhang is.

Ataraxia-Mechanica commented 1 week ago

However varying line widths on a single surface may cause appearance inconsistencies

I'm thinking about only increasing line width for the overhang part, then revert to normal width immediately after. Could probably still cause inconsistencies and artifacts on the corner of the width change though.

Ataraxia-Mechanica commented 1 week ago

I also think this feature should only be enabled when it comes to extreme overhangs that can't be handled normally, e.g. 60 degree overhangs at 0.2mm layer height, using 0.8mm line width to make it printable.

SoftFever commented 1 week ago

I doubt this would work. The unsupported part remains unchanged, and your nozzle position remains unchanged. Only changing layer height would reduce the unsupported part

Ataraxia-Mechanica commented 1 week ago

image

One test, coming up! Hope the aux fans I installed on both sides have the same power...

By the way, setting outer walls to be wider is known to work better for printing threads, especially female threads to prevent outer walls from falling off.

Ataraxia-Mechanica commented 1 week ago

Currently suffering from success. Both cases worked even with aux fan off. Just gimme a bit more time... The one on the left is 0.6mm and the right one 0.4, looks slightly worse

60 deg

igiannakas commented 1 week ago

Up to a point it does - there is a big difference going from 0.4 to 0.48 in my experience.

After that it starts tapering off and above 0.5-0.6 or so it starts creating other artefacts as the overlap isn’t as much and the plastic just gets pushed out on the overhanging side if that makes sense.

Personally I run all my print profiles with 0.45-0.48 external perimeters for this reason - to get good step over for inner outer inner wall ordering. But I haven’t felt the need to dynamically change this as the fixed line width works well enough without any consequences. It also increases part strength quite nicely.

Stefan had a video showing line width impacts on print quality here: https://www.cnckitchen.com/blog/the-effect-of-extrusion-width-on-strength-and-quality-of-3d-prints?format=amp

Ataraxia-Mechanica commented 1 week ago

At extreme angles, thicker line width actually performs worse on my printer, as the thicker lines are easier to sag down and getting separated from inner walls, while 0.4mm lines literally drips down, gets blown by the fans, shrinks and grows back up, then sticks on the lower side firmly. However, I think I already mentioned a situation that makes thicker walls strictly better 2 posts before: concave overhangs.

work better for printing threads, especially female threads to prevent outer walls from falling off.

image

Ataraxia-Mechanica commented 1 week ago

all Guess which one is 0.8mm outer wall and which is 0.4 lol. The curved geometry actually prevents heavy 0.8 walls from dripping down.

All printed with inner-outer-inner order by the way, the situation with inner-outer could be different.

I think my suggestion is not as useful as I initially thought, but it do has use cases. Might not worth the hassle implementing this feature, but it's up to you guys to decide.