Fix arrange when print-by-object and have object off-plate (#8038)

* Fix arrange when print-by-object and have object off-plate (SoftFever/OrcaSlicer#7745)
Partly revert 0b6a1d3636

* Fix issue that fill bed with instance ignores print-by-object clearance (SoftFever/OrcaSlicer#5153)
This commit is contained in:
Noisyfox 2025-01-22 10:03:21 +08:00 committed by GitHub
parent a66fc86e20
commit cef15842bb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 3 additions and 5 deletions

View file

@ -103,8 +103,10 @@ void update_selected_items_inflation(ArrangePolygons& selected, const DynamicPri
BoundingBox bedbb = Polygon(bedpts).bounding_box();
// set obj distance for auto seq_print
if (params.is_seq_print) {
if (params.all_objects_are_short)
bool all_objects_are_short = std::all_of(selected.begin(), selected.end(), [&](ArrangePolygon& ap) { return ap.height < params.nozzle_height; });
if (all_objects_are_short) {
params.min_obj_distance = std::max(params.min_obj_distance, scaled(std::max(MAX_OUTER_NOZZLE_DIAMETER/2.f, params.object_skirt_offset*2)+0.001));
}
else
params.min_obj_distance = std::max(params.min_obj_distance, scaled(params.clearance_radius + 0.001)); // +0.001mm to avoid clearance check fail due to rounding error
}