update infill overlap

This commit is contained in:
Wang YB
2024-01-03 08:59:10 +08:00
parent 38ddeff65b
commit c6f7bed17e
4 changed files with 16 additions and 8 deletions

View File

@@ -340,10 +340,10 @@ std::vector<SurfaceFill> group_fills(const Layer &layer)
continue;
} else if (narrow_expolygons_index.size() == expolygons_size) {
// w11
surface_fills[i].params.pattern = ipConcentric;
surface_fills[i].params.pattern = ipConcentricInternal;
} else {
params = surface_fills[i].params;
params.pattern = ipConcentric;
params.pattern = ipConcentricInternal;
surface_fills.emplace_back(params);
surface_fills.back().region_id = surface_fills[i].region_id;
surface_fills.back().surface.surface_type = stInternalSolid;
@@ -547,7 +547,7 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive:
params.anchor_length = surface_fill.params.anchor_length;
params.anchor_length_max = surface_fill.params.anchor_length_max;
params.resolution = resolution;
params.use_arachne = (perimeter_generator == PerimeterGeneratorType::Arachne && surface_fill.params.pattern == ipConcentric) || surface_fill.params.pattern == ipEnsuring;
params.use_arachne = (perimeter_generator == PerimeterGeneratorType::Arachne && surface_fill.params.pattern == ipConcentricInternal) || surface_fill.params.pattern == ipEnsuring;
params.layer_height = layerm.layer()->height;
for (ExPolygon &expoly : surface_fill.expolygons) {
@@ -559,13 +559,14 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive:
try {
if (params.use_arachne) {
//w14
if (surface_fill.surface.surface_type == stInternalSolid) {
if (surface_fill.params.pattern == ipConcentricInternal) {
layerm.region().config().infill_overlap.percent ?
f->overlap = layerm.region().config().perimeter_extrusion_width * layerm.region().config().infill_overlap.value / 100 *(-1):
f->overlap = float(layerm.region().config().infill_overlap.value);
}
} else
f->overlap = 0;
thick_polylines = f->fill_surface_arachne(&surface_fill.surface, params);
f->overlap = 0;
}
else
polylines = f->fill_surface(&surface_fill.surface, params);
@@ -696,7 +697,8 @@ Polylines Layer::generate_sparse_infill_polylines_for_anchoring(FillAdaptive::Oc
case ipGyroid:
case ipHilbertCurve:
case ipArchimedeanChords:
case ipOctagramSpiral: break;
case ipOctagramSpiral:
case ipConcentricInternal: break;
}
// Create the filler object.