diff --git a/lib/Slic3r/Print.pm b/lib/Slic3r/Print.pm index 7c4f1b31f..0870091c5 100644 --- a/lib/Slic3r/Print.pm +++ b/lib/Slic3r/Print.pm @@ -783,7 +783,7 @@ sub make_brim { # if brim touches skirt, make it around skirt too # TODO: calculate actual skirt width (using each extruder's flow in multi-extruder setups) if ($self->config->skirt_distance + (($self->config->skirts - 1) * $flow->spacing) <= $self->config->brim_width) { - push @islands, map @{$_->split_at_first_point->polyline->grow($grow_distance)}, @{$self->skirt}; + push @islands, map @{$_->polygon->split_at_first_point->grow($grow_distance)}, @{$self->skirt}; } my @loops = (); diff --git a/t/skirt_brim.t b/t/skirt_brim.t index b62c9a8bb..b04234bbd 100644 --- a/t/skirt_brim.t +++ b/t/skirt_brim.t @@ -1,4 +1,4 @@ -use Test::More tests => 2; +use Test::More tests => 3; use strict; use warnings; @@ -69,4 +69,13 @@ use Slic3r::Test; is scalar(grep $_, values %layers_with_brim), 1, "brim is generated"; } +{ + my $config = Slic3r::Config->new_from_defaults; + $config->set('skirts', 1); + $config->set('brim_width', 10); + + my $print = Slic3r::Test::init_print('20mm_cube', config => $config); + ok Slic3r::Test::gcode($print), 'successful G-code generation when skirt is smaller than brim width'; +} + __END__