fix: keep support interface intact with variable layer heights - #696
Open
zackaree-shen wants to merge 1 commit into
Open
fix: keep support interface intact with variable layer heights#696zackaree-shen wants to merge 1 commit into
zackaree-shen wants to merge 1 commit into
Conversation
- Skip trimming the top contact layer by the object layer it directly supports: that layer's lslices cover the overhang itself and must not be used to trim the very contact layer supporting it - Previously this layer was excluded only by an EPSILON boundary coincidence of the trimming window; with variable layer heights the synchronised gap is shorter than the configured gap, so the supported layer fell inside the trimming window and its lslices trimmed ~80% of the contact area, leaving only fragmented support interface
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes support interface being fragmented (only ~21% area remaining) when variable layer heights are enabled on a model with a large overhang.
Root cause
trim_support_layers_by_objecttrims top contact layers using object layer lslices. With variable layer heights, the synchronised gap (sync_gap_with_object_layer) is shorter than the configured gap, so the object layer directly supported by the contact layer falls inside the trimming window. That layer's lslices cover the overhang region itself and trimmed ~80% of the contact area, leaving only fragmented support interface mixed with base support.Fix
Skip the object layer directly supported by a top contact layer (
i == support_layer.idx_object_layer_above) when collecting trimming polygons. This keeps the contact layer intact; fixed layer height behavior is unchanged (verified via debug logs: interface area 1.59e15 covers base fully, base_after = 0).Verification
Impact
src/libslic3r/Support/SupportMaterial.cpp(12 lines added)