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

ironing process #4553

Open
wants to merge 12 commits into
base: master
Choose a base branch
from
Open

ironing process #4553

wants to merge 12 commits into from

Conversation

supermerill
Copy link
Collaborator

@supermerill supermerill commented Sep 30, 2018

Hi
I finally merged my code into this branch.
It's a bit barebone, but with that merged, it will be easier to merge other things.

how to use: https://github.com/supermerill/Slic3r/wiki/ironing

it create a new top process, and a new option in advanced-> flow

maybe it"s usefull to put some of the most important information (having the over-bridge flow at >1) into the tooltip of the ironing process.

Some code inside smoothinfill.cpp is unused, but i will/should use it for the one of the next pr. You can simplify it if you want.

note: the ExtrusionEntityCollection::reverse() that didn't check if no_sort is true made me loose a day to find the bug. ><

@lordofhyphens
Copy link
Member

Thanks @supermerill, I will take a look. Could you copy/paste your ironing wiki entry into a PR for The Manual? That way I can merge both and it should update as soon as it goes live.

@supermerill
Copy link
Collaborator Author

ok, i'll do that.

@supermerill
Copy link
Collaborator Author

Like that?
slic3r/Slic3r-Manual#56

@lordofhyphens
Copy link
Member

lordofhyphens commented Oct 18, 2018 via email

@lordofhyphens lordofhyphens self-requested a review October 23, 2018 22:29
xs/src/libslic3r/GCode.hpp Outdated Show resolved Hide resolved
xs/src/libslic3r/Surface.hpp Outdated Show resolved Hide resolved
xs/src/libslic3r/PrintConfig.cpp Outdated Show resolved Hide resolved
xs/src/libslic3r/PrintConfig.cpp Outdated Show resolved Hide resolved
xs/src/libslic3r/PrintConfig.cpp Outdated Show resolved Hide resolved
xs/src/libslic3r/Print.hpp Outdated Show resolved Hide resolved
xs/src/libslic3r/LayerRegionFill.cpp Show resolved Hide resolved
xs/src/libslic3r/GCode.cpp Outdated Show resolved Hide resolved
@aliceafterall
Copy link

Hi! I'm testing this PR out locally, and I've run into some results that seem counterintuitive - I ended up with worse results on the top layers than I do in Cura without ironing!

I'm printing a couple more test parts as I type this - one more in Slic3r without ironing, and one more in Cura with ironing - but as of right now, it appears this might need some more tuning, or at least some more tunable settings.

Other than that, I like how it's handled - just change the top layer fill type, and bam. Very smart.

@supermerill
Copy link
Collaborator Author

@chainsol did you read the wiki/doc?

@aliceafterall
Copy link

aliceafterall commented Nov 12, 2018 via email

@supermerill
Copy link
Collaborator Author

Cool

I have more settings for top-layer quality in my fork, but i wanted to merge things gradually.

Can you post some pictures+settings to see what's problematic for you?

@aliceafterall
Copy link

Of course!
http://imgur.com/a/0ppYYPV

Slic3r settings are identical to Cura, so 0.2mm layer height, 0.9 flow rate, 220c, 50c bed, 60mm/s.

Cura's top layer is much more consistent than Slic3r - and the ironing only made the layer bulge more due to the added heat and material.

@supermerill
Copy link
Collaborator Author

Thank you!

I wonder if the first pics was with or without the merge? What about the "over-bridge flow ratio" ? I suppose below that the first pic is without it (or a "1" value). If it's more than 1 in the first pic, that's probably the problem (value too high or maybe i should reduce the area of effect to not over-extrude near perimeters).

Cura's top layer is much more consistent than Slic3r

Seems like a bit more of over-extrusion in slic3r vs cura, also cura rectilinear can draw 8 lines vs 6 for slic3r, so it seems that the top layer width isn't the same. But it's not the topic of this thread,.

Sadly, I didn't add the "enforce 100% fill volume" option in this pr (it's an algo to be sure the amount of extruded plastic volume will be equal to the volume to fill, by playing on the flow), it's particularly useful for small surfaces, because the infill/perimeter overlap ratio can have a huge impact on them (creating over-extrusion). I will submit this as a new pr after this one.

For the "droplet" in the left of the ironing part, it looks like oozing, a lack of z-hop, or just over-extruding, but i can't be sure without seing it. It's also present on most of the slic3r rectilinear surfaces, but It's not the subject of this pr.

The purpose of the ironing top pattern id just to smoothen the top layer. If the print has some artefacts, it will not

(also, for the next time, If you have a light grey filament, it's a bit easier to "read", from my own experience)

and the ironing only made the layer bulge more due to the added heat and material.

Well, if it's already over-extruding... But the ironing shouldn't extrude more material than rectilinear

@supermerill supermerill requested a review from alranel as a code owner November 26, 2018 12:14
@AppVeyorBot
Copy link

Build Slic3r 1.3.0-master-2093 failed (commit 46248c89dc by @)

@AppVeyorBot
Copy link

Build Slic3r 1.3.0-master-2124 failed (commit fd4310d55f by @)

@AppVeyorBot
Copy link

Build Slic3r 1.3.0-master-2126 completed (commit c8cde471eb by @)

@supermerill
Copy link
Collaborator Author

It compiles ok.

I need to do some quick tests to see if it works as intended with the changes.

@AppVeyorBot
Copy link

Build Slic3r 1.3.0-master-2131 completed (commit 0ddfef6458 by @)

@lordofhyphens
Copy link
Member

I've sent you a small PR to add the smoothing to the current fill.t (which pass, btw :))

As I understand it, ironing should have one long extrusion at one flow that is 9/10ths the usual solid infill flow and then a set of extrusions at 1/10 solid infill flow, evenly spaced?

Extend current fill tests to include smooth.
@supermerill
Copy link
Collaborator Author

As I understand it, ironing should have one long extrusion at one flow that is 9/10ths the usual solid infill flow and then a set of extrusions at 1/10 solid infill flow, evenly spaced?

Yes. The most important thing to test is to see if the gcode.cpp / gcode.pl create the line in the right order (= respecting "no_sort" flag). As it can be "random", it's a bit difficult/time consuming to do.

@AppVeyorBot
Copy link

@lordofhyphens
Copy link
Member

@supermerill is it non-deterministic for the same model?

@supermerill
Copy link
Collaborator Author

Shouldn't be. (it's up to the legacy gcode path planner).
I have to make the code "buggy" (removing the flatten_if_sortable call is enough for my fork, but maybe not in this branch) , ie make it extrudes the thin line before the big one.
I didn't had the occasion to observe the "badly sorted" output, so i didn't have the occasion to create a test (yet).

@lordofhyphens
Copy link
Member

I've fixed some bugs in master that were introduced by the config system changes (configs are now more picky about what you can get from them or how you can set them), you probably want to rebase.

This currently affects the C++ test suite and the CLI.

@AppVeyorBot
Copy link

Build Slic3r 1.3.0-master-2212 completed (commit 32709533a8 by @)

@AppVeyorBot
Copy link

Build Slic3r 1.3.0-master-2217 completed (commit 05956d2c87 by @)

lordofhyphens added a commit that referenced this pull request May 17, 2019
… made by @supermerill from #4553 as a single function with a flag instead of two methods.
lordofhyphens added a commit that referenced this pull request May 28, 2019
… made by @supermerill from #4553 as a single function with a flag instead of two methods.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants