Computer-Aided Design & Manufacturing (CAD/CAM)

Chapter 9
CNC Systems and Programming Fundamentals

Bachelors Program in Mechnical Engineering
Computer-Aided Design & Manufacturing (CAD/CAM)   •   Bachelor

CNC Systems and Programming Fundamentals

Introduction and Context

Computer numerical control (CNC) is the use of a programmable computer-based control system to direct the motions and auxiliary functions of a machine tool. Unlike a conventional machine, in which the operator continuously controls handwheels, levers, and switches, a CNC machine interprets a coded part program and coordinates spindle rotation, tool motion, coolant, workholding, and other functions.

CNC is central to modern computer-aided design and manufacturing because it provides a direct link between digital product definition and physical production. A CAD model may be converted into toolpaths by CAM software, post-processed for a particular controller, verified in simulation, and executed on a machining centre or turning centre. Nevertheless, manual programming remains important. It develops an understanding of coordinate systems, cutting conditions, machine limitations, and the meaning of generated code.

A CNC program is not merely a list of coordinates. It is an instruction set interpreted within a machine coordinate system, using modal commands, specified units, tool offsets, feed rates, spindle commands, and safety procedures. A programmer must therefore understand both the mechanical architecture and the logic of the controller.

Learning Objectives

After studying this chapter, the student should be able to:

  • describe the architecture and operating sequence of a CNC system;
  • identify machine axes, coordinate systems, drives, feedback devices, and control functions;
  • distinguish absolute and incremental programming;
  • explain tooling, tool offsets, workholding, and datum selection;
  • calculate basic spindle speed, feed rate, and milling cutting conditions;
  • write and interpret elementary G-code and M-code programs for turning and milling;
  • identify common programming hazards and apply safe verification practices.

1. CNC Machine Architecture

A CNC system consists of an information-processing system connected to a machine tool. Its principal elements are shown conceptually below.

1.1 Program input and human–machine interface

The part program may be entered through the controller keyboard, transferred from a CAM system, or received through a manufacturing network. The human–machine interface (HMI) displays program blocks, positions, alarms, offsets, tool data, and diagnostic information. Modern controllers commonly support USB, Ethernet, remote monitoring, and graphical simulation.

1.2 Numerical control unit

The numerical control (NC) unit, often called the CNC controller, interprets program words such as G, X, Z, F, S, T, and M. It performs interpolation: the calculation of coordinated axis movements needed to produce a straight line, circular arc, or more complex path. It also manages sequencing, compensation, limits, spindle commands, coolant, and machine interlocks.

A controller normally includes:

  • a program memory and operating system;
  • a motion planner and interpolator;
  • axis and spindle control loops;
  • input/output interfaces;
  • diagnostic and safety functions;
  • offset and tool-data storage.

1.3 Drives and motors

Servo drives convert controller commands into electrical power for axis motors. The motor turns a ballscrew, linear motor, or rotary transmission. Spindle drives control spindle speed and torque. Servo systems generally operate with closed-loop feedback, allowing actual position and velocity to be compared with commanded values.

The simplified position error is

e(t) = r(t) − y(t)

where r(t) is commanded position, y(t) is measured position, and e(t) is position error. The expression is a control concept rather than a complete servo model. Real systems also account for velocity, acceleration, friction, backlash, disturbance, and controller tuning.

1.4 Mechanical structure

The machine structure includes the base, column, guideways, slides, spindle, table, turret or tool magazine, enclosure, and chip-management system. Structural stiffness is essential because cutting forces can deflect the tool or workpiece and produce dimensional error, chatter, and poor surface finish.

Guideways may be box ways, linear rolling guides, or hydrostatic systems. Ballscrews convert rotary motor motion into accurate linear motion. Preloading reduces clearance, but thermal expansion and wear still affect accuracy.

1.5 Feedback and sensing

Encoders, resolvers, linear scales, spindle orientation sensors, limit switches, and load sensors provide information to the controller. Rotary encoders measure motor or screw rotation; linear scales measure actual slide position and can reduce errors caused by screw pitch variation or thermal effects.

