As a machinist, I try to get away with FreeCAD as much as I can. I have access to Solidworks, Creo, MasterCAM, and Esprit at work, as long as the engineers aren’t hogging all of the seats. I prefer modeling in FreeCAD though. It is what I am able to practice at home. (I have a cracked copy of Creo, but the crack only works on Windows).
I do still have to feed this through Esprit for the CAM portion of my work though. FreeCAD’s CAM workbench is pretty much limited to routing and 3 axis milling at the moment. No turning, and definitely no wire EDM (what I normally do). That said, Esprit is fucking garbage and I have no doubt FreeCAD has the potential to do this better.
FreeCAD isn’t wonderful at assemblies. I generally work on a component level, and this isn’t an issue for me, but the learning curve only gets steeper if you are trying to design intricate assemblies.
None the less. I’ve used it to reverse engineer several replacement parts which remain in service, and used it to create the toolpath for one CNC program which is being used in production. I also edit my G-Code in Emacs.
IMO, the problem isn’t that free software is incapable. The problem is if you are running an engineering / manufacturing firm you need to use software which is fully compatible with what your clients use. This is a constantly moving target which even commercial offerings struggle with. If your client designs a skyscraper in AutoCAD, you literally have no choice but to use AutoCAD. It doesn’t matter how good the AutoCAD importer is in SolidWorks. Something in your massive assembly is going to break, or you are going to waste a bunch of mechanical engineering resources trying to solve what is effectively an information technology problem.
Of course, this doesn’t touch on the CNC controller firmware at all, which, in production, is uniformly proprietary. Predominantly FANUC controls, with some Citizen, Charmilles, Mitsubishi, and Makino sprinkled in. FANUC in particular has grown to be a pain in the ass to maintain, as they’ve been locking down as much shit as possible to combat cloned hardware. In practice, this only makes life more miserable for the shops purchasing genuine hardware to keep their machines running. At least if the Charmilles sinker EDM dies for good, I’ll still be able to play Doom on it until the riggers take it away.
As an every-day Gentoo user, there is little reason to use Gentoo unless you have specific, niche configuration requirements. For instance, if you need to use a very specific version of a piece of software with very specific build-time parameters.
Where Gentoo shines is the ability to combine some old packages with some bleeding edge ones. If I, for some reason, want to run PostgreSQL 10 (released 2017) alongside Node.js 20 (released 2023), it is a thing I can do. This is not possible on most other distros - at least, not without side-stepping the package manager and compiling a bunch of things yourself.
I’ve used Gentoo several times over the years, and what ultimately made me switch back was Docker’s reliance on iptables. I was using Fedora at the time, which had switched to nftables. (I don’t think this is as much of an issue now, but it was a few years back).