diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index c41285fc66..725020ef30 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -2030,9 +2030,10 @@ void ObjectList::load_modifier(const wxArrayString& input_files, ModelObject& mo ModelVolume* new_volume = model_object.add_volume(std::move(mesh), type); new_volume->name = boost::filesystem::path(input_file).filename().string(); - // BBS: object_mesh.get_init_shift() keep the relative position - TriangleMesh object_mesh = model_object.volumes[0]->mesh(); - new_volume->set_offset(new_volume->mesh().get_init_shift() - object_mesh.get_init_shift()); + // adjust offset as prusaslicer ObjectList::load_from_files does (works) instead of BBS method + //// BBS: object_mesh.get_init_shift() keep the relative position + //TriangleMesh object_mesh = model_object.volumes[0]->mesh(); + //new_volume->set_offset(new_volume->mesh().get_init_shift() - object_mesh.get_init_shift()); // set a default extruder value, since user can't add it manually // BBS @@ -2056,6 +2057,8 @@ void ObjectList::load_modifier(const wxArrayString& input_files, ModelObject& mo const Vec3d offset = Vec3d(instance_bb.max.x(), instance_bb.min.y(), instance_bb.min.z()) + 0.5 * mesh_bb.size() - instance_offset; new_volume->set_offset(inv_inst_transform * offset); } + else + new_volume->set_offset(new_volume->source.mesh_offset - model_object.volumes.front()->source.mesh_offset); added_volumes.push_back(new_volume); }