Summary
Generate correct U1 + multiACE G-code directly from the frozen routing plan, without relying on a post-processing rewrite step.
Logical project filaments may exceed four, but final physical tool commands must remain limited to the U1's four heads: T0 through T3.
Scope
- Resolve source and physical-head routing before final tool ordering and wipe-tower generation.
- Emit native source-change macros such as
ACE_SWAP_HEAD when the required source is not already loaded.
- Preserve normal
T0–T3 physical tool selection.
- Generate correct park, unload/load, tool-select, purge, and resume ordering.
- Avoid unnecessary source swaps when the requested source is already loaded.
- Integrate source transitions with purge and wipe-tower accounting.
- Define failure/cancellation-safe macro boundaries.
- Remove the need for the existing external multiACE G-code postprocessor for supported workflows.
Example behavior
PARK_TOOLHEAD TOOL=2
ACE_SWAP_HEAD HEAD=2 ACE=1 SLOT=2
T2
PURGE_FOR_SOURCE_CHANGE FROM=3 TO=6
Exact printer mechanics remain implemented in Klipper/multiACE macros; the slicer determines the route, command sequence, temperatures, purge, and accounting.
Acceptance criteria
Dependencies
Design references
Summary
Generate correct U1 + multiACE G-code directly from the frozen routing plan, without relying on a post-processing rewrite step.
Logical project filaments may exceed four, but final physical tool commands must remain limited to the U1's four heads:
T0throughT3.Scope
ACE_SWAP_HEADwhen the required source is not already loaded.T0–T3physical tool selection.Example behavior
Exact printer mechanics remain implemented in Klipper/multiACE macros; the slicer determines the route, command sequence, temperatures, purge, and accounting.
Acceptance criteria
T3.ACE_SWAP_HEADcommand is emitted when the correct source is already loaded.T0–T3.Dependencies
Design references
doc/multiace_u1_integration_design.mddoc/multiace_testing_strategy.md