-
-
Notifications
You must be signed in to change notification settings - Fork 939
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
Change direction for perimeter extrusion at odd layers. #2413
Change direction for perimeter extrusion at odd layers. #2413
Conversation
Initial test code based on supermerill/SuperSlicer@87245ae
…, to support overhangs on both side. Also fixes wipe on loop.
3db8f64
to
2f568b4
Compare
Been testing this for a couple of prints together with remaining PRs from noisyfox. Looks good. Not sure what else is pending (and it’s in draft). btw the new release is going to be so good! A super combo of features from prusa slicer & super slicer 🎉 |
I'm going to add filtering and config for this feature then the PR will be ready. |
Stupid question but is there a particular reason why we wouldn’t want all loops to be alternating irrespective of the overhang angle? Maybe seam inconsistency? Also my 2 cents - I wouldn’t add this as a config option - it’s such an obvious improvement that it should always be active in my view. |
b2f599f
to
ee55d13
Compare
ee55d13
to
7c5feb6
Compare
Also why disable the algorithm for fuzzy skin? |
This would be a great feature to have. |
Wouldn't the alternating external perimeter be the main factor contributing to the improvement of overhangs though? |
It depends. If the overhang is severe it should have two or almost two perimeters in mid air. In that case it would work nicely without affecting the external surface of the model I would think? |
Ah when I started working on this I reused the overhang detection result from the overhang slowdown code, which is disabled when fuzzy skin is used. Then later when I decided to not use it (as it's only available in classic overhang speed mode) and write my own steep overhang detect code, I just kept the same logic. I think the logic behind this is when fuzzy skin is used, there will be countless of tiny overhangs due to the uneven surface, which could mess the algorithm up, and also since those overhangs are just so tiny they should not affect print quality. I've never used this feature before personally, so I'm not sure if this will be a problem or not. Maybe if fuzzy skin is enabled we ignore the overhang detection and force reversing regardless? Since I think with the fuzzy skin you won't notice the surface quality decreasing cause by the alternating extrusion order? |
Ah I see. Maybe let’s give it a try with it always enabled on fuzzy skin - it won’t show the artefacts due to the surface variation that’s inherent to it. Happy to test it for you (I’ve printed a few models with it - crochet style pumpkins for Halloween :D) |
So i've been trying to test the new version but the app crashes on start up. Unfortunately no helpfull error logs other than an unknown exception has occured. Maybe something is wrong with the variable setup in the GUI. Any chance for a cross check? |
…e-wall-order # Conflicts: # src/libslic3r/Preset.cpp
Sure, how could I reproduce the issue? Are those crashes caused by those asserts? |
I've added the support for fuzzy skin, feel free to give it a try. |
Nope they wouldn’t - the assert statements only affect the debug build as that is when they are evaluated. Something else is going on - I’ll give a try to the latest build from softfevers pipeline as mine doesn’t seem to work with this PR and let you know. |
@SoftFever tried your build of it- works great. Maybe some merge error on my side was causing it to crash. |
@@ -283,6 +332,22 @@ static ExtrusionEntityCollection traverse_loops(const PerimeterGenerator &perime | |||
BoundingBox bbox(polygon.points); | |||
bbox.offset(SCALED_EPSILON); | |||
|
|||
// Always reverse extrusion if use fuzzy skin: https://github.com/SoftFever/OrcaSlicer/pull/2413#issuecomment-1769735357 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Question: why are we differenciate contour and hole for reversing?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To improve surface quality when only contour/hole surface has steep overhang. There is no need to reverse the hole surface if only the contour surface has steep overhang, and vice versa.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
make sense 👍
@Noisyfox Thanks for the fantastic work. |
So what is the use of this? I can print such overhangs flawless. Is there an issue to it or some special design? Please dont implement things as always active, since it can affect others setup |
I cannot.
It's not. |
@Sineos , what is infill percent in you prints? Interesting, that Cura not just alternates directions each layer, but also alternate each perimeter direction. Questions is whether it's necessary to reduce warping, or each layer alternating is good enough? |
Hi, actually using term "odd layer" is wrong from user point of view. Though in code expression |
Typically 40% to 60%. |
Initial test code based on supermerill/SuperSlicer@87245ae
Test model from https://www.printables.com/model/235524-bridge-test