Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsupermerill <merill@free.fr>2020-09-18 04:15:30 +0300
committersupermerill <merill@free.fr>2020-09-18 04:16:15 +0300
commita4736245222c03c49e435acd199a9364f0bcbe2f (patch)
treee993ad2784782eeb71254685cd4f521500908c82
parentdf4b3c74243228f79822e77d62fe134e747133d1 (diff)
#448 less aggressive "perimeter removal for fake circles"2.2.53.2
update it from the new one from first perimeter one. Also restrict it a bit more to prevent over-extrusion.
-rw-r--r--src/libslic3r/PerimeterGenerator.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp
index 358cd2556..dd858250b 100644
--- a/src/libslic3r/PerimeterGenerator.cpp
+++ b/src/libslic3r/PerimeterGenerator.cpp
@@ -525,19 +525,19 @@ void PerimeterGenerator::process()
+(float)(min_spacing / 2 - 1));
ExPolygons no_thin_onion = offset_ex(last, double(-good_spacing));
- float div = 2;
- while (no_thin_onion.size() > 0 && next_onion.size() > no_thin_onion.size() && no_thin_onion.size() + next_onion.size() > 3) {
- div -= 0.3;
- if (div == 2) div -= 0.3;
+ std::vector<float> divs { 1.8, 1.6 }; //don't over-extrude, so don't use divider >2
+ size_t idx_div = 0;
+ while (next_onion.size() > no_thin_onion.size() && idx_div < divs.size()) {
+ float div = divs[idx_div];
//use a sightly bigger spacing to try to drastically improve the split, that can lead to very thick gapfill
ExPolygons next_onion_secondTry = offset2_ex(
last,
- -(float)(good_spacing + min_spacing / div - 1),
- +(float)(min_spacing / div - 1));
- if (next_onion.size() > next_onion_secondTry.size() * 1.1) {
+ -(float)(good_spacing + (min_spacing / div) - 1),
+ +(float)((min_spacing / div) - 1));
+ if (next_onion.size() > next_onion_secondTry.size() * 1.2 && next_onion.size() > next_onion_secondTry.size() + 2) {
next_onion = next_onion_secondTry;
}
- if (div > 3 || div < 1.2) break;
+ idx_div++;
}
} else {