From 2d0b27abedc0478eadb1e6eb00c99542ed012f26 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci <aar@cpan.org> Date: Fri, 8 Aug 2014 03:13:45 +0200 Subject: [PATCH] Bugfix: 3D honeycomb infill wasn't correctly aligned among skewed layers. #2194 --- lib/Slic3r/Fill/3DHoneycomb.pm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) 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;