-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Add option to "Reverse only internal perimeters" under the reverse on odd feature to reduce part warping #2722
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
Add option to "Reverse only internal perimeters" under the reverse on odd feature to reduce part warping #2722
Conversation
This reverts commit 6f3a6ef.
That's a very interesting idea, great work! |
Yeah! It's inspired by Cura's implementation of "alternate wall directions" which was made specifically for reducing part stress. However Cura also goes clockwise then anti clockwise even within the same layer. However I feel that this may be overkill as this will greatly reduce part stress between layers already. |
Interesting that Cura does that. Do you mean different direction between adjacent walls? Like if wall count is 5 then the inner 4 walls will have alternating directions within the same layer? |
Yes correct, it will print external clock wise, then first internal counter clockwise, second internal clock wise and so forth. Just checked on the latest release under experimental. |
Sounds like an overkill indeed, and what concerns me is thermal: print two adjacent walls with different direction means you will end up extruding hot filament right next to the end of previous wall that just got extruded and haven't been cooled down enough. Not sure if that could cause any problem though, or maybe I'm just being too concerned. |
Funnily enough, Cura starts the internal seams on opposite ends of the print to reduce stresses even more - dont think thermals are the reason but its an interesting take none the less |
Great idea. |
Would be nice to add a Cura implementation as an option. Good job |
This option really should have the same effect. Suggest some testing is done with warp prone models and lets take it from there. |
Look good. |
Also I have a question - if there are only two perimeters, what would be more beneficial to reduce warping: alternate internal perimeter direction each layer, or always extrude internal CW direction, to compensate external perimeter CCW direction? |
Idk if it is ok or nok, but I think it works fine... |
It works fine, but alternating external perimeter impairs surface quality: You see, that perimeter offset oscillates each layer, as was mentioned in original PR #2413 |
Can you attach a project file please? |
I didn't save it, nothing special. Just standard cylinder with 2 walls without infill (or may be about 10%). External wall printed first. |
Any bad always reverse internal perimeters (may be with a bit more sophisticated algorithm) and remove corresponding GUI options? I would also add that regular PLA/PETG also wrap if you print large model, though in lesser extent than ABS/PA etc. |
Seams tend to perform a bit worse as you’re printing directly over the still hot end point of the previous extrusion. So you smear it backwards slightly and dump more heat in an already hot area. That is especially prominent if printing outer inner |
Ok, there is another topic I would like to hear your opinion. Recently I printed a kind of anchor, that demands strength in the paws base: So I suggested that instead of rectilinear infill it would be better to use lines paralleled to walls. But both concentric infill and many walls result in build up and blobs from layer to layer. Thus I extended alternate walls parameter from bool to integer: Infill every other layer performs "ironing" and prevent blobs formation. But there is a question about optimal walls extruding directions. Current "every other layer" doesn't work, as layers with many walls always go the same direction. So I changed internal layer reversing direction from I don't want to add yet another option or complicate switch for reversing algorithm, and choose one of this methods for all cases. What are your thoughts? |
I think a better implementation would be more akin to what cura has. Basically it staggers the seams internally when this option is enabled and it alternates each wall on the same layer, like your last picture. That way the stresses are equalised within the layer vs across layers. staggering the seam is important though to make sure you’re not reversing on yourself where the plastic is still soft. so if I were doing this again I would implement it like that. Mandatory stagger inner seam, find an option to set the inner seams as far as possible from each other and swap print directions of the inner walls alternating with each other on the same layer. |
I guess I'll try to implement this in my fork, but I would like to get this #6193 PR merged first (as it simplify further development and usage). |
This "Reverse only internal perimeters" option is an extension to Noisyfox's PR #2413 where the reversal is not executed on external perimeters.
The primary use case for this PR is to greatly reduce part stresses as they are now distributed in alternating directions, which should reduce warping, while maintaining external wall quality. This can be very useful for warp prone material, like ABS/ASA and also for elastic filaments like TPU and Silk PLA.
For the above to be effective, set the Reverse Threshold to 0, so that all internal walls print direction alternates on odd layers irrespective of the overhang degree.
This setting though, greatly reduces the effectiveness of the reverse on odd setting. However it also eliminates artefacts on the external walls caused by inaccuracies in the printer motion system while maintaining some marginal benefit on steep overhangs and a more significant benefit at sharp edges of overhangs.
Demo print below
Below image is with a 0.12 layer height.
We can observe that the overhangs are slightly better on the middle part (this PR) compared to it completely disabled but worse than when reverse on odd is applied to the external perimeters as well. Specifically the curling up on the edges is greatly reduced indicating lower internal stresses to the part while also maintaining external wall quality.