Tag Archives: programming canned cycles

Canned Cycle Drilling & R Plane Tricks

Wasting time drilling air when “drilling” holes in a part with multiple levels is not uncommon for the novice programmer. In this post … we would like to discuss the always important R plane and how you can easily control it in your G code program.

First … the FACTS :

There are two planes that the programmer needs to be concerned with :

INITIAL PLANE … this is the plane used for rapiding around the workpiece. This plane should always be set high enough to avoid the workpiece as well as any clamps or other fixture related objects that can be struck by the tool as it moves around the part.

  • On  Fanuc controlled or Haas machine … the initial plane is defined as the last Z position before the canned cycle is called. So in the sample code below :

G00 G90 Z1.000
G98 G81 Z-.500 R.050 F1.0

  • Z1.00 would be considered the INITIAL PLANE … because it is the last Z position prior to the the G81 canned cycle command.
  • In an Okuma machine … the user can set the INITIAL PLANE by commanding a G71 Z— line prior to the canned cycle command line. So … imitating the above Fanuc line … we would program :

G71 Z1.000
G81 Z-.500 R.050 F1.0

R PLANE : The R plane is defined as the plane at which the drilling operation begins. So basically the tool rapids from the Initial Plane to the R plane … and then starts the drilling operation. The R plane is defined in the canned cycle command line. So in the above examples … R.050 is defined as the R plane … the point where the drilling operation would begin. In the above programs … the tool would rapid from the Z1.00 initial plane to the Z.050 R plane.

After drilling … we can tell the tool where to return by using the G98 ( initial plane return ) or G99 ( R plane return ) … for Fanuc / Haas … in the canned cycle command line. Once commanded … G98 / G99 becomes modal … which means the machine will remember where it is supposed to return … until told differently. When programming for Okuma … we can use the M53 ( like G98 ) / M54  ( like G99 ) commands.


Did you know that you can very easily change the R plane when drilling on uneven surfaces?

Did you know that you can very easily change the return point between the INITIAL and R planes?

As mentioned above … once G98 or G99 is set … the control remembers where to go. Also … once the R plane is set in the canned cycle command … it remembers where the R plane is. But you can change either very easy … just command it !! Like this :

(1)G00 G90 Z1.000
(2)G98 G81 Z-.500 R.050 F1.0
(3)X1.00 Y1.00
(4)G99 X2.00 Y2.00
(5)X3.00 Y3.00 R-.100
(6)G98 X4.00 Y4.00 R.050

(1) – Sets the Initial Plane as Z1.00
(2) – Sets the R plane as Z.050 … return to the Z1.00 after drilling this hole
(3) – Drill this hole … R plane is .050 and return to Z1.00 … these were modal from (2)
(4) – After drilling this hole … return to R plane … still set to Z.050
(5) – Drill this hole but start at the new R plane of Z-.100 … return to Z-.100 after drilling … G99 is modal.
(6) – Drill this hole but start at the new R plane of Z.050 … return to Z1.00 after drilling this hole G99.
(7) – Cancel the canned cycle … all modal canned cycle information is cleared.


On an Okuma machine … users can set and re-set the Initial Plane through the G71 command. For example, the command :
… would set the Z plane of 1.00 as the Initial Plane … and this can be changed at any time but just commanding a new G71 line.

On a Fanuc / Haas control … this is not so easy. You would have to cancel the current canned cycle with a G80 … move the Z axis to the desired Initial Plane … then re-command a new canned cycle to set a new Initial Plane.

So … as we illustrated here … it’s fairly easy to efficiently and effectively machine holes on uneven surfaces using a combination of the return plane commands G98 / G99 / M53 / M54 and R plane settings and through the Initial Plane selection.

Happy Chip Making !!

Check out our Real World World machine shop software at www.KentechInc.com

Conversational CAD/CAM
Quoting & Estimating
G Code Conversion
CNC Training
…. and MORE !!!