Feedback does not eliminate all error. It cannot automatically correct an incorrectly measured tool, poor workholding, cutting-tool wear beyond the compensation range, or an incorrectly selected work offset.

2. Machine Axes and Coordinate Systems

2.1 Standard axes

The right-hand Cartesian convention defines three principal linear axes: X, Y, and Z. On most machining centres, Z is parallel to the spindle axis. Positive Z is commonly away from the workpiece, although machine and control conventions must always be checked. X and Y are mutually perpendicular and perpendicular to Z.

For a typical vertical machining centre, X is left–right, Y is front–back, and Z is up–down. For a conventional lathe, Z is parallel to the spindle axis and X is radial. Turning commonly uses X values as diameters, but some controls can be configured for radius programming. This distinction is critical.

Rotary axes are named A, B, and C, rotating about X, Y, and Z respectively. A five-axis machine may combine three linear and two rotary axes. Rotary-axis conventions depend on the controller and machine orientation.

2.2 Machine, work, and tool coordinates

Several coordinate systems coexist:

  • Machine coordinate system: fixed by the builder and established by machine reference return or homing.
  • Work coordinate system: selected by the programmer and normally located at a workpiece datum.
  • Tool or local coordinate system: used for tool length, radius, nose-radius, or local transformations.
  • Incremental coordinates: specify movement relative to the current tool position.

A work offset translates the programmed work origin relative to the machine origin. Common offset commands include G54 through G59, although available numbers vary by control. A program must activate the intended offset explicitly rather than relying on the previous operator's state.

Absolute programming uses G90; incremental programming uses G91. In absolute mode, X50 means the commanded coordinate is X = 50 in the active work system. In incremental mode, X50 means movement of 50 units from the current location. Modal states persist until cancelled or replaced, so a safe program states important modes deliberately.

2.3 Units and plane selection

G20 generally selects inch units and G21 metric units. Circular interpolation requires a plane: G17 selects XY, G18 XZ, and G19 YZ on many controllers. Because controller conventions differ, the machine manual is authoritative.

A practical start block often includes unit, plane, absolute mode, work offset, and compensation cancellation, for example:

G21 G17 G90 G40 G49 G54

This is not universally safe as a complete start block; the correct commands depend on the machine, tool changer, and controller. The programmer must verify whether commands are supported and whether their execution could cause motion.

3. Drives, Control Modes, and Interpolation

CNC motion may be described as point-to-point, straight-line contouring, or continuous-path contouring. Drilling between fixed locations is largely point-to-point. Milling a profile requires coordinated continuous-path motion.

G00 commands rapid positioning and is intended for non-cutting travel. G01 commands linear interpolation at a programmed feed rate. G02 and G03 command clockwise and counterclockwise circular interpolation in the active plane. Circular motion may be specified with a radius R or centre offsets I, J, and K. Centre-offset programming is often more reliable for arcs exceeding 180° or where sign conventions must be explicit.

The controller plans acceleration and deceleration to respect machine limits. Consequently, the programmed feed rate may not be reached on short segments or at corners. Excessively small CAM segments can cause data-processing load, slow motion, and poor surface quality.

4. Cutting Conditions and Basic Calculations

Cutting conditions must be selected from toolmaker recommendations, workpiece material, tool material, rigidity, coolant, and operation type. The following equations are fundamental but do not replace manufacturer data.

For a rotating cutter or workpiece, cutting speed is

V = (π D N) / 1000

when V is in m/min, D is diameter in mm, and N is rotational speed in rev/min. Therefore,

N = (1000 V) / (π D)

These equations assume the stated diameter represents the cutting diameter and that units are consistent. For turning, the diameter is usually the current workpiece diameter. For milling, it is generally the cutter diameter.

For milling, table feed is

F = fz z N

