diff --git a/lib/Slic3r/Fill/3DHoneycomb.pm b/lib/Slic3r/Fill/3DHoneycomb.pm index fe0d82e4c..2f1a52509 100644 --- a/lib/Slic3r/Fill/3DHoneycomb.pm +++ b/lib/Slic3r/Fill/3DHoneycomb.pm @@ -24,6 +24,16 @@ sub fill_surface { my $distance = $flow->scaled_spacing / $params{density}; + # align bounding box to a multiple of our honeycomb grid + { + my $min = $bb->min_point; + $min->translate( + -($bb->x_min % $distance), + -($bb->y_min % $distance), + ); + $bb->merge_point($min); + } + # generate pattern my @polylines = map Slic3r::Polyline->new(@$_), makeGrid( @@ -176,9 +186,9 @@ sub makeNormalisedGrid { my ($z, $gridWidth, $gridHeight, $curveType) = @_; ## offset required to create a regular octagram - ## my $octagramGap = 1 / (1 + sqrt(2)); + my $octagramGap = 1 / (1 + sqrt(2)); - my $octagramGap = 1; + # my $octagramGap = 1; # sawtooth wave function for range f($z) = [-$octagramGap .. $octagramGap] my $offset = (abs((fmod($z * sqrt(2), 4)) - 2) - 1) * $octagramGap;