kicad StepUp script hacks MCAD world!

kicad ECAD meets MCAD world:
with this hack, you can finally export your kicad board and assemblies to MCAD world!

Similar projects worth following
kicad ECAD meets MCAD world:
With kicad StepUp, it is possible to work in kicad ECAD with the same component model data available in the STEP AP214 3D format, and obtain a 3D STEP AP214 model of the pcb board and a complete board assemblies with modules, to be used for MCAD collaboration
The accurate 3D visualization of components on board assemblies in kicad 3dviewer, is maintained in the same accuracy and aspect in STEP AP214 format
The Hack is done by switching from Wings3D to FreeCAD as 3D modeler
Instead of starting from VRML model, you just model your parts in MCAD (or FC) or just get them from 3D STEP libraries and export the parts to VRML
You can maintain the usual way to work with kicad and the script will assembly all the part in MCAD

kicad StepUp is a new approach to export kicad board and assemblies in STEP AP214 (with colors).
The kicad StepUp script maintains the usual way to work with kicad, but improves the process to work in a collaborative way with mechanical designers bringing near ECAD and MCAD environments.

The Hack is done reverting the usual workflow: instead of exporting 3D from kicad to VRML and then convert VRML to STEP (that will produce very bad results) I started from STEP models, converted STEP to VRML, and assembled STEP models in MCAD to have the same layout that will be displayed in kicad 3d VRML viewer.

the workflow is very simple and maintains the usual way to work with kicad:
the user has just to substitute Wings3D as modeler with FreeCAD.
You can start to add models to your library creating 3D models in FreeCAD,
or getting models from online libs or from the parametric 3D lib expressly done to kicad (
Once you have your 3D MCAD models, you need to have a copy of that in STEP and VRML format, and export the board to IDF.
Just put your models in the same folder in which normally you are used to put vrml models, and the script will assembly the MCAD board and models as in 3d-viewer of kicad.

here there is the demo video

The script is Open Source and works in Windows, Linux and OSX.

Here the fully contained demo board with 3D parts in VRML and STEP

I tested the script with many boards and here some of them:

HackRF-one kicad board

Crazyflie copter

The conversion from ECAD to MCAD can be done with all the modules or with bounding boxes of all or all but e.g. connectors and edge parts, so to have the accuracy of the pcb assemblies only when needed, maintaining the model light as required.

kicad StepUp rendered with Blender (MCAD parts converted to VRML)

feedback are welcome :)


interactive align 3d model to pcbnew footprint in ‘Altium’ style

With 'kicad-StepUp-tools' it is possible to load the kicad footprint in FreeCAD and align the 3D part with a visual real time feedback of the 3d model and footprint reciprocal position.
Once the 3D part is aligned to the footprint pads and silk, the model can be exported in STEP format and in VRML format for kicad 3d-rendering, just clicking on the Scale to kicad VRML button.
That will align EDA to MCAD 3d viewers. No need to reiterate the aligning process or empiric calculate offset and rotation to apply to VRML model.
With this tool is possible to download a part from on-line libraries (e.g. 3dcontentcentral, grabcad, etc), align the model to kicad footprint and export the model to wrl. That will produce a 3d VRML model exactly aligned to footprint as in mechanical CAD.

Generating smaller 3D model using bounding boxes

Sometimes the need would be just a 3D MCAD model for analysis or simple space constraints, so a nice detailed component models in MCAD system may be not required or desired; in that case it is possible to configure the exporter to:

- skip 3D models by name
- skip models with a volume < of an assigned value
- skip models with a height < of an assigned value

- convert the remaining parts, or all but edge connectors, to bounding boxes

The result 3D MCAD model will have the accuracy of the pcb and assemblies only when needed, maintaining the model light as required.

3D parametric models library

here some 3D parametric models that are generated by some FreeCAD scripts I've done:

Feb 2016:

Kicad StepUp GUI

kicad StepUp now has a GUI :)

and here the video tutorial

Kicad StepUp 3D viewer with Material Properties

here a small video to see crazyflie board with all VRML models and Material Properties added by kicad StepUp VRML exporter

Playing with Blender and Materials

and a small Blender animation where the part has been converted using Material Properties

Read more »

View all 4 project logs

Enjoy this project?



mart.knoll wrote 11/08/2015 at 16:02 point

Hey Maurice,

Nice work on StepUp , thank you for this.

I would love to use your library, can you recommend a best-practice how to take your generated 3d library and make them available in KiCad, preferably as default 3d parts?

  Are you sure? yes | no

Maurice wrote 11/08/2015 at 22:48 point

Hi @mart.knoll

thank you for your feedback :)

Regarding the libs, kicad installation normally overwrites all libraries and 3d models with the most recent ones...

So I usually make my lib (I call them approved libs) in a different place (dir) and I put the footprint libs and models modified and verified in that path

then I modify also KISYSMOD and KISYS3DMOD to match new folders

Typically I get the footprint I want to use 

(e.g. Resistors_SMD.pretty/R_0603.kicad_mod)

I check the 3D model name (with kicad pcbnew or with text editor)

(model Resistors_SMD.3dshapes/R_0603.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))

then I rename the 3d STEP and VRML parametric model as the name in the footprint 3D model, and I put both .wrl and .STEP in the 3D model dir

Please note that my models require position (at (xyz 0 0 0)) and (scale (xyz 1 1 1)) and (rotate (xyz 0 0 rotation_value)) (rotation_value is typically 0)

here some more tips

Feel free to contact me if you need more assistance or just visit the kicad forum at

for some more tips :)


  Are you sure? yes | no

Maurice wrote 11/29/2015 at 20:59 point

Hi @mart.knoll

I've starting to pack my 3D models in a lib directly usable in kicad...

you can follow the HowTo here

that would be of interest also for @jupdyke

  Are you sure? yes | no

jupdyke wrote 10/26/2015 at 19:16 point

So for this to work I have to have a .step file and a .wrl file for each component on my board? Is there some standard library that I can import to avoid this for the common parts?

  Are you sure? yes | no

Maurice wrote 10/26/2015 at 23:12 point

Hi @jupdyke,
you can find a parametric library for common parts at
I made this script to generate STEP and VRML models of common parts in FreeCAD

The script can generate the following parts:
chip capacitors, tantalum SMD capacitors, aluminum SMD capacitors, chip resistors, DIP ICs, QFN ICs, QFP ICs, SOIC ICs, GullWings ICs in general
here a starter guide:
and a wiki page for kicad StepUp script
you can download a fully contained demo project to test the script ...

feedback and suggestions are welcome :)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates