CNC G-Code Tutorials | G-Code Reference

CNC G-Code programming tutorial
G-Code reference

* Best ebooks for CNC programming:

+ CNC Programming Basics
+ G-Code and M-Code
+ CNC programming
+ G-Code Reference
+ CNC Machine Tutorial
+ CNC M-Code Tutoria

Table Of Contents:
  1. G-code Table
  2. G00 - Rapid Linear Motion
  3. G01 - Linear Motion at Feed Rate
  4. G02 and G03 - Arc at Feed Rate
  5. G04 - Dwell
  6. G10 - Coordinate System Data Tool and Work Offset Tables
  7. G17, G18 and G19 - Plane Selection
  8. G20 and G21 - Length Units
  9. G28 and G30 - Return to Home
  10. G28.1 - Reference Axes
  11. G40, G41 and G42 - Cutter Radius Compensation
  12. G43, G44 and G49 - Tool Length Offsets
  13. G47 - Engrave Sequential Serial Number
  14. G53 - Move in Absolute Coordinates
  15. G54 to G59 and G59 P~ - Select Work Offset Coordinate System
  16. G61 and G64 - Set Path Control Mode
  17. G73 - Canned Cycle - High Speed Peck Drill
  18. G80 - Cancel Modal Motion
  19. G81 to G89 - Canned Cycles
  20. G90 and G91 - Distance Mode
  21. G92, G92.1, G92.2 and G92.3 - G92 Offsets
  22. G93, G94 and G95 - Set Path Control Mode
  23. G98 and G99 - Canned Cycle Return Level 

CNC Programming Examples - Tapping

Internal Threading on Fanuc 21i 18i 16i with G76 Threading Cycle

* Best ebooks for CNC programming: 
CNC Programming Basics 
G-Code and M-Code 
CNC programming 
G-Code Reference 
CNC Machine Tutorial 

CNC program for the internal threading with G76 threading cycle on fanuc controls 21i/18i/16i.
For an example of external threading with G76 threading cycle read External Thread Cutting with G76 Threading Cycle on Fanuc 21i 18i 16i CNC
Fanuc 21i/18i/16i use two block format of G76 threading cycle.
Related: G76 Threading Cycle One Line Format for Fanuc 10/11/15T
Fanuc G76 threading cycle has multiple parameters making it difficult to remember, but at the same time those multiple parameters of G76 thread cycle give the cnc programmer/cnc machinist multiple options to control thread cutting, some are listed below.
G76 thread cutting cycle allow cnc machinist to control number of idle cuts, thread run-out, infeed angle.

CNC Program of Internal Threading with G76 Threading Cycle

Internal Threading on Fanuc 21i 18i 16i with G76 Threading Cycle
N17 T101
        N18 G54
        N19 G97 S800 M3
        N20 G0 X25 Z6 M8
        N21 G76 P010060 Q100 R0.02
        N22 G76 X30 Z-40 P919 Q250 F1.5
        N23 G0 X150 Z100


G76 Thread Cycle a CNC Programming Example

G-code G76 is a cnc cycle which is used for thread cutting on cnc machines.
Threading cycle G76 is explained here G76 Thread Cycle.
Taper thread cutting with G76 thread cycle is explained here G76 Tapered Threading
For Multi-start thread cutting with G76 see G76 Multi-Start Threading
For G76 threading cycle one line see G76 One-Line Format.
G76 threading cycle can be used for internal threading on cnc lathe machines.
This G76 threading example actually cuts external threads on two different diameters.

G76 Thread Cycle Example

G76 Thread Cycle a CNC Programming Example
N10 T3
            N20 G97 S800 M03
            N30 G00 X30 Z5 T0303
            N40 G76 P021060 QI00 R100
            N50 G76 X18.2 Z-20 P900 Q200 FI.5
            N60 G00 X50 Z-20
            N70 G76 P021060 Ql00 R100
            N80 G76 X38.2 Z-52 P900 Q200 FI .5
            N90 G00 X200 Z200
            N100 M30

Introducing Arduino Tutorials

Want to learn even more about Arduino ?

* Best ebooks for Arduino: Introducing Arduino

* A Step-by-Step Guide to Arduino Programming

