GreatLight CNC Machining Factory logo
CNC Machining
Rapid Prototyping
Materials
Industries
News
About GL

Get Instant Quote

Machining fundamentals

CNC Symbol Guide: How to Read a Program Before It Cuts Metal

This CNC symbol guide explains what the letters and numbers on a control actually command, and where the limits sit. It is written for engineers and buyers who review programs, drawings and setup sheets, not for operators learning a single controller. After reading, you can tell whether a posted program will move the tool where the drawing expects.

G and M codesFeed and speed lettersAxis and offset wordsReading order matters
CNC symbol guide showing five-axis machined engine parts with labeled code callouts
The alphabet on the control

What a CNC symbol guide actually covers

A CNC program is a list of address words. Each word is a letter plus a number: G01, M08, F250, S8000, T03. The letter sets the category, the number sets the value. That is the whole grammar. Everything else in this CNC symbol guide is about which category does what, and in what order the control reads it.

G words are preparatory. They tell the machine what kind of motion or mode comes next, such as G00 rapid positioning, G01 linear feed, G02 and G03 circular interpolation, G81 drilling cycle. M words are miscellaneous. They switch machine functions on or off: M03 spindle forward, M05 spindle stop, M08 flood coolant on, M30 end of program and reset.

F and S carry rates, not positions. F is feed in mm/min or in/min, S is spindle speed in rpm, or surface speed in m/min on lathes with constant surface speed active. T selects the tool, and on many mills H and D select the length and diameter offset registers tied to that tool number.

One caution before any of it helps. A word that is valid on a Fanuc control may be a different number, or absent, on Heidenhain, Siemens or Mazak. Always confirm against the machine's own manual before trusting a symbol list.

Motion group

G codes: the words that decide where the tool goes

G00 moves at rapid, the machine's fastest traverse, and is not for cutting. Programmers use it to clear the part between cuts. G01 moves in a straight line at the programmed feed and is the workhorse for milling walls, faces and shoulders. G02 and G03 are clockwise and counterclockwise arcs; they need an endpoint plus a center or radius word, usually I, J, K or R.

The difference between G00 and G01 matters more than most people assume. A rapid move that clips a fixture or a finished face will break a tool and often the part. G00 is a positioning move, not a machining move. If a program uses G00 through material, the post processor is wrong, not the operator.

Plane selection is easy to overlook. G17 sets the XY plane, G18 the XZ plane, G19 the YZ plane. Arc interpretation depends on it. A G02 on the wrong plane will either alarm out or cut a shape that looks plausible and is not to drawing.

Modal behavior is the part that trips up readers. A G code stays active until it is replaced. G01 issued on line 40 is still in effect on line 90 unless the program changes it. When you read a program, do not read each line alone. Track which modal state is live at every point.

  • 1
    G00 rapidPositioning only, never for cutting.
  • 2
    G01 linear feedStraight cutting move at the programmed F value.
  • 3
    G02 / G03 arcsCircular interpolation; plane selection must be correct.
  • 4
    G17 / G18 / G19Set the active plane for arcs and cutter compensation.
Machine functions

M codes, T words and the state of the machine

M codes handle everything that is not axis motion. Spindle direction, coolant, tool changes, program stops, pallet swaps, chip conveyors. M03 spins the spindle clockwise, M04 counterclockwise, M05 stops it. M08 turns coolant on, M09 off. M06 calls a tool change on many mills.

Read M codes as a state machine, not as isolated commands. If M08 is issued at the start of a cut and M09 never appears before the tool retracts, coolant keeps running into the next operation. That is rarely catastrophic, but it wastes coolant and can flood a delicate feature. Programs should close what they open.

T words select the tool and usually pair with H and D offsets. The T number is the physical pocket or station, the H number is the length offset register, the D number is the cutter radius register. Shops often keep them equal for simplicity, but the control does not require it. A mismatch between T and H is a common cause of a tool driving into the table.

On lathes, the same letters behave differently. T0404 usually means station 4, offset 4, in one word. A CNC symbol guide written for mills will mislead a lathe programmer here. Check the machine type before you apply any rule.

Rates and geometry

F, S, I, J, K and the words that carry numbers without letters

F and S are rates, and they interact through the tool and the material. Feed is set in mm/min or in/min for milling, and often in mm/rev or in/rev for turning. Spindle speed is rpm. On many lathes, G96 enables constant surface speed so S becomes a surface speed in m/min, and G97 returns to direct rpm. The unit changes with the mode, which is a frequent source of confusion.

I, J and K define an arc center as an incremental distance from the arc start point in X, Y and Z. R defines the same arc by radius instead. You use one method or the other, not both. On a full circle, R cannot be used because an infinite number of arcs share the same radius and endpoints. I, J and K work there.

Some addresses are almost universal. X, Y, Z are the linear axes. A, B, C are rotary axes on multi-axis machines. U, V, W often appear as secondary or incremental linear axes on lathes. Absolute and incremental modes, G90 and G91, change how those numbers are read: absolute from the work origin, incremental from the previous position.

Our own five-axis work at GreatLight runs on 16 simultaneous 5-axis machining centers, with a Ø400 mm rotary table on the smaller cells and travels up to 4,000 × 400 × 150 mm on the large ones. On those machines, A and B words are not optional decoration. They decide tool orientation, and a wrong sign flips the cut to the wrong side of the part.

Reading method

How to read a program in order, not line by line

