From 87ab8bd8dd3c438e93b2a3723ec1c30006c22568 Mon Sep 17 00:00:00 2001 From: Wang YB <94800665+Gradbb@users.noreply.github.com> Date: Tue, 12 Mar 2024 09:40:32 +0800 Subject: [PATCH] update gapinfill --- src/libslic3r/Fill/Fill.cpp | 11 +++++++---- src/libslic3r/Fill/FillConcentric.cpp | 3 +++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/libslic3r/Fill/Fill.cpp b/src/libslic3r/Fill/Fill.cpp index f8fb4b2..6029d4d 100644 --- a/src/libslic3r/Fill/Fill.cpp +++ b/src/libslic3r/Fill/Fill.cpp @@ -721,11 +721,14 @@ void Layer::variable_width_gap(const ThickPolylines &polylines, ExtrusionRole ro for (const ThickPolyline &p : polylines) { ExtrusionPaths paths = thick_polyline_to_extrusion_paths(p, role, flow, tolerance); if (!paths.empty()) { - if (paths.front().first_point() == paths.back().last_point()) - out.emplace_back(new ExtrusionLoop(std::move(paths))); + if (paths.front().first_point() == paths.back().last_point()) { + out.emplace_back(new ExtrusionLoop(std::move(paths))); + } else { - for (ExtrusionPath &path : paths) - out.emplace_back(new ExtrusionPath(std::move(path))); + for (ExtrusionPath &path : paths) { + if (path.length() >= scale_(flow.nozzle_diameter()/2.0) || path.width() >= scale_(flow.nozzle_diameter()/2.0)) + out.emplace_back(new ExtrusionPath(std::move(path))); + } } } } diff --git a/src/libslic3r/Fill/FillConcentric.cpp b/src/libslic3r/Fill/FillConcentric.cpp index 245947c..2a5e629 100644 --- a/src/libslic3r/Fill/FillConcentric.cpp +++ b/src/libslic3r/Fill/FillConcentric.cpp @@ -5,6 +5,8 @@ #include "FillConcentric.hpp" +#include + namespace Slic3r { void FillConcentric::_fill_surface_single( @@ -116,6 +118,7 @@ void FillConcentric::_fill_surface_single(const FillParams ¶ms, } if (j < thick_polylines_out.size()) thick_polylines_out.erase(thick_polylines_out.begin() + int(j), thick_polylines_out.end()); + //reorder_by_shortest_traverse(thick_polylines_out); } else { Polylines polylines; this->_fill_surface_single(params, thickness_layers, direction, expolygon, polylines);