Fixed regression preventing arcs to be generated at all (center detection is still buggy)
This commit is contained in:
parent
c0c53c4397
commit
0c4b112718
@ -120,7 +120,10 @@ sub extrude_path {
|
|||||||
# detect arcs
|
# detect arcs
|
||||||
if ($Slic3r::gcode_arcs && !$recursive) {
|
if ($Slic3r::gcode_arcs && !$recursive) {
|
||||||
my $gcode = "";
|
my $gcode = "";
|
||||||
$gcode .= $self->extrude_path($_, $description, 1) for $path->detect_arcs;
|
foreach my $arc_path ($path->detect_arcs) {
|
||||||
|
$arc_path->deserialize;
|
||||||
|
$gcode .= $self->extrude_path($arc_path, $description, 1);
|
||||||
|
}
|
||||||
return $gcode;
|
return $gcode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,6 +28,8 @@ sub split_at {
|
|||||||
|
|
||||||
$point = Slic3r::Point->new($point);
|
$point = Slic3r::Point->new($point);
|
||||||
|
|
||||||
|
$self->deserialize;
|
||||||
|
|
||||||
# find index of point
|
# find index of point
|
||||||
my $i = -1;
|
my $i = -1;
|
||||||
for (my $n = 0; $n <= $#{$self->polygon}; $n++) {
|
for (my $n = 0; $n <= $#{$self->polygon}; $n++) {
|
||||||
@ -50,6 +52,7 @@ sub split_at {
|
|||||||
|
|
||||||
sub split_at_first_point {
|
sub split_at_first_point {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
$self->deserialize;
|
||||||
return $self->split_at($self->polygon->[0]);
|
return $self->split_at($self->polygon->[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,7 +184,7 @@ sub make_fill {
|
|||||||
paths => [
|
paths => [
|
||||||
map {
|
map {
|
||||||
$_->isa('Slic3r::Polygon')
|
$_->isa('Slic3r::Polygon')
|
||||||
? Slic3r::ExtrusionLoop->new(polygon => $_, role => EXTR_ROLE_SOLIDFILL)->split_at($_->[0])
|
? Slic3r::ExtrusionLoop->new(polygon => $_, role => EXTR_ROLE_SOLIDFILL)->split_at_first_point
|
||||||
: Slic3r::ExtrusionPath->new(polyline => $_, role => EXTR_ROLE_SOLIDFILL)
|
: Slic3r::ExtrusionPath->new(polyline => $_, role => EXTR_ROLE_SOLIDFILL)
|
||||||
} @{$layer->thin_fills},
|
} @{$layer->thin_fills},
|
||||||
],
|
],
|
||||||
|
Loading…
Reference in New Issue
Block a user