From 95b546e47df82b37c3a7b90c5c3510c515df1037 Mon Sep 17 00:00:00 2001 From: supermerill Date: Mon, 23 Nov 2020 00:54:27 +0100 Subject: [PATCH] fix ironing on support material interface --- src/libslic3r/ExtrusionEntity.cpp | 3 ++- src/libslic3r/Fill/FillSmooth.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/ExtrusionEntity.cpp b/src/libslic3r/ExtrusionEntity.cpp index d5d09a3e9..39e3f63ab 100644 --- a/src/libslic3r/ExtrusionEntity.cpp +++ b/src/libslic3r/ExtrusionEntity.cpp @@ -68,7 +68,8 @@ void ExtrusionPath::polygons_covered_by_spacing(Polygons &out, const float scale { // Instantiating the Flow class to get the line spacing. // Don't know the nozzle diameter, setting to zero. It shall not matter it shall be optimized out by the compiler. - Flow flow(this->width, this->height, 0.f, is_bridge(this->role())); + // if the spacing is negative, use the width instead. can happen on ironing second pass. + Flow flow(this->width, this->height, 0.f, (this->width*4 < this->height)?true:is_bridge(this->role())); polygons_append(out, offset(this->polyline, 0.5f * double(flow.scaled_spacing()) + scaled_epsilon)); } diff --git a/src/libslic3r/Fill/FillSmooth.cpp b/src/libslic3r/Fill/FillSmooth.cpp index b8abadf71..7c21fc5b7 100644 --- a/src/libslic3r/Fill/FillSmooth.cpp +++ b/src/libslic3r/Fill/FillSmooth.cpp @@ -132,7 +132,8 @@ namespace Slic3r { // first infill FillParams first_pass_params = params; - first_pass_params.role = ExtrusionRole::erSolidInfill; + if(first_pass_params.role != ExtrusionRole::erSupportMaterial && first_pass_params.role != ExtrusionRole::erSupportMaterialInterface) + first_pass_params.role = ExtrusionRole::erSolidInfill; perform_single_fill(0, *eecroot, *surface, first_pass_params, volumeToOccupy); //use monotonic for ironing pass