Belt G-code: the mixed-filament sub-layer pass rotates its origin too

process_layer()'s sub-layer pass (several filaments in one layer without
a purge tower) calls set_origin() per instance like the main instance
loop, but not on_set_origin(), which on a belt printer runs the origin
through the belt transform.  Add the call so both passes place the
instance the same way.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
harrierpigeon
2026-10-07 18:24:27 -05:00
co-authored by Claude Fable 5.1
parent 4eaaf9a992
commit 05e37d838c
+3
View File
@@ -7321,6 +7321,9 @@ LayerResult GCode::process_layer(
m_avoid_crossing_perimeters.use_external_mp_once();
m_last_obj_copy = this_object_copy;
this->set_origin(unscale(offset));
// Same as the main instance loop: a belt printer rotates the origin through
// the belt transform (BeltGCode::on_set_origin).
this->on_set_origin(&instance_to_print.print_object, offset);
// --- Build emission plan ---
// Each entry represents one travel_to_z + extrude pass. Per-object mode produces