Fix hybrid tree first-layer support base behavior and expose density setting (#13454)
Fix hybrid tree first-layer support base flow and UI consistency Fix incorrect first-layer generation for hybrid tree supports. The support base on the first layer used brim flow instead of support material flow, which could lead to incorrect extrusion behavior and wrong material usage in multi-material prints. Additionally, spacing and density for the regular support part were not consistently derived from the actual first-layer support flow when first-layer and regular line widths differed. Hybrid-specific behavior is clarified: - first-layer expansion applies only to the regular support part - tree-only regions keep their existing behavior The first-layer support pattern is aligned with normal and organic tree supports to ensure consistent and meaningful density behavior. Also make first-layer support expansion and density settings visible whenever supports are enabled, as density was already affecting hybrid supports but was hidden in the UI.
This commit is contained in:
@@ -788,9 +788,12 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
|
||||
|
||||
toggle_line("raft_contact_distance", have_raft && !have_support_soluble);
|
||||
|
||||
// Orca: Raft, grid, snug and organic supports use these two parameters to control the size & density of the "brim"/flange
|
||||
for (auto el : { "raft_first_layer_expansion", "raft_first_layer_density"})
|
||||
toggle_field(el, have_support_material && !(support_is_normal_tree && !have_raft));
|
||||
// Orca: First-layer density is available for supports broadly.
|
||||
toggle_field("raft_first_layer_density", have_support_material);
|
||||
// Orca: For regular tree (Slim/Strong) without raft, hide first-layer expansion.
|
||||
// Keep it enabled for non-tree supports, organic tree, hybrid tree, and any raft case.
|
||||
toggle_field("raft_first_layer_expansion",
|
||||
have_support_material && ((!support_is_normal_tree || support_style == smsTreeHybrid) || have_raft));
|
||||
|
||||
bool has_ironing = (config->opt_enum<IroningType>("ironing_type") != IroningType::NoIroning);
|
||||
for (auto el : { "ironing_pattern", "ironing_flow", "ironing_spacing", "ironing_angle", "ironing_inset", "ironing_angle_fixed" })
|
||||
|
||||
Reference in New Issue
Block a user