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) { | ||||
| 	    $self->remove($obj_idx); | ||||
| 	    $self->load_model_objects(@new_objects); | ||||
| 	    $self->load_model_objects(grep defined($_), @new_objects); | ||||
| 	    $self->arrange; | ||||
| 	} | ||||
| } | ||||
|  |  | |||
|  | @ -125,7 +125,8 @@ sub new { | |||
| sub perform_cut { | ||||
|     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} = []; | ||||
|     if ($self->{cut_options}{keep_upper} && defined $upper_object) { | ||||
|         push @{$self->{new_model_objects}}, $upper_object; | ||||
|  |  | |||
|  | @ -553,14 +553,12 @@ sub print_info { | |||
| sub cut { | ||||
|     my ($self, $z) = @_; | ||||
|      | ||||
|     # clone this one | ||||
|     my $upper = $self->model->add_object($self); | ||||
|     my $lower = $self->model->add_object($self); | ||||
|      | ||||
|     foreach my $instance (@{$self->instances}) { | ||||
|         $upper->add_instance(offset => Slic3r::Pointf->new(@{$instance->offset})); | ||||
|         $lower->add_instance(offset => Slic3r::Pointf->new(@{$instance->offset})); | ||||
|     } | ||||
|     # clone this one to duplicate instances, materials etc. | ||||
|     my $model = Slic3r::Model->new; | ||||
|     my $upper = $model->add_object($self); | ||||
|     my $lower = $model->add_object($self); | ||||
|     $upper->clear_volumes; | ||||
|     $lower->clear_volumes; | ||||
|      | ||||
|     foreach my $volume (@{$self->volumes}) { | ||||
|         if ($volume->modifier) { | ||||
|  | @ -584,7 +582,7 @@ sub cut { | |||
|                 ); | ||||
|             } | ||||
|             if ($lower_mesh->facets_count > 0) { | ||||
|             $lower->add_volume( | ||||
|                 $lower->add_volume( | ||||
|                     material_id => $volume->material_id, | ||||
|                     mesh        => $lower_mesh, | ||||
|                     modifier    => $volume->modifier, | ||||
|  | @ -595,7 +593,7 @@ sub cut { | |||
|      | ||||
|     $upper = undef if !@{$upper->volumes}; | ||||
|     $lower = undef if !@{$lower->volumes}; | ||||
|     return ($upper, $lower); | ||||
|     return ($model, $upper, $lower); | ||||
| } | ||||
| 
 | ||||
| package Slic3r::Model::Volume; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Alessandro Ranellucci
						Alessandro Ranellucci