Take support material into account when generating brim. #490 #501 #567

degen-loop-screen
Alessandro Ranellucci 2012-08-06 20:54:49 +02:00
parent 9bfa4118a1
commit b7d8444ac8
2 changed files with 12 additions and 1 deletions

View File

@ -85,6 +85,12 @@ sub length {
return $length;
}
# this only applies to polylines
sub grow {
my $self = shift;
return Slic3r::Polygon->new(@$self, CORE::reverse @$self[1..-2])->offset(@_);
}
sub nearest_point_to {
my $self = shift;
my ($point) = @_;

View File

@ -511,7 +511,12 @@ sub make_brim {
my @islands = (); # array of polygons
foreach my $obj_idx (0 .. $#{$self->objects}) {
my @object_islands = map $_->contour, @{ $self->objects->[$obj_idx]->layers->[0]->slices };
my $layer0 = $self->objects->[$obj_idx]->layers->[0];
my @object_islands = (
(map $_->contour, @{$layer0->slices}),
(map { $_->isa('Slic3r::Polygon') ? $_ : $_->grow } @{$layer0->thin_walls}),
(map $_->unpack->polyline->grow, map @{$_->support_fills->paths}, grep $_->support_fills, $layer0),
);
foreach my $copy (@{$self->copies->[$obj_idx]}) {
push @islands, map $_->clone->translate(@$copy), @object_islands;
}