Summary
Add an optimizer that chooses compatible ACE spool sources and assigns logical project filaments to the U1's four physical heads while minimizing slow source swaps, purge, tool changes, and unnecessary spool movement.
Scope
- Build a weighted transition graph from predicted filament transitions.
- Generate compatible source candidates using hard constraints and soft preferences.
- Support exact RFID/profile matches, material subtype, color distance, brand, remaining quantity, loaded state, and uncertainty scoring.
- Assign frequently alternating filaments to different heads when hardware routes allow.
- Respect hard user pins.
- Produce deterministic results and an explainable cost breakdown.
- Show suggested spool moves and estimated savings compared with the current layout.
- Preserve a manual routing workflow when optimization is disabled or infeasible.
Suggested objective
total cost =
source swaps * source-swap time
+ physical head changes * tool-change time
+ purge volume * purge cost
+ temperature-transition time
+ spool relocation penalty
+ inventory uncertainty penalty
Proposed code areas
src/libslic3r/FilamentPlacementOptimizer.hpp
src/libslic3r/FilamentPlacementOptimizer.cpp
Acceptance criteria
Dependencies
Design references
Summary
Add an optimizer that chooses compatible ACE spool sources and assigns logical project filaments to the U1's four physical heads while minimizing slow source swaps, purge, tool changes, and unnecessary spool movement.
Scope
Suggested objective
Proposed code areas
Acceptance criteria
0..3.Dependencies
Design references
doc/multiace_u1_integration_design.mddoc/multiace_testing_strategy.md