mirror of
https://github.com/QIDITECH/QIDISlicer.git
synced 2026-02-02 00:48:43 +03:00
update infill overlap
This commit is contained in:
@@ -340,10 +340,10 @@ std::vector<SurfaceFill> group_fills(const Layer &layer)
|
|||||||
continue;
|
continue;
|
||||||
} else if (narrow_expolygons_index.size() == expolygons_size) {
|
} else if (narrow_expolygons_index.size() == expolygons_size) {
|
||||||
// w11
|
// w11
|
||||||
surface_fills[i].params.pattern = ipConcentric;
|
surface_fills[i].params.pattern = ipConcentricInternal;
|
||||||
} else {
|
} else {
|
||||||
params = surface_fills[i].params;
|
params = surface_fills[i].params;
|
||||||
params.pattern = ipConcentric;
|
params.pattern = ipConcentricInternal;
|
||||||
surface_fills.emplace_back(params);
|
surface_fills.emplace_back(params);
|
||||||
surface_fills.back().region_id = surface_fills[i].region_id;
|
surface_fills.back().region_id = surface_fills[i].region_id;
|
||||||
surface_fills.back().surface.surface_type = stInternalSolid;
|
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 = surface_fill.params.anchor_length;
|
||||||
params.anchor_length_max = surface_fill.params.anchor_length_max;
|
params.anchor_length_max = surface_fill.params.anchor_length_max;
|
||||||
params.resolution = resolution;
|
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;
|
params.layer_height = layerm.layer()->height;
|
||||||
|
|
||||||
for (ExPolygon &expoly : surface_fill.expolygons) {
|
for (ExPolygon &expoly : surface_fill.expolygons) {
|
||||||
@@ -559,13 +559,14 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive:
|
|||||||
try {
|
try {
|
||||||
if (params.use_arachne) {
|
if (params.use_arachne) {
|
||||||
//w14
|
//w14
|
||||||
if (surface_fill.surface.surface_type == stInternalSolid) {
|
if (surface_fill.params.pattern == ipConcentricInternal) {
|
||||||
layerm.region().config().infill_overlap.percent ?
|
layerm.region().config().infill_overlap.percent ?
|
||||||
f->overlap = layerm.region().config().perimeter_extrusion_width * layerm.region().config().infill_overlap.value / 100 *(-1):
|
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);
|
f->overlap = float(layerm.region().config().infill_overlap.value);
|
||||||
}
|
|
||||||
|
} else
|
||||||
|
f->overlap = 0;
|
||||||
thick_polylines = f->fill_surface_arachne(&surface_fill.surface, params);
|
thick_polylines = f->fill_surface_arachne(&surface_fill.surface, params);
|
||||||
f->overlap = 0;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
polylines = f->fill_surface(&surface_fill.surface, params);
|
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 ipGyroid:
|
||||||
case ipHilbertCurve:
|
case ipHilbertCurve:
|
||||||
case ipArchimedeanChords:
|
case ipArchimedeanChords:
|
||||||
case ipOctagramSpiral: break;
|
case ipOctagramSpiral:
|
||||||
|
case ipConcentricInternal: break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create the filler object.
|
// Create the filler object.
|
||||||
|
|||||||
@@ -52,6 +52,8 @@ Fill* Fill::new_from_type(const InfillPattern type)
|
|||||||
case ipSupportBase: return new FillSupportBase();
|
case ipSupportBase: return new FillSupportBase();
|
||||||
case ipLightning: return new FillLightning::Filler();
|
case ipLightning: return new FillLightning::Filler();
|
||||||
case ipEnsuring: return new FillEnsuring();
|
case ipEnsuring: return new FillEnsuring();
|
||||||
|
//w14
|
||||||
|
case ipConcentricInternal: return new FillConcentric();
|
||||||
default: throw Slic3r::InvalidArgument("unknown type");
|
default: throw Slic3r::InvalidArgument("unknown type");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -116,7 +116,9 @@ static const t_config_enum_values s_keys_map_InfillPattern {
|
|||||||
{ "octagramspiral", ipOctagramSpiral },
|
{ "octagramspiral", ipOctagramSpiral },
|
||||||
{ "adaptivecubic", ipAdaptiveCubic },
|
{ "adaptivecubic", ipAdaptiveCubic },
|
||||||
{ "supportcubic", ipSupportCubic },
|
{ "supportcubic", ipSupportCubic },
|
||||||
{ "lightning", ipLightning }
|
{ "lightning", ipLightning },
|
||||||
|
//w14
|
||||||
|
{ "concentricInternal", ipConcentricInternal }
|
||||||
};
|
};
|
||||||
CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(InfillPattern)
|
CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(InfillPattern)
|
||||||
|
|
||||||
|
|||||||
@@ -66,6 +66,8 @@ enum InfillPattern : int {
|
|||||||
ipLightning,
|
ipLightning,
|
||||||
ipEnsuring,
|
ipEnsuring,
|
||||||
ipCount,
|
ipCount,
|
||||||
|
//w14
|
||||||
|
ipConcentricInternal,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class IroningType {
|
enum class IroningType {
|
||||||
|
|||||||
Reference in New Issue
Block a user