Every six months or so, for at least the last fifteen years, I've trolled the shallow waters of digital drafting and modeling alternatives, hoping to find something usable. I've yet to find anything satisfactory that is available to anyone but the wealthy. This is discouraging, for in most other fields there are appropriate tools (e.g., Blender for visual modeling, LibreOffice for general office work, Scribus for digital prepress, etc.)
As 2014 draws to a close, however, I find that my need to actually use some combination of digital drafting tools has become critical to the various projects which are important to me (primarily documenting typefounding equipment such as the Thompson, Barth, and pivotal type casters and hot metal composing machines such as the Linotype). I've therefore had to settle for an inadequate combination of existing tools which will allow me to do some version of what I want today while retaining the potential to move this work into better tools in the future.
What I'm doing at this moment in time is reverting to old-fashioned 2-D CAD for the primary work of recording the machinery (using the clunky-but-mostly-capable LibreCAD). This allows me to record in DXF (a more or less portable format) and preserve the material using the well-established visual language of technical drawing. Simultaneously, when I want a 3-D model, I'm using SolveSpace (because it is simply the most elegant constraint-based 3-D geometry system ever written).
(Aside: I've been sorely tempted simply to chuck it all and go back to my very nice early 20th century drawing board. We have empirical evidence that it is possible to build an entire sophisticated industrial civilization using these techniques. We had one, once.)
The minimal system that would meet my requirements would do parametric 3-D modeling (with a localized geometric constraint engine embedded in it) and proper, dimensioned 2-D drawings linked to the model. It must allow me to save my work in an open (or at least documented and no-longer-proprietary) format (e.g., DXF for 2-D, or STEP) so that the years of work I plan to do aren't lost with the next enforced tool change. Ideally I would like a sophisticated programmatic system such as Varkon, but I'd be willing to do without and use conventional data-structure based CAD. In terms of freedom, I'd certainly prefer a GPL/"libre" system, but would be willing to settle for a closed/proprietary system if I had to. In terms of environment, obviously I'd prefer a real operating system (such as Linux), but would be willing to keep a legacy Windows system running if I had to. Constructive Solid Geometry (CSG) would be nice, but I know that I'm never going to get it along with the other requirements. Such CAD systems do exist, but only as proprietary and rather expensive commercial products in the $2k-and-up range. This is more than I can justify for my hobby use (I can always find $2k of old cast iron that I want more than an ephemeral program license.)
The tool set of LibreCAD plus SolveSpace will allow me to move forward, but it is by no means what I really want or need. It's just all that I've got. What follows is a late 2014 snapshot of a survey of all of the other options that I've considered.
Varkon deserves special mention, because it is the system I wish I could use. In its intellectual core, it is the most advanced design system ever conceived. Nothing - not even the most expensive commercial systems - even comes close. I've said repeatedly, and I'll say it again now, that I believe that Varkon is one of only two drawing systems which are truly works of genius. (The other is Ivan Sutherland's original SketchPad.)
Unfortunately, the ideas in Varkon were, I think, too advanced for people to understand what it really was. This has led to a vicious cycle whereby its limited adoption has led to a lack of active development to remediate superficial issues, which in turn has further limited development, which has ...
It isn't because the GUI isn't flashy enough, although this is probably what keeps most people away from it. I don't care about GUI flashiness. (However, one GUI aspect might go beyond flashiness; it would be better if Varkon handled its OpenGL view for editing as well as output, as it does its X11 view.)
First, Varkon has a native level of sophistication in its mathematics that is beyond my comfort level. It is designed by and for people who teach graduate level courses in the mathematics of modern solid geometry. I, on the other hand, am a Bear of Little Brain with a Ph.D. in English Literature.
Second, Varkon is a surface and wireframe modeler. Its geometry for this is quite advanced; it's a fabulous tool to model an airfoil or a boat hull. But I kept finding it too difficult (for me) to just make solid blocks with an arbitrary number of holes in them. Most of what a traditional machine shop makes (and that's more or less my application) consists of solid blocks with holes in them.
Kjellander, Johann A. P. "Interactive Generic Product Modeling Based on a Procedural Language." in Studies from the Department of Technology at Örebro University [ISSN 1404-7225], No. 2 (2001-01-15).
This is Kjellander's description of the priciples behind Varkon. The Varkon system itself dates from 1984. This paper is online at http://www.oru.se/PageFiles/15214/ISSN1404-7225-2.pdf
It is only with great sadness that I have turned away from Varkon for the drafting work that I must presently do. I would be delighted to be able to return to it. (And of course since Varkon is truly free (GPL), in principle I could implement these changes myself. I wish I had time.)
One is technical: the emergence of "direct modeling" systems (as opposed to parametric systems). These are at present widely hyped, but this is only because they appear to be different (and you've gotta hype something). They appear to be compellingly easy to use, but this is at the expense of intellectual rigor: they take the model even further away from representing the actual structure of the thing modeled. They're basically digital play-dough (even when modeling geometric objects). Though I would not reject a direct-modeling system if it met my other needs, I'd certainly limit my commitment to it.
The other is commercial: 3-D printers are becoming very popular, and as a result their makers are realizing that without low-cost CAD tools people won't be able to use them (and thus won't buy them). So several 3-D printer manufacturers, or companies with related interests, have released cut-down versions of existing CAD systems for this market. These are really quite appealing (they've been very clever as to how they cut them down), and so deserve special mention here. None of them meet my requirements (but they may meet yours).
DesignSpark Mechanical ( http://www.rs-online.com/designspark/electronics/eng/page/mechanical) is a cut-down, renamed, version of SpaceClaim ( http://www.spaceclaim.com). It's jointly sponsored by RS Components, http://www.rs-online.com/ and http://www.alliedelec.com (both of which are subsidiaries of Electrocomponents plc, http://www.electrocomponents.com) as a part of their "DesignSpark" line of no-cost ("free" as in free beer) design software http://www.rs-online.com/designspark/electronics/eng/. Obviously they hope you'll use it to design things which will require you to buy their parts, which is a perfectly good business model.
Locking it down to STL for export (it saves in its own proprietary format) is both integral to the program (it's what they do to make sure it doesn't compete with SpaceClaim) and the flaw which makes the program unsuitable for real work (you can never use your model anywhere other than within DesignSpark Mechanical, which will someday, when it goes away, destroy all of the work you do).
It isn't clear whether or not you could import a DesignSpark Mechanical model into SpaceClaim (which would provide you with an upgrade path to allow export to standard formats). If you could, it appears from online sources that in 2014 SpaceClaim was running in the $3k - $4k range. This would be a rather expensive "way out" of DesignSpark Mechanical's limitations.
Alibre, which made the capable "Alibre Design" parametric and constraint-based CAD system, was acquired by 3D Systems (a 3-D printer manufacturer, http://www.3dsystems.com, not to be confused with 3DS, which is the CAD maker Dassault Sysèmes, http://www.3ds.com). They've rebranded it as "Geomagic Design."
3D Systems offers a line of low-cost modeling software under the "Cubify" brand http://www.cubify.com). A cut-down version of Geomagic Design (thus ex-Alibre Design) has been released as "Cubify Design." As of late 2014, it's $200 and Windows-only, with a 14 day trial version. Despite a questionable web presentation (as I write this, their home page shows their 3-D scanner scanning, of course, a pretty girl, and they have a main menu category called "Mancave" - you'd think we were past this kind of sexist garbage), Cubify Design has much to recommend it.
The primary advantage it has over DesignSpark Mechanical is that it does do integrated 2-D dimensioned drawings linked to the model. In other words, DesignSpark Mechanical is a nifty program for driving your 3-D printer, while Cubify Design is a real CAD system.
Again, it isn't clear if there is a supported upgrade path to the full commercial product (Geomagic Design). If their is, online sources in 2014 indicate a price in the $1k - $2k (tending to the latter) for Geomagic Design. This is better, but it is still a high price to pay for export to standard formats (and thus the possibility of being able to continue to use your own work into the future).
Autodesk has an offering in this arena called "Autodesk 123D" ( www.123dapp.com). They appear to be partnering with 3-D printer manufacturers (and branded systems), and are offering some interesting 3-D capture tools as well. When Autodesk 123D came out originally, the fine print of its license gave Autodesk a license to everything you did using it. This, naturally, turned me off on it. They appear to have dropped this requirement, but I still have not been motivated to investigate it in any detail. On the plus side, the great Jake von Slatt (of Steampunk Workshop fame) likes and uses it - a serious endorsement. I haven't used it myself, so I will not say anything more about it here.
The "Ubuntu for Engineers" site is also useful for identification of related tools: http://help.ubuntu.com/community/UbuntuEngineering. Tragically (as it was once the preferred choice) while apparently attempting to shoot itself in the foot, Ubuntu managed to shoot itself in the head and can no longer be considered a useful computing environment.
There is also a "CAE Linux" distribution for Computer-Aided Engineering: http://caelinux.com/CMS/
Open source 2-D CAD is actually pretty well served. Of the several projects out there, my favorite is LibreCAD. This began as a fork of the community edition of qCAD, itself a version of RibbonSoft's commercial qCAD. (For a brief time LibreCAD was known as "CADuntu.") It runs under Linux and other UNIX systems, MacOS, and Windows. As far as 2-D CAD goes, it's ok.
Its user interface takes some getting used to (perhaps an understatement), it doesn't really handle grouping well, and at least in 2013 the DXF it generated was wrong (I had a friend check some example drawings I did against CREO Elements, and things just didn't end up in the right places), but all in all it's workable. The DXF handling has changed recently, so maybe it's better now (this would be good, as DXF is its native file format!) It is also much better than the 2-D modes of FreeCAD.
A good friend of mine prefers to use the 2-D SVG drawing program Inkscape as a CAD program. But when I've tried to do this, I've found that no matter how I tweak its configurations it will automagically change sizes as I alter the drawing. This is wrong in a drawing program and unacceptable in a CAD program. Until this is fixed (or even acknowledged by the developers; the user community has encountered it often enough) Inkscape-as-CAD remains an interesting, but not a useful, approach.
See http://inkscape.org/, but also search online on terms such as "inkscape precision drawing".
FreeCAD has 2-D drafting capabilities, collected in its "Draft" Workbench. But (as discussed in the main entry here for it) there are issues in FreeCAD which make it difficult to recommend.
DraftSight is a 2-D closed-source free-of-charge program by Dassault Systèmes (who make CATIA and SolidWorks, giving them excellent credentials). It runs under Linux, MacOS, and Windows. Maybe it's because I learned LibreCAD first, though, but I just can't seem to get very far with DraftSight and its interface.
If you read the fine print of their license, you will discover that this is not traditional "freeware." Rather, they're distributing a beta version of an intended future commercial product. By using it, you agree that you will stop using and destroy if they tell you to. This certainly makes it a less viable solution for projects which you intend to maintain for the long run.
(Note: Not the same as freeCAD by AR-CAD.)
FreeCAD (www.freecadweb.org) looks promising. (There is no relation to between FreeCAD and LibreCAD - there are only so many words for freedom, I guess). It is a partial implementation of a conventional modern 3-D parametric CAD system similar to a number of commercial offerings. At present it seems to be the only larger open-source CAD project undergoing any kind of serious development (albeit agonizingly slowly).
It has, however, one deeper issue which is simultaneously the reason for its existence and the biggest impediment to its success. It isn't a CAD system built from scratch. Rather, it is built around what was once the proprietary CAS.CADE product (now open sourced and owned by a successor to its original developers). This approach is a quick way to start a CAD system, but a very difficult way to finish it.
My only other issue with it is just one of me being grumpy: "FreeCAD" is unquestionably the worst project name ever. Just try discovering things about it - or debugging problems - by searching when Google inevitably thinks you mean "free CAD."
I don't really want to say bad things about FreeCAD, because the primary developers of the project have been working - for free - for a long time on it. Its just that their goals (which of course is where the system will go) do not fit my needs. Of all the open-source CAD-related projects, FreeCAD is near the top of the "keep an eye on it" list.
(See also NaroCAD, which is an independent project to build a Windows-environment CAD system around OpenCASCADE.)
Blender isn't a CAD program. It's a 3-D modeling program designed for making pretty (but not always knowingly-precise) models. But it has been so successful, and is now so well maintained, that if any 3-D modeler were to be adapted for 3-D CAD, Blender Indeed, if you start looking through old postings on various forums, this wish has been articulated many times over.
It is possible, however, to do very good CAD work in Blender. Robert Burke has done this, and documented his work at http://www.rab3d.com/index.php.
There is, however, a hitch. Dimensioning (pretty important in CAD) in Burke's approach requires the use of a plug-in for Blender, "Blender Caliper." At present, this script does not work with current releases of Blender. Its author plans to update it, but is "crowdsourcing" several thousand Euros of funding for this, and work has not (early 2012) yet started.
(There is also a "CAD Tools for Blender" project, mainly architectural in focus, but at present (2012) it supports only backlevel versions of Blender and it is not open source.)
This is a closed-source freeware 3-D CAD project based in Austria. It looks very promising, but English documentation is scant. http://www.gcad3d.org/
BRL-CAD is also quite interesting. Of all of the options available, it is the only one which is really doing Constructive Solid Geometry ( OpenSCAD, q.v., is not). This is very appealing, as my intuitions favor CSG. It also has a history slightly longer than even Varkon's.
I opted against it for two reasons, one good and one questionable. My serious issues is that it lacks support for dimensioning, which is critical for CAD. (BRL-CAD is really not CAD, or even intended as such; it's a CSG modeler). My personal issue is that it is also starting to incorporate more and more Tcl and Tk, and after long experience with these I'll go to almost any length to avoid being anywhere near them.
SolveSpace is the best 3-D geometric constraint solver and modeling system I've seen. Very nicely done! It doesn't pretend to be a full CAD system, but it does many things better than "real" CAD systems.
It was designed for Windows, and when it was still closed-source freeware I was able to run it successfully on Linux under WINE. It is now open-source software licensed under the GPL (hooray!) and as of early 2014 it runs successfully under Linux (I've run it under Arch Linux).
By Jonathan Westhues, who is more famous for doing many other things. See http://solvespace.com/
This is perhaps a strange category. The advent of homebrew 3-D printing (stereolithography) and its extremely vigorous adoption by the "maker" community has led to several so-called CAD programs (really modelers) popping up rather suddenly. None of them have been developed from scratch.
The past decade or so has, more or less silently, witnessed the development of some substantial graphical rendering libraries, such as OpenCSG, WebGL, etc.; this makes things much easier. These new modelers are all basically just GUI wrappers around rendering engines.
See also the brief review of Other CAD and Modeling Systems, below, for others.
Given the fact that "programmatic" CAD has been almost completely ignored for the quarter century since Varkon's introduction, it is remarkable that two or more of the CAD programs which have appeared in the 3-D printing community are programmatic.
It is interesting that while the better-known web-based 3-D printer modeling programs, q.v. are commercial, the programmatic options are all open-source.
Of the various projects in this category, OpenSCAD is the most popular. It is a programmatic CAD system using a language of its own devising. Like the nonprogrammatic systems which have sprung up in support of 3-D printing, it is basically just a wrapper around a rendering package - in this case OpenCSG, with a different package, GCAL, used for final rendering to STL.
OpenSCAD is programmatic, as is Varkon, but it does not have the ability that Varkon does to reflect interactive changes to the model back into the program. This isn't a showstopper, of course (though it does emphasize how remarkable Varkon is).
The first of the two issue which dissuaded me from adopting OpenSCAD is that its language design seems to have been done by developers unfamiliar with programming language design. It does not have variables, for example. It has things which look as if they should be variables, but they are in fact evaluated statically at compile-time and are really just constants. There is an "assign" function which can alter values at run-time, but it does not give the full behavior of a variable (you cannot use it to pass variable parameters, for example). It's a bit like one of the (so called) "functional programming language" beloved of mathematicians, but wrapped in the syntax of a procedural programming language without even the (dubious, in my opinion) clarity of a real functional programming langauge. (For programmatic CAD done in a functional programming langauge, see ImplicitCAD, below.)
It is a front-end for either of two "rendering" (using the term loosely) libraries: OpenCSG and GCAL. OpenCSG is a splendidly tricky program which appears to do CSG without actually ever doing the calculations for the geometry. As a display engine, OpenCSG is brilliant. But there's more to CAD than display. GCAL is indeed a library of computational graphics algorithms which can do the geometry "for real." But OpenSCAD uses CGAL just to generate STL (stereolithography) output files. There is no way to get at the geometry calculated by GCAL within the OpenSCAD model.
In a programmatic system such as Varkon, if you have two entities which intersect and you want to position a third entity at that intersection, you just do it. There are routines in Varkon which take two entities and return their intersection in a form suitable for futher use. In OpenSCAD this is not possible. It isn't just that they haven't implemented the functions yet; it's not possible given the underlying system. It never will be possible. OpenSCAD itslef never calculates the geometry of the solid constructions, and has no conception of what an intersection might be.
Here is the .scad source: toolbit_lhlr.scad
First (although you cannot see it as such) because OpenSCAD does not have variables it is not possible to pass anything other than compile-time constants as parameters to modules. In this CSG model, I used a (now invisible) block to intersect the toolbit for each of the faces, "grinding" it away. Because parameters are not really possible, I had to define three separate modules for this, each differing only in color.
Second, the lack of true CSG means that certain aspects of the design cannot be accomplished through the geometry of the model. For example, the dark blue surface (the top face of the tool) should extend back to the point where it would intersect the joint between the back of the red surface (the flank of the tool) and the side of the tool bit. But since OpenCSG has no concept of the geometry of this intersection, in order to do this I would have had to have calculated this location in 3-space trigonometrically and then plugged it in to the model. In fact I just eyeballed it. That's not acceptable in CAD.
In short, it is very, very promising - the first programmatic CAD system to gain even remotely widespread approval - but it has certain design limitations which will cap its utility unless they are addressed.
OpenCSCAD is a tiny, clever thing. It is a small set of C-language functions which output fragments of OpenSCAD's language. This allows one to write a C program of arbitrary complexity (with real variables!) which outputs OpenSCAD. One then runs this output through OpenSCAD to display a model. Metaprogramming.
I presume that this is a Java-based variation of OpenSCAD, but their website won't even load without OpenGL installed. This is very bad. See: http://openjscad.org/
A project by Christopher Olah. https://github.com/colah/ImplicitCAD. At first glance it seems very much like it is "OpenSCAD in Haskell." But some interesting things have been happening in it of late (2013-ish). It now integrates with OpenSCAD (subproject: Extopenscad). They emphasize that Haskell can be exported to C, so you could do C programmatic CAD with ImplicitCAD. But unlike OpenSCAD, (a) they support variables (but ...), and (b) they are not based on OpenCSG or GCAL. Note, however, that when the developers of ImplicitCAD say that it supports real variables, they do not mean that it supports real variables; they mean that it supports functional programming language "variables," which aren't the same thing. Both, though, are better than the "variables" of OpenSCAD, which are not variables at all but compile-time constants.
To be honest, I haven't fully evaluated it. It does seem to address the langauge issues of OpenCSG (though a pure functional programming language such as Haskell does raise other issues). I don't really know if it's based around OpenCSG or if it is doing its own CSG; if the latter, this would be very interesting.
It's still a project in the startup stages, but bears watching. Of all of the programmatic CAD systems now in development, this one has the best combination of intellectual integrity and developer momentum.
Python-based programmatic CAD using OpenCASCADE as its graphics kernel, with jQuery as its intellectual model. https://github.com/dcowden/cadquery
(As of 2013, the http://www.rapcad.org/ domain had expired. This seems to have been a deliberate choice of its developer.)
This is or was a project influenced by OpenSCAD but focussed on driving rapid prototyping. See http://www.gilesbathgate.com/category/rapcad/, https://github.com/GilesBathgate/RapCAD, an interview at http://fabbaloo.com/blog/2011/7/19/whats-next-for-rapcad.html
(See the earlier section on Varkon.)
A modeling system "influenced by" the FL functional programming language. See: http://www.plasm.net/
Just for the sake of research, here are some other CAD and Modeling systems (free and not free, in all senses) which I've looked at. This list is necessarily incomplete (there have been many CAD and modeling systems, and will be many more - this is an unsystematic miscellany). It is alphabetical, as I have no particular preferences here.
You're really better off consulting any of the Meta-Sites listed earlier.
From Amabilis. Modeler. Proprietary; standard version is freeware. http://amabilis.com/products/
From China? Proprietary. http://www.anycad.net/
Modeler only. GPL. http://www.artofillusion.org/
Commercial. Native Linux version. http://www.bricsys.com/en_INTL/bricscad/
2-D architectural. Java-based multiplatform. From Germany. This looks as if it began as an open-source project and is evolving into a closed-source proprietary, commercial system. A "community edition" remains available for free, but will only remain GPL through a particular version. http://www.cademia.org/ and http://www.cademia.de/
From India. It's supposed to be free, but I cannot get their registration system to let me download it. See: http://www.collabcad.com/
HeeksCAD development has been halted; its developer is heading in different directions. I think that its graphics core was built on OpenCASCADE. See http://code.google.com/p/heekscad/ and http://github.com/Heeks For HeeksCNC, see http://www.heeks.net/
Modeler only. GPL. Windows and OS X only. http://www.k-3d.org/
Free for noncommercial use (drawings watermarked). Closed source. From Germany. Windows and Linux. http://www.cad-schroer.com/products/medusa4-personal.html
Development stopped in 2009. See http://www.misfitcode.com/misfitmodel3d/
GPL. 3-D CAD. In early development. See: http://www.monoworksproject.org/
A Windows only (requires Microsoft .NET) project based around OpenCASCADE. GPL See: http://www.narocad.com/
From England (Marcus Bole). Intended for hull design. Closed source; Windows (no WINE). See: http://www.polycad.co.uk/
Noncommercial free license (as of 2012). Windows-only; crashes under WINE. http://www.progesoft.com/en/products/progecad-smart/
High-end. Proprietary; a family of related products. Very complex product names (PTC Creo Parametric is what used to be Pro/ENGINEER; PTC Creo Elements/Direct is what used to be CoCreate). http://www.ptc.com/product/creo/
One component of their range of products seems to be available as freeware, limited by the complexity of assmblies: "PTC Creo Elements / Direct Modeling Express," http://www.ptc.com/product/creo/elements/direct-modeling/express I haven't used it, but from their literature it would appear to be a direct modeling (vs. parametric) system with support only for modeling (not drafting).
Brought to you by the language which knows that There is Only One Way to Do It. Their websites (new and old) seem to be down as I write this, but SourceForge is having a better day: http://pythoncad.sourceforge.net/
Not a CAD system but rather a sort of a CAD library ("development framework") for those who like Python. See: http://www.pythonocc.org/
Robert McNeel & Assoc. Proprietary. http://www.rhino3d.com/ (I have a talented friend in the home shop machining community who swears by it.)
(Japanese? Seems to have stalled): http://sagcad.sourceforge.jp/
Commercial (Pixlogic), 3D modeling. http://www.pixologic.com/sculptris/
Proprietary. Windows and MacOS only. Wikipedia's entry for it says that it was an independent company 2000-2006, owned by Google from 2006-2012, and is now owned by Trimble Navigation. Home page: http://www.sketchup.com/. See also: Chris Conners' Make blog post "Get Started in Accurate Design with Sketchup": http://blog.makezine.com/2010-01-08/get-started-in-accurate-design-with/
Siemens. Proprietary freeware. Windows-only. http://www.plm.automation.siemens.com/en_us/products/velocity/solidedge/free2d/
Dassault Systèmes. Proprietary. Very well-established. http://www.solidworks.com/
These are the notebooks of a hobbyist who has no professional qualifications in drafting. Please see the "Drafting and Me" Notebook for an explanation and disclaimers.
All portions of this document not noted otherwise are Copyright © 2012-2014 by David M. MacMillan and Rollande Krandall.
Circuitous Root is a Registered Trademark of David M. MacMillan and Rollande Krandall.
This work is licensed under the Creative Commons "Attribution - ShareAlike" license. See http://creativecommons.org/licenses/by-sa/4.0/ for its terms.
Presented originally by Circuitous Root®
Select Resolution: 0 [other resolutions temporarily disabled due to lack of disk space]