I was wondering, if there was any such publication out there. I feel pretty proficient with traditional machining, but CNC seems like a whole other animal. At work, often times I spend hours at a time babysitting and button pushing on a turning center, and I'd love to find some basic explination of what the program actually is doing, so that they just don't seem like numbers as they fly by. On occasion our setup guy will point out a few things to me. He says that it is very simple, if you know how to do it by hand. So I was just wondering if there was anything out there I could read to give me better idea of what was going on. What is the simplest reading out there.
It is something I'd love to learn. Since I'm going to college in the fall, perhpase I can borrow some time on one of the few machining centers they have there. I'm going to be in mechanical and the CNC lab is in industrial, so we'll have to see what I can do.
I have a good book for beginners that I bought from www.betatechnical.com It was written by a CNC instructor at a technical college and is easy to follow. I knew nothing about CNC and was able to make some basic programs fairly quickly with the simulator you can download from the website.
It's a little pricey at $48, but I think it is one of the better books I looked at.
Adam, the book I bought after several people recommended it to me is "CNC Programming Handbook", 2nd Edition, by Peter Smid. It seemed like it gave a good grounding on the subject, and appears to be a standard text for the field.
$53.95 from Enco
AdamI am sure the other books offer a good grounding in CNC programing. But I personally would avoid any programing book written by the Fanuc people. The problem is the books are written in Jinglish. I do not mean this in any racial or ethnic way but sometimes when a person of one culture and language attempts to translate a text into another it just does't come out right. I'm sure I'd massacre any thing going into X language from English so it can work both ways.
Might I suggest a very old (comparitively) book.
"Principles of Numerical Control"
by James J. Childs.
Published by The Industrial Press, New York, N.Y.
(Library of Congress Catalog No. 65-26685)
There is a chance you might find this on the used market but even a better chance that your librarian can get a copy through the inter-library Loan.
Here is a book of the basics. It is also great for it's historical value because it was written only a decade after the original NC machine ran at MIT.
Modern CNC just didn't "Happen" it is the product of years of error and rather painful development along with the loss of a staggering amount of money.
Take the time to learn the history and the structure of the control elements. If you have a grasp of this, the modern machines and programming techniques then will show themselves as the logical developments that they are.
I am reccommending this beacuse you want to study engineering. Most guys just want the programming book and to make the machine go.
By the way, There is no and there never will be any "Machine Shop For Dummies or "Numerical Control For Dummies".
Dummies may run personal computers, but there is no place for a dummy in any machine shop.
As you go along, you will find that if you are intelligent, alert and aware, that you will learn far more in a machine shop than you ever will learn at the university.
Get working in a shop, stay working in a shop, it is the only way to develop the kind of critical thinking that lets you know whether or not your professors are on the level or not.
Keep your face out from in front of a computer as much as practically possible. (They say that the 747 was designed by engineers using slide rules) Computers are only tools that give answers to mathematical problems,
You need to develop creativity! Always strive to think on your own. and never forget to study the history of what has been done before.
If you understand what the Cartesian Coordinate System is, then CNC will not be a problem. Im sure you have already went thru this in school. All numbers that you see are relative to this system, on a lathe, generally the orgin position would be face of part and centerline of part. Understanding this first, then you just memorize the g-codes, m-codes etc...
Not a book but it's free, go to the machine manufactures web sites, Haas, Fadal etc... I know Haas has several sample lines and specific code displayed with some explination. Also look for the ask answer guy type forums on these sites and in Pratical Machinest Mag.
You may even find an "M" and "G" code you can down load, in a couple of days you'll know exactly what the lathe is doing and going to do.
Best of luck.
Smid's is very good. taught me to program well in 1 week. I still use it today.
try ebay booksellers for a good deal
I just recalled that Sherline has what seems a pretty decent intro to CNC coding that you can download at
I forgot to mention the obvious. Machinery's Handbook has about 40 pages on CNC basics and programming. Flipping through it, I think it might be better then the book I recommended. This is in the 26th edition by the way.
Let me throw this in with the following caveat. My last program has been about 8 years ago and I'm not going to provide any specifics, but a generic overview about my understanding.
You are commanding the lathe tool, or milling head or bed to make certain moves. Motors drive the leadscrews/ballscrews and encoders provide feedback that the commanded motions have been completed.
Programming instructions are of course simple linear moves in X-Y-Z directions. Slow feedrates such as for roughing or finish cutting can be commanded or rapid traverses to just move to another location.
Next come canned cycles for curves, radiuses or diameters where the leadscrews operate at the same time, synced to produce the precise 3D surfaces we associate with CNC. Important in the design and program are tangent points of compound curves, offsets of the tool (such as nose radius on the lathe tool or diameter of the milling cutter, or how far the tool sticks out of a toolholder - think Cat40 tool holder and setting the endmill shank to a certain depth in the holder).
The CNC tool must have another offset between the moves the program is commanding and the actual part. For example, an edgefinder could be used to find two reference surfaces on a flat part in a mill to define to the machine where (0,0) lies in (x,y).
There is another kind of specialized software called "tool path" software that generates tool path codes, takes the repetition out of work such as generating roughing passes, but it still takes a skilled checker to make sure you don't scrap an important part.
There's a whole other world of G-codes out there from running coolant to bar pullers to tool changers.
I hope this helped and was not too basic. It's definitely interesting stuff. If you can get into a lab and play around under supervision of course you can learn a ton.