Improve tree support interfaces in build-plate-only mode - #11635
Conversation
|
@BenJule Thank you for your support. However, as shown in the picture, simply expanding the area to get the interface will create a lot of overhanging interface lines. These lines may warp or peel off, which could cause the print to fail. |
|
Thanks for pointing this out. You're right: expanding the surviving branch area can create interface paths that extend beyond the actually supported footprint, so those lines may warp or detach. I'll drop the dilation-based approach rather than just tuning the expansion distance. A proper fix needs to guarantee that every added interface region is backed by generated support on the layers below. I'll rework the approach and validate the resulting toolpaths with the supplied 3MF before updating the PR. |
c258765 to
b885a62
Compare
Build-plate-only tree support prunes branches that cannot reach the build plate. Restoring the normal full-overhang interface afterward is unsafe because it may recreate interface paths above support that was removed. Build a cumulative supported footprint from the surviving tree geometry. For each support layer, additional requested interface may grow by at most half an extrusion width from geometry that was actually printable on the preceding layer. Only recovered interface that is itself printable on the current layer is allowed to propagate to the next layer. This lets neighbouring surviving branches gradually form a continuous interface while preventing unsupported interface regions from appearing above pruned branches. The normal non-build-plate-only path remains unchanged and this fix does not use tree-support branch-distance dilation. Addresses bambulab#11630
b885a62 to
cd09fd6
Compare
|
@NothFie Thanks again for pointing out the problem with the original approach. I have now replaced the dilation-based implementation completely. The updated version no longer expands the interface using In On build plate only mode, it now builds a cumulative layer-wide footprint from geometry that is actually printable. Additional requested interface on a layer is accepted only where it can be reached from the printable geometry on the preceding support layer, with growth limited to half of one support extrusion width. Only the resulting printable geometry can propagate further to the next layer. I validated the updated implementation with the supplied 3MF:
So the goal is no longer to restore the complete overhang in build-plate-only mode. The recovered interface is deliberately limited by the support that can actually be carried through the surviving tree. Could you please take another look at the updated approach? |

Summary
Problem
Tree support normally uses the overhang area when generating the support interface. In On build plate only mode, branches that cannot reach the build plate are pruned first.
Reusing the complete overhang afterward is unsafe because it can recreate interface paths above branches that no longer exist. Restricting the interface to the individual surviving tree-node footprints, however, leaves considerably less interface coverage than necessary.
Approach
For build-plate-only tree support, this change builds a cumulative supported footprint across the support layers.
For each layer:
This allows neighbouring surviving tree branches to gradually form a more continuous interface while preventing interface regions above pruned support from being restored.
The previous
tree_support_branch_distancedilation is no longer used by this fix.When On build plate only is disabled, the existing full-overhang interface path remains unchanged.
Validation
Tested commit:
cd09fd64a4ac2619696759660caac2ea06d28f5bSource validation:
git diff --checkpassesTreeSupport.cpp-fsyntax-onlycompile check passessrc/libslic3r/Support/TreeSupport.cppCI:
BUILD_APP=trueBambuStudio-pr-11635-cd09fd64a4ac-debian-trixie.tar.gzRuntime validation with the supplied 3MF using Bambu Lab X1 Carbon, Tree Strong and the same slicing settings:
On build plate only = ON
For comparison, earlier conservative candidates produced only 0.10 m and 0.17 m of support interface.
Representative single-layer inspection around layers 325, 326 and 327 was also performed. In the inspected regions, the recovered interface remained aligned with generated support on the layer below and no large unsupported interface islands like those produced by the original dilation approach were observed.
On build plate only = OFF
Control slice:
These values match the previous non-build-plate-only reference, confirming that the normal path remains unchanged.
Addresses #11630