where F is feed in mm/min, fz is feed per tooth in mm/tooth, z is number of effective teeth, and N is spindle speed in rev/min. The equation assumes all listed teeth are effectively cutting. Runout, chip thinning, and interrupted engagement may require adjustment.

For turning, a simple programmed feed expressed in mm/rev is related to linear feed by

Fm = f N

where Fm is feed in mm/min, f is feed per revolution in mm/rev, and N is rev/min.

Worked example: milling speed and feed

A carbide end mill has diameter 10 mm, four effective teeth, recommended cutting speed 120 m/min, and feed per tooth 0.04 mm/tooth. The spindle speed is

N = (1000 × 120)/(π × 10) ≈ 3819 rev/min.

The feed rate is

F = 0.04 × 4 × 3819 ≈ 611 mm/min.

A practical program may use 3800 rev/min and 610 mm/min after considering machine capability and the specific tool manufacturer's guidance.

5. Tooling, Offsets, and Workholding

5.1 Tool selection

Tool selection depends on material, operation, accessibility, rigidity, chip control, tolerance, and surface finish. Typical milling tools include face mills, end mills, drills, reamers, and chamfer tools. Turning tools include roughing, finishing, threading, grooving, boring, and parting tools.

Tool geometry affects cutting forces. A large nose radius can improve finish but may increase radial force and chatter in a flexible setup. A small nose radius reduces cutting force but may leave a less favorable theoretical surface pattern.

5.2 Tool offsets

Tool length offset compensates for the distance from the machine reference to the tool tip. Cutter-radius compensation, commonly G41 and G42, permits programming a part profile while the control offsets the tool centreline left or right of the path. G40 cancels it. Compensation must be entered and cancelled on suitable lead-in and lead-out moves; abrupt activation can produce an alarm or unintended motion.

Turning controls may use tool geometry and wear offsets for X, Z, nose radius, and orientation. Tool nose-radius compensation is important when profiling tapers, radii, and compound contours.

5.3 Workholding

Workholding must resist cutting forces without distorting the workpiece. Common devices include three-jaw and four-jaw chucks, collets, vises, fixtures, vacuum tables, and magnetic chucks. The setup should provide adequate support, tool clearance, repeatability, and chip evacuation.

A workholding decision is a manufacturing decision, not merely an accessory choice. Excessive overhang increases deflection; inadequate jaw engagement can allow pull-out; soft or thin parts may be distorted by clamping pressure. The datum scheme should be compatible with inspection and with subsequent operations.

6. G-Code and M-Code Fundamentals

G-codes control geometry, motion, coordinate modes, and compensation. M-codes control auxiliary functions. Exact code availability varies by controller; codes below are common ISO/FANUC-style examples.

CodeTypical function
G00Rapid positioning
G01Linear interpolation
G02 / G03Circular interpolation clockwise/counterclockwise
G04Dwell
G17/G18/G19Plane selection
G20/G21Inch/metric units
G28Return through an intermediate point to reference position; controller-specific
G40Cancel cutter compensation
G41/G42Cutter compensation left/right
G43Positive tool-length compensation
G49Cancel tool-length compensation
G54–G59Work coordinate systems
G90/G91Absolute/incremental programming
M03/M04Spindle clockwise/counterclockwise
M05Spindle stop
M06Tool change, commonly on machining centres
M08/M09Coolant on/off
M30Program end and reset

A block consists of words, normally separated by spaces. For example, G01 X40.0 Y20.0 F200 requests linear motion to the specified position at 200 mm/min if metric units and relevant modes are active. Sequence numbers such as N100 are optional on many controls.

Modal commands remain active. If G01 is active, a later block containing only X50 may continue linear interpolation. This is efficient but potentially dangerous. Clear formatting, conservative retracts, and explicit safety lines reduce ambiguity.

7. Manual Milling Program

Consider an illustrative three-axis milling operation. A rectangular plate is set in a vise. The work origin is at the upper-left corner of the top face; Z0 is the top surface. A 10 mm end mill is used. The tool approaches at Z5, cuts a rectangular path at Z−2, and returns safely. Coordinates and feeds are illustrative and must be validated for the actual machine.

