From 9ed127274e1fc70c126ff1f800fef1ae641fa123 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Sat, 12 Nov 2016 19:04:40 +0100 Subject: [PATCH] Fixes https://github.com/prusa3d/Slic3r/issues/32#issuecomment-260135542 Reverts an inadverent bug introduced in https://github.com/prusa3d/Slic3r/commit/4460b5ce50c7160cd922972a190c27bf4381ffbd Conflicts: xs/src/libslic3r/PerimeterGenerator.cpp --- xs/src/libslic3r/PerimeterGenerator.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/xs/src/libslic3r/PerimeterGenerator.cpp b/xs/src/libslic3r/PerimeterGenerator.cpp index 574dcebe2d..89d0f06c51 100644 --- a/xs/src/libslic3r/PerimeterGenerator.cpp +++ b/xs/src/libslic3r/PerimeterGenerator.cpp @@ -121,12 +121,20 @@ PerimeterGenerator::process() coord_t distance = (i == 1) ? ext_pspacing2 : pspacing; if (this->config->thin_walls) { + // This path will ensure, that the perimeters do not overfill, as in + // prusa3d/Slic3r GH #32, but with the cost of rounding the perimeters + // excessively, creating gaps, which then need to be filled in by the not very + // reliable gap fill algorithm. + // Also the offset2(perimeter, -x, x) may sometimes lead to a perimeter, which is larger than + // the original. offsets = offset2( last, -(distance + min_spacing/2 - 1), +(min_spacing/2 - 1) ); } else { + // If "detect thin walls" is not enabled, this paths will be entered, which + // leads to overflows, as in prusa3d/Slic3r GH #32 offsets = offset( last, -distance