Fix regression in cut
This commit is contained in:
parent
182c5eb809
commit
87383250de
@ -1201,7 +1201,7 @@ sub object_cut_dialog {
|
|||||||
|
|
||||||
if (my @new_objects = $dlg->NewModelObjects) {
|
if (my @new_objects = $dlg->NewModelObjects) {
|
||||||
$self->remove($obj_idx);
|
$self->remove($obj_idx);
|
||||||
$self->load_model_objects(@new_objects);
|
$self->load_model_objects(grep defined($_), @new_objects);
|
||||||
$self->arrange;
|
$self->arrange;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -125,7 +125,8 @@ sub new {
|
|||||||
sub perform_cut {
|
sub perform_cut {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
|
|
||||||
my ($upper_object, $lower_object) = $self->{model_object}->cut($self->{cut_options}{z});
|
my ($new_model, $upper_object, $lower_object) = $self->{model_object}->cut($self->{cut_options}{z});
|
||||||
|
$self->{new_model} = $new_model;
|
||||||
$self->{new_model_objects} = [];
|
$self->{new_model_objects} = [];
|
||||||
if ($self->{cut_options}{keep_upper} && defined $upper_object) {
|
if ($self->{cut_options}{keep_upper} && defined $upper_object) {
|
||||||
push @{$self->{new_model_objects}}, $upper_object;
|
push @{$self->{new_model_objects}}, $upper_object;
|
||||||
|
@ -553,14 +553,12 @@ sub print_info {
|
|||||||
sub cut {
|
sub cut {
|
||||||
my ($self, $z) = @_;
|
my ($self, $z) = @_;
|
||||||
|
|
||||||
# clone this one
|
# clone this one to duplicate instances, materials etc.
|
||||||
my $upper = $self->model->add_object($self);
|
my $model = Slic3r::Model->new;
|
||||||
my $lower = $self->model->add_object($self);
|
my $upper = $model->add_object($self);
|
||||||
|
my $lower = $model->add_object($self);
|
||||||
foreach my $instance (@{$self->instances}) {
|
$upper->clear_volumes;
|
||||||
$upper->add_instance(offset => Slic3r::Pointf->new(@{$instance->offset}));
|
$lower->clear_volumes;
|
||||||
$lower->add_instance(offset => Slic3r::Pointf->new(@{$instance->offset}));
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach my $volume (@{$self->volumes}) {
|
foreach my $volume (@{$self->volumes}) {
|
||||||
if ($volume->modifier) {
|
if ($volume->modifier) {
|
||||||
@ -584,7 +582,7 @@ sub cut {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
if ($lower_mesh->facets_count > 0) {
|
if ($lower_mesh->facets_count > 0) {
|
||||||
$lower->add_volume(
|
$lower->add_volume(
|
||||||
material_id => $volume->material_id,
|
material_id => $volume->material_id,
|
||||||
mesh => $lower_mesh,
|
mesh => $lower_mesh,
|
||||||
modifier => $volume->modifier,
|
modifier => $volume->modifier,
|
||||||
@ -595,7 +593,7 @@ sub cut {
|
|||||||
|
|
||||||
$upper = undef if !@{$upper->volumes};
|
$upper = undef if !@{$upper->volumes};
|
||||||
$lower = undef if !@{$lower->volumes};
|
$lower = undef if !@{$lower->volumes};
|
||||||
return ($upper, $lower);
|
return ($model, $upper, $lower);
|
||||||
}
|
}
|
||||||
|
|
||||||
package Slic3r::Model::Volume;
|
package Slic3r::Model::Volume;
|
||||||
|
Loading…
Reference in New Issue
Block a user