%
O0901 (RECTANGULAR PROFILE - ILLUSTRATIVE)
G21 G17 G90 G40 G49 G80
G54
T01 M06
S3800 M03
G00 G43 H01 Z50.0
M08
G00 X5.0 Y5.0
G00 Z5.0
G01 Z-2.0 F120
G01 X95.0 F610
G01 Y45.0
G01 X5.0
G01 Y5.0
G00 Z50.0
M09
M05
G91 G28 Z0
G91 G28 X0 Y0
G90
M30
%

The program uses a 5 mm centreline allowance around a nominal 100 mm × 50 mm boundary only as an illustrative toolpath. It does not use cutter compensation, so the programmer has manually calculated the tool-centre path. In production, a compensated profile may be preferable, provided lead-in, lead-out, offset values, and direction are verified.

The line G43 H01 Z50.0 applies tool-length offset H01 while moving to a safe height. Some controls require a different order or syntax. The reference-return commands are controller-dependent and must never be copied without checking the manual. A safer machine-specific retract may be preferable.

8. Manual Turning Program

Consider an illustrative turning operation on a 40 mm diameter bar. The work coordinate is at the front face, with Z0 at the face and X programmed in diameter. The operation faces the end and turns a 30 mm diameter section to Z−40. Tool T0101 is assumed to be a suitable external turning tool.

%
O0902 (FACING AND TURNING - ILLUSTRATIVE)
G21 G18 G90 G40 G99
G54
T0101
G97 S1200 M03
M08
G00 X42.0 Z2.0
G01 Z0.0 F0.15
G01 X-0.5
G00 X42.0 Z2.0
G00 X30.0
G01 Z-40.0 F0.20
G00 X42.0 Z5.0
M09
M05
M30
%

Here G99 commonly selects feed per revolution on a lathe, but this is controller-specific. G97 selects fixed spindle speed rather than constant surface speed. X−0.5 is included to ensure facing across the centreline on controls that permit it; the value and method must be checked because crossing the spindle centre may be restricted.

A production turning program would normally include roughing allowances, finishing passes, tool-nose-radius compensation where required, spindle-speed limits, and inspection provisions. Constant surface speed, often G96, can improve turning consistency because the spindle speed changes as diameter changes; however, it requires a maximum speed limit and careful approach control.

9. Programming Workflow and Verification

A robust workflow is:

  1. Interpret the drawing, material, tolerances, datums, and surface requirements.
  2. Select the machine, workholding, tools, inserts, and cutting conditions.
  3. Establish machine and work coordinate systems.
  4. Define tool numbers, geometry offsets, wear offsets, and coolant strategy.
  5. Plan safe approach, cutting, retract, and tool-change positions.
  6. Write or generate the program using explicit modal assumptions.
  7. Check syntax and controller compatibility.
  8. Simulate tool motion and inspect for collisions, gouges, overtravel, and excess stock.
  9. Perform a dry run, single-block test, or reduced rapid/feed trial as appropriate.
  10. Measure the first part and update wear offsets in a controlled manner.

Verification should include the tool-holder envelope, chuck jaws, vise, clamps, fixture, stock model, machine travel limits, and spindle direction. A simulation that contains only the tool tip and stock may miss a holder collision.

10. Applied Case: First-Part Failure in a Small-Batch Component

Background

An illustrative manufacturing cell must produce a small aluminium housing on a vertical machining centre. The CAD model is correct, and a CAM system generates a pocketing program. The first part contains an oversized pocket and a collision occurs during tool retraction.

Problem analysis

Investigation finds three independent issues. First, the CAM post-processor outputs G54, but the operator had set the work offset in G55. Second, the tool-length measurement was entered in H02 while the program called H01. Third, the retraction line used a rapid move in Z while the fixture clamp occupied the planned clearance region.

The dimensional error is therefore not attributable to the cutter alone. It arises from a mismatch between the digital program, offset data, and physical setup.

