Always start concentric infill from the center. #120
This commit is contained in:
parent
d63eabcfa5
commit
f73febff7a
1 changed files with 7 additions and 2 deletions
|
@ -3,7 +3,7 @@ use Moo;
|
||||||
|
|
||||||
extends 'Slic3r::Fill::Base';
|
extends 'Slic3r::Fill::Base';
|
||||||
|
|
||||||
use Slic3r::Geometry qw(scale);
|
use Slic3r::Geometry qw(scale X1 Y1 X2 Y2);
|
||||||
use XXX;
|
use XXX;
|
||||||
|
|
||||||
sub fill_surface {
|
sub fill_surface {
|
||||||
|
@ -12,6 +12,8 @@ sub fill_surface {
|
||||||
|
|
||||||
# no rotation is supported for this infill pattern
|
# no rotation is supported for this infill pattern
|
||||||
|
|
||||||
|
my $bounding_box = [ $surface->expolygon->bounding_box ];
|
||||||
|
|
||||||
my $scaled_flow_spacing = scale $params{flow_spacing};
|
my $scaled_flow_spacing = scale $params{flow_spacing};
|
||||||
my $distance = $scaled_flow_spacing / $params{density};
|
my $distance = $scaled_flow_spacing / $params{density};
|
||||||
# TODO: adjust distance and flow width for solid surfaces
|
# TODO: adjust distance and flow width for solid surfaces
|
||||||
|
@ -38,7 +40,10 @@ sub fill_surface {
|
||||||
|
|
||||||
# make paths
|
# make paths
|
||||||
my @paths = ();
|
my @paths = ();
|
||||||
my $cur_pos = Slic3r::Point->new(0,0);
|
my $cur_pos = Slic3r::Point->new(
|
||||||
|
($bounding_box->[X1] + $bounding_box->[X2]) / 2,
|
||||||
|
($bounding_box->[Y1] + $bounding_box->[Y2]) / 2,
|
||||||
|
);
|
||||||
foreach my $loop (map Slic3r::ExtrusionLoop->cast($_, role => 'fill'), @loops) {
|
foreach my $loop (map Slic3r::ExtrusionLoop->cast($_, role => 'fill'), @loops) {
|
||||||
# find the point of the loop that is closest to the current extruder position
|
# find the point of the loop that is closest to the current extruder position
|
||||||
$cur_pos = $loop->nearest_point_to($cur_pos);
|
$cur_pos = $loop->nearest_point_to($cur_pos);
|
||||||
|
|
Loading…
Add table
Reference in a new issue