The more I look at the 3D printers, the more it makes sense to invest about the same money in the Sherline CNC vertical mill. I have read the details of how G-code turns into actions on a CNC mill, but the real solution is one of the programs that lets you layout a part, and then converts it into G-code. I see many of these available that are open source, for both Linux and Windows, but I would love to hear preferences and recommendations from my readers.
What I don't need is something sophisticated and hard to use. I will be likely using a CNC mill to perform repetitive motions on an object that is fixed in place, and with a single tool. (I don't think the Sherline CNC mill gives you the ability to change cutting tools programatically.) But even this would be a big win: there are some parts that if I could carve them out of a single aluminum block or cylinder, I would, simply because it would be more professional looking and reduce the labor for fasteners. (And aluminum chips I would recycle.)