CLI ignores per-filament nozzle temperatures in multi-extruder mode (--load-filaments) #248

Open
opened 2026-04-05 16:19:18 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @djsplice on 3/19/2026

Is there an existing issue for this problem?

  • I have searched the existing issues

OrcaSlicer Version

2.3.1

Operating System (OS)

macOS

OS Version

macOS (tested on latest version)

Additional system information

No response

Printer

Snapmaker U1 (multi-extruder)

How to reproduce

  1. Create two filament profile JSON files with different nozzle temperatures:

    • filament_T0.json: "nozzle_temperature": ["220"]
    • filament_T1.json: "nozzle_temperature": ["245"]
  2. Run OrcaSlicer CLI with both profiles:

/Applications/OrcaSlicer.app/Contents/MacOS/OrcaSlicer \
  test.3mf \
  --load-settings machine.json\;process.json \
  --load-filaments filament_T0.json\;filament_T1.json \
  --slice=0 \
  --outputdir output
  1. Check temperature commands in generated G-code:
grep -E "M109" output/plate_1.gcode | head -10

Actual results

Both extruders are set to 220°C (the first profile's temperature):

M109 S220 T0  ; Correct
M109 S220 T2  ; WRONG - should be 245°C

The G-code metadata shows both profiles were loaded:

; filament_settings_id = "PLA Profile";"PETG Profile"
; filament_type = PLA;PETG

But the actual temperature commands ignore the second profile's settings.

Expected results

Each extruder should use its own profile's nozzle temperature:

  • T0: 220°C (from filament_T0.json)
  • T1/T2: 245°C (from filament_T1.json)

Project File (.3MF)

Complete reproduction case available at: https://github.com/djsplice/lmnt_marketplace/issues/161

The repro includes:

  • Test 3MF file
  • Machine and process profiles
  • Two filament profiles with different temps (220°C vs 245°C)
  • Automated test script
  • Full documentation

Log File

No crash occurs - this is a logic bug in temperature handling

Additional Information

What works correctly:

  • Other per-filament settings ARE respected:
    • filament_flow_ratio (1.0 vs 0.95)
    • filament_max_volumetric_speed (12 vs 10)
    • filament_type metadata
    • Cooling parameters
    • Retraction settings

What's broken:

  • nozzle_temperature - Uses first profile's value for all extruders
  • nozzle_temperature_initial_layer - Uses first profile's value for all extruders

Impact:
This prevents automated multi-material slicing workflows from using different materials that require different temperatures (e.g., PLA + PETG, PLA + TPU).

Workaround:
Currently must either:

  1. Use materials with identical temperature requirements
  2. Manually edit G-code after slicing
  3. Use OrcaSlicer GUI instead of CLI
*Originally created by @djsplice on 3/19/2026* ### Is there an existing issue for this problem? - [X] I have searched the existing issues ### OrcaSlicer Version 2.3.1 ### Operating System (OS) macOS ### OS Version macOS (tested on latest version) ### Additional system information _No response_ ### Printer Snapmaker U1 (multi-extruder) ### How to reproduce 1. Create two filament profile JSON files with different nozzle temperatures: - `filament_T0.json`: `"nozzle_temperature": ["220"]` - `filament_T1.json`: `"nozzle_temperature": ["245"]` 2. Run OrcaSlicer CLI with both profiles: ```bash /Applications/OrcaSlicer.app/Contents/MacOS/OrcaSlicer \ test.3mf \ --load-settings machine.json\;process.json \ --load-filaments filament_T0.json\;filament_T1.json \ --slice=0 \ --outputdir output ``` 3. Check temperature commands in generated G-code: ```bash grep -E "M109" output/plate_1.gcode | head -10 ``` ### Actual results Both extruders are set to 220°C (the first profile's temperature): ```gcode M109 S220 T0 ; Correct M109 S220 T2 ; WRONG - should be 245°C ``` The G-code metadata shows both profiles were loaded: ```gcode ; filament_settings_id = "PLA Profile";"PETG Profile" ; filament_type = PLA;PETG ``` But the actual temperature commands ignore the second profile's settings. ### Expected results Each extruder should use its own profile's nozzle temperature: - T0: 220°C (from filament_T0.json) - T1/T2: 245°C (from filament_T1.json) ### Project File (.3MF) Complete reproduction case available at: https://github.com/djsplice/lmnt_marketplace/issues/161 The repro includes: - Test 3MF file - Machine and process profiles - Two filament profiles with different temps (220°C vs 245°C) - Automated test script - Full documentation ### Log File _No crash occurs - this is a logic bug in temperature handling_ ### Additional Information **What works correctly:** - ✅ Other per-filament settings ARE respected: - `filament_flow_ratio` (1.0 vs 0.95) - `filament_max_volumetric_speed` (12 vs 10) - `filament_type` metadata - Cooling parameters - Retraction settings **What's broken:** - ❌ `nozzle_temperature` - Uses first profile's value for all extruders - ❌ `nozzle_temperature_initial_layer` - Uses first profile's value for all extruders **Impact:** This prevents automated multi-material slicing workflows from using different materials that require different temperatures (e.g., PLA + PETG, PLA + TPU). **Workaround:** Currently must either: 1. Use materials with identical temperature requirements 2. Manually edit G-code after slicing 3. Use OrcaSlicer GUI instead of CLI
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#248