Corrective approach

The team establishes a setup sheet containing the datum photograph, work-offset values, tool list, holder dimensions, and maximum spindle speed. The program is edited to call the agreed offset and tool register. The fixture is included in simulation, and the retract height is moved above the clamp. A controlled dry run is performed with the spindle stopped, followed by a single-block test at reduced rapid override.

Outcome

The second trial avoids the collision and produces a correctly located pocket. Inspection shows a small dimensional deviation caused by cutter deflection; a wear offset is applied after confirming the measurement system and tool condition.

Learning points

The case demonstrates that CNC competence requires integration of programming, metrology, tooling, workholding, data management, and safety. A syntactically correct program can still be unsafe or dimensionally wrong. Offset verification and simulation must be treated as engineering activities, not clerical steps.

11. Limitations, Safety, and Professional Practice

CNC systems improve repeatability but do not guarantee quality. Thermal drift, tool wear, machine geometric error, spindle runout, vibration, material variation, and incorrect inspection can affect results. CAM output may contain excessive points, unsuitable feeds, or controller-incompatible commands.

Never assume that a program is safe because it ran in simulation. Confirm the machine model, post-processor, offsets, tool assembly, fixture, and controller behavior. Use guards, emergency stops, lockout procedures, approved lifting methods, and appropriate eye and hearing protection. Chips should be removed with a brush, hook, or suitable tool rather than bare hands.

Manufacturing data also requires governance. Revision-controlled programs, access permissions, backups, traceability, and protection against unauthorized modification are increasingly important as machines become networked. AI-assisted toolpath generation can suggest strategies or detect anomalies, but engineering responsibility remains with the qualified programmer and operator. Generated code must be validated against machine limits, tooling, workholding, and the drawing.

Contemporary CNC developments include high-speed machining, adaptive feed control, digital twins, probing, automatic tool measurement, machine monitoring, five-axis kinematics, additive–subtractive hybrid machines, and networked production systems. These technologies increase capability but also increase the need for accurate data, calibration, cybersecurity, and operator training.

Chapter Summary

CNC integrates a machine structure, drives, feedback devices, controller, tooling, workholding, and a coded program. The controller interprets modal G-codes and auxiliary M-codes, coordinates axis interpolation, and manages offsets and machine functions. Correct use of machine, work, and tool coordinate systems is essential, particularly for absolute versus incremental programming and for turning diameter conventions.

Basic cutting calculations connect cutting speed, diameter, spindle speed, feed per tooth, number of teeth, and feed rate. Manual milling and turning programs require explicit units, planes, work offsets, tool offsets, spindle commands, approach movements, cutting moves, retracts, coolant control, and program termination. Safe CNC practice combines code review, simulation, setup verification, dry running, measurement, and controlled offset correction. Digital tools and AI can support programming, but they do not replace engineering judgement or machine-specific verification.

Key Terms

CNC: Computer numerical control of a machine tool using programmed instructions.

NC controller: The electronic unit that interprets programs and commands machine functions.

Interpolation: Coordinated calculation of axis motion along a specified path.

Servo drive: A drive system that controls motor motion using command and feedback signals.

Encoder: A sensor that measures rotary or linear position.

Machine coordinate system: The fixed coordinate framework established by the machine builder.

Work coordinate system: A programmer-selected coordinate system located at a work datum.

Work offset: The translation between machine coordinates and a selected work origin.

Absolute programming: Programming positions from a fixed active origin.

Incremental programming: Programming movements relative to the current position.

Modal code: A command that remains active until cancelled or replaced.

G-code: A code family controlling motion, geometry, units, and compensation.

M-code: A code family controlling auxiliary functions such as spindle and coolant.

Tool-length offset: Compensation for the measured length of a cutting tool.

Cutter compensation: Control adjustment for cutter radius or tool-nose geometry.

Feed rate: The programmed linear or per-revolution rate of tool movement.

