Why You’re Spending Too Much Time on Machine Code – And Always Have been
For as long as there have been CNC machines, there has been Machine Code. Over the years it has come in many shapes, sizes and flavours, but the bottom line remains: you need a way to feed precise instructions to your machine in return for reliable and repeatable behaviour. But in order to quench manufacturers’ ever-increasing thirst for more and more machining capabilities, machine tool builders have pushed not only their R&D departments to the limit, but have taken traditional NC programming as whole along for the ride.
Rise of the Machines
Early Numerical Control tools were little more than traditional machine tools modified to receive an extremely limited amount of data input, mostly in the form of X-Y coordinates on punch-cards. While these early machines did help eliminate a large part of human error from the manufacturing process, the work these early prototypes produced lacked precision, accuracy and finish quality. The reason? While the operator could feed any coordinates he pleased into the machine, this was strictly a one way street; the machine did not provide any feedback as to how far it had travelled, leaving the operator to manually measure the part at every step of the process to ensure that the cut was as intended.
The Feedback Loop
In order to overcome these shortcomings, the minds at MIT devised a system in which the machine would provide detailed information about its position after every movement it made. This position was then used as the starting point for the next set of instructions and any discrepancies between theoretical and real-world location were accounted for. This automatic feedback and adjustment loop is what truly opened the door to what we currently know as NC machining, and allowed for the exponential growth of machine tool technologies that followed.
The CAMbrian Explosion
Fast-forwarding a few decades and looking at the current machine tool landscape, we see its changed dramatically, with machines sporting new features, capabilities and axes of movements that allow for more complex parts to be cut, in less time. Along with this mechanical complexity came a shift toward deriving machine code from CAD/CAM systems, introducing a new technology between the operator and their machine. As these technological advancements move the bulk of the work to the PC and away from the shop floor, there’s an ancient problem that has once again reared its ugly head: feedback, or lack thereof. To address this issue, NC software providers built Machine Simulation solutions that could replicate the movements and features of complex CNC machines in a virtual environment and alert NC programmers to potential problems.
The Song Remains the Same
While machine simulation does provide valuable feedback to the user, much like those early Numerical Control prototypes, it remains a one-way street. The fragmented nature of the NC programming cycle, with CAD/CAM systems, post-processors, machine simulation, tool-path optimization, controllers and machine tools all originating from different providers, leads to numerous communication gaps between each step of the process. A gap that, until now, needed to be filled by countless man-hours and brain power.
The Adaptive Post-Processing Cycle
In order to address this issue, we turned to the methodology that kicked off NC machining as a whole: an automatic feedback and adjustment loop. We realized that by applying this concept to the NC Programming cycle as a whole, we could dramatically reduce reliance on manual intervention and analysis to get better code, faster. We call this technology Adaptive Post-Processing. It allows our machine simulation and tool-path optimization solutions to analyze the machine code as its being outputted by the post, detecting collisions and other errors and optimizing tool-path and feed-rate settings for the given cut. All of that feedback is automatically sent back through the post-processor and the cycle beings anew. This means you get collision- and over-travel-free machine code in 25 to 35% less programming time, as well as a substantially more efficient machine cycle.