mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-05 06:41:10 +00:00
A mixed filament slot is virtual: ToolOrdering::resolve_mixed_filaments() replaces it with its physical components before any G-code is emitted, so the toolchanges the prism has to absorb are between those components. ensure_belt_purge_tower() counted the slot as a filament of its own, provisioning one island per mixed slot that no swap can ever reach -- the "extra purge tower" on MCTEST5, where filament 5 is a 50/50 blend of 2 and 4 and the G-code reports 0.00 g of it used. Expand the assigned set with the same expand_mixed_filaments() the backend uses, so the GUI sizes the prism against the filament set the slicer actually produces. No-op when nothing is mixed. Test covers the MCTEST5 shape, a mixed slot whose components are otherwise unused, and the no-mixing case. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SsuY8Laiyh7q2zPVVKV3HZ
OrcaSlicer tests
Building, running and writing tests is documented on the wiki, under How to Test.
Two files here rather than there, because coding agents only read what is in the repository: