diff options
author | Enrico Turri <enricoturri@seznam.cz> | 2018-09-21 13:39:15 +0300 |
---|---|---|
committer | Enrico Turri <enricoturri@seznam.cz> | 2018-09-21 13:39:15 +0300 |
commit | cce5f3203b82f0e2d22ca8c81b91b9e47ea93feb (patch) | |
tree | 66446ae74b30deabc33fd478a2a1759b1f60f6c5 /lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm | |
parent | 78e7bb04272fa9a41e7d88c3ae0be60c3446343b (diff) |
Enhanced fix of #1229 - perl part
Diffstat (limited to 'lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm')
-rw-r--r-- | lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm b/lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm index fd02a030f..00373f138 100644 --- a/lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm +++ b/lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm @@ -407,17 +407,24 @@ sub on_btn_load { } foreach my $object (@{$model->objects}) { - $object->center_around_origin; + my $delta_x = 0.0; + my $delta_y = 0.0; + my $delta_z = 0.0; + if (($self->{model_object}->origin_translation->x != 0.0) || ($self->{model_object}->origin_translation->y != 0.0) || ($self->{model_object}->origin_translation->z != 0.0)) { + $object->center_around_origin; + $delta_x = $self->{model_object}->origin_translation->x - $object->origin_translation->x; + $delta_y = $self->{model_object}->origin_translation->y - $object->origin_translation->y; + $delta_z = $self->{model_object}->origin_translation->z - $object->origin_translation->z; + } foreach my $volume (@{$object->volumes}) { my $new_volume = $self->{model_object}->add_volume($volume); $new_volume->set_modifier($is_modifier); $new_volume->set_name(basename($input_file)); # apply the same translation we applied to the object - my $delta_x = $self->{model_object}->origin_translation->x - $object->origin_translation->x; - my $delta_y = $self->{model_object}->origin_translation->y - $object->origin_translation->y; - my $delta_z = $self->{model_object}->origin_translation->z - $object->origin_translation->z; - $new_volume->mesh->translate($delta_x, $delta_y, $delta_z); + if (($delta_x != 0.0) || ($delta_y != 0.0) || ($delta_z != 0.0)) { + $new_volume->mesh->translate($delta_x, $delta_y, $delta_z); + } # set a default extruder value, since user can't add it manually $new_volume->config->set_ifndef('extruder', 0); |