I liked the potential promise of doing CAD via code instead of drawings, but current implementations left me unconvinced. Partly because today's existing code-cad solutions are built on OpenSCAD (I'm not a fan) and partly because it is a huge change in mindset. I might find motivation to give it an honest effort in the future, but for the immediate future I'll retreat back to FreeCAD and the sketch-based workflow I've been familiar with. Part of this decision came from getting a sense of FreeCAD's direction in their "What's going on at FreeCAD?" communications.

The biggest question I had is about the infamous topological naming problem. (TNP) This always comes up whenever people discuss switching from a commercial closed-source CAD package to open-source FreeCAD. Opinions range on a wide spectrum from the snobby "only dumb users run into TNP" to "widespread adoption would not be possible until TNP is mitigated" to dismissive "TNP exists because FreeCAD is not a serious project".

I don't personally have an opinion on FreeCAD TNP, since I haven't used it very much yet. But I know enough to be aware it's not exclusive to FreeCAD. Many other CAD packages have problems along those veins to varying degrees. For my Sawppy CAD file in Onshape, part geometry changes are sometimes followed by notifications of failed fillet operations. Or worse, fillet operations that don't fail but went someplace unexpected.

But my opinion is not as important as the opinion of the people behind the project. Do they even consider TNP to be a problem that needs solving? Thanks to "What's going on at FreeCAD?" I learned the answer is a definite YES. In fact, they consider it one of the (if not THE) top problems that need to be solved before they can declare FreeCAD version 1.0.

I don't understand enough FreeCAD internals to understand how they intend to address TNP, but there IS a plan, and the project is at a critical stage. The underlying support infrastructure is in place, but starting to utilize that infrastructure across FreeCAD will likely degrade performance until everything is done. This will be the next public release. It won't disrupt users who aren't part of making the great TNP fix, while providing a stable foundation for people who are. Allowing them to implement and test TNP solutions. (And if things go seriously wrong, it leaves the option open to rip out that infrastructure and try a different approach without breaking future versions.) Since TNP is not fixed yet, the next release will not be 1.0. It'll just be the next increment: 0.21.

I first started looking at FreeCAD shortly after 0.19 released and online resources (aimed at 0.18 and earlier) were in turmoil working to update. Today, 0.20 had been out for over a year and most resources have stabilized. I should take advantage of that and learn 0.20 as quickly as I can before 0.21 causes another round of disruptions.

So where should I start? There was a recent Hackaday post about FreeCAD, which elicited the usual cacophony of comments arguing about TNP. But in between the noise I noticed multiple recommendations for MangoJelly's YouTube tutorial series. Video tutorial is not my preferred format, but if it's a popular place to start, I'm willing to give it a shot.