update infill_overlap

This commit is contained in:
Wang YB
2023-12-30 10:45:44 +08:00
parent b92ad8b784
commit bb8113dee9
2 changed files with 22 additions and 1 deletions

View File

@@ -62,6 +62,9 @@ struct SurfaceFillParams
// Index of this entry in a linear vector.
size_t idx = 0;
//w14
double perimeter_extrusion_width = 0;
double infill_overlap = 0;
bool operator<(const SurfaceFillParams &rhs) const {
@@ -549,6 +552,9 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive:
params.resolution = resolution;
params.use_arachne = (perimeter_generator == PerimeterGeneratorType::Arachne && surface_fill.params.pattern == ipConcentric) || surface_fill.params.pattern == ipEnsuring;
params.layer_height = layerm.layer()->height;
//w14
const PrintRegionConfig &getregion = layerm.region().config();
params.perimeter_extrusion_width = float(getregion.perimeter_extrusion_width);
for (ExPolygon &expoly : surface_fill.expolygons) {
// Spacing is modified by the filler to indicate adjustments. Reset it for each expolygon.
@@ -557,8 +563,18 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive:
Polylines polylines;
ThickPolylines thick_polylines;
try {
if (params.use_arachne)
if (params.use_arachne) {
//w14
if (surface_fill.surface.surface_type == stInternalSolid) {
getregion.infill_overlap.percent ?
params.temp_set = params.perimeter_extrusion_width *getregion.infill_overlap.value / 100 :
params.temp_set = float(getregion.infill_overlap.value);
f->overlap = params.temp_set * (-1);
}
thick_polylines = f->fill_surface_arachne(&surface_fill.surface, params);
f->overlap = 0;
}
else
polylines = f->fill_surface(&surface_fill.surface, params);
} catch (InfillFailedException &) {

View File

@@ -63,6 +63,11 @@ struct FillParams
bool use_arachne { false };
// Layer height for Concentric infill with Arachne.
coordf_t layer_height { 0.f };
//w14
double perimeter_extrusion_width{0};
double infill_overlap {0};
double castifop{0};
float temp_set;
};
static_assert(IsTriviallyCopyable<FillParams>::value, "FillParams class is not POD (and it should be - see constructor).");