diff --git a/lib/Slic3r/Geometry.pm b/lib/Slic3r/Geometry.pm index 3c884e934..7b66d40e9 100644 --- a/lib/Slic3r/Geometry.pm +++ b/lib/Slic3r/Geometry.pm @@ -242,6 +242,7 @@ sub polygon_lines { sub nearest_point { my ($point, $points) = @_; my $index = nearest_point_index(@_); + return undef if !defined $index; return $points->[$index]; } diff --git a/lib/Slic3r/Print.pm b/lib/Slic3r/Print.pm index 8accf1dd9..e81243f45 100644 --- a/lib/Slic3r/Print.pm +++ b/lib/Slic3r/Print.pm @@ -462,7 +462,8 @@ EOF foreach my $expolygon (@unsupported_slices) { # look for the nearest point to this island among all # supported points - my $support_point = nearest_point($expolygon->contour->[0], \@supported_points); + my $support_point = nearest_point($expolygon->contour->[0], \@supported_points) + or next; my $anchor_point = nearest_point($support_point, $expolygon->contour->[0]); printf $fh qq{ <line x1="%s" y1="%s" x2="%s" y2="%s" style="stroke-width: 2; stroke: white" />\n}, map @$_, $support_point, $anchor_point;