From c6d67840702a8dc49c104daacdd7de8a79d27db2 Mon Sep 17 00:00:00 2001 From: miaoxin Date: Mon, 26 Sep 2022 16:31:44 +0800 Subject: [PATCH] FIX: large unarrangable objects may overlap with bed boundary large unarrangable objects may overlap with bed boundary in auto-arranging Change-Id: Ie98aa96fb26cc819d1bb38ad0fc316f99423393c (cherry picked from commit 3caf447a62e4dec5f56807c9f86a351db8fff5a7) --- src/slic3r/GUI/PartPlate.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index 6e2477e87..0f250fbbb 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -3580,10 +3580,15 @@ void PartPlateList::postprocess_arrange_polygon(arrangement::ArrangePolygon& arr { if (arrange_polygon.bed_idx == -1) { - //outarea for large object + // outarea for large object arrange_polygon.bed_idx = m_plate_list.size(); - arrange_polygon.translation(X) = scaled(0.5 * plate_stride_x()); - arrange_polygon.translation(Y) = scaled(0.5 * plate_stride_y()); + BoundingBox apbox(arrange_polygon.poly); + auto apbox_size = apbox.size(); + + //arrange_polygon.translation(X) = scaled(0.5 * plate_stride_x()); + //arrange_polygon.translation(Y) = scaled(0.5 * plate_stride_y()); + arrange_polygon.translation(X) = 0.5 * apbox_size[0]; + arrange_polygon.translation(Y) = scaled(static_cast(m_plate_depth)) - 0.5 * apbox_size[1]; } arrange_polygon.row = arrange_polygon.bed_idx / m_plate_cols;