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

3D Honeycomb - switch direction at smallest bridge point, rather than every layer #4425

Merged
merged 4 commits into from
Mar 16, 2024
Merged

3D Honeycomb - switch direction at smallest bridge point, rather than every layer #4425

merged 4 commits into from
Mar 16, 2024

Conversation

gringer
Copy link
Contributor

@gringer gringer commented Mar 11, 2024

This is an update to my 3D Honeycomb / Truncated Octahedron infill code to make the infill pattern a lot stronger, and more likely to hold at very low infill percentages. The only bridging happens at the square horizontal faces, and only once per direction change. I have also made pattern density tweaks to make the infill percent better match the extruded density.

While the pattern does exclude two hexagonal walls with each direction, the strength should be similar to a fully-filled truncated octahedron pattern because the diamond verticals are preserved, and much stronger than the current implementation.

@SoftFever
Copy link
Owner

This is an update to my 3D Honeycomb / Truncated Octahedron infill code to make the infill pattern a lot stronger, and more likely to hold at very low infill percentages. The only bridging happens at the square horizontal faces, and only once per direction change. I have also made pattern density tweaks to make the infill percent better match the extruded density.

While the pattern does exclude two hexagonal walls with each direction, the strength should be similar to a fully-filled truncated octahedron pattern because the diamond verticals are preserved, and much stronger than the current implementation.

Thank you @gringer
Do you mind to post some screenshots/recording/comparisons/etc...?
It will help us to understand the proposed pattern(and attract community member to try/test and provide feedback to you).

@gringer
Copy link
Contributor Author

gringer commented Mar 12, 2024

Sure, here are a couple of images that demonstrate the new changes:

bridge_fix_animation

3dhoneycomb_bridge_fix

Here are a couple of video recordings of this new approach:

https://twitter.com/gringene_bio/status/1386901717019594752 [transparent filament]

https://twitter.com/gringene_bio/status/879212511836360704 [purple filament, sound is buggy]

FWIW, this was fixed in Slic3r in 2018, but that was shortly after Slic3r was forked for PrusaSlicer.

Here's what the infill pattern looked like in Slic3r before this change:

slicer_old

@SoftFever
Copy link
Owner

@gringer
This is nice. Even though its geometry is that of a honeycomb, the way it prints and the benefits it provides are more similar to gyroid. Plus, it prints faster than gyroid!

This would be a great addition to the infill patterns. I'd prefer it to be added as a new infill pattern instead of replacing the current '3D honeycomb'; maybe call it 'Truncated Octahedron'?
Let me know what you think.

image
Screenshot 2024-03-13 224254

@SoftFever SoftFever added the enhancement New feature or request label Mar 13, 2024
@Eldenroot
Copy link
Contributor

Yes, please - do not change the current one but add a new infill pattern, I like it!

@igiannakas
Copy link
Contributor

So if I get this right; this pattern doesnt overlap itself, same as gyroid, right? If so that's fantastic! A faster alternative is great :)!!

@gringer
Copy link
Contributor Author

gringer commented Mar 15, 2024

I'd prefer it to be added as a new infill pattern instead of replacing the current '3D honeycomb'; maybe call it 'Truncated Octahedron'?

This is a bug fix, not a feature request. It's the same pattern, just an update. We discussed the naming of this when the pattern was first introduced into Slic3r, and it was decided to call it "3D honeycomb" rather than "truncated octahedron (3D)". At that time there were no other 3D patterns:

slic3r/Slic3r#1646 (comment)

I agree that because there are now other 3D patterns, it would make more sense to call it Truncated Octahedron, but that would touch a few more files.

