Add Z-pinning for inter-layer mechanical interlocking Feature/z pinning #322

Open
opened 2026-04-05 16:19:52 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @Deitiker on 3/14/2026

Implements Z-pinning as described by Duty et al. (ORNL 2019, OSTI 1808415).
Periodically deposits small filament slugs through the infill to mechanically
bond adjacent layers, improving Z-direction tensile and shear strength.

Validation

ASTM D638 Type IV dogbone (PLA): ~30% increase in Z-direction strength.

Feature summary

  • 10 new process settings under a "Z-Pinning" panel (disabled by default)
  • Pin grid computed in make_perimeters(), injected during GCode export
  • Supports spiral and stationary fill styles, XY stagger, layer stagger
  • Based on: Duty et al., Oak Ridge National Laboratory, 2019 (OSTI 1808415)

Bug fixes included

  • SeamPlacer: guard against race condition when apply() clears layers
    during compute_global_occlusion()
  • SeamPlacer: fallback to split_at() if seam data is missing/empty

Testing

Screenshot 2026-03-14 at 4 00 02 PM

*Originally created by @Deitiker on 3/14/2026* Implements Z-pinning as described by Duty et al. (ORNL 2019, OSTI 1808415). Periodically deposits small filament slugs through the infill to mechanically bond adjacent layers, improving Z-direction tensile and shear strength. ## Validation ASTM D638 Type IV dogbone (PLA): ~30% increase in Z-direction strength. ## Feature summary - 10 new process settings under a "Z-Pinning" panel (disabled by default) - Pin grid computed in make_perimeters(), injected during GCode export - Supports spiral and stationary fill styles, XY stagger, layer stagger - Based on: Duty et al., Oak Ridge National Laboratory, 2019 (OSTI 1808415) ## Bug fixes included - SeamPlacer: guard against race condition when apply() clears layers during compute_global_occlusion() - SeamPlacer: fallback to split_at() if seam data is missing/empty ## Testing - Tested with PLA using https://www.frankerfab.com/products/frankerfab-tensile-tester-3d-printed - Used default setting (see screenshot) - Test results on Creality K2 Plus, with Hyper PLA showed an average 47% increase in Z strength. ![Screenshot 2026-03-14 at 4 00 02 PM](https://github.com/user-attachments/assets/440fd080-7e42-4cae-afd1-7fd1ade0889e)
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#322