|
| 1 | +commit 3dd0ed42654c939a574168fb18e1514728d24f0d |
| 2 | +Author: Christopher R. Palmer <crpalmer@gmail.com> |
| 3 | +Date: Thu Sep 18 13:25:33 2025 -0400 |
| 4 | + |
| 5 | + lightning infill: Anchor the infill when there is only 1 line |
| 6 | + |
| 7 | + The anchor for the lightning line is not generated when a layer |
| 8 | + contains a single lightning line (technically, it's an island |
| 9 | + of the layer contains a single line). |
| 10 | + |
| 11 | + For lightning infill, this often results in the infill failing |
| 12 | + to print properly leading to print failures. In the print that |
| 13 | + caused me to notice this problem, there was almost 75mm of |
| 14 | + height where at least one island was generating lightning infill |
| 15 | + with no anchor! These entire infill structures failed to print. |
| 16 | + |
| 17 | + Connect the infill to the perimeter when there is only 1 line. |
| 18 | + |
| 19 | + fixes: #14862 |
| 20 | + |
| 21 | +diff --git a/src/libslic3r/Fill/FillLightning.cpp b/src/libslic3r/Fill/FillLightning.cpp |
| 22 | +index b46f3314a..fb75277a7 100644 |
| 23 | +--- a/src/libslic3r/Fill/FillLightning.cpp |
| 24 | ++++ b/src/libslic3r/Fill/FillLightning.cpp |
| 25 | +@@ -22,7 +22,7 @@ void Filler::_fill_surface_single( |
| 26 | + const Layer &layer = generator->getTreesForLayer(this->layer_id); |
| 27 | + Polylines fill_lines = layer.convertToLines(to_polygons(expolygon), scaled<coord_t>(0.5 * this->spacing - this->overlap)); |
| 28 | + |
| 29 | +- if (params.dont_connect() || fill_lines.size() <= 1) { |
| 30 | ++ if (params.dont_connect() || fill_lines.size() < 1) { |
| 31 | + append(polylines_out, chain_polylines(std::move(fill_lines))); |
| 32 | + } else |
| 33 | + connect_infill(std::move(fill_lines), expolygon, polylines_out, this->spacing, params); |
0 commit comments