diff --git a/xs/src/libslic3r/PerimeterGenerator.cpp b/xs/src/libslic3r/PerimeterGenerator.cpp index 594e385d92..af6447e7b4 100644 --- a/xs/src/libslic3r/PerimeterGenerator.cpp +++ b/xs/src/libslic3r/PerimeterGenerator.cpp @@ -120,17 +120,21 @@ PerimeterGenerator::process() // from the line width of the infill? coord_t distance = (i == 1) ? ext_pspacing2 : pspacing; - - //FIXME Vojtech: Why there is a special case for the thin walls? - // Gap fill is active all the time anyway and this is not the outer perimeter. -// if (this->config->thin_walls) { - if (false) { + 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