ENH: improve tree support

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>
This commit is contained in:
Noisyfox
2025-01-26 22:11:30 +08:00
parent 51290a853d
commit 1d1df4b0a5
7 changed files with 268 additions and 310 deletions

View File

@@ -152,7 +152,9 @@ struct SupportParameters {
const coordf_t extrusion_width = object_config.line_width.get_abs_value(nozzle_diameter);
support_extrusion_width = object_config.support_line_width.get_abs_value(nozzle_diameter);
support_extrusion_width = support_extrusion_width > 0 ? support_extrusion_width : extrusion_width;
independent_layer_height = print_config.independent_support_layer_height;
tree_branch_diameter_double_wall_area_scaled = 0.25 * sqr(scaled<double>(object_config.tree_support_branch_diameter_double_wall.value)) * M_PI;
support_style = object_config.support_style;
@@ -241,6 +243,7 @@ struct SupportParameters {
float raft_interface_angle(size_t interface_id) const
{ return this->raft_angle_interface + ((interface_id & 1) ? float(- M_PI / 4.) : float(+ M_PI / 4.)); }
bool independent_layer_height = false;
const double thresh_big_overhang = Slic3r::sqr(scale_(10));
};