mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-14 15:05:57 +08:00
no infill: allow margins and denser infill
This commit is contained in:
parent
147c8493a6
commit
f8b249b1c8
@ -144,7 +144,7 @@ std::vector<SurfaceFill> group_fills(const Layer &layer)
|
|||||||
params.pattern = ipRectiWithPerimeter;
|
params.pattern = ipRectiWithPerimeter;
|
||||||
params.connection = InfillConnection::icConnected;
|
params.connection = InfillConnection::icConnected;
|
||||||
}
|
}
|
||||||
if (params.density <= 0)
|
if (params.density <= 0 && !is_denser)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
//adjust spacing/density (to over-extrude when needed)
|
//adjust spacing/density (to over-extrude when needed)
|
||||||
|
@ -567,11 +567,11 @@ namespace Slic3r {
|
|||||||
tbb::parallel_for(
|
tbb::parallel_for(
|
||||||
tbb::blocked_range<size_t>(1, m_layers.size()),
|
tbb::blocked_range<size_t>(1, m_layers.size()),
|
||||||
[this](const tbb::blocked_range<size_t>& range) {
|
[this](const tbb::blocked_range<size_t>& range) {
|
||||||
for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) {
|
for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) {
|
||||||
m_print->throw_if_canceled();
|
m_print->throw_if_canceled();
|
||||||
m_layers[layer_idx]->make_ironing();
|
m_layers[layer_idx]->make_ironing();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
);
|
);
|
||||||
m_print->throw_if_canceled();
|
m_print->throw_if_canceled();
|
||||||
BOOST_LOG_TRIVIAL(debug) << "Ironing in parallel - end";
|
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)
|
for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx)
|
||||||
if (layer_expansions_and_voids[layer_idx + 1]) {
|
if (layer_expansions_and_voids[layer_idx + 1]) {
|
||||||
m_print->throw_if_canceled();
|
m_print->throw_if_canceled();
|
||||||
Polygons voids;
|
surfaces_covered[layer_idx] = to_polygons(this->m_layers[layer_idx]->lslices);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user