diff --git a/src/libslic3r/Fill/Fill.cpp b/src/libslic3r/Fill/Fill.cpp index ba4a8c638..d7d017bd3 100644 --- a/src/libslic3r/Fill/Fill.cpp +++ b/src/libslic3r/Fill/Fill.cpp @@ -144,7 +144,7 @@ std::vector group_fills(const Layer &layer) params.pattern = ipRectiWithPerimeter; params.connection = InfillConnection::icConnected; } - if (params.density <= 0) + if (params.density <= 0 && !is_denser) continue; } //adjust spacing/density (to over-extrude when needed) diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index b9822771f..2dd4d1c8b 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -567,11 +567,11 @@ namespace Slic3r { tbb::parallel_for( tbb::blocked_range(1, m_layers.size()), [this](const tbb::blocked_range& range) { - for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) { - m_print->throw_if_canceled(); - m_layers[layer_idx]->make_ironing(); + for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) { + m_print->throw_if_canceled(); + m_layers[layer_idx]->make_ironing(); + } } - } ); m_print->throw_if_canceled(); BOOST_LOG_TRIVIAL(debug) << "Ironing in parallel - end"; @@ -1439,17 +1439,7 @@ namespace Slic3r { for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) if (layer_expansions_and_voids[layer_idx + 1]) { m_print->throw_if_canceled(); - Polygons voids; - for (const LayerRegion* layerm : m_layers[layer_idx]->regions()) { - /// supermerill: why *0.3 ??? - float unsupported_width = -float(scale_(layerm->region()->config().external_infill_margin.get_abs_value( - layerm->region()->config().perimeters == 0 ? 0 : (layerm->flow(frExternalPerimeter).width + layerm->flow(frPerimeter).spacing() * (layerm->region()->config().perimeters - 1))))); - if (layerm->region()->config().fill_density.value == 0.) - for (const Surface& surface : layerm->fill_surfaces.surfaces) - // Shrink the holes, let the layer above expand slightly inside the unsupported areas. - polygons_append(voids, offset(surface.expolygon, unsupported_width)); - } - surfaces_covered[layer_idx] = diff(to_polygons(this->m_layers[layer_idx]->lslices), voids); + surfaces_covered[layer_idx] = to_polygons(this->m_layers[layer_idx]->lslices); } } );