mirror of
https://github.com/QIDITECH/QIDISlicer.git
synced 2026-01-30 23:48:44 +03:00
update infill overlap
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -52,6 +52,8 @@ Fill* Fill::new_from_type(const InfillPattern type)
|
||||
case ipSupportBase: return new FillSupportBase();
|
||||
case ipLightning: return new FillLightning::Filler();
|
||||
case ipEnsuring: return new FillEnsuring();
|
||||
//w14
|
||||
case ipConcentricInternal: return new FillConcentric();
|
||||
default: throw Slic3r::InvalidArgument("unknown type");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,7 +116,9 @@ static const t_config_enum_values s_keys_map_InfillPattern {
|
||||
{ "octagramspiral", ipOctagramSpiral },
|
||||
{ "adaptivecubic", ipAdaptiveCubic },
|
||||
{ "supportcubic", ipSupportCubic },
|
||||
{ "lightning", ipLightning }
|
||||
{ "lightning", ipLightning },
|
||||
//w14
|
||||
{ "concentricInternal", ipConcentricInternal }
|
||||
};
|
||||
CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(InfillPattern)
|
||||
|
||||
|
||||
@@ -66,6 +66,8 @@ enum InfillPattern : int {
|
||||
ipLightning,
|
||||
ipEnsuring,
|
||||
ipCount,
|
||||
//w14
|
||||
ipConcentricInternal,
|
||||
};
|
||||
|
||||
enum class IroningType {
|
||||
|
||||
Reference in New Issue
Block a user