diff --git a/xs/src/libslic3r/Model.cpp b/xs/src/libslic3r/Model.cpp index 6ad8ebb49..93f0152c8 100644 --- a/xs/src/libslic3r/Model.cpp +++ b/xs/src/libslic3r/Model.cpp @@ -669,10 +669,9 @@ void ModelObject::center_around_origin() if (! v->modifier) bb.merge(v->mesh.bounding_box()); - // First align to origin on XYZ, then center it on XY. - Vec3d size = bb.size(); - size(2) = 0.0; - Vec3d shift = -bb.min - 0.5 * size; + // Shift is the vector from the center of the bottom face of the bounding box to the origin + Vec3d shift = -bb.center(); + shift(2) = -bb.min(2); this->translate(shift); this->origin_translation += shift;