Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/xs
diff options
context:
space:
mode:
authorEnrico Turri <enricoturri@seznam.cz>2018-09-21 13:46:20 +0300
committerEnrico Turri <enricoturri@seznam.cz>2018-09-21 13:46:20 +0300
commit99e90f2bfb4ece8d2c275420ba4887480eb48dbc (patch)
treeb0da8cbec1688d440576f89d7c37bf59b3ce4e8e /xs
parenta079f2a34e6efacd03e14fd0ca077ce91f44e3d7 (diff)
Enhanced fix of #1229 - c++ part
Diffstat (limited to 'xs')
-rw-r--r--xs/src/slic3r/GUI/GUI_ObjectParts.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/xs/src/slic3r/GUI/GUI_ObjectParts.cpp b/xs/src/slic3r/GUI/GUI_ObjectParts.cpp
index ed3b69eab..1d61aadc1 100644
--- a/xs/src/slic3r/GUI/GUI_ObjectParts.cpp
+++ b/xs/src/slic3r/GUI/GUI_ObjectParts.cpp
@@ -1220,7 +1220,13 @@ void load_part( ModelObject* model_object,
}
for ( auto object : model.objects) {
- for (auto volume : object->volumes) {
+ Vec3d delta = Vec3d::Zero();
+ if (model_object->origin_translation != Vec3d::Zero())
+ {
+ object->center_around_origin();
+ delta = model_object->origin_translation - object->origin_translation;
+ }
+ for (auto volume : object->volumes) {
auto new_volume = model_object->add_volume(*volume);
new_volume->set_type(is_modifier ? ModelVolume::PARAMETER_MODIFIER : ModelVolume::MODEL_PART);
boost::filesystem::path(input_file).filename().string();
@@ -1228,12 +1234,11 @@ void load_part( ModelObject* model_object,
part_names.Add(new_volume->name);
- // apply the same translation we applied to the object
- new_volume->mesh.translate( model_object->origin_translation(0),
- model_object->origin_translation(1),
- model_object->origin_translation(2) );
- // set a default extruder value, since user can't add it manually
- new_volume->config.set_key_value("extruder", new ConfigOptionInt(0));
+ if (delta != Vec3d::Zero())
+ new_volume->mesh.translate((float)delta(0), (float)delta(1), (float)delta(2));
+
+ // set a default extruder value, since user can't add it manually
+ new_volume->config.set_key_value("extruder", new ConfigOptionInt(0));
m_parts_changed = true;
}