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 agree with this. Per my comment just above, I've been one of the HNers recommending against FreeCAD for years, because that was my experience.
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!)
TNP is much better, but not entirely solved. There are also still lots of minor issues that crop up during normal workflows, particularly when importing geometry from other sketches. I ran into this exact issue just this past week, where importing a half circle from a previous sketch breaks every time I update a dimension in DynamicData (a dimension that isn't used even), but if I manually select "recompute object" it recalculates everything totally fine.
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.
TNP essentially cannot be definitively solved, as I understand it. Only extensively mitigated. Other CAD packages still have TNP issues.
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.
I will be posting a minimal example on the forums about this soon once I actually finish the project. Here [1] is the last issue that I had. The issue of getting the needed cutout on that forum post was one problem, but the much deeper issue was how a later operation broke the model in an unrecoverable way once it was removed. To me, that speaks to something deeply broken in FreeCAD's core use of Open Cascade, and I've noticed minor variations on this theme, like when undo operations sometimes don't really undo things and leave sketches broken. less common these days, but it's weird that it was ever a thing.
> 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.
FWIW I agree that undo is broken — I don't think FreeCAD has a single global undo, rather one that works differently in Sketcher.
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.
It's not negativity. My workflow literally hasn't changed in years. The only difference I've noticed has been cosmetic.
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.
Right. But you not noticing changes because FreeCAD hasn't broken your workflow is simply not the same as there having been no non-cosmetic changes since 2020: FreeCAD has changed enormously since then (which would be 0.18).