From 24657f9145e97b9ff177537fa1a884da6c44efb6 Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Tue, 21 Mar 2023 10:45:47 +0800 Subject: [PATCH] FIX: negative volume scaling error when the instance is scaled first Change-Id: I47b329123cb2b021a388fb1dbbcfe8c4cc927bc7 --- src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp b/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp index b6968abe9f..7c7b158d08 100644 --- a/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp +++ b/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp @@ -330,8 +330,11 @@ void GizmoObjectManipulation::change_size_value(int axis, double value) const Selection& selection = m_glcanvas.get_selection(); Vec3d ref_size = m_cache.size; - if (selection.is_single_volume() || selection.is_single_modifier()) + if (selection.is_single_volume() || selection.is_single_modifier()) { + Vec3d instance_scale = wxGetApp().model().objects[selection.get_volume(*selection.get_volume_idxs().begin())->object_idx()]->instances[0]->get_transformation().get_scaling_factor(); ref_size = selection.get_volume(*selection.get_volume_idxs().begin())->bounding_box().size(); + ref_size = Vec3d(instance_scale[0] * ref_size[0], instance_scale[1] * ref_size[1], instance_scale[2] * ref_size[2]); + } else if (selection.is_single_full_instance()) ref_size = m_world_coordinates ? selection.get_unscaled_instance_bounding_box().size() :