Skip to content

Add multiACE source-change timing and print statistics #4

Description

@physicsG

Summary

Extend the print-time and material accounting pipeline so multiACE source swaps are tracked separately from U1 physical tool changes and reflected in preview estimates.

Scope

  • Add a source-change event/category to the G-code processor.
  • Track source-change count and accumulated time separately from physical head changes.
  • Add configurable timing components for unload, tip forming, route change, load, verification, and expected retry allowance.
  • Attribute purge and material usage correctly to outgoing and incoming filaments.
  • Reconcile generated source-change commands with estimated event counts.
  • Expose a preview breakdown for base motion, tool changes, source swaps, purge, temperature overhead, and total estimate.
  • Allow future printer-measured route timings to override profile defaults.

Proposed code areas

src/libslic3r/GCode/GCodeProcessor.cpp
src/libslic3r/PrintConfig.hpp
src/libslic3r/PrintConfig.cpp
src/libslic3r/PresetBundle.cpp

Acceptance criteria

  • Physical tool changes and source swaps are counted independently.
  • Estimated source-swap time is configurable by profile.
  • The estimate includes unload, route, load, verification, and retry allowance.
  • Purge time and purge material are not double-counted.
  • Generated G-code source-change count matches the estimator event count.
  • Preview displays a clear timing breakdown.
  • Missing measured timing falls back to profile defaults.
  • Unit tests verify timing formulas and boundary values.
  • Integration tests reconcile preview totals against generated command sequences.

Dependencies

Design references

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions