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

ENH: Experimental option to fully disable solid infill against walls when ensure vertical thickness is turned off - alternative implementation #3285

Conversation

igiannakas
Copy link
Contributor

@igiannakas igiannakas commented Dec 25, 2023

This PR achieves the same outcome as #3235 only with a different implementation approach.

This one eliminates slightly less vertical infill however it is safer as it retains more of the top slanted surface infill to address issues like the below: #3235 (comment)

@liftbag @ShryuKt @HakunMatat4 please test when you can.

Disabled:
image

First implementation:
#3235
image

This PR:
image

Heavily sloped model:
Disabled
image

First implementation:
image

This PR
Solid infill is generated to support the top surface
image

@ShryuKt
Copy link

ShryuKt commented Dec 26, 2023

Just based on the preview version I think this one is better.
For information, I use this model for my tests, with a lot of round and sloppy surfaces.
Yoshi
#3285 👍
image
#3235 same layer, a lot more unneeded solid infill.
image

Thank you for taking the time to address this old issue.

@liftbag
Copy link

liftbag commented Dec 26, 2023

This PR is exactly what I expected. It works very well, it seems.

This is without further reduce solid infill on walls. Seven top layers set. Nine top layers are generated (including the supporting one).

Screenshot 2023-12-26 alle 10 40 04 Screenshot 2023-12-26 alle 10 41 12

This is with further reduce solid infill on walls enabled. Seven top layers set. Eight top layers are generated (including the supporting one).

Screenshot 2023-12-26 alle 10 31 33 Screenshot 2023-12-26 alle 10 29 57

And in any case the algorithm seems to work correctly where the inclinations are less accentuated.

Screenshot 2023-12-26 alle 10 33 16 Screenshot 2023-12-26 alle 10 33 39

I'd say the problem seems solved. Thank you so much.

@HakunMatat4
Copy link

@igiannakas , hey, I haven't had time to focus on this test since after the first run I shared with you on discord.
I'll have a play tomorrow but it looks like other legends got you covered.

Thank you so much for looking into this 🙏

@liftbag
Copy link

liftbag commented Dec 26, 2023

And again, the algorithm also takes into account the top shell thickness. So if the object is printed with variable layer height, if the top shell thickness parameter is set, it is correctly applied when the number of top layers does not guarantee the desired thickness.

@igiannakas
Copy link
Contributor Author

Excellent. so sounds like this PR is the way to go! I've marked the other one as "to-delete" but retaining it in case its ever needed.

@Eldenroot
Copy link
Contributor

It seems that this is the better approach :)

Good job, great feedback

@qwewer0 qwewer0 mentioned this pull request Jan 1, 2024
2 tasks
@@ -481,6 +470,18 @@ void PrintObject::prepare_infill()
this->discover_horizontal_shells();
m_print->throw_if_canceled();

// this will detect bridges and reverse bridges
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any reason to move this code block?

Copy link
Contributor Author

@igiannakas igiannakas Jan 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeap, it fixes an issue with bridging over small holes that I found while making this PR.

If processed horizontal shells is done after the external surfaces processing, when the ensure vertical thickness option is disabled the bridges dont expand like when the ensure vertical shell thickness option is turned on. This results in the bridges collapsing inside small holes, like the bottom bridge layer of the benchy.

Before moving the code block (current V1.9 release)
image
After moving the code block:
image
With vertical thickness enabled:
image

@igiannakas
Copy link
Contributor Author

@SoftFever again I'm not too happy with this PR (my yardstick is whether I'd be happy to have it turned on all the time).

While it works great in retaining thickness with slanted surfaces, It creates issues with flat top surfaces which are way too common to ignore as an issue:

Layer 39
image

Layer 40:
image

Basically a one layer top surface...

That is a no-go for me for this PR. I'll revert to the original version here: #3235

And look at tweaking the parameters a bit to tune out the issue with heavily sloped surfaces

@igiannakas igiannakas marked this pull request as draft January 8, 2024 13:45
@igiannakas igiannakas closed this Jan 8, 2024
@igiannakas igiannakas deleted the pr-alternative-reduce-solid-wall-infill branch January 9, 2024 13:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants