🎉 WIN a Snapmaker U1 Printer! Enter FREE now

--estimate-mode

Slicing Actions Bambu Studio 2.7.1+only

Automate filament-preset resolution and extruder-topology population for a cross-machine estimation slice, so the flush and time estimators receive coherent inputs without the caller having to supply --load-filaments or manually configure multi-extruder topology fields.

Details

--estimate-mode is a boolean flag (default off) that automates the two pieces of state the CLI cannot derive on its own when you slice a project against a machine it was not authored on: which filament presets to load, and how to describe the target machine's extruder and AMS topology to the flush estimator.

The flag is only meaningful in combination with a machine switch, meaning --load-settings must point to a different machine than the one embedded in the 3MF. The CLI enforces this: if the new and current printer names are the same, or either is absent, it exits with an invalid-parameters error before slicing begins.

The two automation steps happen at different points in the processing pipeline. First, if no --load-filaments paths were supplied, the CLI resolves a filament preset for each slot that was occupied in the original 3MF. It does this by extracting the base material name from the original preset (stripping the @... machine suffix), then looking for a matching preset in the bundled profiles/BBL/filament_full/ directory under the new machine's BBL tag. Resolution falls back through three tiers: (1) an exact name match for the new machine tag, verified by checking that the file's compatible_printers field includes the new printer system name; (2) a scan of filament_full/ for any file starting with the same base name whose compatible_printers field includes the new printer system name; (3) the new machine's default_filament_preset. Slots for which no match is found at any tier are left empty and filled by copying the first valid resolved preset, so slot indices remain aligned.

Second, for multi-extruder machines (X2D- and H2D-class) and multi-sub-nozzle machines (H2C-class), the flag fills the extruder capability fields the flush planner needs: filament_map_mode is set to AutoForFlush, and nozzle_volume_type is set to standard for each extruder. For multi-sub-nozzle machines additionally, extruder_nozzle_count and extruder_nozzle_volume_type are populated from the machine profile's extruder_max_nozzle_count. Then, for multi-extruder machines specifically (X2D- and H2D-class, where extruder count exceeds one), the per-plate AMS topology passed to the flush estimator uses 8 slots per extruder (vs. 4 without the flag) and an AMS descriptor of 1#0|4#2 (vs. 1#0|4#1), reflecting a richer assumed AMS configuration appropriate for estimation on a machine not yet physically connected. Multi-sub-nozzle single-extruder machines (H2C-class) do not receive the per-plate AMS slot or descriptor change.

Examples

Estimate after switching machine
--slice 1 --estimate-mode \
  --load-settings "newmachine.json;process.json" model.3mf

Watch out for

  • A machine switch is mandatory: the new printer name (from `--load-settings`) and the original printer name (from the 3MF) must both be present and must differ, or the CLI aborts. Passing `--estimate-mode` on a same-machine slice is a hard error.
  • If `filament_map_mode` is supplied explicitly alongside `--estimate-mode`, it must be `AutoForFlush`; any other value aborts with an invalid-parameters error.
  • Filament preset resolution only searches the slicer's bundled `profiles/BBL/filament_full/` directory. User-created or store-custom filament profiles are not candidates, so highly customised filament setups may fall back to the machine default for every slot.

Related flags

Sign up for free today

No credit card required. Connect unlimited printers and get production automation running in minutes.