Recommendations for a 3D CAD package for KiCad

I’m interested in making some 3D packages for use with KiCad. Right now, I’ve considered three packages:

  • Wings3D: Outputs WRL files that will work with KiCad, but doesn’t have an obvious scripting capability.
  • Blender: Needs a script to output WRL files, but it seems more actively developed than Wings3D. Probably has a scripting interface in there, somewhere.
  • FreeCAD: Parametric modeler with Python scripting. Can output WRL files, but will they work with KiCad?

Any advice from people who have been down this road before?

  1. Wings3D is awful; if you want VRML models only and you can do a little programming, I have some modeling tools here: https://github.com/cbernardo/kicad3Dmodels
    The tools and sample scripts currently produce over 6000 models (though 4000 or more of those are thru-hole resistors with color coding). Wings3D is also an artistic CAD not a solid modeling tool. My VRML tools are no better really; they can only produce models for display, not solid models for use in MCAD.

  2. Blender: like Wings3D this is an artistic CAD. Unless you can script a lot of your work, creating repetitive similar parts, in my opinion, is a waste of time.

  3. FreeCAD: this is a solid modeling tool and it has a scripting interface. From version 0.15 onwards the exported VRML can be displayed by kicad. You can make not only a VRML model for the 3D viewer, but also STEP models which can be incorporated into a mechanical part model using the scripts here: http://sourceforge.net/projects/kicadstepup/

FreeCAD is the only open source solid modeler which I am aware of, but it’s usability is still many years behind that of commercial solid modelers (which are hideously expensive). However, for 1-off parts you might consider using autodesk360 on the web or “onshape” - these are both professional solid modelers, but your data is hostage on the web and the restrictions for free use may not be suitable to what you want to do. I also have no idea if scripting is possible; it’s certainly possible in the equivalent products you can install on a computer at home.

Yep, pretty much what cbernardo said.
If I were you and also interested in CAD/CAM and have the occasional engineering drawing to do I’d go straight for FreeCAD. It might be years behind things like Solidworks or Inventor, but if you want to have any chance at doing things ‘properly’ you want that.
I’m in the lucky/unlucky position to get access to Inventor through their scientific program that gives access for free if used for non-commercial things (student or staff at universities). So on one hand I have a nice tool to do this, but on the other the pressure to learn FreeCAD are miniscule, so I can’t give you any ‘real’ advice on how it is as I’m biased (I use it to get STEP models from Inventor into VRML for KiCAD though and it does a good job at that).
To learn FreeCAD will be a bit of a struggle which will be true for all of those programs, but I’m pretty sure it will work for most tasks that you need to get packages drawn.

Thanks for the replies! Guess I’ll go with FreeCAD.

I’ve already started on their tutorial. Since I have no mechanical CAD experience, it doesn’t seem that bad to me.

@cbernardo could you explain the scripting a little more? What about it would be scripted? You wouldn’t need to actually make each one individually?

@cbernardo, @ChrisGammell, @devbisme, @Joan_Sparky: FreeCAD can be scripted and yes, it is possible to make 3D models scripting FC.

Me and Hyozd have done a FreeCAD repo of 3D models (in FreeCAD, STEP and VRML format) generated by some python script.

You can find those at:
FreeCAD 3D models script generator
there are also some generated models, usable out ‘of the box’ for kicad:
chip capacitors
tantalum SMD capacitors
aluminum SMD capacitors
chip resistors
DIP ICs
QFN ICs
QFP ICs
SOIC ICs
GullWings ICs in general
The models can be generated by the script; if your model is not already generated, you can add parametric data at the correspondent data base (a text file) and create your model.
here there is a starter guide:
FC script 3D model generator starter guide

When you have your VRML models, if you just put your STEP models in the same folder, you can also get all the pcb assemblies through kicad StepUp script.
Kicad StepUp script ECAD to MCAD
With kicad StepUp, it is possible to work in kicad EDA 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 assembles with electronic modules, to be used for MCAD interchange. The accurate 3D visualization of components on board assembles in kicad 3dviewer, is maintained in the same accuracy and aspect in STEP AP214 format.
here there is a video tutorial of the script:
kicad StepUp video howto
and here is a picture of how the ECAD and MCAD environments can be matched each other:


kicad StepUp starter guide

