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
|
# duplicate object
|
||||||
{
|
{
|
||||||
my @size = $mesh->size;
|
my @size = $mesh->size;
|
||||||
my @duplicate_offset = (
|
my @duplicate_offset = map +($size[$_] + scale $Slic3r::duplicate_distance), (X,Y);
|
||||||
($size[X] + scale $Slic3r::duplicate_distance),
|
$mesh->duplicate(map [$duplicate_offset[X] * ($_-1), 0], 2..$Slic3r::duplicate_x);
|
||||||
($size[Y] + scale $Slic3r::duplicate_distance),
|
$mesh->duplicate(map [0, $duplicate_offset[Y] * ($_-1)], 2..$Slic3r::duplicate_y);
|
||||||
);
|
|
||||||
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));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# initialize print job
|
# initialize print job
|
||||||
|
|
|
@ -279,15 +279,17 @@ sub move {
|
||||||
|
|
||||||
sub duplicate {
|
sub duplicate {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my (@shift) = @_;
|
my (@shifts) = @_;
|
||||||
|
|
||||||
my @new_facets = ();
|
my @new_facets = ();
|
||||||
foreach my $facet (@{$self->facets}) {
|
foreach my $facet (@{$self->facets}) {
|
||||||
# transform vertex coordinates
|
# transform vertex coordinates
|
||||||
my ($normal, @vertices) = @$facet;
|
my ($normal, @vertices) = @$facet;
|
||||||
push @new_facets, [ $normal ];
|
foreach my $shift (@shifts) {
|
||||||
foreach my $vertex (@vertices) {
|
push @new_facets, [ $normal ];
|
||||||
push @{$new_facets[-1]}, [ map $vertex->[$_] + ($shift[$_] || 0), (X,Y,Z) ];
|
foreach my $vertex (@vertices) {
|
||||||
|
push @{$new_facets[-1]}, [ map $vertex->[$_] + ($shift->[$_] || 0), (X,Y,Z) ];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
push @{$self->facets}, @new_facets;
|
push @{$self->facets}, @new_facets;
|
||||||
|
|
Loading…
Add table
Reference in a new issue