Numerical control (also computer numerical control, and commonly called CNC) is the automated control of machining tools (such as drills, boring tools, lathes) and 3D printers by means of a computer. A CNC machine processes a piece of material (metal, plastic, wood, ceramic, or composite) to meet specifications by following a coded programmed instruction and without a manual operator. A CNC machine is a motorized maneuverable tool and often a motorized maneuverable platform, which are both controlled by a computer, according to specific input instructions. 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, then executed. The program can be written by a person or, far more often, generated by graphical computer-aided design (CAD) software. In the case of 3D printers, the part to be printed is "sliced", before the instructions (or the program) is generated. 3D printers also use G-Code.
CNC is a vast improvement over non-computerized machining that must be manually controlled (e.g. using devices such as hand wheels or levers) or mechanically controlled by pre-fabricated pattern guides (cams). In modern CNC systems, the design of a mechanical part and its manufacturing program is highly automated. The part's mechanical dimensions are defined using CAD software and then translated into manufacturing directives by computer-aided manufacturing (CAM) 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 a number of different tools – drills, saws, etc. – modern machines often combine multiple tools into a single "cell". In other installations, a number of different machines are used with an external controller and human or robotic operators that move the component from machine to machine.