Skip to content

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

Merged
ianalexis merged 1 commit into
OrcaSlicer:mainfrom
kisslorand:refactor-nonline-internal-solid-surface-split
Feb 3, 2026
Merged

Isolate narrow regions in internal solid surfaces for non-line infill patterns#12107
ianalexis merged 1 commit into
OrcaSlicer:mainfrom
kisslorand:refactor-nonline-internal-solid-surface-split

Conversation

@kisslorand

Copy link
Copy Markdown
Contributor

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 #12082

Screenshots

  • Before:
image

  • After:
image

  • Before:
image

  • After:
image

@valerii-bokhan

Copy link
Copy Markdown
Contributor

Hello. I plan to test it this weekend 👍

@RF47

RF47 commented Feb 1, 2026

Copy link
Copy Markdown
Collaborator

It worked in my tests.
image
image

@kisslorand

kisslorand commented Feb 1, 2026

Copy link
Copy Markdown
Contributor Author

@RF47
You should check also at the lower height, where you have your first roof. Also check with more complicated infill pattern (rather than concentric as it is more able to fill small spaces).

@RF47

RF47 commented Feb 1, 2026

Copy link
Copy Markdown
Collaborator

the gap bug shown in #12082 occurs with concentric solid infill.
I don't know if I'm missing something, but I think the gap only occurs when using concentric solid infill; it works fine with any other solid infill.

I also test it with all non linear solid infill patterns.
intermediate roof working fine:
image

@RF47

RF47 commented Feb 1, 2026

Copy link
Copy Markdown
Collaborator

original concentric solid infill:
image
original monotonic solid infill:
image
this PR concentric solid infill:
image>

@kisslorand

Copy link
Copy Markdown
Contributor Author

Thank you for testing!

@valerii-bokhan

Copy link
Copy Markdown
Contributor

I ran some tests and haven't had any issues so far. I will print more test objects this week as well.

When a non-line-based solid infill pattern is used, split internal solid surfaces
into a fillable core and a narrow remainder. Line-based patterns keep the existing
behavior.

This avoids routing narrow wall-adjacent regions to patterns that cannot reliably
fill them, while keeping surface classification explicit.
@kisslorand kisslorand force-pushed the refactor-nonline-internal-solid-surface-split branch from 4df9989 to b802c6f Compare February 2, 2026 23:29
@ianalexis

Copy link
Copy Markdown
Collaborator

I ran some tests and haven't had any issues so far. I will print more test objects this week as well.

Same here

@ianalexis ianalexis left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM

@ianalexis ianalexis merged commit c302355 into OrcaSlicer:main Feb 3, 2026
12 checks passed
@kisslorand kisslorand deleted the refactor-nonline-internal-solid-surface-split branch April 21, 2026 09:42
@kisslorand kisslorand restored the refactor-nonline-internal-solid-surface-split branch April 21, 2026 14:04
@kisslorand kisslorand deleted the refactor-nonline-internal-solid-surface-split branch April 21, 2026 14:05
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.

Internal bridge supports not generated for nonlinear solid infill patterns

4 participants