mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-08-03 08:12:07 +00:00
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.
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