From fba8b8b029275035707198a8f9a9eb6ecb57ebec Mon Sep 17 00:00:00 2001 From: harrierpigeon Date: Wed, 7 Oct 2026 16:09:25 -0500 Subject: [PATCH] Belt G-code: reset the first-layer band state per object In by-object printing the cooling buffer is reset for every object, but m_belt_in_band, which tracks whether the extrusion is inside the band along the belt where the part fan stays off, kept the previous object's value. If the previous object ended inside the band the next one never emitted its band start marker. Reset it with the cooling buffer. Co-Authored-By: Claude Fable 5.1 --- src/libslic3r/GCode.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index a2d2ea80af..2b38fa0a51 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -4176,6 +4176,9 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato // Reset the cooling buffer internal state (the current position, feed rate, accelerations). m_cooling_buffer->set_current_extruder(initial_extruder_id, get_extruder_id(initial_extruder_id)); m_cooling_buffer->reset(this->writer().get_position()); + // The belt first-layer band is tracked per object as well: if the previous + // object ended inside the band, this one has to open its own. + m_belt_in_band = false; // Process all layers of a single object instance (sequential mode) with a parallel pipeline: // Generate G-code, run the filters (vase mode, cooling buffer), run the G-code analyser // and export G-code into file.