# Introducing Arduino

Introducing Arduino Tutorials


Arduino is a prototype platform (open-source) based on an easy-to-use hardware and software. It consists of a circuit board, which can be programed (referred to as a microcontroller) and a ready-made software called Arduino IDE (Integrated Development Environment), which is used to write and upload the computer code to the physical board.

Arduino provides a standard form factor that breaks the functions of the micro-controller into a more accessible package.

This tutorial is intended for enthusiastic students or hobbyists. With Arduino, one can get to know the basics of micro-controllers and sensors very quickly and can start building prototype with very little investment.

This tutorial is intended to make you comfortable in getting started with Arduino and its various functions.

Before you start proceeding with this tutorial, we assume that you are already familiar with the basics of C and C++. If you are not well aware of these concepts, then we will suggest you go through our short tutorials on C and C++. A basic understanding of microcontrollers and electronics is also expected.

Learn to Arduino

Drill Peck Canned Cycles: G81, G73, G83 code

G81, G73, G83: Drill Peck Canned Cycles

What are Canned Cycles?

Until this point, all our motion has been done with G00/G01 for lines and G02/03 for arcs. In this chapter, we introduce the notion of “Canned Cycles”, which allow more complex types of motion aimed at simplifying the programming of certain common operations such as drilling holes.
Canned cycles are often modal just like the other motions. For example, once we select the high speed peck drilling cycle with G73, subsequent coordinates on later lines specify new hole locations where more peck drilling will be done.

What is a “Peck Drilling Cycle”?

A term you’ll hear a lot is “peck drilling”. This is the practice of drilling a little ways (the peck distance), back off some distance, and then going back down to the bottom to take another peck. Think of the motion as being not unlike a woodpecker. The reason it’s done is to evacuate the chips from the bore.
Recutting chips is always a bad thing for tool life. The other purpose of peck drilling is improved chip evacuation.  There’s only enough room down in the bore for the chips that fit in the flutes of the twist drill, and the deeper the hole, the harder it is to evacuate those chips out of the hole. Peck drilling also helps with chip evacuation in two ways.
First, even a very short peck where the retraction is minimal helps to break off the chip resulting in shorter chips. Shorter chips are much easier to evacuate.
Second, if the twist drill retracts a substantial distance, this helps reduce the distance the helix of the twist drill has to carry chips.
One thing it that is important to avoid when peck drilling is letting the coolant or air/mist blast wash chips back down the hole. For that reason, the best peck drill cycles will not pull the twist drill completely clear of the hole.
Another thing to keep in mind is most manufacturers do not recommend peck drilling for carbide drills.  It increases the tendency of chipping the brittle carbide.
There are some rules of thumb about when you need to start using a Peck Drilling Cycle as opposed to just plunging straight down. Most tooling manufacturers will suggest you start when the hole is 4 diameters deep. G-Wizard Calculator will remind you if you forget.

Different Types of Canned Drilling Cycles and Their Uses

Since there are quite a few different types of canned drilling cycles, it’s easiest to classify them in tabular form:
G Code Purpose Peck Retract Bottom of Hole
High-speed Peck Drilling for Shallow Holes
Left-hand Tapping Cycle
Dwell -> Spindle CW
Fine Boring Cycle
Oriented Stop
Drilling Cycle without Peck,
Hole Depths <= 3 Diameters
Spot Drilling Cycle
Peck Drilling for Deeper Holes
Tapping Cycle
Dwell -> Spindle CCW
Boring Cycle
Boring Cycle
Spindle Stop
Back Boring Cycle
Spindle CW
Boring Cycle
Dwell -> Spindle Stop
Boring Cycle
As you can see, the cycles may be divided based on their purpose–drilling, boring, or tapping, whether they are peck cycles, how they retract, and anything special that happens at the bottom of the hole. For example, dwelling helps ensure a smooth bottom of hole finish and evacuates any chips from the bottom of the hole. Getting chips between the drill point and the hole bottom as the bit descends for another peck greatly increases tool wear, especially with work hardening materials like stainless steel.

Anatomy of a Basic Cycle: G81

