diff --git a/src/libslic3r/TreeSupport.cpp b/src/libslic3r/TreeSupport.cpp index c774bf1bec..6dda3704a1 100644 --- a/src/libslic3r/TreeSupport.cpp +++ b/src/libslic3r/TreeSupport.cpp @@ -1101,7 +1101,7 @@ void TreeSupport::detect_overhangs(bool detect_first_sharp_tail_only) SupportLayer* ts_layer = m_object->get_support_layer(layer_nr + m_raft_layers); auto layer = m_object->get_layer(layer_nr); auto lower_layer = layer->lower_layer; - if (support_critical_regions_only) { + if (support_critical_regions_only && is_auto(stype)) { ts_layer->overhang_areas.clear(); if (lower_layer == nullptr) ts_layer->overhang_areas = layer->sharp_tails; @@ -1153,7 +1153,8 @@ void TreeSupport::detect_overhangs(bool detect_first_sharp_tail_only) if (svg.is_opened()) { svg.draw_outline(m_object->get_layer(layer->id())->lslices, "yellow"); svg.draw(layer->overhang_areas, "orange"); - svg.draw(blockers[layer->id()], "red"); + if (blockers.size() > layer->id()) + svg.draw(blockers[layer->id()], "red"); for (auto& overhang : layer->overhang_areas) { double aarea = overhang.area()/ area_thresh_well_supported; auto pt = get_extents(overhang).center(); @@ -3481,7 +3482,8 @@ void TreeSupport::generate_contact_points(std::vectoroverhang_types[&overhang_part] == SupportLayer::Detected) { + // add supports at corners for both auto and manual overhangs, github #2008 + if (/*ts_layer->overhang_types[&overhang_part] == SupportLayer::Detected*/1) { // add points at corners auto &points = overhang_part.contour.points; int nSize = points.size(); diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 504d3ebff5..af7e7f8706 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -607,7 +607,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co "support_interface_pattern", "support_interface_top_layers", "support_interface_bottom_layers", "bridge_no_support", "max_bridge_length", "support_top_z_distance", "support_bottom_z_distance", //BBS: add more support params to dependent of enable_support - "support_type", "support_on_build_plate_only", "support_critical_regions_only", + "support_type", "support_on_build_plate_only", "support_remove_small_overhang", "support_object_xy_distance"/*, "independent_support_layer_height"*/}) toggle_field(el, have_support_material); @@ -621,6 +621,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co // hide tree support settings when normal is selected for (auto el : {"tree_support_branch_angle", "tree_support_wall_count", "tree_support_branch_distance", "tree_support_branch_diameter", "max_bridge_length","tree_support_brim_width" }) toggle_line(el, support_is_tree); + toggle_line("support_critical_regions_only", is_auto(support_type) && support_is_tree); // tree support use max_bridge_length instead of bridge_no_support toggle_line("bridge_no_support", !support_is_tree);