Friday, February 10, 2012

Free CAD software: 3D, 2D, and PCB layout

I rely heavily on CAD freeware for all my weird obsessive bike light projects.  Never having been a professional engineer or designer, I haven't had the luxury of being able to snag a copy of any commercial CAD software from my workplace.  Licenses for such things run into the thousands of dollars (I emailed Solidworks a few months ago to get a quote for an individual license for hobby use and they asked for a cool $2000).  No thank you!

It took me a long time to discover the tools that I use to design parts in 3D, draft them in 2D, capture schematics and layout PCBs.  Here's a list of the free CAD software I find most useful:


Man, I really like this software. If you're a CAD veteran you might hate it but for the beginner I don't think it could get any easier than this.  The software is specifically for designing single machine parts and the design restrictions do a good a job of preventing you from designing something that can't be machined.  Living within the software's rules can be a frustrating limitation at times and I'm often forced to think outside the box (so to speak) to design a specific feature on a part  (cutting a feature out of a solid, for example, uses a kind of confusing 'air inside/outside' paradigm).  It kind of forces you to think like a CNC machine, which is no bad thing if you want your part design to actually be machinable.  Making parts by revolving a profile is very straightforward.  The autosnapping is fantastic - no key combinations are required to snap to midpoints, endpoints, centers, tangents, etc.  Best snapping interface I've encountered, allowing me to work fast.  However, complicated parts with many surface features on different axes are not this application's forte.  If I need to do more complicated Boolean shaping then I modify my part in FreeCAD.

eMachineShop wants you to use their machining service and there's a handy online quote generator that allows you to get pricing for different materials and tolerances.  For pieces out of steel and aluminium, I find their prices competitive with other big online CNC services like QuickCut and Firstcut.  All three online machine services quote about 1.5-10 times higher for the same material than most of the prototype makers I've contacted in China.  I've used eMachineShop's fabrication service once and was disappointed with the quality of the material and the use of an inferior machining method (plus they initially over charged me for shipping - $128 UPS to Canada!).  The part was within tolerances and performed its function, but eMachineShop's off my list of prototype makers for now.  Most folks report a good experience, so I'm aware that my dissatisfaction was an exception.

To their credit, eMachineShop's CAD software allows you to export 3D IGES files as well as 2D DXF files.  The 3D export has a disclaimer that it's still a work in progress, but for the most part the original design survives the export.  For some reason, adding holes to curved surfaces starts to screw things up, a problem that can be solved by modifying the part in FreeCAD.

Although I haven't used it, eMachineShop does support CNC bending, so you can design parts bent out of sheet metal.  Unfortunately, the bends are not exported in the 3D IGES file, so you wind up with a flat version of your part on export.  I'm not sure if the .igs file plus a 2D description of the bend locations, their radii and angles would be enough to get a quote from a third party fabricator.

I love it and hate it. It's deep but challenging.  For de novo part design of anything but the most basic fundamental shapes, I stick with eMachineShop and then modify the part in FreeCAD.  For the most part, I use FreeCAD to make part assemblies so I can see how everything fits together.  The Boolean operations are good for cutting one complicated shape from another, something that I can't do in eMachineShop.  FreeCAD is still under heavy development, which means it can be a bit buggy and frustrating to use sometimes.  It has a small community of enthusiasts where you can get help. The forum is particularly valuable for finding scripts to make complicated features that would be difficult or impossible to do with just the GUI.  A helical thread, for instance.  FreeCAD looks and feels very promising, but the frequently buggy Boolean operations and a lack of complete GUI implementation of all features is holding it back from a wider audience of prospective users.  For my purposes, though, it is perfectly adequate.

One feature I've discovered recently is the Drawing Module, which lets you generate 2D drawings of your part, including isometric views.  The GUI implementation is almost nil, so you spend a lot of time manipulating objects by command line, but the results are pretty cool:

Taillight concept 3D
Taillight 2D isometric view

The results of the isometric projection can be cleaned up with DraftSight.

Prototyping services seem to like IGES format for quotations, so I use IGSViewer to check the outputs of both eMachineShop and FreeCAD to make sure nothing wonky has happened during export.


A new piece of software for 2D drafting, it is quite deep with a reasonably good interface.  Like eMachineShop, the implementation of snapping to endpoints, midpoints, tangents, perpendicular, etc. is very handy, although you need to turn it off if you don't want to snap to the nearest feature, no matter how far away it seems.  I usually import the DXF output from eMachineShop into DraftSight where I can build up my 2D drafts.  The isometric views that FreeCAD spits out in .svg format can be imported (via InkScape) and cleaned up to produce pretty nice looking technical drawings.  Dimensioning is pretty straightforward, although I often wind up fighting with the global attribute system.  For freeware this is very well-developed. Not sure the story behind it.  Perhaps it's just intended as a halo application for its super expensive big brother, Solidworks.


Big freeware competitor to Illustrator. I've only used it to convert .svg to .dxf for FreeCAD drawing import into DraftSight, but it looks pretty cool.  I've never been an Illustrator user, so I don't imagine using his much, but it sure is handy for the very specific file conversion I need to do.


Eagle CAD

This software is an electronic hobbyist's dream come true.  I found the learning curve a bit steep, but once you get it Eagle CAD becomes a great all-in-one schematic capture and PCB layout application.  There is a good tutorial from Sparkfun to get you started. The large libraries of components never seem to have the specific parts I want to use, so I've had to get used to designing my own schematic symbols, laying out the pads according to the datasheet's description of the device's footprint and adding the part to my own custom library.  This is kind of a pain in the butt, but I guess you can't expect the libraries to be completely exhaustive.  The freeware version has a limited board size (plenty of space for what I want to do) and only supports 2 layer designs (the PCB house I use only offers 2 layer fabrication). The autorouter seems to do a good job of routing the connections after placing the parts. I typically don't route manually, instead shifting parts around until the autorouter hits 100%.  In the world of PCB design, that makes me a bit of a loser.  So be it.

I'm sure I'm missing out on other great CAD tools. Let me know what your essential pieces of free CAD software are.

1 comment:

Olivier said...

Thank you for your review about CAD et EDA softwares.
If I may, I advise you to have a look at Kicad for EDA ( I used to design my PCBs with eagle and tried Kicad. I can tell you, no way I go back to Eagle... It's different and takes a little time to understand how it works but for sure it's worthy. Like freecad it's open source software which makes it even more interesting.