I recently happened upon a video which mostly changed my mind [0], in which someone successfully passed a Solidworks professional certification using FreeCAD. And to my eyes, their workflow was only rarely any worse than e.g. Fusion360, Solidworks, etc.
I've since been trialling FreeCAd via the 'bleeding edge' weekly development builds [1]... and it's not perfect, and it's a touch clunky in certain areas, but it's now more than usable. (In some areas, it's actually better than the competition I've tried, IMO - for example making and cutting threads.)
[0] https://www.youtube.com/watch?v=VEfNRST_3x8 [1] https://github.com/FreeCAD/FreeCAD/releases
I don't think FreeCAD is perfect, but I do think it's remarkable we have it at all.
Lots changed since 2020 in the current 1.0.2 release, including TNP mitigations and the core assembly workbench.
The 1.1 developer release (which is stable and useful and getting quite close to final release) contains further TNP mitigations; further improvements to the core assembly workbench; radically better lighting; datums have moved into the core; there's a way of enabling the advanced attachment mode in Part Design; compound body support in Part Design by default; significant comfort improvements in Sketcher, transparent previews, dragger gadgets and improved pattern tools in Part Design; support for external intersection geometry, Qt6 GUI improvements; lots of improvements to the Preferences panels, and that's before looking at FEM, BIM and CAM.
Oh and the Ondsel stuff — the web sharing service, its plugin and its headless worker support — is also under the control of the FreeCAD project, free of its AWS dependencies and being actively maintained.
It's still idiosyncratic but it goes way, way beyond looks. There was a big hump to get over between 0.21 and 1.0, re-engineering RealThunder's TNP mitigations to be more practical and adding the core Assembly workbench, but there's been enormous progress since.
HN's negativity around FreeCAD no longer astonishes me because I think HNers in general have a rather misbegotten sense of what GUI CAD even is, what its strengths are instead of just its weaknesses, and how much of a challenge something with FreeCAD's scope really is. I mean Dune3D is interesting but frustrating still, SALOME is interesting but has huge money behind it; FreeCAD is the sort of hard-won, low-governance, pure-open-source-no-corporate-bullshit project HNers should prefer. Is it the equal of commercial CAD packages? No it's not. It's a different beast and an absolute social good.
I've recently started to change that opinion; using the build I linked above, it's now pretty usable and competitive/usable for a hobbyist. I'm now considering it my first-line CAD package (until proven otherwise!)
Then I tweak a dimension, model flags an error, I select "recompute object" and it's fine. No geometry errors detected at any point. Presumably FreeCAD is recomputing the object when I'm updating the dimensions, so why does a manual recomputation fix the problem but the automatic one doesn't? Overall FreeCAD is pretty good, but I have yet to do a FreeCAD project where I don't run into something weird like this that I have to suffer through or work around.
FreeCAD had an additional problem that OpenCascade doesn't maintain any naming across its interfaces at all, which is what RealThunder's geometry naming scheme, that mainline FreeCAD now uses, largely solved. But his fork still has issues too.
Is DynamicData still properly supported in 1.x? Looks like it might be. Never really used it; I use a minimal mix of Spreadsheet (mostly for Configuration Tables) and VarSets.
As to problems: the main issue with FreeCAD as with all really complex packages is that it's impossible to diagnose a problem from a description that short; you pretty much always need the file to know what is actually causing the problem, because it's full of subtleties.
> Is DynamicData still properly supported in 1.x? Looks like it might be. Never really used it; I use a minimal mix of Spreadsheet (mostly for Configuration Tables) and VarSets.
I used to use Spreadsheets but they just didn't scale, ie. every little addition and modification to the spreadsheet caused very slow global recalculations. DynamicData is a little better on this for some reason, but not much. I like the expression engine they use, but it's not good at only re-evaluating the dependencies that have changed. They should really be using FRP-like signals.
Anyway, I don't want to come across as too negative as FreeCAD is pretty good overall, but these tiny nuisances will continue to hold it back until they're sorted. It is looking better though.
[1] https://forum.freecad.org/viewtopic.php?p=848289#p848289
Could be wrong but the top-level undo does weird things when there's a recent change in Sketcher.
And yeah, I now use Spreadsheet as little as possible. There is some work going on to try to resolve Sketcher's aggressive recomputation problems. Pop into the (ugh) Discord sometime, there's a channel about it.
Configuration Tables, though, are a really powerful part of Sketcher, particularly when combined with app link variants.
In terms of dependency resolving, the core VarSets are much, much better, and in 1.1 they are better integrated into the expression editor, so you can store an expression as a VarSet property without leaving the expression editor.
Maybe I don't use FreeCAD to it's fullest (I don't) and maybe I don't stay on top of the latest changes (I don't), but I learned years ago to avoid the TNP, and haven't been bothered by it since.
The only noticeable changes in recent years to me have been window dressing, plain and simple. Maybe crashes are less often, but I've also learned not to do things that cause crashes many years ago.