docs / features / Import 3D Model

Import 3D Model

Status: Implemented

Import 3D Model feature dialog

Import 3D Model loads a STEP (.step/.stp, ISO 10303-21) or IGES (.iges/.igs) file as exact B-rep solids. Everything below applies to IGES too unless it says otherwise: an IGES assembly is a file of subfigure instances (408), and its body colours come in as a STEP file's do.

STL, 3MF and OBJ inputs are reconstructed to STEP before this feature is added. STL and 3MF open an adjustable BREP preview; Accept import commits the result. A mesh file holding several separate shells — a multi-body STL or OBJ, a 3MF build that places more than one instance — reconstructs as one solid per shell, all carried by this single feature. See File Formats.

Inputs

The feature is never form-edited: the import stores its source inside the feature, either the STEP/IGES text or the exact geometry in the app's native form.

Behaviour

Importing an assembly

Before a .step/.stp upload is imported, the app reads the file's product structure. When the file has one — real part occurrences with geometry — a choice appears instead of an immediate import:

"bracket-assy.step" contains an assembly
7 parts, 23 instances.
Flatten sub-assemblies
[ Import as assembly ] [ Import as bodies ] [ Cancel ]

Import as assembly

Import as bodies

The flat lane: one Import 3D Model feature carrying the STEP text, every body placed at its world position, no parts library entries, no components, no workbench switch.

Cancel

Nothing is imported and the parsed structure is dropped.

Known gaps

A KiCad footprint's model

A part imported from KiCad (Symbol, Pads) brings its footprint's 3D model as one Import 3D Model feature. The model is the .step beside the .wrl the footprint names, read from your KiCad 3D-model folder. Its bodies are placed as KiCad places them: scaled, turned about X, then Y, then Z by the footprint's rotate angles, each negated as KiCad negates them, then moved by its offset in millimetres. The frame is KiCad's 3D view of the footprint, with y pointing the other way from the footprint file's and z up from the board's top copper.

The placed bodies are stored as a native payload, so the document keeps no STEP text and needs no KiCad library to reopen. The feature records what placed them: the (model …) path, the .step read, and the offset, scale and rotation numbers. Changing that record does not move the model.

Colours

Colours authored in a STEP file's presentation entities are read on import and stamped as a color attribute — an uppercase #RRGGBB value — on the imported name:

The color attribute is what the viewport shades from. Both levels render: a per-face colour paints that face, a per-body colour paints every face that has no colour of its own, and an object with neither falls back to the uniform or name-hashed mode from Settings. Because the colour lives in metadata rather than on the display, it survives a feature edit, a rollback and a save/reload. It is also what a STEP export writes: every body and face carrying a color goes out as a presentation style, so a colour you read in or picked here reaches the next system — see File formats.

To view a model without its colours, tick Settings ▸ Display ▸ Faces ▸ Override model colors. That is a display switch only: it makes the viewport fall back to the Settings face colour mode and never touches the stored attributes, so unticking brings every colour straight back and a document saved with it ticked still carries them all.

Two further limits: a file that styles the same item differently per representation context collapses to one colour, and INVISIBILITY is ignored — a body hidden in the source file still imports.

STEP import

Supported surface types include plane, cylindrical, conical, spherical, toroidal, surface-of-revolution, linear-extrusion, offset, and NURBS/B-spline surfaces. Solid bodies are read from MANIFOLD_SOLID_BREP, FACETED_BREP, certified BREP_WITH_VOIDS, and the closed shells of a SHELL_BASED_SURFACE_MODEL.

Known limitations: