From 3795a55e68728127f533218ee68f74fcb0d4cdbe Mon Sep 17 00:00:00 2001 From: remi durand Date: Thu, 10 Feb 2022 18:05:15 +0100 Subject: [PATCH] Fix overhangs_width disabling overhangs_width_speed if set to 0 supermerill/SuperSlicer#2340 --- src/libslic3r/PerimeterGenerator.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index cf835d160..229013740 100644 --- a/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp @@ -134,12 +134,12 @@ void PerimeterGenerator::process() } } - if (overhangs_width_speed > 0 && this->config->overhangs_width_speed.value < this->config->overhangs_width.value) { + if (overhangs_width_speed > 0 && (overhangs_width_speed < overhangs_width_flow || overhangs_width_flow == 0)) { this->_lower_slices_bridge_speed_small = offset((simplified.empty() ? *this->lower_slices : simplified), (coordf_t)overhangs_width_speed_90 - (coordf_t)(ext_perimeter_width / 2)); this->_lower_slices_bridge_speed_big = offset((simplified.empty() ? *this->lower_slices : simplified), (coordf_t)overhangs_width_speed_110 - (coordf_t)(ext_perimeter_width / 2)); } if (overhangs_width_flow > 0) { - if (overhangs_width_speed_110 == overhangs_width_flow_90 && this->config->overhangs_width_speed.value < this->config->overhangs_width.value) + if (overhangs_width_speed_110 == overhangs_width_flow_90 && overhangs_width_speed < overhangs_width_flow) this->_lower_slices_bridge_flow_small = this->_lower_slices_bridge_speed_big; else this->_lower_slices_bridge_flow_small = offset((simplified.empty() ? *this->lower_slices : simplified), (coordf_t)overhangs_width_flow_90 - (coordf_t)(ext_perimeter_width / 2)); @@ -1235,7 +1235,7 @@ ExtrusionPaths PerimeterGenerator::create_overhangs(const Polyline& loop_polygon Polylines big_flow; Polylines* previous = &ok_polylines; - if (this->config->overhangs_width_speed.value > 0 && this->config->overhangs_width_speed.value < this->config->overhangs_width.value) { + if (this->config->overhangs_width_speed.value > 0 && (this->config->overhangs_width_speed.value < this->config->overhangs_width.value || this->config->overhangs_width.value == 0)) { if (!this->_lower_slices_bridge_speed_small.empty()) { small_speed = diff_pl(*previous, this->_lower_slices_bridge_speed_small); if (!small_speed.empty()) {