mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	Bugfix: duplicate options did not work correctly for copies > 2. #113
This commit is contained in:
		
							parent
							
								
									9a610395ce
								
							
						
					
					
						commit
						3c2b2cfef2
					
				
					 2 changed files with 9 additions and 14 deletions
				
			
		|  | @ -42,16 +42,9 @@ sub new_from_mesh { | |||
|     # duplicate object | ||||
|     { | ||||
|         my @size = $mesh->size; | ||||
|         my @duplicate_offset = ( | ||||
|             ($size[X] + scale $Slic3r::duplicate_distance), | ||||
|             ($size[Y] + scale $Slic3r::duplicate_distance), | ||||
|         ); | ||||
|         for (my $i = 2; $i <= $Slic3r::duplicate_x; $i++) { | ||||
|             $mesh->duplicate($duplicate_offset[X] * ($i-1), 0); | ||||
|         } | ||||
|         for (my $i = 2; $i <= $Slic3r::duplicate_y; $i++) { | ||||
|             $mesh->duplicate(0, $duplicate_offset[Y] * ($i-1)); | ||||
|         } | ||||
|         my @duplicate_offset = map +($size[$_] + scale $Slic3r::duplicate_distance), (X,Y); | ||||
|         $mesh->duplicate(map [$duplicate_offset[X] * ($_-1), 0], 2..$Slic3r::duplicate_x); | ||||
|         $mesh->duplicate(map [0, $duplicate_offset[Y] * ($_-1)], 2..$Slic3r::duplicate_y); | ||||
|     } | ||||
|      | ||||
|     # initialize print job | ||||
|  |  | |||
|  | @ -279,15 +279,17 @@ sub move { | |||
| 
 | ||||
| sub duplicate { | ||||
|     my $self = shift; | ||||
|     my (@shift) = @_; | ||||
|     my (@shifts) = @_; | ||||
|      | ||||
|     my @new_facets = (); | ||||
|     foreach my $facet (@{$self->facets}) { | ||||
|         # transform vertex coordinates | ||||
|         my ($normal, @vertices) = @$facet; | ||||
|         push @new_facets, [ $normal ]; | ||||
|         foreach my $vertex (@vertices) { | ||||
|             push @{$new_facets[-1]}, [ map $vertex->[$_] + ($shift[$_] || 0), (X,Y,Z) ]; | ||||
|         foreach my $shift (@shifts) { | ||||
|             push @new_facets, [ $normal ]; | ||||
|             foreach my $vertex (@vertices) { | ||||
|                 push @{$new_facets[-1]}, [ map $vertex->[$_] + ($shift->[$_] || 0), (X,Y,Z) ]; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     push @{$self->facets}, @new_facets; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Alessandro Ranellucci
						Alessandro Ranellucci