mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-10 17:21:10 +00:00
docs(imex): record that the primary-routing refusal is a scope choice
The rule's comment claimed the plate "is not printable as configured: the primary tool executes the toolpaths while the flow and temperatures were computed for a filament it cannot load". That is not what the emitter does. It never uses the declared primary -- it re-derives an effective one from the filament actually in use -- so a plate whose only filament sits on a Span tool sharing the primary's gantry produces coherent G-code and would print. The refusal is still correct, but it rests on intent rather than physics: a parallel mode exists to run carriages in parallel, and a single-colour plate riding one span lane is not that. Left as a physical-impossibility claim, the rule reads as a false positive to anyone who checks it against the emitter -- a review already flagged it as one -- and the obvious "fix" is to relax it. Say which it is, and keep the genuinely-broken case distinct: a filament routed to a head outside the mode's active tools still yields a stuck-hot nozzle, and that one is not a matter of taste. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
018091f43b
commit
2473ca7496
+11
-4
@@ -1401,10 +1401,17 @@ StringObjectException Print::validate(std::vector<StringObjectException> *warnin
|
||||
// so nothing detected the mismatch. collect_imex_warnings() computes the same
|
||||
// condition and discards it into a display fallback.
|
||||
//
|
||||
// Blocks rather than warns, matching the multi-color rule above. The plate is not
|
||||
// printable as configured: the primary tool executes the toolpaths while the flow
|
||||
// and temperatures were computed for a filament it cannot load. Where the routed
|
||||
// head is also absent from the mode's active tools, the 1st->2nd layer temperature
|
||||
// Blocks rather than warns, matching the multi-color rule above -- but on intent,
|
||||
// not on physics, and the distinction matters to anyone tempted to relax it. The
|
||||
// emitter does not use the declared primary: it re-derives an effective one from
|
||||
// the filament actually in use (GCode.cpp's initial_extruder_id -> pem lookups), so
|
||||
// a plate whose only filament sits on a Span tool sharing the primary's gantry does
|
||||
// produce coherent G-code. It is refused anyway. A parallel mode exists to run
|
||||
// carriages in parallel; a single-colour plate riding one span lane is not that, and
|
||||
// silently accepting it would make the mode's declared roster meaningless.
|
||||
//
|
||||
// Where the routed head is absent from the mode's active tools the plate is broken
|
||||
// outright, not merely off-intent: the 1st->2nd layer temperature
|
||||
// branch (GCode.cpp, mutually exclusive with the standard path) skips it too, so
|
||||
// that head holds nozzle_temperature_initial_layer for the whole job. First-layer
|
||||
// temperatures are unaffected -- _print_first_layer_extruder_temperatures is not
|
||||
|
||||
Reference in New Issue
Block a user