Home 9 CNC Machining 9 Mastering CNC G-Code and M-Codes for CNC Machining

Mastering CNC G-Code and M-Codes for CNC Machining

Published on: 2023-04-14

“CNC G and M codes facilitate incredible precision, repeatability, and efficiency in the manufacturing process. They serve as the foundation for all CNC programming. “

Do you know what gives a CNC machine instructions to control the movement and positioning of tools? Well, CNC G and M Codes are responsible for that. CNC G-codes control the movement and operations of the machine, such as guiding the tool path, specifying coordinates, and setting up motion modes. On the other hand,  M codes control the auxiliary functions of the machine, like turning the coolant on or off, opening and closing chucks, or triggering tool changes.

In this article, we will explore the fundamentals of G and M code CNC programming, including G-code simulation software and online courses.


The Introduction to CNC G and M Codes

G and M codes are the building blocks of CNC programming. They are essentially the commands that instruct CNC machines to perform specific actions during the machining process. G-codes (also known as “geometric codes” or “preparatory codes”) define the movement and positioning of the cutting tool. In contrast, M-codes ( “miscellaneous codes”) control various machine functions, such as spindle rotation, coolant flow, and tool changes.

G codes in CNC machining

Each G and M code is followed by a number that represents a specific function or command. For example, G00 is the rapid positioning command, while M03 is the spindle start command. Meanwhile, CNC programmers can create a complete set of instructions for a CNC machine to combine these codes in a specific sequence, ensuring that the final product meets the desired specifications.


How Does CNC Programming Work?

CNC programmers use CAM software to write G-codes and M-codes, which are transferred to CNC machines via connections like USB or wirelessly. Then, the CNC controller executes these codes for precise machining operations.

CNC G and M codes

There are three ways to CNC programming: Manual, Conversational, and computer-aided manufacturing (CAM) software. Manual programming involves writing the CNC program manually using CNC G and M codes. Next, conversational programming uses a more user-friendly interface, allowing the programmer to create CNC programs through a series of prompts and questions. On the other hand, CAM software automates the programming process by generating CNC programs based on CAD (Computer-Aided Design) models of the part.

Therefore, it is essential to understand CNC G and M codes, their functions, and their combination to achieve the desired results. This knowledge will enable you to create efficient and accurate programs and to troubleshoot issues during machining processes.


Let’s Start A New Project Today

The Importance of CNC G and M Codes in Precision Machining

G and M codes play an essential role in high sped precision machining as they control various parameters during the process. They ensure the cutting tool follows a precise path, maintains a specific feed rate, and performs other essential tasks. This level of control is vital for producing high-quality parts that meet strict tolerances and specifications.

CNC machined parts 

CNC G and M codes not only enable precise control over the machining process but also contribute to the efficiency and productivity of CNC machines. They allow faster production times and reduce errors by automating complex tasks and eliminating the need for manual intervention. In turn, this results in cost savings and increased competitiveness for manufacturers.


Common G&M-Codes and Their Functions

There are numerous G&M codes used in CNC programming, each with its specific function. While it is not possible to cover every single G & M code in this guide, below is a list of some common G-codes and their functions:

G-Code Description M-Code Description
G00 Rapid positioning M00 Program stop
G01 Linear interpolation M01 Optional stop
G02 Circular interpolation (clockwise) M02 Program end
G03 Circular interpolation (counterclockwise) M03 Spindle on (clockwise)
G04 Dwell M04 Spindle on (counterclockwise)
G17 XY plane selection M05 Spindle stop
G18 XZ plane selection M06 Tool change
G19 YZ plane selection M08 Coolant on
G20 Inch unit M09 Coolant off
G21 Metric unit M30 Program end and reset
G28 Return to home position M41 Tool length compensation
G40 Cutter radius compensation off M42 Tool length compensation cancel
G41 Cutter radius compensation left M48 Feedrate override increase
G42 Cutter radius compensation right M49 Feedrate override decrease
G43 Tool length compensation positive M98 Subprogram call
G44 Tool length compensation negative M99 Subprogram end
G49 Tool length compensation cancel M101 Auxiliary function 1
G53 Machine coordinate system selection M102 Auxiliary function 2
G54 Work coordinate system 1 selection M103 Auxiliary function 3
G55 Work coordinate system 2 selection M104 Auxiliary function 4
G56 Work coordinate system 3 selection M105 Auxiliary function 5
G57 Work coordinate system 4 selection M106 Auxiliary function 6
G58 Work coordinate system 5 selection M107 Auxiliary function 7
G59 Work coordinate system 6 selection M108 Auxiliary function 8
G61 Exact stop mode M109 Auxiliary function 9
G64 Continuous mode M110 Auxiliary function 10