Start with the header. Look for the work offset, G54 to G59, the plane selection, the units mode G20 or G21, and the absolute or incremental mode G90 or G91. These set the frame for everything below. A program that never states units is a program that depends on a machine default, and defaults get changed.

Then walk the tool changes. For each T word, find the matching H and D. Check that the offset numbers exist in the control and are not zero. A zero length offset means the tool will not reach the part, or it will reach too far. Neither is a good day.

Then trace the modal G state. Note every point where G00 becomes G01, where G17 becomes G18, and where G90 becomes G91. Most crashes live at those transitions, not in the middle of a long cut.

Finally, check the closing block. M09 should stop coolant, M05 should stop the spindle, and M30 or M02 should end and reset. If the program ends without those, the next job may start with the spindle already turning. It is a small thing that costs real time.

  • 1
    Header firstUnits, plane, work offset, absolute or incremental.
  • 2
    Then offsetsT, H and D must agree and must be non-zero.
  • 3
    Then modal stateTrack G00 to G01 and G90 to G91 transitions.
  • 4
    Then the endingM09, M05 and M30 should close the program.
Limits

Where a symbol list stops being enough

Symbols are standardized in intent, not in detail. ISO 6983 defines the general address structure, but each builder adds, removes or renumbers words. A G code that means peck drilling on one control may be a canned cycle variant on another, or a user macro. That is why shops keep a post processor per machine and validate it against a test part.

Tolerance is set by the machine, not by the code. You can write G01 and a feed, but whether the machine holds ±0.005 mm at that feed depends on the machine, the tool, the fixture and the thermal state. The program is a request. The machine answers with whatever it can actually do.

The same applies to surface finish. A finish of Ra 0.8–1.6 μm is a practical target for a well-set cut on aluminum, and Ra 0.2–0.8 μm is available with finer parameters and finishing passes. The code does not produce the finish. The tool, the stepover, the speed and the rigidity do.

So the useful skill is not memorizing every symbol. It is knowing which symbols set the frame, which set the motion, and which set the rates, then checking that they agree with the drawing and the setup sheet. That habit catches more problems than any glossary.

Quick reference

Which symbol group controls what

Use this table to sort a program word into the right category before you read its value.

Symbol groupWhat it controlsTypical valuesWhere it goes wrong
G00 to G03Motion typeRapid, linear, arcsG00 used as a cutting move
G17 to G19Active planeXY, XZ, YZArc drawn on the wrong plane
M03 to M09Spindle and coolantOn, off, directionOpened and never closed
F and SFeed and speed ratesmm/min, rpm, m/minUnit changes with G96 and G97
T, H and DTool and offsetsStation, length, radiusOffset register left at zero
X, Y, Z, A, B, CAxis positionmm or in, degreesAbsolute and incremental mixed
G54 to G59Work coordinate offsetFixture or part originWrong offset called for the setup
G90 and G91Position modeAbsolute, incrementalSign error on a rotary axis

The short version

If you are reading a program to catch errors, read in this order: header, offsets, modal state, closing block. If you are quoting a part, do not read the program at all. Send the drawing and let the shop confirm tolerance, material and finish against its own machines.

FAQs

Questions engineers ask about CNC symbols

Are G codes the same on every CNC machine?

No. The general structure follows ISO 6983, but builders add, remove and renumber words. A canned cycle on a Fanuc control may not exist on a Heidenhain control in the same form.

Keep a post processor and a symbol reference per machine model, and validate any new program on a test part before running production.

What is the difference between G00 and G01?

G00 is rapid positioning at the machine's fastest traverse. It is not intended to cut material. G01 is a linear move at the programmed feed rate and is used for cutting.

If a program uses G00 through material, treat it as a programming error. It will overload the tool and often damage the part.

Why do I and J sometimes appear instead of R on an arc?

I, J and K define the arc center as an incremental distance from the arc start point. R defines the arc by its radius instead.

Both describe the same geometry, but R cannot define a full circle because many arcs share the same radius and endpoints. For a full circle, use I, J and K.

Does the symbol list tell me what tolerance I can get?

No. Symbols describe intent, not capability. Whether a machine holds ±0.005 mm at a given feed depends on the machine, the tool, the fixture and the thermal state.

At GreatLight, tolerance and finish are confirmed against the drawing and the specific machine before production, not inferred from the code.

What does a T word really select?

On many mills, T selects the physical tool pocket, while H and D select the length and radius offset registers. The numbers can be equal, but the control does not require it.

A mismatch between T and H is a common cause of a tool driving into the table or missing the part entirely.

Can symbol differences cause a crash on a proven program?

Yes, if the program is moved to a different machine or control without re-posting. Modal states, plane selection and offset registers may not carry over the way the original machine read them.

Re-post and dry-run any program that changes machines, even if the part and the tooling are unchanged.

Send the drawing, not the code

Upload your CAD files and get a quotation with a free DFM analysis within 12 hours. Uploads stay secure and confidential, and an NDA is available on request.

12-hour quoteNo minimum order quantity100% inspection before shipment

Follow our work

More from the shop floor

We publish setup notes, tooling trials and inspection data from the factory floor.

FacebookTikTokYouTubeLinkedInInstagramThreadsPinterest

Trusted by engineers and manufacturers worldwide

Tesla Ford Motor Company BYD Auto Denso Magna International Boeing Airbus Medtronic KUKA FANUC