🎉 WIN a Snapmaker U1 Printer! Enter FREE now

--info

Progress & Debugging Orca SlicerBambu Studio

Print per-object geometry statistics -- bounding box dimensions and corners, facet count, manifold status, part count, and volume -- from each object's unrepaired model-part mesh to standard output, with no slicing or output files produced.

Details

When --info appears in the action list the slicer iterates every loaded model and, for each ModelObject within it, computes statistics from the raw geometry and writes them to standard output. No slicing, G-code generation, or output file is produced; the process exits cleanly after the report.

The geometry is drawn from each object's merged model-part volumes (modifiers, support enforcers, negative volumes, and similar role volumes are excluded), with per-volume local transforms applied. The source comment on the dispatch site explicitly notes that --info works on the unrepaired model, meaning no additional repair pass is run for this action. Repair statistics recorded at file-load time may still be present in the mesh stats and can appear in the output (see below).

The reported fields per object are, in order: the source filename (the base name of the file the object was loaded from, in square brackets as a header), then the bounding box size on each axis (size_x, size_y, size_z), then the bounding box minimum (min_x, min_y, min_z) and maximum (max_x, max_y, max_z) corners, then number_of_facets. Next comes the manifold flag (yes or no); a mesh is considered manifold when both non_manifold_edges and non_manifold_vertices are zero. If not manifold, those two counts are printed on the following lines. If open edges exist, open_edges is printed. If the mesh carries any non-zero repair statistics from load time, the non-zero counts among degenerate_facets, edges_fixed, facets_removed, facets_reversed, and backwards_edges are appended. Finally, number_of_parts (the count of disconnected connected components) and volume are printed. All linear values are in millimeters; volume is in cubic millimeters.

In a multi-object file each ModelObject produces its own independent block. When multiple objects come from the same source file (for example, a 3MF that contains three mesh objects) all blocks share the same filename header because every ModelObject records the same source path. A 3MF with three mesh objects therefore emits three consecutive blocks, all headed by the same 3MF filename.

Examples

Example output block for one ModelObject
[MyPart.stl]
size_x = 40.000000
size_y = 30.000000
size_z = 15.000000
min_x = -20.000000
min_y = -15.000000
min_z = 0.000000
max_x = 20.000000
max_y = 15.000000
max_z = 15.000000
number_of_facets = 2048
manifold = yes
number_of_parts =  1
volume = 18000.000000

Watch out for

  • The manifold check and edge counts reflect the mesh state after file-load-time repair (if any), since `--info` performs no additional repair pass. A mesh reported as non-manifold here has remaining geometry issues even after whatever the loader fixed at read time.
  • The `--info` report is written to standard output (stdout) via cout. The slicer's internal log messages go to stderr in CLI mode. Capturing or discarding the two streams separately at the shell level lets you parse the report programmatically without mixing it with log noise.
  • Because `--info` is an action, not a modifier, combining it with `--slice` in the same invocation will both print the report and perform slicing — the action loop runs all actions in order. If you only want the report, omit `--slice`.

Sign up for free today

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