mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-14 22:41:05 +00:00
- get_extruder_nozzle_volume_count derives per-extruder volume-type slot lists from extruder_nozzle_stats (absent stats = one slot per extruder) - update_values_to_printer_extruders learns the slot layout: when any extruder mixes volume types, option arrays keep one slot per (extruder x volume type), extruder-ascending then volume-ascending; single-slot resolution takes the filament's volume type on mixed extruders - update_values_to_printer_extruders_for_multiple_filaments applies a per-filament nozzle_volume_type override from filament_volume_map (when sized to the filament count) and remaps filament_self_index through the same pipeline as every other filament key - get_config_index_base + is_auto_filament_map_mode helpers (consumers land with the per-filament config-index resolvers) - callers updated: PresetBundle composition paths, PrintApply (counts hoisted above the extruder_applied guard), Print write-back - new tests: slot counting, Hybrid slot expansion incl. stride 2, per-filament override, non-Hybrid degeneracy Non-Hybrid printers keep their variant layout and values (proven by a 19-fixture byte gate; the only header delta is filament_self_index now flowing through the same variant pipeline as its sibling filament keys). Hybrid slices grow the config-block variant arrays to one entry per sub-nozzle volume type; motion g-code is unchanged until the g-code writer consumes the new slots.