--uptodate-filaments
"f1.json;f2.json"Supply per-slot filament preset JSON files for --uptodate to refresh against, one file per 3MF slot in order; which settings to preserve is decided by the 3MF's own embedded different_settings_to_system, not by anything in the supplied files.
Details
--uptodate-filaments is the per-filament-slot companion to --uptodate. When --uptodate is active and --uptodate-filaments is provided, the slicer loads the listed preset JSON files as the authoritative filament preset sources, one per slot in the order the 3MF defines them, rather than resolving against its bundled presets. The value is a single semicolon-delimited string of file paths, where each path points to a filament preset JSON exported from the slicer. The number of paths must exactly equal the filament slot count embedded in the 3MF; a mismatch is a hard error that aborts slicing.
Each JSON is validated as a filament-type config. The slicer extracts its name field and checks that it matches the system preset name the 3MF recorded for the corresponding slot (either the original name or the converted name after any cross-brand preset renaming). Supplying a file whose name does not match the slot's recorded preset name is a fatal error; you cannot use this path to substitute a different filament profile. The purpose is to supply a newer version of the exact same preset.
Once validated, the slicer determines which setting keys to preserve using the different_settings_to_system field embedded in the 3MF itself — the list of keys that were recorded as user-customized when the 3MF was saved. Any key appearing in that list is treated as user-customized and its value from the 3MF is kept; every other key is overwritten from the supplied preset file. The supplied JSON files contribute only the new preset values; the decision of what to protect is driven entirely by what the 3MF already recorded. This mirrors how --uptodate handles machine and process configs: preset values flow forward, explicit user changes stay.
If --uptodate-filaments is omitted while --uptodate is present, the slicer falls back to resolving each filament slot against the corresponding file in its bundled profile tree.
Watch out for
- ▲ The path count must match the 3MF's filament slot count exactly. Off by one always exits with an invalid-parameters error — there is no padding or truncation.
- ▲ Each file is matched by the preset `name` key it contains, not by filename. The name must equal what the 3MF recorded for that slot (original or cross-brand-converted name); a different-named preset at the same slot index is rejected.
- ▲ User-customized keys are identified by the `different_settings_to_system` field already embedded in the 3MF, not by anything in the supplied JSON files. If that field is absent or empty for a slot, the slicer treats all keys as preset-sourced and overwrites everything, including settings the user may have intentionally changed.
Sign up for free today
No credit card required. Connect unlimited printers and get production automation running in minutes.