This fixes many bugs in the existing pattern. It should replace the existing 3D honeycomb pattern because the existing pattern is too weak. Both patterns have identical geometry (i.e. they're both truncated octahedrons), with direction switching for half the pattern time. The only difference is that this one switches direction less frequently (i.e. at the smallest bridge point rather than every layer).

For the existing pattern to work at all, it needed to have special bridge extrusion settings, which means that its speed is different from other infill, and its line width is harder to change.

There's no benefit in keeping the existing pattern.

See a mechanical comparison of the patterns here by @unicornswag:

https://forum.prusa3d.com/forum/prusaslicer/prusaslicers-3d-honeycomb-infill-is-sub-optimal/

@gringer
Copy link
Contributor Author

gringer commented Mar 15, 2024

So if I get this right; this pattern doesnt overlap itself, same as gyroid, right? If so that's fantastic! A faster alternative is great :)!!

Yes, the truncated octahedron pattern in the 3D Honeycomb infill is quite similar to gyroid. It's basically a straight version of it, i.e. what gyroid would look like if the sine waves were replaced with lines having 45º direction changes.

Unlike gyroid, it has no direction changes in mid air, and therefore is likely to have fewer stringing issues for very low infill percentages (e.g. 5%). Due to being straight lines rather than sine waves it also has a smaller GCode footprint, which can help a bit with printer reliability when printing from an attached computer.

@SoftFever
Copy link
Owner

SoftFever commented Mar 16, 2024

I'd prefer it to be added as a new infill pattern instead of replacing the current '3D honeycomb'; maybe call it 'Truncated Octahedron'?

This is a bug fix, not a feature request. It's the same pattern, just an update. We discussed the naming of this when the pattern was first introduced into Slic3r, and it was decided to call it "3D honeycomb" rather than "truncated octahedron (3D)". At that time there were no other 3D patterns:

slic3r/Slic3r#1646 (comment)

I agree that because there are now other 3D patterns, it would make more sense to call it Truncated Octahedron, but that would touch a few more files.

This fixes many bugs in the existing pattern. It should replace the existing 3D honeycomb pattern because the existing pattern is too weak. Both patterns have identical geometry (i.e. they're both truncated octahedrons), with direction switching for half the pattern time. The only difference is that this one switches direction less frequently (i.e. at the smallest bridge point rather than every layer).

For the existing pattern to work at all, it needed to have special bridge extrusion settings, which means that its speed is different from other infill, and its line width is harder to change.

There's no benefit in keeping the existing pattern.

See a mechanical comparison of the patterns here by @unicornswag:

https://forum.prusa3d.com/forum/prusaslicer/prusaslicers-3d-honeycomb-infill-is-sub-optimal/

Wow, 10 years ago? You rock!
I'm not too concerned about the names, we don't need to restart the naming discussion.

Personally, I haven’t used the current Honeycomb 3D infill due to the bridging issues. I’m confident your new 3D honeycomb will become a favorite among many users.

Regarding the replacement, unless we receive feedback suggesting a valid use case for the old version, I’m all for replacing it with the new Honeycomb 3D as well.

Copy link
Owner

@SoftFever SoftFever left a comment

Choose a reason for hiding this comment

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

Looks good

@SoftFever SoftFever merged commit 587fab2 into SoftFever:main Mar 16, 2024
12 checks passed
@SoftFever
Copy link
Owner

Merged.
Thanks @gringer

@SoftFever
Copy link
Owner

Quick testing results show very high quality, even at high printing speeds.

image
Filament: PETG
Infills printing speed: at 126 mm/s

image

@SoftFever
Copy link
Owner

And of course I have to try 200 mm/s infill speed as well :)
image

@igiannakas
Copy link
Contributor

Nice one! New default infill this 🎉

@gringer gringer deleted the 3Dhoneycomb_fix branch March 17, 2024 20:02
mjonuschat pushed a commit to mjonuschat/PrusaSlicer that referenced this pull request Apr 11, 2024
…ather than every layer

Code was taken without any changes from SoftFever/OrcaSlicer#4425
Original PrusaSlicer PR: prusa3d#6434
mjonuschat pushed a commit to mjonuschat/PrusaSlicer that referenced this pull request Apr 11, 2024
…ather than every layer

Code was taken without any changes from SoftFever/OrcaSlicer#4425
Original PrusaSlicer PR: prusa3d#6434
mjonuschat pushed a commit to mjonuschat/PrusaSlicer that referenced this pull request Apr 12, 2024
…ather than every layer

Code was taken without any changes from SoftFever/OrcaSlicer#4425
Original PrusaSlicer PR: prusa3d#6434
mjonuschat pushed a commit to mjonuschat/PrusaSlicer that referenced this pull request Apr 13, 2024
…ather than every layer

Code was taken without any changes from SoftFever/OrcaSlicer#4425
Original PrusaSlicer PR: prusa3d#6434
mjonuschat pushed a commit to mjonuschat/PrusaSlicer that referenced this pull request Apr 17, 2024
…ather than every layer

Code was taken without any changes from SoftFever/OrcaSlicer#4425
Original PrusaSlicer PR: prusa3d#6434
mjonuschat pushed a commit to mjonuschat/PrusaSlicer that referenced this pull request Jun 4, 2024
…ather than every layer

Code was taken without any changes from SoftFever/OrcaSlicer#4425
Original PrusaSlicer PR: prusa3d#6434
mjonuschat pushed a commit to mjonuschat/PrusaSlicer that referenced this pull request Jun 23, 2024
…ather than every layer

Code was taken without any changes from SoftFever/OrcaSlicer#4425
Original PrusaSlicer PR: prusa3d#6434
mjonuschat pushed a commit to mjonuschat/PrusaSlicer that referenced this pull request Jun 25, 2024
…ather than every layer

Code was taken without any changes from SoftFever/OrcaSlicer#4425
Original PrusaSlicer PR: prusa3d#6434
mjonuschat pushed a commit to mjonuschat/PrusaSlicer that referenced this pull request Jun 26, 2024
…ather than every layer

Code was taken without any changes from SoftFever/OrcaSlicer#4425
Original PrusaSlicer PR: prusa3d#6434
mjonuschat pushed a commit to mjonuschat/PrusaSlicer that referenced this pull request Jun 27, 2024
…ather than every layer

Code was taken without any changes from SoftFever/OrcaSlicer#4425
Original PrusaSlicer PR: prusa3d#6434
mjonuschat pushed a commit to mjonuschat/PrusaSlicer that referenced this pull request Sep 13, 2024
…ather than every layer

Code was taken without any changes from SoftFever/OrcaSlicer#4425
Original PrusaSlicer PR: prusa3d#6434
mjonuschat pushed a commit to mjonuschat/PrusaSlicer that referenced this pull request Sep 15, 2024
…ather than every layer

Code was taken without any changes from SoftFever/OrcaSlicer#4425
Original PrusaSlicer PR: prusa3d#6434
mjonuschat pushed a commit to mjonuschat/PrusaSlicer that referenced this pull request Sep 16, 2024
…ather than every layer

Code was taken without any changes from SoftFever/OrcaSlicer/pull/4425
Original PrusaSlicer PR: prusa3d/pull/6434
mjonuschat pushed a commit to mjonuschat/PrusaSlicer that referenced this pull request Sep 19, 2024
…ather than every layer

Code was taken without any changes from SoftFever/OrcaSlicer/pull/4425
Original PrusaSlicer PR: prusa3d/pull/6434
mjonuschat pushed a commit to mjonuschat/PrusaSlicer that referenced this pull request Oct 12, 2024
…ather than every layer

Code was taken without any changes from SoftFever/OrcaSlicer/pull/4425
Original PrusaSlicer PR: prusa3d/pull/6434
mjonuschat pushed a commit to mjonuschat/PrusaSlicer that referenced this pull request Oct 12, 2024
…ather than every layer

Code was taken without any changes from SoftFever/OrcaSlicer/pull/4425
Original PrusaSlicer PR: prusa3d/pull/6434
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants