From c2f04f2861e44a2527dd853c3bcbb34844bc11d4 Mon Sep 17 00:00:00 2001 From: Mike Sheldrake Date: Mon, 18 Feb 2013 07:26:19 -0800 Subject: [PATCH] avoid overlap of single layer and multilayer fill A single-layer rectilinear or honeycomb fill under a low slope wall/ceiling or extra perimeter will stick out from under the overhang, because those fills get extended beyond their fill_surface boundaries to purposely overlap perimeters. This causes interference with multil-layer fills. This commit clips the single layer fill boundaries a bit more where they interface with multi-layer fill boundaries, to avoid overlap. --- lib/Slic3r/Print/Object.pm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/Slic3r/Print/Object.pm b/lib/Slic3r/Print/Object.pm index e312783402..42e27a05a5 100644 --- a/lib/Slic3r/Print/Object.pm +++ b/lib/Slic3r/Print/Object.pm @@ -569,6 +569,11 @@ sub combine_infill { my @intersection_with_clearance = map $_->offset( $layerms[-1]->infill_flow->scaled_width / 2 + $layerms[-1]->perimeter_flow->scaled_width / 2 + # Because fill areas for rectilinear and honeycomb are grown + # later to overlap perimeters, we need to counteract that too. + + (($type == S_TYPE_INTERNALSOLID || $Slic3r::Config->fill_pattern =~ /(rectilinear|honeycomb)/) + ? $layerms[-1]->infill_flow->scaled_width * &Slic3r::PERIMETER_INFILL_OVERLAP_OVER_SPACING + : 0) ), @$intersection; foreach my $layerm (@layerms) {