Getting a bit off topic
3D printing is a MUCH easier problem, and doesn’t really contribute anything helpful… Additive processes like 3D printing are essentially a series of 2D printing steps largely similar to a pen-plotter (remember those?) Each layer is done as a single flat surface with a step up between layers. You don’t have to worry about all the issues you get when you start doing subtractive machining…
With subtractive you need to worry about not cutting into (or smashing into and breaking things) all the parts you DON’T want to cut, along with any vices or other fixturing, tables, chucks, etc… In addition you need to worry about the size and shape of your tool, and the properties of both the tool and the part material, etc. It isn’t a terribly difficult thing to do simple toolpaths for 2D milling, but if you want to get into 3D or “High Speed” machining, it gets to be several orders of magnitude more complex…
I can make a model in FreeCAD, and it is no big deal to export it as an STL file, and feed it into a slicer program (such as SuperSlicer) which will generate a 3D printing program file for any printer it is set for, no problem… But to generate a subtractive toolpath is much harder, as well as figuring out how to adjust the post-processor to make output suitable for the machine you will be using. (though that only needs to be done once per machine / controller…)
ex-Gooserider