Inspect Model
inspectUse this when you need to read facts about a model. One reader, selected by of:
'assembly' — physical assembly inventory (parts, bboxes, connectors, mates, disconnected solids).
'robot' — URDF/SDFormat export preview (links, joints, planning groups, end-effectors, issues).
'step' — inspect an imported STEP file.
'shape' — volume / surfaceArea / bbox for one feature ({ feature_id? }).
'mass' — mass, centre of mass, centroidal inertia tensor (inertia6 + 3x3 inertiaMatrix), principalMoments/principalAxes, symmetry flags, and optionally the radius of gyration about an arbitrary axis ({ feature_id?, density?, gyration_axis? }); density in kg/m^3, defaults to 1000 (water).
'features' — features captured by the script (kind, id, params, transforms, suppression).
'assemblies' — assembly intent (assemblies, parts, connectors, joints).
'topology' — canonical face names + edge count for a feature ({ feature_id? }).
'edges' — edges of a shape with optional EdgeQuery ({ feature_id?, query? }); returns @kc[...] refs.
'face-edges' — boundary edges of a named canonical face ({ feature_id?, face_name }).
'faces' — faces of a shape with optional FaceQuery ({ feature_id?, query? }); returns @kc[...] refs.
'face-labels' — user-applied labels visible in the script.
'mates' — mates captured by the script.
'constraints' — sketch constraints captured by the script.
'part-stats' — bundled parts-catalog statistics.
'bend-table' — sheet-metal bend table for a flattened pattern.
'params' — declared model parameters.
'part-categories' — top-level part-catalog categories available in the bundled (and configured remote) catalog.
'part-families' — part families within a category ({ category? }); count + exemplar ids per family.
'bom' — bill of materials ({ assembly? }): one row per distinct part (grouped by geometry/catalog identity, not name) with real instance quantity, kind ('fabricated'|'purchased'), material, density, per-unit and total mass, bbox, a fabrication process hint, catalog provenance for purchased parts, and totals;
bom.*diagnostics flag rows with no density source or missing catalog vendor info instead of guessing.'section' — numeric cross-section probe of a shape: area, perimeter, loop/hole counts, 2D bbox at a plane ({ feature_id?, plane | at+axis, stack?: { from, to, count, axis? } }).
stackscans evenly spaced slices and returnsminAreaIndex/minAreaPosition— use it to find the neck/thinnest cross-section along an axis.'continuity' — G0/G1/G2 classification of shared edges ({ feature_id?, edges? }); position gap, normal jump, curvature difference, worst-sample XYZ.
'curvature' — per-face Gaussian and mean curvature min/max/mean, inflections, spikes ({ feature_id?, faces?, spike_factor? }). All params except
ofare subject-specific and forwarded verbatim. Most subjects accept { file | code }.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | of:'section' — single slice position along `axis` (mm). | |
| of | Yes | Which facts to read. | |
| axis | No | of:'section' — normal axis for `at` / `stack` (default 'z'). | |
| code | No | Inline kernelCAD script source. | |
| file | No | Path to a .kcad.ts script file. | |
| edges | No | of:'continuity' — optional EdgeQuery or @kc[...] ref(s) limiting which shared edges are sampled. | |
| faces | No | of:'curvature' — optional FaceQuery or @kc[...] ref(s) limiting which faces are sampled. | |
| plane | No | of:'section' — section plane. Either a cardinal name string 'xy'|'xz'|'yz', { plane: 'xy'|'xz'|'yz', offset? }, or { origin: [x,y,z], normal: [nx,ny,nz] }. Omit to use `at`+`axis`. | |
| query | No | of:'edges'|'faces' — optional EdgeQuery/FaceQuery filter. | |
| stack | No | of:'section' — dense scan: `count` slices evenly spaced from `from` to `to` along `axis`; response reports minAreaIndex/minAreaPosition. | |
| density | No | of:'mass' — material density in kg/m^3 (steel 7850, aluminium 2700, ABS 1050). Defaults to 1000 (water); the response echoes the value used and flags when it was defaulted. | |
| assembly | No | of:'assembly'|'robot'|'bom' — assembly name; defaults to the first captured assembly. | |
| category | No | of:'part-families' — optional top-level category to filter families by. | |
| face_name | No | of:'face-edges' — canonical face name (required for that subject). | |
| feature_id | No | of:'shape'|'mass'|'topology'|'edges'|'faces'|'face-edges'|'face-labels' — FeatureId; defaults to the last returned shape. | |
| spike_factor | No | of:'curvature' — spike sensitivity as a multiple of the face's Gaussian stddev (default 6). | |
| gyration_axis | No | of:'mass' — optional axis in shape-local mm to report the radius of gyration about. Omit for centroidal quantities only; the result is density-independent and returned in mm. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | No | Whether the read succeeded. | |
| error | No | Failure message (present on failure). | |
| errorCode | No |