mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-31 12:41:20 -06:00 
			
		
		
		
	Fix regression in cut
This commit is contained in:
		
							parent
							
								
									182c5eb809
								
							
						
					
					
						commit
						87383250de
					
				
					 3 changed files with 11 additions and 12 deletions
				
			
		|  | @ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Alessandro Ranellucci
						Alessandro Ranellucci