fix: regenerate tree supports on move and grow branch bases near the bed - #789
Open
zackaree-shen wants to merge 2 commits into
Open
fix: regenerate tree supports on move and grow branch bases near the bed#789zackaree-shen wants to merge 2 commits into
zackaree-shen wants to merge 2 commits into
Conversation
Tree support branches are routed against the machine border anchored to the instance shift, so a pure XY move (drag / center / arrange) made the cached support layers stale: the sliced G-code kept the supports computed for the old position until a config option was toggled. set_instances() only invalidated psSkirtBrim/psGCodeExport (Print-level steps), which never cascade to posSupportMaterial (PrintObject-level). Now tree-support objects also invalidate posSupportMaterial on instance changes. Regular supports are computed in object coordinates and stay valid on translation, so the cheap invalidation is kept for them.
Grow branch radius by half an extrusion width per layer for nodes in the first ~2 mm above the bed (when wall count is auto or dual-wall), so tree bases fill cavities/grooves instead of spilling out of them. - DO_NOT_MOVER_UNDER_MM becomes a class constant of 2.0 mm (was a local is_slim ? 0 : 5), matching BambuStudio behavior - drop_nodes(): add bottom_expand_enabled gate and apply the radius growth when dropping nodes near the bed Refs BambuStudio STUDIO-18228/18439 (OrcaSlicer#10542/OrcaSlicer#10775)
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.
Description
Two independent tree-support fixes:
1. Tree supports were not regenerated after moving / centering an object
PrintObject::set_instances()only invalidated the Print-level steps (psSkirtBrim,psGCodeExport) on a pure XY translation, which never cascade to the PrintObject-levelposSupportMaterialstep.posSupportMaterialon instance changes. Regular supports are computed in object coordinates and stay valid on translation, so the cheap skirt/gcode-only invalidation is kept for them (no performance regression when dragging objects).2. Tree support branches spill out of grooves/cavities (ported from BambuStudio d61ebefa2, STUDIO-18228/18439, OrcaSlicer#10542/OrcaSlicer#10775)
DO_NOT_MOVER_UNDER_MMbecomes a class constant of 2.0 mm (was a localis_slim ? 0 : 5).drop_nodes(): addbottom_expand_enabledgate and apply the radius growth when dropping nodes near the bed.Screenshots/Recordings/Graphs
To be attached during manual validation (groove test model): before this PR the groove model produced 559 fine support markers spilling outside the groove (vs BambuStudio 37 stout markers inside).
Tests