There are a lot of parameters and options associated with the drilling cycles, so let’s start with a relatively simple one: G81. G81 does no pecking and has no special operation at the bottom of the hole. It just goes down at the feedrate, and then retracts.
Let’s use this example G81 block:
     Z1.0 (Initial Z)
     X10Y12 (XY for first hole)
     G99 G81 R0.2 Z-0.7
     X10Y14 (XY for second hole)
     X10Y16 (XY for third hole)
     G80 (Cancel canned cycle)
Here is a schematic of how it works:

Following along with the schematic:
– First, the machine rapids to the X and Y coordinates of the hole, or the corresponding pair of coordinates if a plane other than G17 is selected. For our example, those coordinates are X10Y12.
– Second, the tool rapids straight down to the R position, established by the “R” word of the cycle. We came in at a Z of 1.0″. R is 0.2″, so we rapid from 1.0″ down to 0.2″.
– Next we feed down an amount equal to Z. In other words, Z specifies the depth, not a particular coordinate. That depth is measured from R. So, with an R of 0.2″, and a depth (Z) of 0.7″, we are going down to Z = -0.5″. Remember to do that math carefully, as R will always be a little above material top and you have to add it to the actual hole depth to get your Z.
– Lastly, we retract at rapids speed. Now retract can work in one of two ways, and is modified using G98 and G99.

Modifying Retract With G98 and G99 G-Codes

G98 and G99 g-codes are used to modify the retraction behavior of canned drilling cycles. If G98 is in effect (specified before the cycle such as the G99 shown above), retraction is back to the initial Z height. If G99 is in effect, retraction is to the R height. The option to retract to the original Z height using G98 is provided in case there are obstacles between the holes such as clamps or other features of the part.

Multiple Holes Until G80 Cancels the Cycle

As mentioned, these drilling cycles are modal. That means you can just real off a bunch of XY coordinates once the cycle is initiated, and the machine will happily execute the cycle at each location. To cancel the cycle, use G80. After executing the G80, the machine returns to G00 mode.
In the example above, we get 3 holes before the G80 cancels the canned cycle.

Simulating to Simplify, Understand, and Verify

By now, you’re probably thinking the water is deep, it’s cold, and it’s moving pretty fast–canned cycles are complex!
It’ll seem like it until you get used to them. The complexity is there to give you all the options you need to hand a myriad of situations. There is good news though, whether you’re just trying to learn, or whether you’re actively developing and testing canned cycles in your g-code. You can use a g-code simulator to help make them easier to understand and work with. If you haven’t already, pop over to our G-Wizard G-Code Editor/Simulator and sign up. That will put a first class g-code simulator in your hands which will make understanding and working with canned cycles a whole lot easier.
Here is a shot of the portion of the GWE screen that shows a backplot of what the machine is doing as well as what we call a “hint” that explains the canned cycle in plain English:

Red lines are rapids and green lines are at feed speed…
The backplot clearly shows the three holes being drilled. The hint (the area in blue at the bottom) tells us the original line of code as well as 4 different hints:
– It reminds us that the G99 means to return to the initial R plane after each hole.
– It tells us G81 is a simple drilling cycle.
– We know retraction will be to Z = 0.2″
– Lastly, we know the bottom of the hole is at Z = -0.5″, exactly where we wanted it.
It’s really helpful to have these kinds of tools at hand when you’re trying to work with canned cycles.

Relative vs Absolute and Repeats

In the G81 example above we saw how the canned cycle is modal, so we can just keep giving XY values and drill a buch of holes. There is another approach that can be used for multiple holes assuming they have regular spacing, and that’s to use relative coordinates and repeats.

G82 – Drilling Cycle

G82 is a drilling cycle that doesn’t peck, but instead dwells at the bottom of the hole. This increases the accuracy of the hole depth.
A typical G82 looks like this:
XY: Coordinates of the hole
Z: Hole bottom
R: Retract position in Z. Motions from initial Z to R are performed at rapids speeds. From R to hole bottom is done at feed speed.
P: Dwell time at bottom of hole.
F: Cutting feedrate
L: Number of repeats
Once the drill reaches the bottom of hole and has finished dwelling, retraction is at rapids speeds.

G83 G-Code – Deep Hole Peck Cycle