(Please note that the specific functionality and usage of CNC G and M codes may vary depending on the CNC machine and control system being used. You should always refer to the machine’s documentation and programming manual for accurate and up-to-date information on G&M codes.


Tips for Mastering CNC G-Code Programming

Mastering CNC G-code programming takes time, practice, and dedication. The following tips can help you hone your skills and become a more proficient CNC programmer:

  • Learn the basics: Familiarize yourself with the fundamentals of CNC programming, such as coordinate systems, work offsets, and units of measurement.
  • Practice regularly: Write, edit, and analyze G-code programs to gain hands-on experience. 
  • Use simulation software: Before running your G-code program on a CNC machine, use simulation software to verify& validate the program.
  • Study advanced techniques: Next, explore advanced techniques such as high-speed machining, adaptive clearing, and trochoidal milling. 
  • Optimize your G-code: Optimize your G-code for better performance by minimizing rapid moves, reducing air cutting, and employing efficient entry and exit strategies.
  • Leverage canned cycles: Canned cycles simplify and standardize the processes, like CNC Milling and CNC Drilling to make your G-code more efficient. 
  • Utilize G-code editors and generators: Use Fusion 360 and Mastercam to create and edit G-code programs more effectively.
  • Stay updated: Keep up to date with the latest developments in CNC technology, programming software, and machining strategies.


Let’s Start A New Project Today

G-Code Simulation Software and Tools (Full lists)

G-code simulation software and tools play a crucial role in the CNC programming process, as they allow you to visualize and validate your G-code program before running it on a CNC machine. This helps identify potential errors, collisions, or inefficiencies, ensuring a smoother machining process and reducing the risk of damage to the machine or workpiece.

Simulation on CAMotics

Here are some popular G-code simulation software and tools:

  1. CAMotics: CAMotics is an open-source G-code simulator that provides a 3D visualization of the machining process. It supports a wide range of CNC machines and can help identify potential issues such as tool collisions or out-of-bounds movements.
  2. CNC Simulator Pro: CNC Simulator Pro is a versatile software that simulates both the G-code program and the CNC machine itself, offering a realistic representation of the machining process. It supports various machine types, including mills, lathes, and routers.
  3. GWizard Editor: Developed by CNCCookbook, GWizard Editor is a G-code editor that features built-in simulation capabilities. It also includes features for G-code optimization, error checking, and conversational programming.
  4. NCPlot: NCPlot is a G-code editor and backplotter that allows you to visualize and edit your G-code programs. It supports a wide range of codes and machine types and includes features such as syntax highlighting, code transformation, and macro debugging.
  5. Mach3: Mach3 is a popular CNC control software that also includes G-code simulation capabilities. While primarily designed to control CNC machines, its simulation feature allows you to visualize the machining process and identify potential issues.
  6. SolidCAM: SolidCAM is an integrated CAM software for SolidWorks that includes a built-in G-code simulator called Machine Simulation. This feature allows you to simulate the machining process in a virtual environment, ensuring that your G-code program will run correctly on your CNC machine.
  7. Fusion 360: Fusion 360 is a cloud-based CAD/CAM software developed by Autodesk. It includes an integrated G-code editor and simulator that allows you to visualize and validate your G-code programs within the same environment where you create your CAD models. Website:


CNC G-Code Training and Online Courses

There are numerous online resources and courses available for learning CNC G-code programming. These courses cater to various skill levels, from beginners to experienced programmers, and can help you develop the knowledge and expertise needed to excel in CNC programming. Here are some popular CNC G-Code Online Courses:

  • Titans of CNC Academy: Free online CNC machining courses, including lessons on G-code programming, CAD/CAM, and advanced machining techniques.
  • CNC Training Centre: It Offers various CNC programming courses, including G-code programming for mills and lathes, available both online and in-person
  • Tooling U-SME: This tool provides a wide range of CNC programming courses, including G-code programming, CAM software, and setup and operation, accessible online
  • LinkedIn Learning: This platform offers a variety of online courses related to CNC programming, G-code, and machining, led by industry experts. 


The Differences Between G Code and M Code

In CNC machining, the languages that drive the process are G-code and M-code, each serving distinct yet complementary roles. Here are the key differences between CNC G and M Codes.

Table: CNC G code Vs. M code 

Aspect G-Code M-Code
Function Directs the movement and operation of the cutting tool. Controls auxiliary functions of the machine.
Examples G00 (rapid positioning), G01 (linear interpolation) M03 (spindle on), M05 (spindle off), M06 (tool change)
Usage Frequency Used extensively throughout a CNC program. Used less frequently, for specific operations.
Complexity Can be more complex, involving detailed path and motion commands. Generally simpler, often involving only on/off type commands.
Interactivity with Material Direct interaction with the material being machined. No direct interaction with the material.


Let’s Start A New Project Today

Summing Up

CNC G and M Codes enable you to create efficient, accurate, and reliable r high-quality parts. You can become a proficient CNC programmer by learning the basics, practicing regularly, and leveraging the wealth of resources available.

CNC Machining Service

In this context, trust ProLeanTech for all your CNC machining needs. Our experts at advanced CNC machines and experienced team will ensure that your parts are handled with precision and efficiency. Contact us today to learn more about our CNC machining services and how we can help bring your designs to life.

Read more:



What are G-codes and M-codes in CNC programming?

G-codes, also known as “geometric codes” or “preparatory codes,” are used to define the movement and positioning of the cutting tool. M-codes, also known as “miscellaneous codes,” control various machine functions, such as spindle rotation, coolant flow, and tool changes.

What is the best way to practice CNC G-code programming?

Regular practice is key to becoming proficient in G-code programming. Write, edit, and analyze G-code programs to gain hands-on experience and a deeper understanding of the codes and their interactions. 

Are there any free G-code simulation software options?

Yes, there are free G-code simulation software options, such as CAMotics, which is an open-source G-code simulator that provides a 3D visualization of the machining process. Another option is Fusion 360 by Autodesk, which offers a free personal use license with some limitations.

Can I use the same G&M codes for all CNC machines?

While many G&M codes are standardized, their specific functionality and usage may vary depending on the CNC machine and control system. 

What are the benefits of mastering CNC G-code programming?

Mastering CNC G-code programming allows you to create efficient, accurate, and reliable CNC programs that deliver high-quality parts. 



  1. 蒋


  2. sklep

    There is certainly a lot to learn about CNC G-code topics. I like all of the points you made.

    • Dikendra Acharya

      Thank you for your comment !


Submit a Comment

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

You may also like


Get Your Parts Made Today


  All uploads are secure and confidential.