Computer numerical control
Computer numerical control (CNC) or CNC machining is
the automated control of machine tools by a computer. It is an
evolution of numerical control (NC), where machine tools
are directly managed by data storage media such as punched
cards or punched tape. Because CNC allows for easier
programming, modification, and real-time adjustments, it has
gradually replaced NC as computing costs declined.[1][2][3]
A CNC machine is a motorized maneuverable tool and often a
motorized maneuverable platform, which are both controlled
A CNC machine that operates on
by a computer, according to specific input instructions.
wood
Instructions are delivered to a CNC machine in the form of a
sequential program of machine control instructions such as G-
code and M-code, and then executed. The program can be
written by a person or, far more often, generated by graphical
computer-aided design (CAD) or computer-aided
manufacturing (CAM) software. In the case of 3D printers,
the part to be printed is cross-sectioned into virtual "slices"
before the instructions (or the program) are generated. 3D
printers also use G-Code.[4]
CNC offers greatly increased productivity over non-
CNC machines typically use some
computerized machining for repetitive production, where the kind of coolant, such as a water-miscible
machine must be manually controlled (e.g. using devices such oil, to keep the tool and parts from getting
as hand wheels or levers) or mechanically controlled by pre- hot.
fabricated pattern guides (see pantograph mill). However,
these advantages come at significant cost in terms of both
capital expenditure and job setup time. For some prototyping
and small batch jobs, a good machine operator can have parts
finished to a high standard whilst a CNC workflow[5] is still
in setup.
In modern CNC systems, the design of a mechanical part and
its manufacturing program are highly automated. The part's
mechanical dimensions are defined using CAD software and
then translated into manufacturing directives by CAM
A CNC metal lathe with the door open.
software. The resulting directives are transformed (by "post
processor" software) into the specific commands necessary
for a particular machine to produce the component and then are loaded into the CNC machine.
Since any particular component might require the use of several different tools – drills, saws, touch
probes etc. – modern machines often combine multiple tools into a single "cell". In other installations,
several different machines are used with an external controller and human or robotic operators that move
the component from machine to machine. In either case, the series of steps needed to produce any part is
highly automated and produces a part that meets every specification in the original CAD drawing, where
each specification includes a tolerance.
Description
Positioning control system
In numerical control systems, the position of the tool is defined by a set of instructions called the part
program. Positioning control is handled using either an open-loop or a closed-loop system. In an open-
loop system, communication takes place in one direction only: from the controller to the motor. In a
closed-loop system, feedback is provided to the controller so that it can correct for errors in position,
velocity, and acceleration, which can arise due to variations in load or temperature. Open-loop systems
are generally cheaper but less accurate. Stepper motors can be used in both types of systems, while servo
motors can only be used in closed systems.
Motion is controlling multiple axes, normally at least two (X and Y),[6] and a tool spindle that moves in
the Z (depth). The position of the tool is driven by direct-drive stepper motors or servo motors to provide
highly accurate movements, or in older designs, motors through a series of step-down gears. Open-loop
control works as long as the forces are kept small enough and speeds are not too great. On commercial
metalworking machines, closed-loop controls are standard and required to provide the accuracy, speed,
and repeatability demanded.
Cartesian coordinates
The G & M code positions are all based on a three-dimensional Cartesian coordinate system. This system
is a typical plane often seen in mathematics when graphing. This system is required to map out the
machine tool paths and any other kind of actions that need to happen in a specific coordinate. Absolute
coordinates are what are generally used more commonly for machines and represent the (0,0,0) point on
the plane. This point is set on the stock material to give a starting point or "home position" before starting
the actual machining.
Parts description
As the controller hardware evolved, the mills themselves also evolved. One change has been to enclose
the entire mechanism in a large box as a safety measure (with safety glass in the doors to permit the
operator to monitor the machine's function), often with additional safety interlocks to ensure the operator
is far enough from the working piece for safe operation. Most new CNC systems built today are 100%
electronically controlled.
CNC-like systems are used for any process that can be described as movements and operations. These
include laser cutting, welding, friction stir welding, ultrasonic welding, flame and plasma cutting,
bending, spinning, hole-punching, pinning, gluing, fabric cutting, sewing, tape and fiber placement,
routing, picking and placing, and sawing.
Tool/machine crashing
In CNC, a "crash" occurs when the machine moves in such a way that is harmful to the machine, tools, or
parts being machined, sometimes resulting in bending or breakage of cutting tools, accessory clamps,
vises, and fixtures, or causing damage to the machine itself by bending guide rails, breaking drive screws,
or causing structural components to crack or deform under strain. A mild crash may not damage the
machine or tools but may damage the part being machined so that it must be scrapped. Many CNC tools
have no inherent sense of the absolute position of the table or tools when turned on. They must be
manually "homed" or "zeroed" to have any reference to work from, and these limits are just for figuring
out the location of the part to work with it and are no hard motion limit on the mechanism. It is often
possible to drive the machine outside the physical bounds of its drive mechanism, resulting in a collision
with itself or damage to the drive mechanism. Many machines implement control parameters limiting
axis motion past a certain limit in addition to physical limit switches. However, these parameters can
often be changed by the operator.
Many CNC tools also do not know anything about their working environment. Machines may have load
sensing systems on spindle and axis drives, but some do not. They blindly follow the machining code
provided and it is up to an operator to detect if a crash is either occurring or about to occur, and for the
operator to manually abort the active process. Machines equipped with load sensors can stop axis or
spindle movement in response to an overload condition, but this does not prevent a crash from occurring.
It may only limit the damage resulting from the crash. Some crashes may not ever overload any axis or
spindle drives.
If the drive system is weaker than the machine's structural integrity, then the drive system simply pushes
against the obstruction, and the drive motors "slip in place". The machine tool may not detect the
collision or the slipping, so for example the tool should now be at 210mm on the X-axis, but is, in fact, at
32mm where it hit the obstruction and kept slipping. All of the next tool motions will be off by −178mm
on the X-axis, and all future motions are now invalid, which may result in further collisions with clamps,
vises, or the machine itself. This is common in open-loop stepper systems but is not possible in closed-
loop systems unless mechanical slippage between the motor and drive mechanism has occurred. Instead,
in a closed-loop system, the machine will continue to attempt to move against the load until either the
drive motor goes into an overload condition or a servo motor fails to get to the desired position.
Collision detection and avoidance are possible, through the use of absolute position sensors (optical
encoder strips or disks) to verify that motion occurred, or torque sensors or power-draw sensors on the
drive system to detect abnormal strain when the machine should just be moving and not cutting, but these
are not a common component of most hobby CNC tools. Instead, most hobby CNC tools simply rely on
the assumed accuracy of stepper motors that rotate a specific number of degrees in response to magnetic
field changes. It is often assumed the stepper is perfectly accurate and never missteps, so tool position
monitoring simply involves counting the number of pulses sent to the stepper over time. An alternate
means of stepper position monitoring is usually not available, so crash or slip detection is not possible.
Commercial CNC metalworking machines use closed-loop feedback controls for axis movement. In a
closed-loop system, the controller monitors the actual position of each axis with an absolute or
incremental encoder. Proper control programming will reduce the possibility of a crash, but it is still up to
the operator and programmer to ensure that the machine is operated safely. However, during the 2000s
and 2010s, the software for machining simulation has been maturing rapidly, and it is no longer
uncommon for the entire machine tool envelope (including all axes, spindles, chucks, turrets, tool
holders, tailstocks, fixtures, clamps, and stock) to be modeled accurately with 3D solid models, which
allows the simulation software to predict fairly accurately whether a cycle will involve a crash. Although
such simulation is not new, its accuracy and market penetration are changing considerably because of
computing advancements.[7]
Numerical precision and equipment backlash
Within the numerical systems of CNC programming, the code generator can assume that the controlled
mechanism is always perfectly accurate, or that precision tolerances are identical for all cutting or
movement directions. While the common use of ball screws on most modern NC machines eliminates the
vast majority of backlash, it still must be taken into account. CNC tools with a large amount of
mechanical backlash can still be highly precise if the drive or cutting mechanism is only driven to apply
cutting force from one direction, and all driving systems are pressed tightly together in that one cutting
direction. However, a CNC device with high backlash and a dull cutting tool can lead to cutter chatter and
possible workpiece gouging. The backlash also affects the precision of some operations involving axis
movement reversals during cutting, such as the milling of a circle, where axis motion is sinusoidal.
However, this can be compensated for if the amount of backlash is precisely known by linear encoders or
manual measurement.
The high backlash mechanism itself is not necessarily relied on to be repeatedly precise for the cutting
process, but some other reference object or precision surface may be used to zero the mechanism, by
tightly applying pressure against the reference and setting that as the zero references for all following
CNC-encoded motions. This is similar to the manual machine tool method of clamping a micrometer onto
a reference beam and adjusting the Vernier dial to zero using that object as the reference.
Coding
G-codes
G-codes are used to command specific movements of the machine, such as machine moves or drilling
functions. The majority of G-code programs start with a percent (%) symbol on the first line, then
followed by an "O" with a numerical name for the program (i.e. "O0001") on the second line, then
another percent (%) symbol on the last line of the program. The format for a G-code is the letter G
followed by two to three digits; for example G01. G-codes differ slightly between a mill and lathe
application, for example:
[G00 Rapid Motion Positioning]
[G01 Linear Interpolation Motion]
[G02 Circular Interpolation Motion-Clockwise]
[G03 Circular Interpolation Motion-Counter Clockwise]
[G04 Dwell (Group 00) Mill]
[G10 Set offsets (Group 00) Mill]
[G12 Circular Pocketing-Clockwise]
[G13 Circular Pocketing-Counter Clockwise]
M-codes
[Code Miscellaneous Functions (M-Code)]. M-codes are miscellaneous machine commands that do not
command axis motion. The format for an M-code is the letter M followed by two to three digits; for
example:
[M01 Operational stop]
[M02 End of Program]
[M03 Start Spindle - Clockwise]
[M04 Start Spindle - Counter Clockwise]
[M05 Stop Spindle]
[M06 Tool Change]
[M07 Coolant on mist coolant]
[M08 Flood coolant on]
[M09 Coolant off]
[M10 Chuck open]
[M11 Chuck close]
[M12 Spindle up]
[M13 BOTH M03&M08 Spindle clockwise rotation & flood coolant]
[M14 BOTH M04&M08 Spindle counter clockwise rotation & flood coolant]
[M15 BOTH M05&M09 Spindle stop and Flood coolant off]
[M16 Special tool call]
[M19 Spindle orientate]
[M29 DNC mode]
[M30 Program reset & rewind]
[M38 Door open]
[M39 Door close]
[M40 Spindle gear at middle]
[M41 Low gear select]
[M42 High gear select]
[M53 Retract Spindle] (raises tool spindle above current position to allow operator to do
whatever they would need to do)
[M68 Hydraulic chuck close]
[M69 Hydraulic chuck open]
[M78 Tailstock advancing]
[M79 Tailstock reversing]
Coding example
%
O0001
G20 G40 G80 G90 G94 G54(Inch, Cutter Comp. Cancel, Deactivate all canned cycles, moves axes to machine
coordinate, feed per min., origin coordinate system)
M06 T01 (Tool change to tool 1)
G43 H01 (Tool length comp. in a positive direction, length compensation for the tool)
M03 S1200 (Spindle turns CW at 1200RPM)
G00 X0. Y0. (Rapid Traverse to X=0. Y=0.)
G00 Z.5 (Rapid Traverse to z=.5)
G00 X1. Y-.75 (Rapid traverse to X1. Y-.75)
G01 Z-.1 F10 (Plunge into part at Z-.25 at 10in per min.)
G03 X.875 Y-.5 I.1875 J-.75 (CCW arc cut to X.875 Y-.5 with radius origin at I.625 J-.75)
G03 X.5 Y-.75 I0.0 J0.0 (CCW arc cut to X.5 Y-.75 with radius origin at I0.0 J0.0)
G03 X.75 Y-.9375 I0.0 J0.0(CCW arc cut to X.75 Y-.9375 with radius origin at I0.0 J0.0)
G02 X1. Y-1.25 I.75 J-1.25 (CW arc cut to X1. Y-1.25 with radius origin at I.75 J-1.25)
G02 X.75 Y-1.5625 I0.0 J0.0 (CW arc cut to X.75 Y-1.5625 with same radius origin as the previous arc)
G02 X.5 Y-1.25 I0.0 J0.0 (CW arc cut to X.5 Y-1.25 with same radius origin as the previous arc)
G00 Z.5 (Rapid traverse to z.5)
M05 (spindle stops)
G00 X0.0 Y0.0 (Mill returns to origin)
M30 (Program End)
%
Having the correct speeds and feeds in the program provides for a more efficient and smoother product
run. Incorrect speeds and feeds will cause damage to the tool, machine spindle, and even the product. The
quickest and simplest way to find these numbers would be to use a calculator that can be found online. A
formula can also be used to calculate the proper speeds and feeds for a material. These values can be
found online or in Machinery's Handbook.
Examples of CNC machines
CNC
Description Image
machine
Translates programs consisting of specific numbers and letters to move
the spindle (or workpiece) to various locations and depths. Can either be
a Vertical Milling Center (VMC) or a Horizontal Milling Center, depending
on the orientation of the spindle. Many use G-code. Functions include:
Mill face milling, shoulder milling, tapping, drilling and some even offer
turning. Today, CNC mills can have three to six axes. Most CNC mills
require placing the workpiece on or in them and must be at least as big
as the workpiece, but new 3-axis machines are being produced that are
much smaller.
Cuts workpieces while they are rotated. Makes fast, precision cuts,
generally using indexable tools and drills. Effective for complicated
programs designed to make parts that would be unfeasible to make on
manual lathes. Similar control specifications to CNC mills and can often
read G-code. Generally have two axes (X and Z), but newer models have
more axes, allowing for more advanced jobs to be machined. Most
Lathe
modern lathes have live tooling, allowing for limited milling operations to
take place without having to remove the part from the lathe spindle.
Second operations can be completed by using a sub-spindle, which is co-
axial to the main spindle, but faces the other direction. This allows the
part to be removed from the main spindle, and for additional features to
be machined in the back side of the part.
Involves cutting a material using a plasma torch. Commonly used to cut
steel and other metals, but can be used on a variety of materials. In this
process, gas (such as compressed air) is blown at high speed out of a
Plasma
nozzle; at the same time, an electrical arc is formed through that gas from
cutter
the nozzle to the surface being cut, turning some of that gas to plasma. CNC plasma
The plasma is sufficiently hot to melt the material being cut and moves cutting
sufficiently fast to blow molten metal away from the cut.
Electric (EDM), also known as spark machining, spark eroding, burning, die
discharge sinking, or wire erosion, is a manufacturing process in which the desired
machining shape is obtained using electrical discharges (sparks). Material is
removed from the workpiece by a series of rapidly recurring current
discharges between two electrodes, separated by a dielectric fluid and
subject to an electric voltage. One of the electrodes is called the tool
electrode, or simply the "tool" or "electrode", while the other is called the
workpiece electrode, or "workpiece".
EDM can be broadly divided into "sinker" type processes, Sinker EDM.
where the electrode is the positive shape of the resulting Electrolyte
feature in the part, and the electric discharge erodes this solution
feature into the part, resulting in the negative shape, and saturates the
"wire" type processes. Sinker processes are rather slow as workpiece, and
voltage is
compared to conventional machining, averaging on the order
applied
of 100 mm3/min,[8] as compared to 8 million mm3/min for
between the
conventional machining, but it can generate features that sinker, top, and
conventional machining cannot. Wire EDM operates by using workpiece,
a thin conductive wire, typically brass, as the electrode, and bottom.
discharging as it runs past the part being machined. This is
useful for complex profiles with inside 90 degree corners that
would be challenging to machine with conventional methods.
Type of screw machine used in mass production. Considered to be highly
efficient by increasing productivity through automation. Can efficiently cut
materials into small pieces while simultaneously utilizing a diversified set
Multi- of tooling. Multi-spindle machines have multiple spindles on a drum that
spindle rotates on a horizontal or vertical axis. The drum contains a drill head
machine which consists of several spindles that are mounted on ball bearings and
driven by gears. There are two types of attachments for these drill heads,
fixed or adjustable, depending on whether the center distance of the
drilling spindle needs to be varied.[9]
Also known as a "waterjet", is a tool capable of slicing into metal or other
materials (such as granite) by using a jet of water at high velocity and
pressure, on the order of 60,000 PSI, or a mixture of water and an
abrasive substance, such as garnet powder. It is often used during the
fabrication or manufacture of parts for machinery and other devices.
Waterjet cutting is the preferred machining method when the materials
being cut are sensitive to the high temperatures generated by other
Water jet
methods. It has found applications in a diverse number of industries from
cutter
mining to aerospace where it is used for operations such as cutting, Waterjet
shaping, carving, and reaming. The thickness of material processable via
cutting machine
waterjet machining is generally limited by the pressure of the waterjet,
and by the dispersion of the jet as it gets further from the nozzle. Some
waterjet cutters have a 5-axis cutting head, allowing for much more
complex shapes to be cut, and to compensate for the angle of the kerf to
leave the angled wall on the stock instead of on the finished part.
Used to rapidly punch holes and cut thin materials. Such as sheet metal,
plywood, thin bar stock, and tubing. Punch presses are generally used
when a CNC mill would be inefficient or unfeasible. CNC punch presses
Punch
can come in the C frame, where the sheet material is clamped onto a
press
machining table and a hydraulic ram pushes down on the material, or
they can come in a portal frame variant where bar stock/tubing is fed into
the machine. Punch
machine at
work
Other CNC tools
Many other tools have CNC variants, including:
3D printing
CNC riveting
CNC router
Cylindrical grinders
Drills
Embroidery machines
Glass cutting
Hot-wire foam cutters
Induction hardening machines
Laser cutting
Laser engraving
Lathes
Leather cutter
Milling machine
Oxy-fuel
Plasma cutters
Sheet metal works (Turret punch) Laser cutter at a fab lab
Submerged arc welding
Surface grinder
Tube, pipe and wire bending machines
Vinyl cutter
Water jet cutters
Wood routers
History
Water jet cutter
1940s to 1950s
The first NC machines were built in the 1940s and 1950s,
based on existing tools that were modified with motors that
moved the tool or part to follow points fed into the system on
punched tape.[4] These early servomechanisms were rapidly
augmented with analog and digital computers, creating the
modern CNC machine tools that have revolutionized
machining processes.
Laser engraved wood
2000s
CNC plays an extensive role in the processing manufacturing field, not only the traditional milling and
turning, other machines and equipment are also installed with the corresponding CNC, which makes the
manufacturing industry in its support, greatly improving the quality and efficiency. Traditional subtractive
manufacturing can be combined with additive manufacturing (3D printing) to create a new manufacturing
method[10] - hybrid additive subtractive manufacturing (HASM).[11] Another trend is the combination of
AI, using a large number of sensors, with the goal of achieving flexible manufacturing.[12]
See also
Manufacturing
portal
Automatic tool changer
Binary cutter location
CNC plunge milling
Computer-aided technologies
Computer-aided engineering (CAE)
Coordinate-measuring machine (CMM)
Design for manufacturability
Direct numerical control (DNC)
EIA RS-274
Gerber format
Home automation
Maslow CNC
Multiaxis machining
Optical tracer
Part program
Robotics
Touch probe
List of computer-aided manufacturing software
List of 3D printing software
References
1. "Definition of numerical control" ([Link]
ol).
2. "What Is A CNC Machine?" ([Link] CNC
Machines. Retrieved 2022-02-04.
3. Groover, Mikell P. (2024-10-28). "Automation - Numerical Control, Robotics, Manufacturing"
([Link]
Encyclopædia Britannica. Retrieved 2025-03-18.
4. "What is CNC Milling and How Does it Work: Everything You Need to Know" ([Link]
[Link]/blog/cnc-milling-everything-you-need-to-know/). 3ERP. 2022-06-24. Retrieved
2025-03-18.
5. Cynthia, Ibrahim. "CNC Grinding Explained: How It Works, Tools, and Industrial Uses" (http
s://[Link]/cnc-grinding/). FS Fab.
6. Mike Lynch, "Key CNC Concept #1—The Fundamentals Of CNC", Modern Machine Shop, 4
January 1997 ([Link]
c). Accessed 11 February 2015
7. Zelinski, Peter (2014-03-14), "New users are adopting simulation software" ([Link]
[Link]/blog/post/new-users-are-adopting-simulation-software), Modern Machine Shop.
8. Klocke, F.; Schwade, M.; Klink, A.; Veselovac, D. (2013-01-01). "Analysis of Material
Removal Rate and Electrode Wear in Sinking EDM Roughing Strategies using Different
Graphite Grades" ([Link] Procedia CIRP.
Proceedings of the Seventeenth CIRP Conference on Electro Physical and Chemical
Machining (ISEM). 6: 163–167. doi:10.1016/[Link].2013.03.079 ([Link]
[Link].2013.03.079). ISSN 2212-8271 ([Link]
9. "Multi Spindle Machines - An In-Depth Overview" ([Link]
spindle-machines/). Davenport Machine. Retrieved 2017-08-25.
10. Chang Y C, Pinilla J M, Kao J H, et al. Automated layer decomposition for
additive/subtractive solid freeform fabrication[C]. 1999 International Solid Freeform
Fabrication Symposium, 1999.
11. W. Grzesik/ (2018). "Hybrid Additive and Subtractive Manufacturing Processes and
Systems: A Review" ([Link] (PDF). Journal of Machine
Engineering. 18 (4): 5–24. doi:10.5604/01.3001.0012.7629 ([Link]
001.0012.7629) (inactive 1 July 2025).
12. L.C. Moreira, W. Li, X. Lu, M.E. Fitzpatrick Supervision controller for real-time surface
quality assurance in CNC machining using artificial intelligence Comput. Ind. Eng., 127
(2019), pp. 158-168
Further reading
Brittain, James (1992), Alexanderson: Pioneer in American Electrical Engineering, Johns
Hopkins University Press, ISBN 0-8018-4228-X.
Holland, Max (1989), When the Machine Stopped: A Cautionary Tale from Industrial
America, Boston: Harvard Business School Press, ISBN 978-0-87584-208-0,
OCLC 246343673 ([Link]
Noble, David F. (1984), Forces of Production: A Social History of Industrial Automation, New
York, New York, US: Knopf, ISBN 978-0-394-51262-4, LCCN 83048867 ([Link]
83048867).
Reintjes, J. Francis (1991), Numerical Control: Making a New Technology, Oxford University
Press, ISBN 978-0-19-506772-9.
Weisberg, David, The Engineering Design Revolution ([Link]
7074750/[Link] (PDF),
archived from the original ([Link]
[Link]) (PDF) on 7 July 2010.
Wildes, Karl L.; Lindgren, Nilo A. (1985), A Century of Electrical Engineering and Computer
Science at MIT ([Link] MIT Press, ISBN 0-
262-23119-0.
Herrin, Golden E. "Industry Honors The Inventor Of NC" ([Link]
427085904/[Link]
Modern Machine Shop, 12 January 1998.
Siegel, Arnold. "Automatic Programming of Numerically Controlled Machine Tools", Control
Engineering, Volume 3 Issue 10 (October 1956), pp. 65–70.
Smid, Peter (2008), CNC Programming Handbook (3rd ed.), New York: Industrial Press,
ISBN 9780831133474, LCCN 2007045901 ([Link]
Christopher jun Pagarigan (Vini) Edmonton Alberta Canada. CNC Infomatic, Automotive
Design & Production.
Fitzpatrick, Michael (2019), "Machining and CNC Technology".
External links
Media related to Computer numerical control at Wikimedia Commons
Retrieved from "[Link]