Modern industries such as architecture, engineering, and manufacturing rely on computer programs to create designs of various parts and prototypes.
Therefore, understanding ‘what is g code’ becomes essential for anyone involved in the field of Computer Numerical Control (CNC), 3D printing, or any other computer programming language for designing machined parts.
This article will have an in-depth discussion on what is G-code, its usage, how it works, different types of G-code commands, and many other helpful information.
What is G-Code?
G-code is a type of programming language used in computer numerical control (CNC) and 3D printing to instruct machine tools to move. It is written in Computer Aided Manufacturing (CAM) software to provide automation instructions for various machine functions and tools.
G-code stands for geometric code. G-codes are also known as preparatory codes for CNC machines.
The instructions provided by G codes tell the machine tool how to move in the (X, Y, Z) Cartesian coordinate system.
In addition to location instructions, the G code also provides many other inputs such as speed and angle in the rotary axis, tool length offset, start point, stop point, feed rate, dwell time, etc.
G codes work in conjunction with M codes. M codes stand for machine codes or miscellaneous codes. M codes provide instructions for various functions of the machine that are not related to movements.
An example of an M code is M0, which means end of program.
Who invented G-code programming?
G-code was invented in 1958 by the Massachusetts Institute of Technology (MIT) Servomechanics Laboratory. The popularization and standardization of G-code occurred later in the 1960s by the Electronic Industries Alliance.
What is the importance of G-code?
G-code is essential to the numerical control programming language. Machines, by their very nature, do not have computer intelligence. They contain servo motors to move the various parts inside them.
However, integrating the machines with microprocessor units can help control the degree of movement of the motors. It can also make several parts of a machine work in tandem to accomplish the required operation.
However, the operators cannot communicate directly with the machine. A G-code acts as a communication language between the machine and the operator.
G-code is written in a way that the CNC machine control can understand. By using a G-code, the operator can tell the machine exactly what is needed.
How does a G-code work?
G-code operation is a synchronized process between machine functions and operator code programming. Here is how it works:
G-code operation at the machine end
All CNC machines are built with a microcontroller that can interpret G-code. G-code is standardized on most CNC machines.
Some machines have advanced features or multiple axes that are not controlled by standard G-code commands. In this case, additional commands are written into the microcontroller to control the additional functions.
When the internal control system software reads the commands, it interprets them according to the microcontroller instructions and provides motion directions to the various machine functions.
G-Code Operator Work Flow
In general, a Computer Aided Design (CAD) file is a precursor to G-code programs. It provides a graphical representation of the desired part in two or three dimensions. Modern software can automatically convert CAD designs into optimal G-code programming.
The advantage of this process is that computers can perform automated calculations for the best possible toolpath and other settings. The G-code can automatically take into account features such as tool offsets.
If changes need to be made to the G-code, special software called a G-code editor is used. This editing stage is usually required to make adjustments to the design.
The resulting G-code is not a standard for every machine due to the variance in format and the different machine features. Therefore, it goes through another software called post-processing.
It standardizes the G-code exactly as the machine is designed to read it. This eliminates any possibility of errors due to differences in different machine control software. This finished G-code file is then transferred to the CNC machine.
What is the structure of a G-code?
G-Code is a combination of an alphabet and a number. The number can have several digits. The placement of the space between the alphabet and the number varies depending on the CNC machine.
Some examples of common G-Code commands are ‘G00’, ‘F10’, ‘M03’, etc. The commands don’t have to start with the letter ‘G’. However, ‘G’ is the most common letter that appears in a G-code instruction.
Each line of the G-code programming language can contain multiple sets of instructions. This is called a G-code block. The CNC reads and executes the instructions in a specific order from left to right and top to bottom. Here are the representations of common alphabets used in G-code:
G: General machine movements
F: Feed rate
T: Tool change
S: Spindle speed
X, Y, and Z: Three linear axes in the Cartesian coordinate system
A, B, and C: Angular rotary axes about X, Y, and Z
What are the different types of G codes?
A G code can be divided into several different classes based on what it does. These classes are
Positioning commands
CNC machines have many different types of positioning systems that control the motion of the machine tool. The different G-codes that control motion are:
G00: Fast positioning of the machine tool
G01: Linear interpolation
G02: Clockwise arc interpolation (circular interpolation or helical interpolation)
G03: CCW interpolation (circular interpolation or helical interpolation)
G90: Use absolute coordinates
Velocity commands
G08 – G09: Increment or decrement velocity
G93 – G95: Select linear feed units
G96: Constant surface speed
G97: Constant spindle speed
Machining operation commands
G81: Simple drilling
G82: Simple drilling with dwell
G83: Deep hole drilling
G84: Threading
Offset commands
G40 – G44: Tool offset values
G53 – G59: Zero offset value
Miscellaneous commands
G61: Exact stop mode
G04: Dwell time
G80 – G89: Process description
How to read G-Code commands?
It is fairly easy to read G-code commands with a little practice. Here are some steps to help you identify what a G-code command does:
- First, focus on the alphabetic character of the command instruction.
- Letters like ‘G’ and ‘M’ refer to machine operations. The number next to these letters is not for movement, but to indicate which machine process or function will be affected. For example, G00 will provide fast positioning of the machine tool. G81 will instruct the machine to use the basic drilling cycle.
- Letters such as ‘X’, ‘Y’ and ‘Z’ indicate the location in the coordinate system. The number next to these letters is not a code. Instead, these numbers indicate the exact location in each of the axes. For example, X1 tells the machine tools to move one unit in the X axis.
- Letters such as ‘A’, ‘B’, and ‘C’ indicate angular positions similar to X, Y, and Z. The numbers next to these letters do not represent an action, but the value of angular rotation in a particular direction.
- Letters such as ‘F’ and ‘S’ refer to feed rate and spindle speed. The numbers next to these letters refer to the speed of the associated values. For example, F200 instructs the machine to use feedrate in 200 units. The specific units used are selected with the appropriate G93-95 codes.
- Comments can be added to the G code by using a semicolon (;) at the end of a line. Anything written in a line after the semicolon will not affect the operation of the CNC machine.
Therefore, a command such as G01 X10 F100 tells the machine tools to move to coordinate X = 10 at a feed rate of 100 units.
What is an example of G-code programming?
The G-code programming language works with any type of CNC machine. The example below shows a G-code program for a CNC mill. The goal is to machine a simple square with dimensions of 20mm x 20mm in the linear XY plane.
G21 ; Set all dimensions to millimeters
G90 ; Set the s system to absolute positioning
G00 Z5 ; Raise the tool to a height of 5 mm above the workpiece.
G00 X0 Y0 ; Quickly position the tool at the origin
G01 Z-1 F100 ; Lower the tool to a depth of 1 mm (height= -1 mm) at a feed rate of 100 mm/minute.
G01 X20 F200 ; Move the tool to coordinate X= 20 at a feed rate of 200 mm/minute.
G01 Y20 ; Move the tool to the Y= 20 coordinate.
G01 X0 ; Move the tool to the X= 0 coordinate.
G01 Y0 ; Move the tool to the Y= 0 coordinate.
G00 Z5 ; Move the tool to the safety height of 5 mm.
M0 ; Program end point. The machine stops the program execution at this point.
This is an example of a G-code program. The actual program may vary for different machines. For example, some machines require G0, G1, and G2 instead of G00, G01, and G02.
One important thing to keep in mind is that ‘M30’ is not a G-code by itself. It is an M code command related to the function of the machine control.
What machines use G-code?
G-Code is used in CNC machining and 3D printing. Among CNC machining, the different types of machines that use G-code are
CNC Milling Machine
A CNC milling machine uses a rotating cutting tool against a stationary workpiece. The cutting tool for this CNC machine comes in many different shapes and forms. This results in many different types of milling processes.
CNC Turning Machine
A CNC lathe uses a stationary cutting tool against a rotating workpiece. Turning is used to create symmetrical features on cylindrical and conical surfaces. A CNC lathe has a helical tool path around the workpiece. Turning is used to machine external surfaces in the process of forming. CNC lathes are based on the principle of a lathe.
CNC Grinding Machine
Grinding is a type of machining used to finish surfaces. It removes minimal material from the surface to make it smooth. Grinding is generally used as a secondary finishing process after other methods such as milling and turning. Grinding can also remove the burrs created by welding and other joining processes.
CNC Drilling
CNC drilling is a common process that uses a drill to create holes in the workpiece. The purpose of the holes can be for fixing screws, secondary assembly, or aesthetics. Drilling machines are usually used after other machining processes. The hole diameter is limited. CNC boring is used when the required hole diameter is large.
CNC Router
A CNC router is a machine used for cutting various materials. It usually combines a CNC system with a hand router. The router can remove a very controlled amount of material from a surface. This provides the ability to make intricate carvings.
CNC Laser Cutting Machine
A CNC laser cutting machine uses the heat of a highly focused laser beam to melt and cut the workpiece material. The laser has a very high level of power that is focused through an optical system. The cutting method is limited in the materials it can cut. Cutting sensitive materials such as plastics produces toxic gases that can damage the optical system.
CNC Water Jet Cutting Machine
CNC waterjet cutting is an innovative technique that uses the force of high-pressure water to cut through any material. The water jet is thinner than a human hair. CNC programming can move the cutting head. Waterjet cutters can cut through thick materials, making them suitable for any application.
Who needs to know G-Code?
G-code is a useful skill for people who work with CNC machines, such as the operator. CAM software is capable of generating G-code for most CNC machines. However, understanding G-code and what it means allows the operator to micromanage the program. They can add any degree of customization to the program by modifying the G-code. Understanding G-code also helps troubleshoot certain problems that may arise during the machining process.
G-code also proves to be a useful skill for engineers, architects and hobbyists. The use of G-code is also appearing in 3D printing, further expanding the usefulness of this programming method.
What are the best G-code editors?
Some of the best G-code editing software are NC Viewer, Notepad++, Cura, gCode Editor, and G-Code QnDirty.
All of these are free and come with many features. There are also many paid G-code editing applications.
G-code editing software is generally used to make small changes to the program file. It also provides the ability to replace specific instructions with other instructions in the entire program. This search and replace feature is relatively fast with a G-code editor.
Are there any safety considerations or precautions to take when programming with G-code?
Yes, there are important safety considerations to keep in mind when programming G-code. G-code instructions should be written with an understanding of the machine’s operating limits.
Any incorrect instruction can result in tool collision and breakage. In addition, it is important to include compensations such as axis offsets. The G-code program should also take into account factors such as tool length.
What is the difference between G-code and M-code?
G-code and M-code handle different aspects of the CNC machine’s operation. G-code handles aspects related to tool movement in the X, Y and Z axes.
It also handles tool rotation, feed rates, and other movement and speed controls.
The M code, on the other hand, handles various functions of the machine such as coolant flow, program start and stop, subprogram calling, tailstock forward and reverse, gear selection, and so on. M-code commands are independent of part geometry.
Both G-code and M-code work together to create a complete CNC program.
End Notes
G-code programming is a very useful skill for people working with CNC machines. The good thing is that G-code programming is fairly easy to learn with the right approach.
A good grasp of G-code CNC programming provides the ability to produce even the most complex workpieces with a high level of quality and precision.
Frequently Asked Questions (FAQs)
Here are the answers to some of the most common questions asked about G-Codes:
- Are G-Codes universal?
Yes, G-codes are universal when it comes to CNC machines. All CNC machines work with G-code commands. Some machines appear to have other features for designing parts that do not require programming. However, they still use the G-code to work. In such cases, the G-code layer is hidden from the end user. - Is G-code a programming language?
Yes, G-code is a kind of programming language. The technical specification of this programming language is RS-274. CAM software can automatically generate G-code programs. Therefore, unless you are designing a complex part with many customizations, you may not need a dedicated programmer. - Is G-code difficult to learn?
No, G-code is not difficult to learn. In fact, any operator can easily learn simple G-code in a short period of time. Skills are then built up with practice and experience running codes. - Do I need to be good at math to understand G-code?
No, G-code does not require any special knowledge of mathematics. However, familiarity with the basics of mathematics can sometimes be helpful in optimizing the program. - What are the 3 basic G-codes?
The three basic G codes are G00. G01, and G02/G03. G00 instructs the machine tool to move quickly in the desired coordinate system. G01 instructs the linear feed motion. G02 and G03 refer to the clockwise and counterclockwise movements of the feedrate.
Disclaimer of Warranty
The contents of this website are provided for informational purposes only. MY Prototyping makes no representations or warranties of any kind, express or implied, as to the accuracy, completeness or validity of the information. Any performance parameters, geometric tolerances, specific design features, quality and types of materials, or processes should not be inferred to represent what will be supplied by third party suppliers or manufacturers through MY Prototyping’s network. Buyers seeking instant quotes for parts are responsible for defining the specific requirements for those parts. Please see our Terms and Conditions for more information.