New experimental --gcode-arcs options to generate G2/G3 commands. #23
This commit is contained in:
parent
7f341cfcd3
commit
6d6533831e
13 changed files with 333 additions and 21 deletions
23
lib/Slic3r/ExtrusionPath/Arc.pm
Normal file
23
lib/Slic3r/ExtrusionPath/Arc.pm
Normal file
|
@ -0,0 +1,23 @@
|
|||
package Slic3r::ExtrusionPath::Arc;
|
||||
use Moo;
|
||||
|
||||
extends 'Slic3r::ExtrusionPath';
|
||||
|
||||
has 'center' => (is => 'ro', required => 1);
|
||||
has 'radius' => (is => 'ro', required => 1);
|
||||
has 'orientation' => (is => 'ro', required => 1); # cw/ccw
|
||||
|
||||
use Slic3r::Geometry qw(PI angle3points);
|
||||
|
||||
sub angle {
|
||||
my $self = shift;
|
||||
return angle3points($self->center, @{$self->points});
|
||||
}
|
||||
|
||||
sub length {
|
||||
my $self = shift;
|
||||
|
||||
return $self->radius * $self->angle;
|
||||
}
|
||||
|
||||
1;
|
|
@ -55,4 +55,9 @@ sub cleanup {
|
|||
@{$self->paths} = map $_->split_at_acute_angles, @{$self->paths};
|
||||
}
|
||||
|
||||
sub detect_arcs {
|
||||
my $self = shift;
|
||||
@{$self->paths} = map $_->detect_arcs, @{$self->paths};
|
||||
}
|
||||
|
||||
1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue