Isolate narrow regions in internal solid surfaces for non-line infill patterns #941

Closed
opened 2026-04-05 16:36:46 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @kisslorand on 1/29/2026

Short description

When a non-line-based solid infill pattern is selected, narrow wall-adjacent regions within internal solid surfaces may not be geometrically suitable for reliable pattern generation.

This PR ensures such regions are explicitly identified and handled, instead of being implicitly passed to patterns that cannot robustly fill them.

Reasoning

Internal solid surfaces can include thin wall-adjacent slivers which line-based solid infill patterns can usually handle, but some non-line-based patterns may legitimately produce no paths there.
Previously, these narrow areas were not distinguished from the rest of the surface, which could result in incomplete coverage.

What the changes do

  • Apply conditional surface splitting only when a non-line-based solid infill pattern is used
  • Separate internal solid surfaces into:
    • a geometrically robust core that is filled normally by the selected pattern
    • a narrow remainder that is explicitly routed to narrow-infill handling
  • Preserve the existing, direction-aware behavior for line-based solid infill patterns

The impact of these changes

  • are limited only to the internal solid surfaces
  • affects only non-line-based solid infill patterns
  • does not modify wall placement, spacing rules, or infill generation logic
  • makes surface classification explicit, avoiding unhandled narrow regions

Fixes https://github.com/OrcaSlicer/OrcaSlicer/issues/12082

Screenshots

  • Before:
    image


  • After:
    image


  • Before:
    image


  • After:
    image

*Originally created by @kisslorand on 1/29/2026* ### Short description When a non-line-based solid infill pattern is selected, narrow wall-adjacent regions within internal solid surfaces may not be geometrically suitable for reliable pattern generation. This PR ensures such regions are explicitly identified and handled, instead of being implicitly passed to patterns that cannot robustly fill them. ### Reasoning Internal solid surfaces can include thin wall-adjacent slivers which line-based solid infill patterns can usually handle, but some non-line-based patterns may legitimately produce no paths there. Previously, these narrow areas were not distinguished from the rest of the surface, which could result in incomplete coverage. ### What the changes do - Apply **conditional surface splitting** only when a **non-line-based solid infill pattern** is used - Separate internal solid surfaces into: - a **geometrically robust core** that is filled normally by the selected pattern - a **narrow remainder** that is explicitly routed to narrow-infill handling - Preserve the existing, direction-aware behavior for line-based solid infill patterns ### The impact of these changes - are limited only to the internal solid surfaces - affects only non-line-based solid infill patterns - does not modify wall placement, spacing rules, or infill generation logic - makes surface classification explicit, avoiding unhandled narrow regions Fixes https://github.com/OrcaSlicer/OrcaSlicer/issues/12082 ### Screenshots - **Before:** <img width="1255" height="490" alt="image" src="https://github.com/user-attachments/assets/c6db3091-3005-4550-92e7-2cb918397305" /> <br><br> - **After:** <img width="1195" height="450" alt="image" src="https://github.com/user-attachments/assets/4f7468e2-36b5-4230-9c6a-22b1dc7d3461" /> <br><br> - **Before:** <img width="670" height="585" alt="image" src="https://github.com/user-attachments/assets/6838ce6f-54fc-402f-a039-ac2c817dcee4" /> <br><br> - **After:** <img width="659" height="571" alt="image" src="https://github.com/user-attachments/assets/f73627f5-d05f-4dd0-9446-a6a44fd72cc4" />
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#941