From 2291bd76de6ee2912dbe826a43d2a8941bd9b926 Mon Sep 17 00:00:00 2001 From: supermerill Date: Sat, 17 Oct 2020 01:03:56 +0200 Subject: [PATCH] #539 fix Concentric (filled) interface support dumps core --- src/libslic3r/Fill/FillBase.cpp | 3 ++- src/libslic3r/Fill/FillConcentric.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/Fill/FillBase.cpp b/src/libslic3r/Fill/FillBase.cpp index fd2b50233..7f874707f 100644 --- a/src/libslic3r/Fill/FillBase.cpp +++ b/src/libslic3r/Fill/FillBase.cpp @@ -595,7 +595,8 @@ Fill::do_gap_fill(const ExPolygons &gapfill_areas, const FillParams ¶ms, Ext // offset2_ex(gapfill_areas, double(-max / 2), double(+max / 2)), // true); ExPolygons gapfill_areas_collapsed = offset2_ex(gapfill_areas, double(-min / 2), double(+min / 2)); - const double minarea = scale_(params.config->gap_fill_min_area.get_abs_value(params.flow->width) ) * params.flow->scaled_width(); + double minarea = params.flow->scaled_width() * params.flow->scaled_width(); + if (params.config != nullptr) minarea = scale_(params.config->gap_fill_min_area.get_abs_value(params.flow->width)) * params.flow->scaled_width(); for (const ExPolygon &ex : gapfill_areas_collapsed) { //remove too small gaps that are too hard to fill. //ie one that are smaller than an extrusion with width of min and a length of max. diff --git a/src/libslic3r/Fill/FillConcentric.cpp b/src/libslic3r/Fill/FillConcentric.cpp index 1d7aebf7e..4530412cc 100644 --- a/src/libslic3r/Fill/FillConcentric.cpp +++ b/src/libslic3r/Fill/FillConcentric.cpp @@ -174,7 +174,8 @@ FillConcentricWGapFill::fill_surface_extrusion( ExPolygons gapfill_areas = diff_ex({ surface->expolygon }, offset_ex(expp, double(scale_(0.5 * this->spacing)))); gapfill_areas = union_ex(gapfill_areas, true); if (gapfill_areas.size() > 0) { - const double minarea = scale_(params.config->gap_fill_min_area.get_abs_value(params.flow->width)) * params.flow->scaled_width(); + double minarea = params.flow->scaled_width() * params.flow->scaled_width(); + if (params.config != nullptr) minarea = scale_(params.config->gap_fill_min_area.get_abs_value(params.flow->width)) * params.flow->scaled_width(); for (int i = 0; i < gapfill_areas.size(); i++) { if (gapfill_areas[i].area() < minarea) { gapfill_areas.erase(gapfill_areas.begin() + i);