The Blender3D project is one of the most successful open-source projects there is. If you aren't familiar with it, I recommend taking a look. Blender3D is a cross-platform tool for 3D artists and animators and even useful to game developers.

But it isn't a CAD system; or is it? Robert Burke has written an excellent web site and e-book on using Blender for engineering. While I don't see SolidWorks giving up market share anytime soon, I think Blender could be an excellent platform for developing a serious 3D CAD system. Today, I would say Blender is excellent for making technical illustrations, but, as Burke proves, it is accurate enough to do more. I love the way I can have an assembly shown in a completed state on one frame and then on frame, say 300, it is essentially an exploded parts diagram. A few more clicks and you have a nice little animation showing how your contraption goes together.

In my case, I use Blender for other things already and I don't know that I really need a CAD system so much as a tool to do technical illustrations.

Blender, as you probably know, has an embedded Python interpreter – meaning you can enhance it in all sorts of interesting ways using Python. I've written code most of my life and I really like Python. After reading Burke's e-book and going through most of the exercises, I begin to ponder – just what needs to be added to Blender to make it more suitable to use as a CAD tool?

I don't have the answer to that question – maybe you do. But I, for one, would be willing to contribute some Python to make this happen. For one thing, there needs to be a tool that allows you to browse an online catelog of parts and import them easily and handle post-import scaling issues. And it should allow a user to submit components too.

I highly recommend Burke's web site: http://www.rab3d.com

** UPDATE **

Check out BlenderCAD a project to make some plugins for Blender to make it more CAD-friendly.