Tried openscad and then cadquery for some geometry iteration projects and found them clunky. It wasn't just that I was missing a UI; the functions, constraints and geometry kernel weren't as powerful as onshape, which I've used a bit, and presumably light years behind fusion 360, which I haven't used.
Even freecad, a UI-based oss cad, is not quite ergonomic for a beginner-to-intermediate user, though it has come a long way in the past few years.
I'm excited for there to eventually be a good open source cad option, whether language-only or language-plus-GUI, but am also increasingly on team 'tools matter for your productivity'.
The great thing about OpenSCAD is that it makes it easy to programmatically model objects using cubes, cylinders, cones, and spheres by placing, stretching, and rotating them.
The awful thing about OpenSCAD is that one's ability to model in it is strongly bounded by one's fluency with mathematics and ability to use math to programmatically model objects using cubes, cylinders, cones, and spheres by placing, stretching, and rotating them.
The one tool I'm aware of which is looking at a new geometry kernel which I can recall is:
I find OpenSCAD to be decent, if somewhat tedious, when making mechanical parts but extremely limiting if you want to work with organic shapes. Even mechanical shapes that just avoid sharp edges require a fair bit of effort. One thing I do like about it is how it encourages users to parameterize their models just by the nature of the language. Pretty much everything I make in OpenSCAD has a list of named parameters at the top I can later tweak if I need to shrink or enlarge some aspect of it.
Dune 3D in particular is the only traditional 3D CAD program I've ever tried where I actually made it through the tutorial without a showstopper (still need to find time to try Moment of Inspiration 3D).
As someone who has been using FreeCAD starting in 2020, I can't tell any major differences. The problems are the same they have ever been. It's only the renderer that got a little bit more "sexy", but that is just looks.
I'm self-taught with CAD, and have repeatedly tried and discarded FreeCAD for several years. (Tangent: perceived absence of a decent CAD solution in Linux is one of very few things keeping me using Windows.)
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.)
That is an interesting and important video, and I think it helps make the point that "commercial" CAD is often viewed through rather rose-tinted spectacles because FreeCAD's GUI has been unfriendly and obstinate. Beginner friendliness simply hasn't been on their radar until this point, because it would have been pointless to focus on it until TNP was mitigated to the level it now is.
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 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).
Even freecad, a UI-based oss cad, is not quite ergonomic for a beginner-to-intermediate user, though it has come a long way in the past few years.
I'm excited for there to eventually be a good open source cad option, whether language-only or language-plus-GUI, but am also increasingly on team 'tools matter for your productivity'.