Add filament shrink

This commit is contained in:
QIDI TECH
2024-02-22 16:53:56 +08:00
parent 9856ad7031
commit ca4f336d62
6 changed files with 60 additions and 7 deletions

View File

@@ -234,6 +234,7 @@ static std::vector<PrintObjectRegions::LayerRangeRegions>::const_iterator layer_
}
static std::vector<std::vector<ExPolygons>> slices_to_regions(
const PrintConfig &print_config,
ModelVolumePtrs model_volumes,
const PrintObjectRegions &print_object_regions,
const std::vector<float> &zs,
@@ -396,6 +397,21 @@ static std::vector<std::vector<ExPolygons>> slices_to_regions(
});
}
//Y23
for (const std::unique_ptr<PrintRegion>& pr : print_object_regions.all_regions) {
if (pr.get()) {
std::vector<ExPolygons>& region_polys = slices_by_region[pr->print_object_region_id()];
const size_t extruder_id = pr->extruder(FlowRole::frPerimeter) - 1;
double scale = print_config.filament_shrink.values[extruder_id] * 0.01;
if (scale != 1) {
scale = 1 / scale;
for (ExPolygons& polys : region_polys)
for (ExPolygon& poly : polys)
poly.scale(scale);
}
}
}
return slices_by_region;
}
@@ -698,7 +714,7 @@ void PrintObject::slice_volumes()
}
std::vector<float> slice_zs = zs_from_layers(m_layers);
std::vector<std::vector<ExPolygons>> region_slices = slices_to_regions(this->model_object()->volumes, *m_shared_regions, slice_zs,
std::vector<std::vector<ExPolygons>> region_slices = slices_to_regions(print->config(), this->model_object()->volumes, *m_shared_regions, slice_zs,
slice_volumes_inner(
print->config(), this->config(), this->trafo_centered(),
this->model_object()->volumes, m_shared_regions->layer_ranges, slice_zs, throw_on_cancel_callback),