Skip to content

Add 2D honeycomb infill pattern#9483

Merged
Noisyfox merged 3 commits intoOrcaSlicer:mainfrom
elektrohenk:feature/2d_honeycomb_infill
Jun 18, 2025
Merged

Add 2D honeycomb infill pattern#9483
Noisyfox merged 3 commits intoOrcaSlicer:mainfrom
elektrohenk:feature/2d_honeycomb_infill

Conversation

@elektrohenk
Copy link
Contributor

@elektrohenk elektrohenk commented Apr 25, 2025

Description

Like 2D lattice, this infill pattern is primarily intended for aircraft wings. Infill in wings keeps the thin skin from bending under aerodynamic loads, similar to ribs and stringers in classic wing structures. Secondary it keeps the skin from oil canning while printing. The spacing of the infill along the skin needs to be sufficiently low enough. 2D lines (aligned rectilinear) at the required spacing would be the lightest option. It does however not provide torsional stiffness (top and bottom layers will provide some stiffness but do not keep the skin from buckling under torsional load). For torsional stiffness closed cells are needed to create a torsion box. 2D lattice does provide the required stiffness, but 2D honeycomb should give the same results at 33% lower weight. In practice the infill lines need to be wider due to the 60 degrees overhang in a pure honeycomb. Therefore a infill overhang angle parameter was added that stretches the pattern vertically. At lower overhang angles the pattern keeps its weight advantage. 2D honeycomb has some disadvantages too. Its density is not evenly distributed vertically. The pattern can not be subdivided by itself which results in infill line disconnects when density is increased locally using modifiers.

Screenshots/Recordings/Graphs

image

Tests

  • Checked many different infill parameter combinations.
  • Checked added parameters in compare presets.
  • Checked with modifiers.
  • Printed several test parts.

Notes

  • Special thanks to @LoftedAero for Add "2D Lattice" fill pattern for lightweight aircraft structures #8293 which was a very useful guide.
  • I find the "2D" naming somewhat misleading since the (standard) honeycomb is also a 2D pattern but extruded along a different axis. It fits however nicely in the GUI.
  • The icon shows the bed with a additional cyan line at the bottom to underline the different orientation.
  • 2D isogrid/triangles was implemented experimentally for local reinforcement subdividing the 2D honeycomb pattern without disconnects, but it's density is not spread nicely for support of small details requiring extra increase of density which made it heavier and higher density 2D honeycomb was preferred (OrcaSlicer will anyhow disconnect the infill lines at horizontal modifier boundaries currently).

Copy link
Collaborator

@Noisyfox Noisyfox left a comment

Choose a reason for hiding this comment

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

LGTM, thanks

@Noisyfox Noisyfox merged commit 0010dc6 into OrcaSlicer:main Jun 18, 2025
11 checks passed
pi-squared-studio added a commit to pi-squared-studio/OrcaSlicer that referenced this pull request Jun 18, 2025
commit 1003532
Merge: 92e2494 fe4a72e
Author: pi-squared-studio <[email protected]>
Date:   Thu Jun 19 00:04:45 2025 +0300

    Merge branch 'main' of https://github.com/pi-squared-studio/OrcaSlicer

commit fe4a72e
Author: Noisyfox <[email protected]>
Date:   Wed Jun 18 17:50:44 2025 +0800

    Upgrade clipper & improve multi-thread performance (OrcaSlicer#7177)

    * Clipper: Verify range of int32 coordinates on input.

    Cherry-picked from prusa3d/PrusaSlicer@fa7debf

    Co-authored-by: Vojtech Bubnik <[email protected]>

    * ClipperLib: Optimized PointInPolygon() to calculate cross products
     with int64s instead of doubles.

    Cherry-picked from prusa3d/PrusaSlicer@9dca840

    Co-authored-by: Vojtech Bubnik <[email protected]>

    * Reworked the ClipperLib / Polygon types to use
    the tbb::scallable_allocator to better scale on multiple threads.

    Cherry-picked from prusa3d/PrusaSlicer@9cde969

    Co-authored-by: Vojtech Bubnik <[email protected]>

    * use tbb::scallable_allocator for Polygons and ExPolygon::holes
    to better scale on multiple threads

    Cherry-picked from prusa3d/PrusaSlicer@b67ad64

    Co-authored-by: Vojtech Bubnik <[email protected]>

    * Fixed compilation on GCC and CLang

    Cherry-picked from prusa3d/PrusaSlicer@b3b4468

    Co-authored-by: Vojtech Bubnik <[email protected]>

    * Remove clipper2 which is not used

    * Removed shiny profiler from clipperlib

    Cherry-picked from prusa3d/PrusaSlicer@7e77048

    Co-authored-by: Vojtech Bubnik <[email protected]>

    * ClipperLib: Further optimization of memory allocation using scalable_allocator.
    ClipperLib: SimplifyPolygon() - changed default winding number to positive,
          added strictly_simple parameter.
    ClipperUtlis simplify_polygons() - removed "remove_collinear" parameter

    Cherry-picked from prusa3d/PrusaSlicer@a7e17df

    Co-authored-by: Vojtech Bubnik <[email protected]>

    * ClipperLib: emplace_back() instead of push_back().

    Cherry-picked from prusa3d/PrusaSlicer@2e15079

    Co-authored-by: Vojtech Bubnik <[email protected]>

    * Fixed issue in a 32bit clipper, where IntersectPoint() checked for
    the Y coordinate of the calculated intersection point for validity,
    but the Y coordinate was already rounded to 32bits, thus an overflow
    may have in rare cases masked invalidity of the result.

    Cherry-picked from prusa3d/PrusaSlicer@b39c334

    Co-authored-by: Vojtech Bubnik <[email protected]>

    * Fixed Vojtech's out of boundary assert in Clipper library.

    Cherry-picked from prusa3d/PrusaSlicer@0a202dc

    Co-authored-by: Vojtech Bubnik <[email protected]>

    * Update clipper to 6.4.2.

    Cherry-picked from prusa3d/PrusaSlicer@b8b3ccc

    Co-authored-by: Lukáš Hejl <[email protected]>

    * Try fix cmake opencv

    ---------

    Co-authored-by: Vojtech Bubnik <[email protected]>
    Co-authored-by: Lukáš Hejl <[email protected]>

commit 95b4334
Author: GlauTech <[email protected]>
Date:   Wed Jun 18 04:04:55 2025 +0300

    Valmet filament pla derivative filaments have been added. (OrcaSlicer#9913)

    Valmet filament pla derivative filaments have been added.

commit 0010dc6
Author: Henk <[email protected]>
Date:   Wed Jun 18 02:48:48 2025 +0200

    Add 2D honeycomb infill pattern (OrcaSlicer#9483)

    * Add 2D honeycomb infill pattern

    * Reverted change of 2D lattice infill void area estimation

    ---------

    Co-authored-by: Noisyfox <[email protected]>

commit 92e2494
Merge: 920b945 8a7f227
Author: pi-squared-studio <[email protected]>
Date:   Thu Jun 12 21:07:55 2025 +0300

    Merge branch 'Rotating_Infill'

commit 920b945
Author: pi-squared-studio <[email protected]>
Date:   Wed Jun 11 00:33:27 2025 +0300

    Feature: Fuzzy Skin Extrusion Mode

    This extension allows you to add new features to the fuzzy skin generator.
@SoftFever
Copy link
Collaborator

@elektrohenk
Thank you for the feature.
Just a heads-up, I will rename them to Lateral Honeycom to avoid confusion.
If you have any concerns, please feel free to let me know.

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.

3 participants