* Fix support interface semantics and gap handling
Fix zero-gap interface detection and gap initialization for supports and raft.
Ensures correct top/bottom contact semantics and avoids relying on default zero gaps.
* Additional fixes and robustness improvements
Fix incorrect coupling between top and bottom support interface spacing and density, ensuring bottom interfaces use their own parameters for smoothing and toolpath generation.
Restore correct bottom interface generation for organic (tree) supports when a non-zero bottom Z gap is used, and preserve contacts even when base polygons are empty.
Improve robustness of organic support slicing by fixing layer index drift and guarding against degenerate polygon boolean operations.
* Typo and semantics fix
differnt_support_interface_filament -> different_support_interface_filament
soluble -> zero_top_z_gap
* Fix non organic tree bottom support interface generation
Slim tree bottom interface layer numbers were capped by the object's layer number beneath it.
Fixed by refactoring the generation algorithm.
* Fix non organic tree interlaced support generation
Deterministic local interlaced support layers generation for non-organic tree support
* Enable support interface multimaterial for non organic tree
Enables mixed-material support interface behavior for non organic tree support type.
* Fix tree support interface layer counts and contact handling
- Correct non‑organic tree top interface layer budgeting so gaps don’t consume a layer (N stays N).
- Remove the extra roof interface pass that was duplicating the 2nd layer.
- Organic tree: use only the lowest contact footprint and avoid extra bottom‑contact extrusion so interface count matches the user setting.
* Bugfixes (a lot)
Many, many bugs fixed, majority edge-case but still not playing by the rule.
Some of them:
- on multilevel base, on very small level variations the support was capped to the topmost level height
- non-organic tree had gaps for supports in a multilevel base situiation
- independent support layer height had issues with support interfaces (base support beneath bottom interface, top contact layer sometimes missing)
- organic tree had issues with small variation multi-level base
- organic tree support with zero top Z distance could overlap support-material and interface-material paths when separate materials were used
- many, many others (I lost track of them)
* Generate support interface iron extrusion
* Always ironing last
* Add options
* Move ironing speed to speed tab
* Don't iron places that are covered by upper support layers
* Disable support interface spacing settings when support ironing is enabled
* Update text
/run/build/BambuStudio/src/libslic3r/Support/SupportParameters.hpp: In constructor ‘Slic3r::SupportParameters::SupportParameters(const Slic3r::PrintObject&)’:
/run/build/BambuStudio/src/libslic3r/Support/SupportParameters.hpp:172:39: error: ‘warning’ was not declared in this scope
172 | BOOST_LOG_TRIVIAL(warning) << "tree support default to organic support";
| ^~~~~~~
/run/build/BambuStudio/src/libslic3r/Support/SupportParameters.hpp:172:21: error: ‘BOOST_LOG_TRIVIAL’ was not declared in this scope
172 | BOOST_LOG_TRIVIAL(warning) << "tree support default to organic support";
| ^~~~~~~~~~~~~~~~~
/run/build/BambuStudio/src/libslic3r/Support/SupportParameters.hpp:175:39: error: ‘warning’ was not declared in this scope
175 | BOOST_LOG_TRIVIAL(warning) << "tree support default to hybrid tree due to adaptive layer height";
| ^~~~~~~
/run/build/BambuStudio/src/libslic3r/Support/SupportParameters.hpp:175:21: error: ‘BOOST_LOG_TRIVIAL’ was not declared in this scope
175 | BOOST_LOG_TRIVIAL(warning) << "tree support default to hybrid tree due to adaptive layer height";
| ^~~~~~~~~~~~~~~~~
(cherry picked from commit a63070bd4cbe012315b9532f5c199f6d2664333a)
Change the behavior of "tree support wall count" option, let it control precisely.
0 means auto.
jira: STUDIO-8068
github: 4780
Change-Id: I6d1a64cff9b121f5c0a3e910c5ddbfe6db198687
(cherry picked from commit a557bbe758cd352fa9bb48323995ed2c90737577)
1. add rectilinear interface pattern for organic support
jira: STUDIO-7181
2. add tree support optgroup
Change-Id: I94882bc34a61c6adc06b8ecbc9f2323f9b039aac
(cherry picked from commit a8142ab3f37e0bd140a31a7e635b8475f471d7e3)
(cherry picked from commit 69cf816b9431bc21ca0187c7db1148e2d2e898ab)
1. open support wall count for normal support
Enabling this option makes normal support stronger and gives
better overhang quality, but also more difficult to removal.
Jira: STUDIO-5192
2. fix a bug where tree support (hybrid style) may get overlapped
extrusions near the walls.
3. fix a bug where raft layers can't be 1 in tree support
Jira: STUDIO-5261
Change-Id: Iadc0c67a9b50b5b221c8e83d5aa22ed282018cf8
(cherry picked from commit c0bb0084e386cb70ed6e16edf93190e4b38f5b90)
(cherry picked from commit bf93fd02fb)
1. add a hook inside tree branches for improved strength
2. fix the issue that interface may fly as a mess (delete the logic
where gap nodes can skip dropping down)
3. fix the issue that base nodes may fly as a mess (smoothing should
skip polygon nodes, see Jira:STUDIO-4403)
Change-Id: Ie9f2039813c2ca3127ed8913304cc455fec8e7ee
(cherry picked from commit 83cef5f91d49ff3d275a89ec3df8b5f0fd573f8c)
(cherry picked from commit bambulab/BambuStudio@76f876a3c6)
Co-authored-by: Arthur <arthur.tang@bambulab.com>
* Initial port of organic tree support from PrusaSlicer
* Port missing Organic support parameters from PrusaSlicer
* Update parameter naming
* Reorganize the `raft_first_layer_expansion` and `raft_first_layer_density` parameters as they are not only used by rafts
* Reset support style only in simple mode
* Sync latest update from PrusaSlicer & copyrights
* Fix organic tree support crash with invalid parameters
---------
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>