FIX: effiency issue in some cases with slope enhance
github:6186 Signed-off-by: xun.zhang <xun.zhang@bambulab.com> Change-Id: I534a71475ea9ebe0f6467e27e43cc2e3f9348f48
This commit is contained in:
parent
274a053673
commit
b3793dd812
|
@ -359,6 +359,7 @@ std::vector<SurfaceFill> group_fills(const Layer &layer)
|
|||
|
||||
// BBS: detect narrow internal solid infill area and use ipConcentricInternal pattern instead
|
||||
if (layer.object()->config().detect_narrow_internal_solid_infill) {
|
||||
const coordf_t narrow_threshold = scale_(NARROW_INFILL_AREA_THRESHOLD) * 2;
|
||||
ExPolygons lower_internal_areas;
|
||||
BoundingBox lower_internal_bbox;
|
||||
if (layer.lower_layer) {
|
||||
|
@ -381,8 +382,10 @@ std::vector<SurfaceFill> group_fills(const Layer &layer)
|
|||
// BBS: get the index list of narrow expolygon
|
||||
for (size_t j = 0; j < expolygons_size; j++) {
|
||||
auto bbox = get_extents(surface_fills[i].expolygons[j]);
|
||||
if (is_narrow_expolygon(surface_fills[i].expolygons[j], scale_(NARROW_INFILL_AREA_THRESHOLD) * 2)) {
|
||||
if (bbox.overlap(lower_internal_bbox) && !intersection_ex(offset_ex(surface_fills[i].expolygons[j],SCALED_EPSILON), lower_internal_areas).empty()) {
|
||||
auto clipped_internals = ClipperUtils::clip_clipper_polygons_with_subject_bbox(lower_internal_areas, bbox.inflated(scale_(2))); // expand a little
|
||||
auto clipped_internal_bbox = get_extents(clipped_internals);
|
||||
if (is_narrow_expolygon(surface_fills[i].expolygons[j], narrow_threshold)) {
|
||||
if (!clipped_internals.empty() && bbox.overlap(clipped_internal_bbox) && !intersection_ex(offset_ex(surface_fills[i].expolygons[j],SCALED_EPSILON), clipped_internals).empty()) {
|
||||
narrow_floating_expoly_idx.emplace_back(j);
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -651,8 +651,8 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, in
|
|||
toggle_line(el, support_is_tree);
|
||||
toggle_line("support_critical_regions_only", is_auto(support_type) && support_is_tree);
|
||||
|
||||
for (auto el : { "detect_floating_vertical_shell", "vertical_shell_speed" })
|
||||
toggle_line(el, config->option<ConfigOptionEnum<EnsureVerticalThicknessLevel>>("ensure_vertical_shell_thickness")->value != EnsureVerticalThicknessLevel::evtDisabled);
|
||||
toggle_line("detect_floating_vertical_shell", config->option<ConfigOptionBool>("detect_narrow_internal_solid_infill")->value);
|
||||
toggle_line("vertical_shell_speed", config->option<ConfigOptionBool>("detect_narrow_internal_solid_infill")->value, variant_index);
|
||||
|
||||
// tree support use max_bridge_length instead of bridge_no_support
|
||||
toggle_line("bridge_no_support", !support_is_tree);
|
||||
|
|
Loading…
Reference in New Issue