Computer Numerical Control transforms digital designs into physical precision. Every movement, every cut, every operation is commanded through structured machine language that bridges software and hardware.
G-code is the language of CNC machines. Each line represents a command: tool movements, spindle speed, coolant control. Understanding G-code structure gives you direct control over machining operations and enables troubleshooting when CAM output needs adjustment.
G00 X50 Y30 Z10
Moves the tool to specified coordinates at maximum traverse speed. No cutting occurs during G00 moves — used for positioning between operations. Always ensure safe Z clearance to avoid collisions.
G01 X100 Y50 F500
Controlled linear movement at specified feed rate (F). This is the primary cutting motion for milling straight paths, facing, and pocketing operations. Feed rate units are typically mm/min.
G02 X100 Y100 I50 J0 F400
G02 produces clockwise arcs, G03 counterclockwise. I and J specify arc center offset from current position. Essential for circular pockets, chamfers, and curved profiles without breaking into linear segments.
G17 - XY plane (standard for 3-axis milling)
G18 - XZ plane (for face/profile work)
G19 - YZ plane (vertical milling operations)
Plane selection determines which axes participate in circular interpolation commands.
M03/M04 - Spindle on (clockwise/counterclockwise)
M05 - Spindle stop
M06 - Tool change
M08/M09 - Coolant on/off
M30 - Program end and reset
% O1001 (POCKET MILLING EXAMPLE) (TOOL 1 - 10MM ENDMILL) (MATERIAL: ALUMINUM 6061) N10 G21 G90 G40 (Metric, Absolute, Cancel Comp) N20 G54 (Work Coordinate System 1) N30 T01 M06 (Tool Change to Tool 1) N40 S3000 M03 (Spindle CW at 3000 RPM) N50 G00 X0 Y0 (Rapid to Start Position) N60 G43 Z50 H01 (Tool Length Compensation) N70 M08 (Coolant On) (POCKET ROUGHING) N80 G00 Z5 (Rapid to Safe Z) N90 G01 Z-3 F200 (Plunge at Feed) N100 G41 D01 (Cutter Comp Left) N110 G01 X50 F600 (Cut to X50) N120 Y50 (Cut to Y50) N130 X0 (Cut to X0) N140 Y0 (Return to Origin) N150 G40 (Cancel Cutter Comp) (RETRACT) N160 G00 Z50 (Rapid Retract) N170 M09 (Coolant Off) N180 M05 (Spindle Stop) N190 G91 G28 Z0 (Return to Home Z) N200 G28 X0 Y0 (Return to Home XY) N210 M30 (Program End) %
This program demonstrates a simple rectangular pocket. Notice the structure: initialization, tool setup, operation sequences, and safe shutdown. Every professional program follows similar patterns.
CNC machines use multiple coordinate systems to manage part positioning and tool offsets. Understanding the relationship between machine coordinates, work coordinates, and tool geometry is fundamental to precision machining.
The machine's fixed reference frame established during homing. All other coordinates are offsets from this absolute position. G53 allows direct machine coordinate movement — use cautiously as it bypasses work offsets.
Programmable coordinate systems that locate the part relative to machine coordinates. G54 is the primary work offset. Multiple offsets enable multi-part setups and pallet changers. Set work offsets using edge finders or probe cycles.
Each tool has unique length. G43 applies tool length offset so Z0 in your program represents part surface, regardless of actual tool length. Measure tools with touch-off probes or preset stations.
Power on machine and execute homing sequence. This establishes machine coordinate system by finding limit switches or encoder indexes on all axes.
Secure workpiece in vise or fixture. Verify clamping force is adequate but not excessive. Check part alignment with dial indicator if precision is critical.
Load tools into spindle or tool changer. Measure and store tool lengths. Verify tool numbers match program callouts. Check tool condition and sharpness.
Use edge finder or probe to locate part X, Y, Z zero. Store offsets in G54 register. Double-check by jogging to programmed positions in air.
Run program in simulation mode or with Z-axis raised. Verify tool paths, speeds, and clearances. Check for collisions using machine graphics or external simulation software.
Modern CAM software includes material removal simulation showing the cutting process in 3D. This reveals gouges, tool collisions, and incomplete cuts before any metal is wasted.
Verification checks include:
"I once crashed a tool because I didn't verify a G54 offset after changing fixtures. Lost 2 hours and a $200 endmill. Now I always run air cuts before committing to full depth. Simulation catches program errors, but setup verification catches human errors."