Yea, CAM is its own kind of hell - with it's pre/post-processors - crazy array of options, machine-specific GCode and bugs, etc.
A big issue manufacturing faces is that none of the people starting companies are software guys - all of them are MechE's or something who think hardware first, so the CAM ends up far worse the controller (probably a FANUC...), which is far worse than the physical machine - you do what you know.
Certainly, trying to go from CAD --> finished consumer product ain't happening next year, but we're seeing signs that we'll see that with more simple processes pretty soon.
Adjusting a CNC machine is very complicated and requires a lot of experience and skill.
One lesson learned is, that craftmans that learned on shitty old russian manuel lathes did a lot better on modern machines than the ones that learned on super precise automated modern western machines.
The abstraction layer between metall and man that modern machines make does impede the feeling for the process.
The feeling and understanding of the cutting is essantial to make a good cut, weather it is automated or not.
Craftmansship is not automatable, weather it is software engineering or manfucatoring.
I am one of those rare engineers who is equally at home writing embedded software, web software, iOS software, workstation software, designing electronics hardware (from simple analog go GHz range FPGA's) as well as mechanical.
And, of course, as a total geek, I also jumped into the manufacturing processes for all of the above. I am equally at home in front of a SMT pick-and-place machine as I am in front of a VMC or a table-saw.
I have to tell you that some of the most gut-wrenching design work I've had to face sometimes wasn't how to design the thing but figuring out how to actually make it. From specialized fixtures to custom tooling or a weird manufacturing process.
Frankly, this is some of the most valuable knowledge that our country is loosing to other shores as manufacturing continues to be decimated. It's one thing to know how to use a VMC. It is an entirely different thing to know how to engineer, setup and execute on an end-to-end manufacturing process.
Just remembered a potentially tragic event as we were getting our CNC machine shop installed and running. The CAM software vendor sends me the pre-processor for the Haas VF3-SS. I loaded it and programmed a simple square pocket for a test.
First thing the damn pre-processor does is a rapid traverse in x and y to the center of the pocket, WITHOUT raising the tool to safe "flight altitude". I was lucky in that I was using a vacuum chuck and a block of machinable wax for these tests, otherwise it could have been really ugly (broken tool and potential collision of the spindle with clamps leading to torquing the column out of vertical).
Fun stuff.
As a programmer who's used nearly every computer programming language from machine code, Forth, APL, C++, ObjectiveC and everything in-between I have always felt that G-Code is stuck somewhere in the Mesozoic era. Sure, it works, but one could certainly talk to these machines in far better ways.
This speaks to some of the low(-ish) hanging fruit in manufacturing that software can help with. I think we're closer to having the LaserWriter of 3D printing than the Pagemaker.
It's a huge understatement to say that CAD/CAM software sucks. Start by chipping away at small, solvable but labor-intensive parts, in the vein of Stripe.
Make tools that provide constraints that reflect the real world, in the hands of the designer. How often do you see beautiful design concepts that have zero draft or unmoldable overhangs? If those are things that are irrelevant with additive printing, then render the preview in no greater resolution than what the printer can produce, and identify the grain along which your part will break.
This will lead us to what my partner calls augmented fabrication. He prototyped Part Preview, a "Print Preview" for milling machines, projecting toolpaths onto your material or using a Kinect to intersect the blank with the model (unfortunately, no documentation except for http://www.metropolismag.com/pov/20111010/lab-report-2 and a thesis paper).
We need tighter integration between the software used to design objects and the hardware that manufactures them. Protomold is a step in the right direction. Because they control much of the process, they can tell you how your uploaded design needs to change to be manufacturable. That's an API for manufacturing - it digitizes something about the physical process. And it's a great educational tool. It's all about reducing the length of the feedback loop so that we can make mistakes and learn faster.
A big issue manufacturing faces is that none of the people starting companies are software guys - all of them are MechE's or something who think hardware first, so the CAM ends up far worse the controller (probably a FANUC...), which is far worse than the physical machine - you do what you know.
Certainly, trying to go from CAD --> finished consumer product ain't happening next year, but we're seeing signs that we'll see that with more simple processes pretty soon.