Mechanical fit is where a lot of otherwise-finished boards get stuck: the PCB is perfect, but nobody can tell whether it drops into the enclosure until the first prototype arrives. A 3D STEP model closes that gap by letting your mechanical CAD tool see the exact board and its components before anything is manufactured.
Short answer: In the KiCad PCB editor, choose File → Export → STEP, set an origin, and export. To do it without the GUI — in a script or an automated pipeline — run kicad-cli pcb export step against your .kicad_pcb file. Either way you get a STEP model you can hand straight to a mechanical engineer.
Why export a STEP model at all
A STEP (.step / .stp) file is the universal exchange format for mechanical CAD. Exporting one from KiCad unlocks a few things Gerbers and a BOM never can:
- Enclosure and mechanical fit. Drop the board into your enclosure model to check clearances, mounting-hole alignment, connector cutouts, and tall-component collisions before you spend money on a prototype.
- MCAD collaboration. Your mechanical engineer almost certainly works in SolidWorks, Fusion, Onshape, FreeCAD, or similar. STEP is the neutral format every one of those tools reads, so the board arrives as real geometry, not a picture.
- Assembly and documentation. A solid model feeds renders, exploded views, interference checks, and downstream mechanical drawings.
If you only need a picture, a rendered PNG is enough. If anyone needs to fit the board into something, they need the STEP.
The GUI method: File → Export → STEP
The interactive route is quick for a one-off:
- Open your board in the KiCad PCB Editor.
- Go to File → Export → STEP….
- Choose an origin. The drill/place file origin or the grid origin are both good choices — the important thing is that it's predictable and consistent between revisions.
- Set options as needed (which components to include, whether to substitute or drop certain models).
- Pick an output path and click Export.
KiCad walks the board, pulls the 3D model assigned to each footprint, positions everything, and writes a single STEP assembly. Open it in any MCAD tool to confirm it looks right.
The command-line method with kicad-cli
For anything repeatable — a release checklist, a build script, an automated pipeline — the GUI is the wrong tool. KiCad ships kicad-cli, which produces the exact same model headlessly:
kicad-cli pcb export step --output board.step board.kicad_pcb
That's the whole command: point it at your .kicad_pcb, name the output, and you get a STEP model with no GUI involved. Because it's just a command, it slots into any script and runs identically on every machine.
kicad-cli also exposes flags to control what ends up in the model — for example options to substitute simplified or alternate 3D models for specific footprints, and options to exclude parts marked DNP so the export matches the board that's actually assembled. Run kicad-cli pcb export step --help to see the exact flag names for your KiCad version; they occasionally change between releases, so it's worth checking rather than memorizing.
Handing the STEP file to a mechanical engineer
A clean handoff is more than emailing a .step. Give your mechanical engineer everything they need to place the board correctly the first time:
- The origin you used. Tell them whether zero is the drill origin, grid origin, or a specific corner. This is the single most common cause of "the board is floating in space" when they open it.
- Units and orientation. STEP carries units, but confirm mm vs. inch and which way is "up" so nothing gets mirrored.
- What's excluded. If you dropped DNP parts or substituted simplified models, say so — otherwise they'll design clearance around a connector that won't be there.
- A revision tag. Name the file with the board revision so a STEP from rev B never gets fitted against an enclosure cut for rev A.
| Handoff item | Include? | Why it matters |
|---|---|---|
| STEP model | Always | The geometry itself |
| Origin reference | Always | Aligns the board in the enclosure |
| Revision / commit | Always | Prevents mixing outdated geometry |
| DNP / substitution notes | If applicable | Clearances match the real assembly |
| A quick render or screenshot | Nice to have | Sanity-check before opening MCAD |
Common issues (and how to fix them)
Missing 3D models for some footprints. The STEP export only includes footprints that have a 3D model assigned. Generic passives, custom parts, and some connectors ship without one and show up as bare pads. Fix it in Footprint Properties → 3D Models by assigning a STEP or WRL model, then re-export. For tall or critical parts (connectors, electrolytics, headers) this is worth doing every time.
Wrong or inconsistent origin. If the board lands far from the origin or in an unexpected spot in MCAD, it's almost always the export origin. Pick one reference and use it for every export so revisions stack perfectly on top of each other.
DNP parts showing up. If your model includes components that won't be populated, the mechanical engineer designs around hardware that isn't there. Use KiCad's option to exclude DNP parts so the STEP reflects the assembled board.
Model looks right but fit is off. Double-check units and that no footprint has a 3D model with a bad offset or rotation baked into its properties — one mis-rotated connector model can throw off an entire clearance check.
Make the STEP model automatic
Exporting a STEP by hand every revision is exactly the kind of step that gets skipped right before a deadline — and then the enclosure is cut against a stale board. GoForFab runs kicad-cli on every push and generates your 3D outputs, renders, and the rest of the manufacturing package automatically, so the current STEP model is always sitting there waiting whenever mechanical needs it. It's free forever for that, so there's no reason to keep exporting by hand.
For the bigger picture on why these outputs matter, see KiCad's missing manufacturing package and what a professional manufacturing handoff looks like. And if Gerbers are your next stop, here's how to export them from KiCad.