mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-08-03 08:12:07 +00:00
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.
Compare Analyzer — G-code Slicing Comparison Tools
Tools for deep comparison and analysis of .3mf slicing project files, designed for
verifying multi-nozzle (H2C carousel) and multi-extruder slicing correctness.
Tools
compare_slices.py — Slice Comparison Analyzer
Deep comparison of two .3mf files (OrcaSlicer, BambuStudio, or any compatible slicer).
Generates a comprehensive Markdown report covering:
- Filament usage — per-filament weight/length with color mapping
- Nozzle/extruder mapping — Vortek carousel slot assignments
- Tool change sequences — T-code ordering and count
- Prime tower analysis — tower entries, G-code line count
- Temperature timeline — pre-heat lead times, target temperatures per tool change
- Retract parameters — M620.11 analysis during nozzle switches
- Filament change G-code blocks — line-by-line diff of change_filament_gcode
- Control command diff — timeline of M/G-code differences
- Critical discrepancy detection — automatic flagging of weight/time anomalies
Usage
# Compare two slice files
python3 compare_slices.py file1.3mf file2.3mf
# With custom labels
python3 compare_slices.py file1.3mf file2.3mf --labels "Upstream" "Fixed"
Output
Markdown report saved to mp_reports/compare_report_YYYYMMDD_HHMMSS.md
Example: Detecting H2C purge regression
⚠️ CRITICAL DISCREPANCY: Huge difference in part weight:
OrcaSlicer 60.90 g vs BambuStudio 17.47 g (difference 43.43 g or 71.3%).
The reason is incorrect nozzle mapping, causing huge AMS flushing.
show_temp_plot.py — Temperature Timeline Plotter
Generates interactive HTML temperature plots for analyzing thermal profiles during multi-nozzle prints. Visualizes heater temperature commands (M104/M109) per tool change, showing pre-heat timing and temperature convergence.
Architecture
- H2C dual-extruder layout with Vortek carousel nozzles
- Physical heaters mapped dynamically:
- Heater 0: Extruder 2 (right nozzle slot, T0/T2/T3/T4)
- Heater 1: Extruder 1 (left nozzle slot, T1)
- Active heater mapping derived from G-code temperature signals
Usage
# Single file analysis
python3 show_temp_plot.py file.3mf
# Side-by-side comparison of two files
python3 show_temp_plot.py file1.3mf file2.3mf
Output
Interactive HTML report saved to Desktop as temp_plot_v3.html
Requirements
- Python 3.8+
- No external dependencies — uses only Python standard library
(
json,zipfile,xml.etree.ElementTree,difflib,webbrowser)
Use Cases
- Regression testing — compare slices before/after code changes to verify no unintended differences in purge volumes, tool ordering, or temperature timing
- BBS compatibility verification — compare OrcaSlicer output against BambuStudio reference slices to ensure behavioral parity
- H2C carousel validation — verify per-slot nozzle tracking produces correct purge volumes (not collapsed per-extruder)
- Temperature protocol analysis — verify pre-heat lead times and cooling temperatures during nozzle changes match expected profiles