60+ years, No Changes

Manual programming has been around since NC machining, circa 1950's. The process of manual programming has not changed, and is comprised of the following four steps:

  1. Design the tool paths
  2. Generate the cutter coordinates
  3. Organize the cutter coordinates
  4. Write the NC program

"Numerical Control in Manufacturing," published in 1963 by the American Society of Tool and Manufacturing Engineers provides the first published example of these four steps.

Step 1 (1963): The design of a tool path, with graphical consideration to show the cutter represented as circles, the tool path offset from the part profile by the cutter radius, and to show step over distances to ensure complete material removal is shown as follows:

Tool Path example 1963

Step 1 (2013): James Valentino provides multiple examples of toolpaths in his text book "Introduction to Computer Numerical Control (CNC) 5th Edition" published in 2013. One such example is as follows:

Tool Path example 2013

Step 2 (1963): Generating the cutter coordinates required math. Sometimes, significant math, including vector analysis and matrix algebra:

Math requirements of 1963

Step 2 (2013): Math is still a significant part of manual programming. So much so that Valentino devoted Chapter Six in his book to present some of the fundamental math requirements of manual programming:

Math requirements of 1963

Step 3 (1963): Organizing the cutter coordinates is useful because it provides a single reference of the cutter coordinates for the programmer, instead of mountains of math calculations. The following table provides the first documented use of organizing the cutter coordinates:

Organizing coordinates in 1963

Step 3 (2013): Valentino organized his coordinates in tables throughout his text book but did not discuss any benefit for doing so. Conversely, Peter Smid provides a printable example and a little discussion in his 2008 text book: "CNC Programming Handbook 3rd Edition:

Organizing coordinates in 1963

Step 4 (1963): The ultimate purpose of manual programming is to develop the program used by the machine tool to cut parts. One such example of a handwritten program, called then a "manuscript" is as follows:

Program written in 1963

Step 4 (2013): Valentino provides many example programs, one such example is as follows:

Program written in 1963

The primary difference between programming in the early days of numerical control, and present day has to do with computer memory. The machine controllers of yesteryear had no permanent memory and ran programs from punched cards or punched tape, thus the handwritten manuscripts were transferred to punch tape or punch cards with the appropriate hardware:

Program written in 1963

Now, hard disks have vast storage and are part of the machine tool controller. Programs are now written with text editors and transferred to the machine with floppy disks, PCMCIA cards, flash drives, and through network cables.