Cutting speed: Relative surface speed between the cutting edge and workpiece.

Workholding: The method used to locate and restrain the workpiece.

Post-processor: Software that converts generic toolpaths into controller-specific code.

Dry run: A controlled test of program motion without normal cutting engagement.

Review Questions

Short Answer Questions

  1. What are the principal functions of a CNC controller?
  2. Distinguish the machine coordinate system from the work coordinate system.
  3. What is the difference between G00 and G01?
  4. Why are tool-length offsets necessary?
  5. State two important purposes of workholding.

Long Answer Questions

  1. Explain the architecture of a CNC machine, including the controller, drives, motors, feedback devices, and mechanical structure.
  2. Compare absolute and incremental programming and explain situations in which each may be used.
  3. Describe a systematic procedure for developing and verifying a manual milling program.
  4. Explain the roles of G-codes, M-codes, modal states, work offsets, and tool offsets in a CNC program.
  5. Discuss the effects of tooling, rigidity, workholding, thermal error, and tool wear on machining accuracy.

Analytical / Application Questions

  1. A 16 mm milling cutter is to operate at a cutting speed of 100 m/min. Calculate the spindle speed using N = (1000V)/(πD), and explain why the selected machine value may be rounded.
  2. A milling program calls G55 and H02, but the setup sheet specifies G54 and H01. Analyse the likely consequences and propose a verification procedure before machining.
  3. Design the coordinate-system, tool-offset, approach, cutting, retract, and verification strategy for turning a stepped shaft, explaining how you would prevent a chuck or tool-holder collision.

Multiple Choice Questions with Answers

Question 1

Which component interprets G-code and coordinates CNC axis motion?

A. The workholding fixture

B. The CNC controller

C. The cutting insert

D. The coolant pump

Correct Answer: B. The CNC controller

Question 2

On a conventional machining centre, the Z-axis is normally parallel to the:

A. Table edge

B. Workholding jaw

C. Spindle axis

D. Coolant nozzle

Correct Answer: C. Spindle axis

Question 3

What does G90 commonly select?

A. Incremental programming

B. Absolute programming

C. Spindle counterclockwise rotation

D. Cutter compensation cancellation

Correct Answer: B. Absolute programming

Question 4

A 10 mm cutter operates at 120 m/min. Approximately what spindle speed is required?

A. 382 rev/min

B. 1,200 rev/min

C. 3,820 rev/min

D. 12,000 rev/min

Correct Answer: C. 3,820 rev/min

Question 5

Which equation gives milling table feed when feed per tooth is known?

A. F = f_z z N

B. F = πD/N

C. F = V/(πD)

D. F = D/(f_z z)

Correct Answer: A. F = f_z z N

Question 6

What is the primary purpose of a work offset such as G54?

A. To change coolant pressure

B. To define the workpiece origin relative to machine coordinates

C. To increase tool hardness

D. To select spindle direction

Correct Answer: B. To define the workpiece origin relative to machine coordinates

Question 7

Which command commonly represents linear interpolation at a programmed feed?

A. G00

B. G01

C. G02

D. G04

Correct Answer: B. G01

Question 8

In a typical milling program, what is the purpose of G43 H01?

A. Apply tool-length compensation from offset H01

B. Cancel spindle rotation

C. Select incremental coordinates

D. Activate coolant

Correct Answer: A. Apply tool-length compensation from offset H01

Question 9

Why is a dry run performed before normal cutting?

A. To sharpen the tool automatically

B. To verify motion and detect hazards without normal cutting engagement

C. To eliminate the need for work offsets

D. To measure material hardness

Correct Answer: B. To verify motion and detect hazards without normal cutting engagement

Question 10

Which issue can remain even when a CNC program is syntactically correct?

A. Incorrect work offset selection

B. The existence of Cartesian axes

C. The definition of spindle speed

D. The use of a machine enclosure

Correct Answer: A. Incorrect work offset selection

Computer-Aided Design & Manufacturing (CAD/CAM)
Chapter 9 of 15