G83 g-code is a drilling cycle that retracts all the way out of the hole with each peck. As such, it is well-suited to deeper holes than the G73 cycle can handle. G83 also allows for dwells at the bottom of the hole. This increases the accuracy of the hole depth.
A typical G83 looks like this:
XY: Coordinates of the hole
Z: Hole bottom
R: Retract position in Z. Motions from initial Z to R are performed at rapids speeds. From R to hole bottom is done at feed speed.
P: Dwell time at bottom of hole.
Q: Depth to increase on each peck.
F: Cutting feedrate
L: Number of repeats
Once the drill reaches the bottom of hole and has finished dwelling, retraction is at rapids speeds.

G73 G-Code – High Speed Peck Drilling of Shallow Holes

G84 G-Code – Tapping Cycle

G74 G-Code – Reverse (Left-hand) Tapping Cycle

G85 G-Code – Boring Cycle

G86 G-Code – Boring Cycle

G87 G-Code – Back Boring Cycle

G88 G-Code – Boring Cycle

G89 G-Code – Boring Cycle

G76 G-Code – Precision Boring Cycle

What About Even Deeper Holes?

A deep hole is any hole more than 5 diameters deep.  The deeper you go, the harder it gets.  A variety of techniques are needed, and peck drillings cycles are just one. Here’s a handy chart to help you keep up with the various techniques:


10 Tips to Better CNC Turning

10 Tips to Better CNC Turning

No shop wants to see their part ruined and scrapped at the end of CNC turning. And although having a combination of proper technique and the right tools to keep jobs in spec and on time, there are other variables that should be considered before arriving at the finishing stage. Here are some things you can do that will help you get the best surface finish:

10 Tips to Better CNC Turning

Increase Your Speed
This really applies most when using carbide tools. When you increase the surface feet per minute speed (SFM), you will ensure that the material is in contact with the tool tip for a shorter amount of time and will also reduce edge buildup on the tool, which causes poor surface finishes.

Reduce Your Feed Rate
Reducing the feed rate helps to improve surface finish. This will also help to reduce flank wear and prolong the insert’s longevity. In addition, doubling the nose radius will help to improve surface finish. For roughing applications, it’s best to use a tool capable of a high feed rate to remove material quickly. For finishing, it’s best to have a lower feed rate and shallower cut.

Increase the Top Rake Angle
Positive rake angles will lead to a finer surface finish, requiring lower cutting forces. Using a 45° cutter will act downward, possibly making the part flex. As a result, this will cause the back half of the cutter to recut the machined part and create a poor surface finish. Using a 90° cutter will create cutting forces parallel to the part and will not flex it. This will produce a smoother surface finish.

Use a Chip Breaker
A poor surface finish can also be caused by improper chip breaking, downtime to remove chips and higher temperatures at the tool’s cutting edge. A chip breaker can produce smaller chips that are cleared from the cutting area quickly. And because there is no longer a need to clear chips by hand, safety is improved.
If the chip breaker can break the chips into adequate lengths, then vibration will be minimized; the chips will not wrap around the workpiece and tools will not be damaged. Chip breakers also reduce cutting resistance, which can avoid chipping or breaking the cutting edge. A lower cutting resistance can decrease heat and delay tool wear.

Use a Large Nose Radius
The idea is to use a larger nose radius and decrease the feed rate to get a smoother, finer surface finish. This is because the nose radius and depth of cut affects the shape and direction of chips. Therefore, it’s best to use the largest radius possible to achieve the best surface finish and avoid creating chatter (machine vibration). But, on the other hand, a larger nose radius will increase demands on the tool, causing vibration and poor chip breaking, whereas a smaller nose radius produces thinner chips that are easier to clear away from the workpiece, but this will also limit the feed rate.
Here’s a tip: Select a minimum depth of cut two thirds of the nose radius and a maximum of one third of the cutting edge length. For finishing, select cutting depths of less than one third of the nose radius.

Use an Insert with a Wiper
To ensure a good surface finish, use a special wiper insert that has a modified nose radius with larger corners to wipe the surface smooth. This will allow you to cut at a faster feed rate.

