How to program a CNC machine

How to Program a CNC Machine for the Best Machining

Ian Mutuli
Updated on
Ian Mutuli

Ian Mutuli

Founder and Managing Editor of Archute. He is also a graduate architect from The University of Nairobi, Kenya.
Get Smarter On Architecture and Design

Get the 3-minute weekly newsletter keeping 5K+ designers in the loop.

Enter your Email to Sign up


Mastering CNC (computer numerical control) programming language is tedious. However, CNC programming is utilized by manufacturers to operate machine tools. Join me as I tackle how to program any CNC machine to get the most out of it.

What is a CNC Machine, and What Does it do?

A CNC machine is not a single machine. It can be a sheet metal stamping machine, lathe, router, welder, robot, laser cutter, or any other machine. To operate these machines, you need CNC programming. Most programming lines of a CNC program have small sets of instructions in G and M codes.

G codes typically work by managing the positioning of the tool. M codes, on the other hand, control the rotation of tools, among other functions. Since computers became cheaper and smaller, G code programming has been generated using Computer Aided Manufacturing. A CAM program will accept multiple instructions.

Learning CNC programming language requires lots of practice to be well-versed in it. You also need the best computer for architecture rendering and 3D modelling.

How to Program a CNC Machine

1) Using Commands

a) G Commands

Before trying to program a CNC machine, there are pieces of code you have to be familiar with. For starters, critical G commands and 5 main letters are used in the programming language. They are:

  • T- Tool operations
  • F- Feed rate
  • M- Machine action codes
  • S- Spindle speed
  • G- Motion codes

G commands instruct the machine to move in a different direction with every command. It would be best if you kept in mind that movement commands also come with absolute coordinates for coordinate systems in CNC machining. G code programs will help a CNC programmer to save time, especially in a canned cycle.

Here is a list of some examples of G code programming and what they do.

G code meanings

Image source:

G code tells the machine whether to move in an arc or a curve on an XY plane. However, it won’t know where to stop, which is where the M code comes in.

b) M Commands

M commands for CNC are also important; they help to carry out tasks such as initiating a tool change and starting or stopping the spindle, among others. M commands are:

  • M00: program stop
  • M02: end of the program
  • M03: spindle on, clockwise rotation
  • M04: spindle on, counterclockwise rotation
  • M05: spindle stop
  • M06: tool change
  • M08: flood coolant on
  • M09: flood coolant off
  • M30: end of program, rewind and reset modes

M code and their meaning

Image source:

M code is a part of the programming language used to input instructions into computer-aided manufacturing softwares like AutoCAD.

c) Tool Commands

Lastly, there are tool commands that help with changing the tools mid-operation. Each tool is assigned a specific tool number when you set up the CNC software programming on a CNC machine. Tool commands make the tools move in the direction you want. It’s like having a sliding compound miter saw for woodworking projects.

Assigning numbers to tools

Image source:

The letters used in tool commands are:

S (spindle speed) denotes the number following the S. For example; if a tool is assigned S3800, this number denotes that the tool rotates at 3800 revolutions per minute.

F (feed rate) denotes how quickly the machine coordinate system moves when its fed with G commands. Since most common G codes are standardized, most machines will accept them.

2) Select Your Programming Code

There are 3 main basic concepts of programming you have to select:

a) Conversational Programming

Conversational programming

Image source:

This is the easiest programming for beginner CNC programmers. You don’t need to fully grasp the G code program as you learn CNC programming. Most CNC machinery will allow the programming to verify tool movements to maintain the design accuracy. It also adjusts for tool length compensation.

b) Computer-Aided Manufacturing Programming

If you have minimal experience with math, then this CNC machine programming can help you. The CAD software helps to bypass mathematical calculations in the same way some of the best architecture software for architectural design work.

It directly translates CAD design to CNC programming. Furthermore, it becomes easier to control CNC machines.

Computer-Aided Manufacturing (CAM)

Image source:

With this programming, you get more options compared to conversational programming. This means that most of your processes are automated throughout. Additionally, this programming is perfect for all skill levels.

c) Manual Programming

Preparing to run the CNC program

Image source:

This is the toughest approach to CNC programming. The traditional method requires the programmer to be alert even with a simple program on a few program lines. The programmer also has to know the machining process and machine responses. This type of programming is good for any basic programs or specific programs.

Common Terms in CNC Programming and Procedures

Your end product can be the following:

i) 2 axis

Here, all the cutting occurs in a straight line in the same plane. Therefore, there is no movement across the vertical lane. However, a few straight lines between the x and y axes can create arcs and curves.

ii) 2.5 axis

With the 2.5 axis, you can get the machine to incorporate 2 axes but not 3. However, the machine can use the x and y in a circle and multitask on the z-axis. This means the cutting can be made parallel to the main plane. However, the height and depth vary.

iii) 3 axis

Most free-form surfaces generally use the 3-axis cut—the x, y, and z axes for a controlled and concurrent pattern.

iv) 4 axis

Fourth machine axis positioning is when the fourth axis doesn’t move during the machining process, and its main purpose is to reposition the space between the 3 axis operations.

v) 5 axis

Here is where 5 axes move together while machining. However, sometimes, you can have 3 axes machining and 2 axes positioning. In rare cases, you will find 4 machining axes and 1 positioning axis.

The Bottom Line

CNC programming and G code knowledge is widely used worldwide for several applications. For example, the movement of CNC machines and machining tools requires CNC programming to move. Therefore, learning CNC programming is important if you want to learn how to work with CNC machinery.

Ian Mutuli

About the author

Ian Mutuli

Founder and Managing Editor of Archute. He is also a graduate architect from The University of Nairobi, Kenya.
Related Articles
What is Rapid Tooling

What is Rapid Tooling, and What are Its Benefits?

For the intensive requirements of manufacturing which can sometimes be limited by time, rapid tooling has overtime been the top ...

Comprehensive Guide: What Is a Chucker Lathe?

Comprehensive Guide: What Is A Chucker Lathe?

Chucking machines are very popular in the manufacturing industry. However, they are used primarily for machining other machine parts like ...

What is a Swiss Lathe? Technique, Advantages and Disadvantages

What is a Swiss Lathe? Technique, Advantages and Disadvantages

CNC machines have spread across different industries, and their applications are getting more by the day. However, the Swiss-type lathe ...