CNC Milling Service

CNC Programming Languages – G Code and M Code

CNC Programming Languages – G Code and M Code

Table of Content


The phrase CNC machine stands for computer numerical control, or CNC. The CNC machine tool typically comes to mind when we think about CNC machining, however more recent CNC machines actually refer to a wider field. CNC machines also include some computer-controlled measurement devices and industrial robots.

The first CNC milling machine was created by John T. Parsons in partnership with MIT (Massachusetts Institute of Technology) and IMB (International Business Machines Corporation) in 1952 as a result of the requirement for precision machining of parts in the aviation industry. Since then, G code and M code, two CNC programming languages, have grown in popularity and are now widely used, as have better industrial production techniques and CNC machining.

CNC machining process creates complicated, sophisticated products with applications across numerous industries. However, without the machinery that power them, these procedures would be challenging to carry out. These machines can’t work without the G and M codes.

Although most machine shops utilize a combination of CNC codes, they are often distinct from one another. What are the variations? How do these codes operate CNC machines’ operations? Read this article through to the end to learn the answers to these and other questions.

The Function of Machine Programming in CNC Manufacturing

In CNC programming, the C stands for the system’s controlling computer. Like any computer, it runs by understanding a certain language to carry out specific tasks. Instructions enter CNC programming through this requirement for operational language. Operators have the option of using CAM software or manually entering the programmes.

Regardless of the method used to submit the data, the codes must be flawless. Due to the NC program’s paper format in the days before computers, preserving the correct programmes for numerous machinings was challenging. Numerically controlled, or NC, equipment was used in the early days of machining. These needed codes made by punching holes onto cards or tape in a specified order.

Machine shops frequently used punch tape to control their instruments before computers became widely used. However, in the open stores, the physical medium would suffer serious harm. These perforated sheets frequently suffered from grease stains, losses, and tears. Damaged papers would result in the NC machines reading the incorrect codes, which would cause significant issues. When NC machines were operated by computers, the operator entered the codes manually into the computer rather than inserting punched tape into the system. Due to the usage of more advanced technology with them, CNC, or computer numerical controlled, programming, allowed these machines to generate far more intricate pieces.

But the machinists had an issue with this development. The programme needed to be manually entered because the machines were becoming more complicated and could operate on up to five axes. Businesses started utilizing CAM or CAD software to speed up the process. The software that automates the process of code creation is known as computer-aided manufacturing (CAM) or computer-aided design (CAD). The software receives instructions from the machinist, and the programme generates the machine-readable codes. Programs for CNC machining include G codes and M codes, which can be manually entered into the system or produced by software. Both perform different roles, and neither can operate on its own. CNC programming starts with an understanding of their differences.

What is G code and M code

The most widely used CNC programming language is G code (also known as RS-274D). The majority of G code commands begin with the letter G, which stands for geometry. The movements of CNC machines are controlled by G-code, which instructs the machine where to begin, how to move, and when to stop while producing a part.

However, because different machines receive G codes in various formats, G code programming can be quite difficult for machinists. The majority of machines differ in the number of zeros between the letter and number in the commands and in whether or not there are spaces between commands. For instance, one device may use G3, while another may use G03. Machinists must constantly be aware of the type of machine they are operating. Otherwise, a command error could cause significant issues with the fabrication of parts.

While G is the most frequently utilized letter in G codes CNC programming, other letters are also employed. Various commands are frequently represented by other letters as well. The following are some examples of letters in the G code:

A: It guides the tool to follow the x-axis.

R: It provides the machine’s arcs’ radiuses.

X, Y, and Z: These three values reflect the position of the tools in three dimensions, with X and Y standing in for the horizontal and vertical dimensions and Z for the depth.

I and J: These two numbers identify the incremental centre of every arc the machine creates

N: The line number is given by N.

In addition, depending on the capability of the machine, other letters are used in the code.

The M code likewise starts with the letter “M,” just like the G code does. The non-geometric operations of the machine are entirely under the supervision of the M code, a set of auxiliary commands. The code, which is used to stop programmes, flood the machine with coolant, and turn it off when the temperature dips, is referred to by machinists as miscellaneous codes.

G and M codes should only have one command per block of information when building up a CNC letters programme. They mostly turn the machine on and off, which is why. Consequently, utilizing them more than once in a single block may result in programming issues.

Similar to G codes, M codes differ between various machines. While some machines permit it, others do not, zeros can be omitted between letters and numbers.

Main differences between G code and M code

The motion of the machine is managed using G-code, also referred to as geometric code. It might instruct the device to move in a straight path or an arc, for instance. The standard format for a G-code command is an alphanumeric string beginning with “G” and a two-digit number (for example, G00).

On the other hand, M-codes manage the machine or other irregularities of the CNC machine, like spindle rotation, pallet change, and informing the tools when to start or stop working. M-codes are also written in an alphanumeric format, with a “M” and two digits following.

Your chosen part is created using a combination of G-code and M-code instructions. We’ll go through some G- and M-code commands in the sections that follow.

What we talked about above is summed up as follows:

  • G code controls how CNC machines move and work, whereas M-code controls processes that don’t entail movements.
  • M code activates the programmable logic controller of the machines, while G code activates CNC machines.
  • While most M code commands are the same in CNC machines, G code commands often vary.

The types of commands that a CNC machine has been programmed with

M-codes play a crucial role in how a CNC machine functions. M-codes offer information for a machine’s actions, whereas G-codes specify the positioning for an activity. G and M codes must be entered for a CNC machine to operate properly. To instruct, direct, and programme the reactions of a CNC device, they collaborate and work in tandem with one another. CNC machines have a controller for data input, much as any computer. There are variations for each type of controller even if C and C++ constitute the foundation of the majority of computer languages.

M commands are a component of an information group that decides when and how a machine should begin or cease an action. They move through a series of arithmetic operations starting with M00 and ending with M99 to complete the programme. A vendor’s or producer’s use of an M-code will vary. The machine may not always have every M-code programmed in. It is essential to understand how the codes operate and how the machine works. The meaning of a code may occasionally be left up to the user in situations when it is not utilized or programmed.

There may be some misunderstanding regarding the codes for CNC machines because some operators refer to all codes as G-codes even though they input both G and M codes. Every code block must have one M-code to start and terminate a function in order to prevent confusion and misunderstandings. G-code instructs the machine on where and when to do a task. After the tool has been positioned, M-codes can start a movement, end an operation, or end a programmed task.

The majority of components and goods made by CNC machines are designed using CAD or CAM software, which provides alphanumeric programming instructions to CNC machines. Engineers should comprehend how G and M codes operate a CNC machine even though they are proficient in those two types of software.

List of commands for G code and M code

While machine-specific codes are now obsolete, some straightforward letter-and-number combinations still produce general instructions. Only one G code should be used for each batch of commands to prevent the device from becoming confused. If the operator needs yet another G code, he will need yet another block of information, like in the example below:

G0: Go as quickly as you can to the given coordinate.

G1: Move ahead in a straight line.

G2: Construct an arc in clockwise direction.

G3: Construct a counter clockwise arc.

The commands that machinists use vary depending on the type of machine, thus while they originally had to learn these commands during their education, many do not anymore. Machinists also frequently input G directions, which helps them quickly recall them. However, the majority of CNC machines come with a programming manual that details the precise language that the machinery needs, in case users need a reminder.

M values command the equipment to perform various tasks while G codes direct the machine’s movement.

The most Important G Codes in CNC manufacturing

The G codes are all useful and serve important purposes. Some of the G Codes that are most frequently used include:

· G00 – Rapid Positioning

The machine is swiftly moved to the instruction’s specified coordinates via the G00 positioning command from its existing location. The action is finished simultaneously by all axes moving at once. The path leading to the new point is linear.

· G01 – Linear Interpolation

When you use the F function to establish your desired feed rate, the G01 instruction will move the machine in a straight line at that rate. The X, Y, and Z values for your project must be available before you start this code to draw a straight line. Once the code has been entered, the device starts to calculate these locations to create the straight line.

· G02 – Clockwise Circular Interpolation

The machine is turned clockwise using the G02 command. You must specify the centre of rotation, which is equivalent to the radius of a circle with a centre point and the beginning of the arc, for it to function properly. The arguments for the endpoint must also be specified. The prior command’s ending point serves as the starting point, making it simple to identify.

· G03 – Counterclockwise Circular Interpolation

The G03 command also rotates the machine in a circle, but in the opposite direction. G02 and this command are comparable.

Organize a G code file’s lengthy, intricate contents into its Cartesian coordinates and markers before studying it. Use a key to help you remember codes you have forgotten while looking for the codes you are most familiar with.

Each set of numbers has a specific order, and the G codes adhere to a precise framework to perform their tasks as intended.

M Code

The following generic values are available for M commands:

M00 – Stop any running programmes, including axes, coolant floods, and spindles.

M01 – This command denotes a programmable programme stop.

M02 – The existing programme comes to an end.

M03 – Start spinning the spindle clockwise.

M04 – Begin spinning the spindle in the other direction, or backward.

M05 – Stop the spindle movement.

M06 – Use a separate tool to load. This command often includes the T value. For illustration, you would see “T1 M06.”

M08 – Start dumping coolant into the system.

M09 – Stop the flow of coolant.

These are just a few M value instances that you might find on a CNC machine running software.

The most important M Codes in CNC manufacturing

M00 – Program Stop

You can move between pieces of equipment or carry out troubleshooting procedures by using the M00 command to end the current application.

M02 – Program End

The programme is completely ended with the M02 command. The first step in starting a new programme on your computer is to end the present one.

M03 – Spindle Start

The spindle is advanced in a clockwise rotation via the M03 command. Although the purpose of this command may appear to be similar to that of the G02 command, G codes only move the machine.

M04 – Spindle Start

The M04 command rotates the spindle counterclockwise, moving it in the opposite direction from the M03 instruction. Many computer-aided manufacturing activities call for this action.

How to program CNC machine

CNC programming is the alphanumeric formatting of data (G and M codes) on the geometry and technology of the parts that must be processed on such a machine, as well as additional programming, which is often carried out by machine manufacturers.

In previous examples, when the explanation of G functions was done as analysing the sentences of a programme written in G code, it was shown that programming CNC machines with G code is mostly sentence-based. There are various approaches to CNC programming, or creating G and M codes:

  • Manual programming
  • Operating programmes
  • Programming with CAD/CAM technologies.

Programming by Hand

In manual CNC programming, the programmer manually enters the geometric and technological data necessary to complete the alphanumeric programme based on his or her own knowledge and experience as well as information that is readily available about the machines, tools, machine accessories, processing modes, and applying programming instructions. The following fundamental actions can be used to arrange manual programming:

  • planning for processing, basing, and tooling,
  • using workshop drawings to translate geometric data for the purpose of route planning
  • Tools and blocking them off in accordance with processing order
  • Filling out the form programme sheet’s programmes by hand (G code)
  • programme sheet to control unit memory information transfer


Although there are already programming techniques (such as CAD/CAM CNC programming and programming in operation) that do not require knowledge of G and M functions, a programmer still has to be familiar with them in case a unique circumstance calls for programming to be done manually. The good news is that G and M codes, which can be considered a universal programming language, can be used to programme any CNC machines, with only minor changes in syntax that can be rapidly learned if you have a basic understanding of G and M codes.

Leave a Reply

Your email address will not be published. Required fields are marked *

three + 12 =

Boost your business with our high quality services

Ask For A Quick Quote

We will contact you within 1 working day, please pay attention to the email with the suffix “”

Get Free Sample!

Only 2 free sample-making opportunities left!
We will keep your designs private.

Making sample consultation

We will contact you within 1 working day, please pay attention to the email with the suffix “”

You can leave any questions here

We will contact you within 1 working day, please pay attention to the email with the suffix “”