Use the Right Technique
Creating a chip that is thick-to-thin is what you want. Your technique plays a vital role in getting smooth surface finishes. Choose a cutter that is smaller than the nose radius so you can program it for a smooth transition from line-to-line.
When you run your final cuts, don’t just limit yourself to checking your workpiece; you should also read your chips. The characteristics of your chips will indicate what machining set up or tooling adjustments are necessary.

Use Different Tools for Roughing and Finishing
Some may say that the same inserts can be used for both roughing and finishing. But it’s best to use separate inserts, one for roughing and one for finishing. For roughing, you can use a course-pitch cutter with a large nose radius, and a large rake angle with a rapid feed rate. For finishing, you can use a fine-pitch finishing tool with the proper lead angle and a wiper flat, which will give you a better surface finish.

Clear the Chips
There is a debate whether to use coolant in milling applications. But it all depends on the type of work you’re doing, such as deep cavity milling, the type of material and which insert you are using. Using coolant, in some cases, should be avoided. It may cause thermal cracking and shorten tool life and could affect the surface finish negatively. But with aluminum, low-carbon steel or nickel-based alloys, using coolant will prevent the tool from sticking to the workpiece.

Check Your Toolholding and Workholding

It’s a good idea to check the condition of your toolholder. An old, worn-out toolholder may cause the insert to move. This will cause chatter and will negatively affect the surface finish of your part. You also want a rigid workholding that is stable, especially with a higher metal removal rate.



Best Help CNC programming on Fiverr

Best Help CNC programming on Fiverr

I Will Make A Manufacturable 3d Model And A Cnc Program For It

About This Gig

3D model based on drawing supplied by the costumer.

Component design based on engineering requirements (eg: weight, material, safety factor).

Surface creation based on mesh or scan supplied by costumer.

NC. program for manufacturing on mill or lathe if required by customer

Check it out! #MadeOnFiverr: make a manufacturable 3d model and a cnc program for it via @fiverr

I Will Do Cnc Program For Molding, Laser Cutting Fusion 360 Cam

About This Gig

  ******Please Do contact me first to discuss details before ordering this gig.******


I will create and get your 3D design in any format (PRT, STL, IGES, STEP, OBJ e.t.c) ready for manufacturing and 3D printing.

For 3D printing:
I will create optimized parts for additive manufacturing with Fusion 360, Print studio and Netfabb.

For CNC Manufacturing: 
Using standard 2D and 3D toolpaths and create efficient toolpaths using 3 + 2 or positional multi-axis strategies for designs that require several setups, I will create CNC program for milling, turning, molding or laser cutting in Autodesk Fusion 360 CAD/CAM.
I will use the appropriate machine variable for material 
feed rate 
coolant flow

You can specify what kind of CNC machine, tools/bits/endmills you have or give me dimensions of your endmills for better accuracy and I will program the toolpath in an efficient way with minimum machining time.

I use Autodesk fusion 360 and Solidworks Efficiently.

Looking forward to working with you. Cheers!!.

Check it out! #MadeOnFiverr: do cnc program for molding, laser cutting fusion 360 cam via @fiverr

I Will Cnc Programming On Mastercam

About This Gig

I'm a company specializing in the design of the mechanical Product with 5 years experience.Many years of experience in CAM/CNC programming ,G-code processing ,G-code checking ...
The software we use: Mastercam, SOLIDWORKS.


Check it out! #MadeOnFiverr: cnc programming on mastercam via @fiverr

About This Gig

This include generated of G-cod for your design. if your design is not in Solidworks i will first convert it into solidworks and will generate program

Click here:

Check it out! #MadeOnFiverr: make g code or cnc program for your design via @fiverr

I Will Create CNC Programs For You

About This Gig
I work with Feature CAM software and  i can make you any CNC program for lathe and milling machines, also i will provide professional customer service and accessibility at any time.

Please contact me before buying this gig.

Click here:

Check it out! #MadeOnFiverr: create CNC programs for you via @fiverr


Parrot Programming ebook

Parrot Programming

Parrot is a virtual machine designed to efficiently compile and execute bytecode for interpreted languages. Parrot is designed for dynamic languages. Parrot is a target of variety of languages like Perl, Tcl, Ruby, Python, etc. In this tutorial, we shall learn using Parrot for Perl compiler.

Click here to order ebook NOW!