diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index 16cc75225a..39f6ef98eb 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -1572,8 +1572,12 @@ void ModelObject::reset_instance_transformation(ModelObject* object, size_t src_ for (size_t i = 0; i < object->instances.size(); ++i) { auto& obj_instance = object->instances[i]; const double rot_z = obj_instance->get_rotation().z(); - - obj_instance->set_transformation(Transformation(obj_instance->get_transformation().get_matrix_no_scaling_factor())); + + Transformation inst_trafo = Transformation(obj_instance->get_transformation().get_matrix_no_scaling_factor()); + if (obj_instance->is_left_handed()) + inst_trafo = inst_trafo * Transformation(scale_transform(Vec3d(-1, 1, 1))); + + obj_instance->set_transformation(inst_trafo); Vec3d rotation = Vec3d::Zero(); if (!flip && !place_on_cut) {