I’ve done also the models for OLIMEX MOD-MPU9150 board wich is done with kicad.
at this link the kicad MOD-MPU9150 board with all 3D models (VRML and STEP) and the full assemblies:
MOD-MPU9150 board with all 3D models
here the image screenshot as in FreeCAD:


and the 3D assemblies in STEP

I will be very happy to get some feedback of the 3D models and StepUp script.
Thank you,
Maurice

4 Likes

Thanks for the links, maui! That’s exactly the thing I was looking for. I’ve currently got a hodge-podge of 3D models from various sources.

Yeah, that was a badass post @maui, thanks! Looking forward to trying this out.

There’s not much to explain about the scripting but basically you do have to carefully program each model. For related items such as QFP you can create scripts which take parameters from a list and generate a variety of QFP parts, including more esoteric ones such as packages with missing pins. In many instances scripting a model takes much less time than you’d spend on Wings3D or even Blender to create a model. My original idea with the VRML scripting (via Python) was that the same techniques could eventually be applied to create IGES and STEP models; small modules would define types of items which you would expect to see on a variety of parts, such as a pin. Using such definitions will allow much simpler scripts to create more complex part shapes by simply using the appropriate modules. Unfortunately I’ve been too busy to develop the equivalent MCAD part scripts but it looks like other people are working on doing it with FreeCAD.

For complex shape, especially asymetric shape, I did 3dmodels with ( Trimble / Google) Sketchup. In average, it is easier and faster rather than Wings3D. And about the precision, I am more confidence drawing with S/U. ( might be … I am as long user more familiar with S/U rather than Wings3D ).

The process is quite simple :smile:
1 - sketch / draw it in S/U ( xxx.SKP )
2 - export to STL ( xxx.STL - using STL exporter plugin )
3 - Open WIngs3D , … import the xxx.STL
4 - Tweak, adjust, clean, connect any missing wire and “tesselate” if necessary
5 - colouring the material / vertex if necessary
6 - export it to VRML … Pay attention to SCALE and AXIS SWAPPING.

Anyway, Wings3D is great tools to do 3d modelling.

rgds / jbd

Hi all,

It’s worth considering here what you want to use the 3D for - if you just want to visualise what the populated board will look like in 3D then VRML data is fine - however, VRML is just 3D surface rather than solid data. E.g. It’s a bunch of triangles representing the outer surface of the component. Most 3D Mechanical CAD systems would be able to display this, but you wouldn’t be able to do anything meaningful with it in the MCAD like find its mass, centre of gravity, or perform any analysis. To do that you’ll want a 3D solid modelling format like STEP (or native SolidWorks, Inventor etc. data).

In terms of which free 3D MCAD system to use, I’d definitely recommend taking a look at Onshape (which runs in a web browser) and Autodesk Fusion 360 (a free web download for start up and hobbyists). Both are much more capable systems than things like FreeCAD or SketchUp.

Although I’ve mentioned it on a couple of threads now, just a reminder that www.ecad.io will allow you to visualise an IDF file from KiCAD in 3D and turn it into a STEP model which can then be downloaded or sent directly to Onshape. Oh, and it’s free too!

Please consider that using FreeCAD 0.15 or later (open source) you can create your 3D models and export them in STEP (with colors) and VRML.
When you have your VRML models, if you just put your STEP models in the same folder, you can also get all the pcb assemblies in a 3D solid modelling format with kicad StepUp script.

In this way you will have kicad 3D viewer fully aligned with the 3D MCAD representation, maintaining the usual way to work with kicad, but allowing board designers to resolve mechanical clearance problems on the fly.
This will also improve the process to work in a collaborative way with mechanical designers (STEP format is widely used as MCAD data interchange).
And moreover, you can get STEP models from manufacturers; converting them to VRML with FreeCAD you will get those models available in kicad 3d-viewer.

And you get everything with open source software :smile:

Hi maui - good point. Although bear in mind although the systems I’ve mentioned aren’t Open Source, they are all free (at least for light/casual use), so does give KiCad users an alternative free way of getting 3D STEP models directly into MCAD without needing to install any software or play around with scripts.

I think the real key to ECAD-MCAD conversion is the content. Most people wanting a 3D MCAD model for analysis or simple space constraints probably won’t want detailed component models in their MCAD system (as the models will be huge and slow everything down), but some will. As you say, a lot are available from manufacturers, but getting hold of everything people might need is certainly a big job. I think we’ve got 1000 or so models so far, and we’ve barely scratched the surface!

