From 7d5b42298585b6990cfa1a347915bfd55446a7c7 Mon Sep 17 00:00:00 2001 From: supermerill Date: Thu, 1 Oct 2020 21:59:08 +0200 Subject: [PATCH] fix thin_walls "fake-curve smoothing" --- src/libslic3r/PerimeterGenerator.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index 3adc134b6..bae0428bd 100644 --- a/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp @@ -430,7 +430,7 @@ void PerimeterGenerator::process() // look for thin walls if (this->config->thin_walls) { // detect edge case where a curve can be split in multiple small chunks. - std::vector divs = {2.2f,1.75f,1.5f}; //don't go too far, it's not possible to print thinw wall after that + std::vector divs = { 2.1f, 1.9f, 2.2f, 1.75f, 1.5f}; //don't go too far, it's not possible to print thin wall after that size_t idx_div = 0; while (next_onion.size() > last.size() && idx_div < divs.size()) { float div = divs[idx_div]; @@ -439,7 +439,7 @@ void PerimeterGenerator::process() last, -(float)((ext_perimeter_width / 2) + (ext_min_spacing / div) - 1), +(float)((ext_min_spacing / div) - 1)); - if (next_onion.size() > next_onion_secondTry.size() * 1.2 || next_onion.size() - next_onion_secondTry.size() > 3) { + if (next_onion.size() > next_onion_secondTry.size() * 1.2 && next_onion.size() > next_onion_secondTry.size() + 2) { next_onion = next_onion_secondTry; } idx_div++;