mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-16 07:22:10 +00:00
fix(engine): publish the nozzle group result for sequential prints
The Print-level LayeredNozzleGroupResult had a single producer, the by-layer branch of ToolOrdering, which is gated to non-sequential prints. The by-object branch in Print::process computed a grouping only in auto map modes and never stored it, so a sequential slice exported with a null group result: the per-nozzle placeholder tables came up empty and any start g-code indexing nozzle_diameter_at_nozzle_id[] aborted with "Indexing an empty vector variable". A prior by-layer slice masked the bug by leaving its (never cleared) result on the Print. Now the by-object branch runs get_recommended_filament_maps in every static map mode (in manual modes the result mirrors the user's assignment, deviations throw as in by-layer) and publishes it print-wide. The config write-back stays gated to auto modes: in manual modes it would only re-store the pre-slice values. Regression test: a two-object by-object print must publish a non-null group result and resolve nozzle_diameter_at_nozzle_id[] in start g-code (both fail without the fix). Suites green (libslic3r 48929/162, fff_print 633/60); 18-fixture byte gate identical; the by-object repro project goes from the export error to valid g-code, determinism x2.
This commit is contained in:
@@ -8473,8 +8473,8 @@ std::string GCode::retract(bool toolchange, bool is_last_retraction, LiftType li
|
||||
|
||||
void GCode::update_layer_related_config(int layer_id){
|
||||
auto group_result = m_print->get_layered_nozzle_group_result();
|
||||
// Orca: sequential (by-object) prints never publish a Print-level layered group result on
|
||||
// this branch; the statically applied config maps stay authoritative there.
|
||||
// Orca: defensive — with no published group result the statically applied config maps stay
|
||||
// authoritative.
|
||||
if(!group_result)
|
||||
return;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user