mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-10-19 06:41:14 -06:00
filter out tiny gaps
This commit is contained in:
parent
1a371a9417
commit
78b9fcb71b
13 changed files with 46 additions and 7 deletions
|
@ -467,6 +467,7 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive:
|
|||
params.no_extrusion_overlap = surface_fill.params.overlap;
|
||||
|
||||
LayerRegion* layerm = this->m_regions[surface_fill.region_id];
|
||||
params.config = &layerm->region().config();
|
||||
for (ExPolygon& expoly : surface_fill.expolygons) {
|
||||
f->no_overlap_expolygons = intersection_ex(layerm->fill_no_overlap_expolygons, ExPolygons() = { expoly });
|
||||
// Spacing is modified by the filler to indicate adjustments. Reset it for each expolygon.
|
||||
|
|
|
@ -74,6 +74,8 @@ struct FillParams
|
|||
bool using_internal_flow{ false };
|
||||
//BBS: only used for new top surface pattern
|
||||
float no_extrusion_overlap{ 0.0 };
|
||||
const PrintRegionConfig* config{ nullptr };
|
||||
|
||||
};
|
||||
static_assert(IsTriviallyCopyable<FillParams>::value, "FillParams class is not POD (and it should be - see constructor).");
|
||||
|
||||
|
|
|
@ -3169,9 +3169,17 @@ void FillMonotonicLineWGapFill::fill_surface_extrusion(const Surface* surface, c
|
|||
}
|
||||
|
||||
if (!polylines.empty() && !is_bridge(params.extrusion_role)) {
|
||||
if (!surface->is_top() && !surface->is_bottom()) {
|
||||
polylines.erase(std::remove_if(polylines.begin(), polylines.end(),
|
||||
[&](const ThickPolyline& p) {
|
||||
return p.length() < scale_(params.config->filter_out_gap_fill.value);
|
||||
}), polylines.end());
|
||||
}
|
||||
|
||||
ExtrusionEntityCollection gap_fill;
|
||||
variable_width(polylines, erGapFill, params.flow, gap_fill.entities);
|
||||
coll_nosort->append(std::move(gap_fill.entities));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue