CNC programming is the core of today’s manufacturing. Modern CNC machines run on programs, which is why the operator must know the types of codes that can be used and how to use them.
The most common programming language used by CNC software is G code, and M code also has specific applications. In CNC machining, G code and M code play a vital role and function:
G code: The G code in CNC programming controls the movement of the machine, indicating the way and position of the machine to move parts.
M code: The M code in CNC programming controls other machine functions, including starting and stopping specific actions or programs.
These two codes work together to manufacture parts and assemblies, making them indispensable in manufacturing and industry.
Introduction about G code
What is CNC G-Code?
G code is a programming language used to control CNC machinery. A program is a series of codes and data that tell the machine what to do. The programmed code and the correct tools of the CNC machining center ensure correct and repeatable part manufacturing. G code enables CNC machine tools to have consistent programming capabilities and flexibility to produce different parts.
In short, G code is a software programming language used to control CNC machine tools. Moreover, even in complex CNC machining, G codes can be written in a simple and logical way.
G code related instructions
“G” followed by a number, this is a command to change the geometric shape. For example, “G00” is a command for fast movement. It moves the tool to the part geometry at the maximum rate, and is usually used to move the tool and part from near to far, and vice versa.
The functions of the G code letters include:
N: The N value gives the line number.
G: The G number indicates when the tool moves and stops.
X, Y, Z: These values indicate the position of the tool in three dimensions-X represents horizontal, F represents vertical, and Z represents depth.
F: F is related to the speed at which the machine feeds the workpiece.
S: S tells the moving speed of the machine tool spindle.
T: T tells the machine which tool to use.
M: The M value provides other functions or machine functions, and tells the device how to perform operations by giving on/off instructions.
I and J: These values represent the incremental center of any arc produced by the machine.
R: R gives the radius of the arc generated by the machine.
A: The A value guides the tool around the X axis.
B: The number with B indicates the rotation value around the y axis.
C: The auxiliary axis rotating around the z-axis obtains its position value from the C value.
D: This number indicates the degree to which the system compensates for the tool diameter.
L: L provides a value for the system to indicate repeated operations and how many times they need to be looped.
P: The program uses the P command to jump time or delay time.
Other alphanumeric names depend on the function of the machine.
Here are some G code examples:
G00: Quickly move to a specific coordinate position
G01: linear feed motion
G02 / G03: clockwise/counterclockwise feed movement
These codes (such as G00) are followed by a geometric position. The geometry is transferred on the coordinate axis, so it is the “X” coordinate and the “Y” coordinate on the plane.
Let us decompose “G00G58X-120.Y-5”. You know that “G00” means fast action. “G58” specifies the coordinates of the workpiece, and changes the geometric shape relative to the workpiece offset (such as the origin of the part). “X-120.” means turning to “-120mm” on the X axis and turning to “Y-5”. Means to move to “-5mm” on the Y axis.
The G code can repeat the operation indefinitely until it stops. For example, G01 is followed by a series of X, Y or Z positions, which means that all linear feed motions occur at G01. A typical machining example is face milling, where the position sequence is used to machine the face profile of the part.
G-Code Codes
The following are some common G codes, which can be combined to guide the movement of the machine. (source from https://www.cnccookbook.com/g-code-m-code-reference-list-cnc-mills/ )
After you understand the functions of G codes, you can read the operating instructions more easily when you see their examples. Even if you are not proficient with CNC machine programming, you can still realize the importance of alphanumeric systems and the complexity of the procedures required to create processed products.
Introduction About M-Code
What is CNC M code?
M code is a machine tool control language used for CNC machining. It can be used in combination with G code to open and close various machine functions. Examples include the start and stop of spindle rotation, the opening and closing of coolant, the replacement of pallets, etc. Like G code, there are some functional commonalities between various controller platforms, but the final definition of any specific M code function is given by the manufacturer of the control.
M-Code Codes
Here are some M code examples:
Difference between G code and M code
G and M codes have special but different purposes in controlling CNC machine tools.
Although the numbers accompanying G only indicate the movement and functions of the system, some people refer to CNC programs as G codes. The M value is part of the program, which tells the machine how to operate outside of motion.
When looking at how these two types of commands can be used with the machine, please consider G for cutting and M as other operations.
When both control the device, they regulate different movements.
The G command tells the tool where and how to cut. M operation can instruct the machine to change tools, move the spindle or perform other non-cutting tasks inside the equipment. If you want to simplify this process, you can consider using CAD or CAM software, but this is not always a perfect solution.
Even if you have a CAD or CAM software program that can change the direction in which alphanumeric programs are given, you should still be familiar with CNC programming to make changes or modify the software according to the input required by the machine. The software will only perform the operations instructed by the operator. If you do not understand the program it generates, you may cause the machine to perform the wrong function, thus wasting time and materials.