of code. CAM excels at getting a program out quickly that may take up more machine memory and take longer to run. This often makes it quite valuable to machining a low quantity of parts. But a balance must be struck between the time it takes to create a program and the time the program takes to machine a part. It has become easier and faster to make just a few parts on the newer machines with much memory. This has taken its toll on both hand programmers and manual machinists. Given natural turnover into retirement, it is not realistic to expect to maintain a large pool of operators who are highly skilled in manual programming when their commercial environment mostly can no longer provide the countless hours of deep experience it took to build that skill; and yet the loss of this experience base can be appreciated, and there are times when such a pool is sorely missed because some CNC or 3D printing runs still cannot be optimized without such skill. Abbreviations used by programmers and operators This list is only a selection and, except for a few key terms, mostly avoids duplicating the many abbreviations listed at engineering drawing abbreviations and symbols. See also 3D printing Canned cycle LinuxCNC - a free CNC software with many resources for G-code documentation Drill file HP-GL STL (file format) Slicer (3D printing) Extended developments Direct Numerical Control (DNC) STEP-NC MTConnect Similar concepts Gerber file Concerns during application Cutter location, cutter compensation, offset parameters Coordinate systems References Bibliography External links CNC G-Code and M-Code Programming http://museum.mit.edu/150/86 Has several links (including history of MIT Servo Lab) Complete list of G-code used by most 3D printers Fanuc and Haas G-code Reference Fanuc and Haas G-code Tutorial Haas Milling Manual G Code For Lathe & Milling M Code for Lathe & Milling Computer-aided engineering Domain-specific programming languages Encodings Metalworking