FreeCAD: Open-source 3D parametric modeler
freecadweb.org
freecadweb.org
It’s wonderful to have a open-source alternative to the expensive CAD software that muscled its way into a near monopoly in academia/industry, but it suffers from some really inexcusable design problems, on a fundamental level. As it is, I don’t think it’s really usable as a serious tool for creating complex assemblies.
I’d be curious if anyone here has managed to use it effectively for a large project (something real-world, not just showcasing FreeCAD).
Can you be more specific?
I understand that the Topological Naming Problem is big (discussed in https://www.youtube.com/watch?v=QSsVFu929jo), but as I understand it this is being fixed in the RealThunder branch (https://bit.ly/3iBzQly), and fixes may be flowing from this into FreeCAD 0.2.
I’ve used a variety of CAD and it just really didn’t click. I know it’s open source, so not going to be as UX oriented, but still.
I would love to be proved wrong. If there’s something I’m missing please share.
I keep wishing that FreeCAD had the UI polish of Blender, and ask myself if Blender can do enough of the CAD workflows that it makes sense to learn Blender instead of FreeCAD.
I keep reading that technically speaking, mesh-based modelers are woefully insufficient for CAD tasks. But then I see videos like this, which suggest that Blender can handle most modeling tasks, with the main exception of bevels and chamfers: https://www.youtube.com/watch?v=n5SehCbhxFs
Can a lathe turn a polygon? Can a drill drill a polygonal hole? Maybe you can machine a polygon on a fancy CNC lathe, but you certainly wouldn’t do so for a turbine shaft.
Also for less precise things, say construction, you care about dimensions. Select an arc to get it’s radius for instance.
This is why design for traditional construction techniques best done in boundary representations: https://en.m.wikipedia.org/wiki/Boundary_representation
I will concede that one can easily create nasty insoluble problems with boundary representations if not familiar with the limitations of splines, but this only really is a problem with curvy things like ship’s hulls and aircraft.
However, I'm hunting for a better way to create 3d models via code (Blender Python?) because 'extrude_along_path'->SolidPython->OpenSCAD->stl export simply could not handle my model.
Also, as it's natively Python, you have all sorts of library support, up to and including things like numpy.
The future dream mCAD for me is something where extrusions and fillets and other 3d stuff is code, but sketches are GUI edited.
Without constraints, you're still doing a lot of stuff directly rather than declaratively, and without a GUI you're mostly limited to geometry you can imagine, because doing anything by trial and error in OpenSCAD takes forever.
The whole thing feels very open loop, like it's meant to be "imagine it>reason about it> code it" rather than "vauge idea > iteration > verify"
I could see it being useful in some cases for high level professional designers though.
Recent fun example I've encountered: doing a fillet in two places at the same time can result in either an unhelpful "resulting shape is invalid" or a crash inside OpenCASCADE, depending on the selection order (!) — https://github.com/realthunder/FreeCAD/issues/202
I discovered the issue in a middle of a design where I tried to change what I thought was a parametric piece. It unrecoverable blew up everything.
I kind of lost trust in it after that. I ended up making a backup for every step on top of the regular backups, like: piece_name-step-1… etc.
I discovered the real thunder branch too late.
I'm sure there's some great stuff in mainline though that deserves merging.
For programmers I highly recommend OpenSCAD or Cadquery, which let you write code to build your models instead of using GUI. With this approach, "parametric" comes naturally, and so you don't need to learn a special constraint system, it's just your code (and a bit of math).
Cadquery was a bit hard to get started with being essentially a bunch of python scripts, but it's also more versatile and more powerful than OpenSCAD, and has a good collection of examples in their docs. OpenSCAD is still great for e.g. building simple models for 3D printing.
I last used it 3 years ago, and I agree, I found it difficult to use, and worse, it would frequently corrupt the model, or confuse the object hierarchy to the point I would have to start again.
I've never used any other CAD though, so my evaluation might not mean much, to me, just having CAD at all completely changes everything, regardless of whether it's good or not, when your reference point is LibreOffice Draw and pen+paper.
It's definitely got rough spots, especially the tendency for models to sometimes become corrupt and flip inside out. But overall I like it, and I can make do with the problems.
Once you get used to it it is possible to do complex designs that can be edited afterwards. In the beginning it felt like every change I made would break the model so much that I couldn't repair it again.
Now when I start a design I always start with a spreadsheet and add variables with measurements that I use in the model. Afterwards with a careful designed model I can change the variables and the model react to it in a good way. It took me a while to figure out this way if working. You learn what part works and what parts to stay away from.
That said. The GUI sucks. It crashes a lot. There are lots of weird bugs. The stable release 0.19.3 is very unstable on my computer. Even so it's a great tool for me and I'm grateful of the work put in by the developers!
The unreleased 0.20 is so much better and crashes a lot less. I wish they would just release it and be done with it.
The usability differences are insane. What took me hours in freecad takes minutes in fusion 360. Fusion 360 just does what you expect, while freecad throws nonsensical errors and randomly breaks your whole model if you edit something you've already done and it takes hours to fix.
I use FreeCAD to create custom parts for my 3D printer. I also strongly prefer Open Source solutions. They won't change terms, add spyware, or compromise the design because of business needs. A quick find|grep of my CAD directory says I've made a couple hundred designs.
FreeCAD is definitely rough around the edges with bugs and stability. But for my needs, it works really well. I can take measurements and transpose a design in my head to a design on a computer. It's not AutoCAD or Fusion360 but I don't need it to be. It's an open tool that's helped me solve a lot of problems.
Two quality of life tips: 1) don't make sketches on faces, instead create a plane at the faces height/angle. I don't know why but this single handedly stopped my models getting corrupted. 2) Do fillets at the end. After you saved a backup.
Then it works great. Can't be happier, really and looking forward to it's future.
This mostly fixes the topo problem and as a bonus, it helps organize your thoughts into one sketch up front.
Now on my 4th try, it's finally starting to stick a little bit. One of the reasons is that Fusion 360 decided to reduce the functionality of their free version. Because of that many people flocked to FreeCAD and there has been an explosion of Youtube tutorials. They require a lot of time, but they do help.
Still, there are a lot of infuriating UI issues. In the Draft workbench, you have a set of amazing option to select just the right item of your design (the middle of a line, or the closest endpoint, or a point perpendicular etc) but in other workbenches, none of that exists, and you need to move your mouse with pixel precision to select a vertex instead of a line connected to it. Sometimes things also just don't work, and you need to try a bunch of workarounds to get what you want.
In the end, I settled on the following solution: I use it the way others use OpenSCad, where I construct my design in Python. Even that has its own issues (documentation is decent but not great), but at least, I can do things with pure math instead of a cranky UI.
I could, of course, just switch to OpenSCad instead, but one of then I'm fully committed to using only scripting, with no ways to do final postprocessing steps with a GUI.
For all its flaws, FreeCAD is the best you can get in open source form, and some people can do amazing things with it. Some of my issues are almost certainly due to never having used a CAD tool at all.
Once my first complex design is complete, I do want to try one of the commercial tools. Most people migrate from commerical to FreeCAD, not very many do the opposite. I'm intrigued by what it will be like.
Use the Realthunder version of freecad in an AppImage container. It seems to be more stable.
For sculpting, Blender actually does pretty well. And for parametric solid modeling, Fusion360 has a free license for hobbyists and startups. For programmatic non-parametric modeling, there's OpenSCAD.
But like others have said here, FreeCAD is lacking a lot of polish, and that makes it pretty hard to use.
There is also CadQuery, which claims to have fundamental technical advantages over OpenSCAD: https://github.com/CadQuery/cadquery
I've tried CadQuery and had a rough time of it. I haven't used OpenSCAD at all though, so I can't compare.
CadQuery should be better, but they refuse to just release a standalone pip library, instead everything is distributed through anaconda which just breaks my existing library setup. Technically you can use miniconda I guess, but in reality if I'm going through that much trouble to set up software, it's probably just best to move on.
I found FreeCad easier to install and use frankly -- especially the RealThunder AppImage version.
FreeCAD 0.19 - https://news.ycombinator.com/item?id=26533384 - March 2021 (60 comments)
FreeCAD Simulator - https://news.ycombinator.com/item?id=25098981 - Nov 2020 (13 comments)
FreeCAD BIM development news - https://news.ycombinator.com/item?id=24951311 - Oct 2020 (23 comments)
FreeCAD: A free and open source multiplatform 3D parametric modeler - https://news.ycombinator.com/item?id=24513340 - Sept 2020 (268 comments)
FreeCAD on Raspberry Pi 4 - https://news.ycombinator.com/item?id=22347385 - Feb 2020 (36 comments)
FreeCAD BIM development news December 2018 - https://news.ycombinator.com/item?id=18800484 - Jan 2019 (22 comments)
FreeCAD 0.17 “Roland” released - https://news.ycombinator.com/item?id=16790814 - April 2018 (58 comments)
FreeCAD Arch development news - https://news.ycombinator.com/item?id=14480294 - June 2017 (44 comments)
FreeCAD 0.16 release notes - https://news.ycombinator.com/item?id=11533435 - April 2016 (75 comments)
Free CAD-CAM Software Demos - https://news.ycombinator.com/item?id=9893631 - July 2015 (1 comment)
For more complex stuff I'm tempted to go buy Alibre Cad. It's $150 for personal use / no subscription.
I started using the latest versions (0.18, 0.19) again recently, and the experience is dramatically better. I’ve designed about a dozen distinct models and have been able to make major changes to a part without any crashes or bugs, and a number of much-needed ergonomic improvements have made the part design process much quicker and less frustrating. Thanks, FreeCAD devs! Your efforts are greatly appreciated.
Regardless, invest a good deal of effort in open standards such as IFC. The proprietary tools really leave you in the dark about long term maintenance and data ownership.
For example things being split into X workspace that you have to constantly switch between (each with their own toolbar layout) is not a good workflow.
I’m not some long term die-hard F360 fan either, just a casual hobbyist maker who uses all sorts of tools (I still regularly just whip things up in Tinkercad for the printers) but FreeCAD is just so damn hard to get things from your head to the screen. It feels like you’re constantly trying to fit square pegs into round holes just to do basic things.
CAD/CAM programs are a "hard" type of software to write. I view them as similar in difficulty to free operating systems in technical difficulty and scope of the project. Before Linux there were only a few options for Unix-like OSs (Minix, Coherent, etc), but none of them particularly good for much except for academic purposes. Real work still took a licensed copy of Unix.
There still hasn't been a similar project to produce a CAD system (not just 3d modeling, but parametric CAD) created that's open source. There are some great programs for 2d cad, for running machine tools and CNC routers, but beyond things like FreeCAD there's nothing available in the open source space that's comparable to even the cheapest commercial offering.
Lots of people have noticed this with Fusion 360... the ability to switch back and forth between workspaces, from Design to manufacture(CAM or 3d print or whatever) is huge.
So if all I needed was CAD, I'd consider Alibre or Rhino. For CAD with integrated CAM, there's no alternative to Fusion that doesn't cost over $10k per seat. Which sucks, because it's an Autodesk product and a subscription service rather than stand alone software.
At some point I started hitting up against a collection of problems and finally paid for Fusion 360. It was completely transformative. I'd be pretty impressed if FreeCAD can catch up to where Fusion 360 is today (in basic shape modelling, advanced shape modelling, and mesh modelling, as well as CNC toolpathing).
That's part of why it hurt so much when Autodesk crippled the hobbyist version of Fusion 360. All the stuff it can't do now no one can help you learn.
Now what I don't like is that advanced features are extra (on top of a single seat license); like, certain toolpaths cost extra money. But so far, the amount of features in the single seat license version has been good to me.
Likewise on the more advanced high speed tool paths, although I could mostly live without those.
The biggest problem for me with both of these features is that to get them you need to pay yet another subscription fee for an extension and also pay for "cloud credits" to use it which are yet more money and which also expire after a year whether you use them or not.
You can't just buy what you need and do without upgrades and patches and run it standalone like you can with Siemens NX (for example). You have to pay and keep paying or otherwise go through the effort to download everything stored in their cloud and move to another package.
I like how the software functions in general although it's less "pro grade" than NX or Solidworks. If they offered a stand alone version that stored data and processed things locally and had basic multi-axis support, I'd be quite happy with paying up to about $1000 for it as a one time cost and more to get support.
I hate getting locked into recurring costs that may change at the whim or need of the company supplying the product, especially if that company is as untrustworthy as Autodesk.
Fusion360 is disgusting with their relentless marketing. My email was bombarded and I got 2 phone calls from sales people... Errr survey people...
User interface was super Intuitive after skimming a tutorial.
I'm no advanced user, but I've done basic CAD in Catia, nx, solid works, and probably a few more over the years. Heck I prefer FreeCAD for the simplicity.
If we need something FreeCAD can't do, I can get other software or outsource it.
It's extremely liberating to not be reliant on always rising prices.