Fix time estimation using wrong machine limits due to broken extruder_id indexing #658

Closed
opened 2026-04-05 16:25:16 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @SoftFever on 2/22/2026

Description

The extruder_id*2 offset in get_axis_max_feedrate/get_axis_max_acceleration was cherry-picked from BambuStudio's per-nozzle limit system, which OrcaSlicer never ported. Without that system the limit arrays only have 2 values ([0]=Normal, [1]=Stealth), so any extruder_id > 0 or the uninitialized value (255) would overshoot the array and fall back to values.back(), always returning stealth-mode limits and producing incorrect time estimates.

Revert to indexing by time mode only (matching v2.3.1 behavior) and simplify the M201/M203 handlers to write only the two mode slots they actually use.

Fix #12117

Screenshots/Recordings/Graphs

Tests

*Originally created by @SoftFever on 2/22/2026* # Description The extruder_id*2 offset in get_axis_max_feedrate/get_axis_max_acceleration was cherry-picked from BambuStudio's per-nozzle limit system, which OrcaSlicer never ported. Without that system the limit arrays only have 2 values ([0]=Normal, [1]=Stealth), so any extruder_id > 0 or the uninitialized value (255) would overshoot the array and fall back to values.back(), always returning stealth-mode limits and producing incorrect time estimates. Revert to indexing by time mode only (matching v2.3.1 behavior) and simplify the M201/M203 handlers to write only the two mode slots they actually use. Fix #12117 # Screenshots/Recordings/Graphs <!-- > Please attach relevant screenshots to showcase the UI changes. > Please attach images that can help explain the changes. --> ## Tests <!-- > Please describe the tests that you have conducted to verify the changes made in this PR. -->
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#658