diff --git a/src/libslic3r/Fill/FillSpiralInset.cpp b/src/libslic3r/Fill/FillSpiralInset.cpp index 8f0c75ff83..5931e813cf 100644 --- a/src/libslic3r/Fill/FillSpiralInset.cpp +++ b/src/libslic3r/Fill/FillSpiralInset.cpp @@ -352,6 +352,16 @@ void FillSpiralInset::_fill_surface_single(const FillParams& params, assert(params.use_arachne); assert(this->print_config != nullptr && this->print_object_config != nullptr); + // Internal solid infill must not add Arachne's standalone thin walls: one of those walls can + // become the extra centre point after the spiral has finished. Top and bottom surfaces keep + // Arachne, including the centre plug handled by generate_spiral_insets(). + if (params.extrusion_role == erSolidInfill) { + Polylines polylines; + this->_fill_surface_single(params, thickness_layers, direction, expolygon, polylines); + append(thick_polylines_out, to_thick_polylines(std::move(polylines), scaled(this->spacing))); + return; + } + // Only a solid surface is worth the variable width walls; a sparse one falls back to plain loops. if (params.density <= 0.9999f || params.dont_adjust) { Polylines polylines;