diff --git a/src/slic3r/GUI/Selection.cpp b/src/slic3r/GUI/Selection.cpp index 346d0fe9b0..b6d9cfbd44 100644 --- a/src/slic3r/GUI/Selection.cpp +++ b/src/slic3r/GUI/Selection.cpp @@ -783,8 +783,11 @@ void Selection::translate(const Vec3d& displacement, TransformationType transfor else assert(false); } - else - transform_volume_relative(v, volume_data, transformation_type, Geometry::translation_transform(displacement)); + else { + const Vec3d offset = transformation_type.local() ? + volume_data.get_volume_transform().get_rotation_matrix() * displacement : displacement; + transform_volume_relative(v, volume_data, transformation_type, Geometry::translation_transform(offset)); + } } #if !DISABLE_INSTANCES_SYNCH