Snapshot of the current OrcaSlicer session: app and project info, the active
print/filament/printer presets with which of their keys are modified (dirty), whether the
last slice is still valid, and whether a slice is running. Read-only.
Call it first to orient before slicing or editing, to see which settings drift from their
preset, or to check slice_result_valid before trusting earlier stats.
Read merged config values (optionally filtered to `keys`).
Apply config changes to the active project as unsaved overrides, atomically: if any
key is invalid the whole batch is rejected and nothing changes. Returns {applied, errors}.
Overrides show as modified in get_status, are not written to any preset file, and revert
if the preset is reselected; call save_preset to persist them. Each apply invalidates the
last slice, so re-slice afterwards. It does not run the physics gate, so for temperature,
speed, acceleration, or flow keys run check_profile_physics before trusting the result. To
edit a stored preset rather than the live project, use edit_preset.
Start slicing the current plate in the background and return immediately, without waiting
for the result. The reply is 'started' (a slice began), 'already_valid' (the plate is
unchanged and the last result still holds), or a conflict if a slice is already running.
Fire-and-forget: poll get_slice_status for progress and stats, or cancel_slice to stop it.
Prefer slice_and_wait when you want the finished stats back in one call.
State of the current or most recent slice: state (slicing, done, error, or idle), stats
(print time and filament use when done), and any warnings or errors. Read-only.
Poll this after slice to follow progress and read the result; 'idle' means no slice has run
or it was cancelled. For only the pass/fail warnings use get_slice_warnings; for a
per-feature time and filament breakdown use get_slice_breakdown.
Just the warnings/errors from the last (or current) slice, plus validity - the
fast 'did anything go wrong' check and the way to confirm a fix cleared.
NOTE: only as complete as the API exposes. On the current fork build this may report
valid with an empty warnings list even when the GUI shows a plate-boundary toast -
the fork must populate the plater warning list (tracked as the fork batch). Once it
does, this reports the real warnings with no change here.
Per-feature breakdown of the last slice + a stateless predicted-vs-observed flow check.
Returns per-role time/filament + speed/flow ranges, global time-weighted metric
distributions, per-layer aggregates, and a prediction_check flagging where the profile's
speed was silently throttled at the flow ceiling ('clamped'). Answers 'which feature is
the time hog' directly instead of by trial slicing.
Degrades to {"available": false, "reason": ...} on fork builds that don't emit the
breakdown, or when there is no valid slice.
Abort a running slice, or unwedge a stale 'slicing' state (e.g. after an
object outside the bed). Safe when idle.
Slice the current plate and block until it finishes, then return the final stats and
warnings in one call. If the plate is already sliced and unchanged, it returns the existing
result without re-slicing.
This is the usual way to slice when you want the outcome immediately. For a non-blocking
start, use slice then poll get_slice_status; to sweep one setting across values, use
compare_settings.
Apply config overrides and then slice in one step, returning {applied, errors, result}
with the resulting stats and warnings. The changes are atomic (any invalid key rejects the
whole batch) and unsaved, exactly like set_config, so they revert if the preset is reselected.
Use this to test the effect of a tweak in a single call. Use set_config then slice_and_wait
to keep the steps separate, or compare_settings to try several values of one key.
For each value of `key`, slice and collect stats/warnings; restore the original when done.
Non-destructive: the original value of `key` is put back even on error.
Slice the current plate under several named variants and compare the cost of each.
Each variant is {"name": str, "changes": {setting: value}}; changes={} means the
current config as-is (a natural baseline row). Applies each variant over the ORIGINAL
config (resetting between variants, so they don't stack), slices it, then restores your
config exactly as it was - nothing is left changed (slice validity is left false, as
after any un-resliced edit).
Returns a ready-to-relay `headline` and `table_markdown`, plus structured `variants`.
All deltas and percentages are ALREADY computed and rounded against `baseline`
(defaults to the changes={} variant, else the first) - relay them as given rather than
recomputing. `recommended` names one pick; `recommended_is_dominant` says whether it
beats every variant on every axis (time, filament, warnings) or is only the fastest
warning-free option amid a genuine trade-off (`tradeoff` then names the frontier).
Each variant is a full slice (minutes); capped at 8. Set detail=True only when a
per-feature (wall/infill/support) split is wanted - it grows the response ~N x. With
more than ~5 variants, lead with the recommendation and the extremes, not all rows.
+32 more tools listed on main page