Commit Graph

5 Commits

Author SHA1 Message Date
denis svinarchuk
9f394df985 fix(show_temp_plot): use physical G1 motion time for timeline instead of M73
Replace M73-based timeline interpolation with physical time calculation
from G1 feedrates and M400 delays. M73 has 1-minute resolution and
non-uniform granularity which distorts the time axis (e.g. P83→P100
jump makes last filament appear much longer than it actually is).

Physical timeline computes cumulative time per gcode line from actual
move distances and feedrates, giving accurate filament duration on plot.
Falls back to M73 interpolation when raw gcode lines are not available.
2026-07-16 21:06:05 +01:00
denis svinarchuk
fc705612a4 show_temp_plot: fix M620 timeline weight for accurate toolchange duration
The M620→M621 firmware toolchange block weight (500x) was only applied
to sparse track sample lines. Hundreds of G1 moves between samples
inside the M620 block got weight=1, causing firmware toolchange to
appear compressed on the timeline plot.

Build continuous M620→M621 line ranges from track samples and apply
weight=500 to ALL lines within those ranges. This makes toolchange
and wipe tower zones proportionally accurate on the timeline.
2026-07-16 18:59:34 +01:00
denis svinarchuk
4f62778b1b chore: remove screenshots from repo (use PR attachments instead) 2026-07-16 15:48:23 +01:00
denis svinarchuk
18f62e634e docs: add H2C purge regression screenshots for PR
Screenshots comparing upstream (60.9g), fixed (16.2g), and BBS reference (17.5g)
slicing results, plus temperature timeline plots.
2026-07-16 15:26:43 +01:00
denis svinarchuk
6a584c7c79 test: add compare_analyzer tools for G-code slice comparison
Add two standalone Python tools for deep comparison and analysis of .3mf
slicing project files:

- compare_slices.py: comprehensive slice comparison with filament usage,
  nozzle mapping, tool change sequences, prime tower analysis, temperature
  timeline, and automatic critical discrepancy detection
- show_temp_plot.py: interactive HTML temperature timeline plotter for
  visualizing heater profiles during multi-nozzle prints

Both tools use only Python stdlib (no external dependencies).
Primary use case: regression testing H2C carousel purge volumes and
BBS compatibility verification.
2026-07-16 15:22:26 +01:00