Cheers,

Rob

Hi RobL,
I don’t want to talk about the difference between
free (at least for light/casual use) and freedom of open source,
anyway talking about:
‘the real key to ECAD-MCAD conversion is the content’, consider that there are sites like
http://www.3dcontentcentral.com/
http://www.tracepartsonline.net/
https://grabcad.com/
that offer millions of ‘free’ models and those models can be easily converted to VRML with FreeCAD and used with kicad StepUp script; anyway I would consider what @cbernardo posted about those models and sw
and regarding:
people wanting a 3D MCAD model for analysis or simple space constraints probably won’t want detailed component models in their MCAD system
thank you for pointing that out…
I forgot to let users know that it is possible to configure the script to generate for all, or all but edge connectors, bounding boxes models, so to have the accuracy of the pcb assemblies only when needed, maintaining the model light as required.

However, I’m glad to know that KiCad’s users now have multiple alternatives, free to be chosen, to obtain MCAD model of their artwork.

Cheers,

Maurice

Another option not yet mentioned is OpenSCAD It’s strictly programmatic rather than direct modeling but some people do really like it and can do some incredible work with it.

For US/Canadian military veterans, SolidWorks offers a non-commercial use one year student license for US$20. AFAIK it’s not renewable; it’s necessary to re-apply and purchase a new license each year. But, if you’ve got your DD214 handy, it’s a bargain.

Yes, I used to use Openscad for 3D modelling within Kicad. I think my workflow was Openscad -> Export .stl -> Import to Blender -> Export .x3d. Pcbnew can read in the .x3d files the same as VRML from Wings or Freecad. It’s a sweet tool for mesh drawings, but I have since switched to generating parts to the StepUp scripts using Freecad, as you cannot share board files with your mechanical guy (if you have one and are worried about that kind of thing) without solid models. It’s pretty easy to make parts with this tool.

Note: I still use Openscad for most 3D printing work. It really is a cool tool. It can be super efficient for certain kinds of models.

As I would like to use open source as much as possible, it is sometimes needed to use programs that is not. In this case I use both FreeCad and Autodesk Fusion360.
Autodesk Fusion360 is a very good alternative and the price is also nice…:
"A free 1-year startup license is also available for hobbyists, enthusiasts, makers, and emerging businesses that make less than US$100,000 in revenue per year. At the end of 1 year, you can reselect the startup entitlement or transition to a commercial entitlement."
For most of us that is free :grinning:
The options, stability and UI is to prefer. And it is easy to learn.

“that offer millions of ‘free’ models and those models can be easily converted to VRML with FreeCAD”

In the case of 3dcontentcentral you can download directly the VRML (version 1) file. Kicad should be able to open it directly without conversions need.

the phrase I posted was related to the RobL comment related to: “In terms of which free 3D MCAD system to use” and you cannot use VRML models for 3D MCAD environment. And moreover in which scale the VRML models are in 3dcc? In which way can you measure them?

Anyway I think, as @cbernardo pointed out, that FreeCAD is the only open source solid modeler which I am aware of.

Just a more little clarification: kicad StepUp script needs FreeCAD to convert the kicad board to STEP, but the VRML and STEP models can be done/obtained in whatever software/source you desire… and moreover the board result is in STEPAP214 standard format, so you can open - interchange - collaborate with your art work in MCAD world, independently from the MCAD software you choose to use; the only requirement, to be sure to obtain a MCAD model of your board assemblies is that your 3D model/source has to be a MCAD model, instead of WIngs3D polygon modeler. From MCAD model you can check real dimensions and you can export VRML and STEP models for the conversion to be used in kicad EDA and MCAD.
I’m receiving feedback from users that managed to open/work/collaborate with the kicad StepUp converted assemblies in the following programs:
Catia V5, PTC Creo Parametrics V2, Solid Edge ST7, Siemens NX10, Solid Works, Rhinoceros 5…
so that’s not so bad :smile:

That is true. Kicad 3d-viewer is not a MCAD system.
I just reply to remember (for those who not use kicad 3d-viewer as MCAD) that 3dcontentcentral models can be loaded in kicad directly (however, some model conversion are a bit buggy)

Btw, we should have in future a 3D repository for Kicad…

1 Like