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.

NEXT … the TRICKS :

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
(7)G80

(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.

Conversational

On an Okuma machine … users can set and re-set the Initial Plane through the G71 command. For example, the command :
G71Z1.000
… 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.

So … STOP CUTTING AIR !!!
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 !!!

A Major Hidden Cost When Estimating

We developed our KipwareQTE® quoting and estimating software from our real world experiences on the shop floor and running a variety of different machine shops. Over the years, one main category when quoting that is often misunderstood, under quoted and even completely ignored is perishable tooling.

Do you include perishable tooling in your costing and quoting?

If your quoting a part that needs 100 holes drilled … do you include the cost of the drills and center drills?

Our experience from talking with potential clients shows that 80% of estimators DO NOT include perishable tooling in their costs and estimates. A major mistake … that is directly effecting their bottom line … negatively !!

KipwareQTE makes it easy to include perishable tooling into your estimating process. How?
Two ways.

ONE – users can create a database of perishable tools and their associated costs. Then adding tools costs to the quote and estimate is simply a matter of pulling down a drop-down list and selecting the tools that will be used in manufacturing.

TWO – Using an estimated tool life … KipwareQTE® will perform all the calculations to include the complete cost for each of the tools and also calculate the number of each tools required for inclusion in the Bill of Material creation. That way the shop will be prepared when the job hits the floor.

Estimating

Beyond the feature.

We like to think that thoughtful and important features like this illustrate what sets Kipware® and Kentech Inc. apart from our competition. A simple design, a meaningful feature … that can make the difference between making and losing money … and isn’t that what it’s all about.

We invite you to explore our Kipware® Business Software titles … and discover the difference that REAL WORLD MACHINE SHOP SOFTWARE can make.

Kenney Skonieczny – President
Kentech Inc.

The HOW’s and WHY’s of CNC Sub Programming

If you have done any manual G code program creation, you know you are always looking for some shortcuts  that can not only help cut down the data input … but would also help eliminate errors. Whether they be typing errors or movement errors … the less chance to create one the better.

One of the more powerful tools available to a programmer is the use of SUB PROGRAMMING. In this Making Chips post … we would like to touch on some of the basic ideas, concepts and uses for sub programming. This post will illustrate the Fanuc / Haas coding format … but check out the end of the post for Okuma explanations as well.

What is a Sub Program?

Basically, a sub program is a G code program that is called from another G code program. The contents of the sub program is not limited and can contain tool calls, spindle calls … just about anything any other G code program can contain. The sub program itself resides in memory under it’s own program number … and is separate from the “main program”.

Conversational

Why Would I Use a Sub Program?

As mentioned above … the less data entry means less chance for a mistake. let’s take this example scenario where we have to let’s say spot drilling then drill then chamfer then tap a series of holes. The less times we have to re-type those hole locations, the less chance we will have a typo and / or put a hole in the wrong place. If we can store the X / Y coordinates of the hole locations in one location and call them out as needed … that saves data input and reduces our chances for errors. This is a good example of how a sub program ( in this case it would be the program that stores the hole locations ) can be a big help.

How Do I Program and Call a Sub Program?

A sub program scenario consists of a main program and the sub program. The main program consists of all the code that doesn’t repeat itself … the sub program consists of all the data that will be repeated. In our above example … the tool calls, spindle calls, drilling cycles will all be different for each hole … so we will store that in the main program … but the hole locations will be the same so we will store them in the sub program.

When you create a sub program … it is done just like you would create any other program. On Fanuc / Hass controls you start out with an O number … and type the program as normal. Let’s take our above example of hole locations … the sub program might look like this :

O1234
X1.1 Y1.1
X2.2 Y2.2
X3.3 Y3.3
X4.4 Y5.5
M99
%

Notice that we have an M99 at the end … not an M30 or M02 like a normal program. This indicates that this is a sub program … we’ll explain the M99 command a little later.

This program is entered in the control as any other program … and resides in it’s own memory space.

When a Fanuc / Haas control wants to call a sub program to run … the programmer issues an M98 command in the Main Program. The M98 command is also followed by a P address … which is the “O” number of the external program to run. Our above sample sub program would be called with the command :

M98 P1234

When the main program reads the M98 command … it jumps out of the main program and starts to execute the sub program … in this case program O1234. When it reads the M99 command at the end of the sub program … it jumps back to the main program to the line after the one through which it left. In other words, it jumps back to the line after the M98 command.

The Complete Story

Let’s take a look at the full program and the sub program calls … see if you can follow the path.

Main Program

O0001
G00G91G28Z0
G28X0Y0
M01
N0001
(SPOT DRILL)
G00G91G28Z0
T01M06
G90S3500M03
G00X1.100Y1.100
G43Z.500H01M08
G99G81Z-.130R.050F20.0L0
M98P1234
G80
G00G91G28Z0
M01
N0002
(DRILL)
G00G91G28Z0
T02M06
G90S3000M03
G00X1.100Y1.100
G43Z.500H02M08
G99G73Z-875R.050Q.125F20.0L0
M98P1234
G80
G00G91G28Z0
M01
ETC.    ETC.    ETC.
M30
%

Sub Program

O1234
X1.1 Y1.1
X2.2 Y2.2
X3.3 Y3.3
X4.4 Y5.5
M99
%

Can you follow the path as the program jumps to the sub program?
Here is an in-depth explanation.

N0001
(SPOT DRILL)
G00G91G28Z0
T01M06
G90S3500M03
G00X1.100Y1.100 ——————— Position to our first hole.
G43Z.500H01M08 ——————— Bring the Z axis to the clearance plane.
G99G81Z-.130R.050F20.0L0 ———- Call our canned cycle … but use L0 which means the control will hold the data … but will not execute the cycle.
M98P1234 —————————– Jump to our sub program O1234 which will cause a hole to be spotted at each X / Y location in the sub.
G80 ————————————- When the M99 is read … the program will jump back to here.
G00G91G28Z0
M01
N0002 ———————————- This sequence basically does the same thing …except we are establishing a different canned cycle before we jump to the sub program.
(DRILL)
G00G91G28Z0
T02M06
G90S3000M03
G00X.100Y.100
G43Z.500H02M08
G99G73Z-875R.050Q.125F20.0L0
M98P1234
G80
G00G91G28Z0
M01

Another Example …

Once you are able to follow the above … here is another scenario.

You can also call a sub program and have it executed a set number of times. Let’s take the example where we want to execute a program on our lathe to make a washer (3) times. We will enter the main program and sub program as below.

Main Program :
O0001
M98 P1234 L3
M30
%

Sub Program :
O1234
*********
between here is the complete machining program that includes
tool calls … spindle calls
the feeding of the stock
the machining of the part
the cut-off of the part
*********
M99
%

The cycle start is executed with program O0001 … which calls the sub program O1234 and executes that program (3) times … the L in the M98 line. This feature is different for the various Fanuc controls but is usually commanded either :

M98 P —- L
or
M98 P****$$$$ where **** is the program number and $$$$ is the number of times to repeat.

Differences Between Fanuc / Haas and Okuma OSP

The basic ideas of calling and executing a sub program is the same between these controls … the G code commands are a bit different. Those differences are outlined below.

Sub Program Call
Fanuc / Haas : M98
Okuma : CALL
Example : CALL O1234 will call sub program O1234

 Sub Program End

Fanuc / Haas : M99
Okuma : RTS

Sub Program Call with Repeat
Fanuc / Haas : M98 P1234 L5 or M98 P12345
Okuma : CALL O1234 Q5 with the Q value being the number of repeats.

That’s basically it … just some G code differences but the basic idea and execution is the same.

**************************************

Sub programming is a powerful tool … even if you are not trying to avoid re-typing and repeated data entry. Hopefully this Making Chips post will get you thinking and exploring all the ways sub programs can make you a better programmer.

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 !!!

Move That Vise !!

MOVE THAT VISE !!! … It could mean more years for your machine tool.

It seems the simpler, often overlooked things can be the downfall of most shop equipment. Focusing on a few simple ideas can avoid those big repair bills and keep machine tools running like new much longer.

When most setups are done on a VMC, the workholding fixture is neatly mounted right in the middle of the table. Although it looks good, this is actually one of the worst “habits” for the machine. Locating the vise or fixture in the same place has the following harmful effects on the life of the machine:

  • Table wear, resulting in dip or sag in one spot.
  • Boxway or guideway wear on or around the spot, causing loose surface and gib contact, and shuck in the ways.
  • Ball screw wear, resulting in excessive backlash in that one area of the screw, which cannot be repaired through CNC compensation.

Of course you’re going to clean the table completely before installing the vise.

Then are you going to place the vise so it looks nice and neat in the center of the table?

NO !!!

Placing the vise or fixture in or around the same area of the machine table will cause all of the above, with the most common symptom over time being backlash of the screw. When trying to compensate and set the backlash, the person making the repair will often find different backlash values when checking along the length of the axis stroke. This most often results in the need to replace the whole ball screw. Because most CNC machine controls only permit one backlash compensation value to be set in the parameters, compensating for the backlash cannot be effectively performed through the control.

Conversational

You also may find that the gibs need to be adjusted in that area of the boxway, because the axis has some side-toside movement to it when moving. Squareness in that area will disintegrate; and, in the worst case, this shucking can be heard when the axis changes direction. The most common remedy of adjusting the gib in that area causes the axis to bind when it reveals to the other areas, because the boxway wear is different along the stroke. In this repair, the machine’s boxways may need to be reground, rescraped or both. In either of these cases, the repair bill will be huge.

The remedy is to make sure to move the vise or fixture location around on the tabletop whenever possible. You will see a more consistent wear pattern for the machine, and any backlash that occurs can be taken up correctly through the control. You will not be able to stop machine wear, but you can distribute it more evenly along the machine, which provides a longer life for all the components involved.

 Happy Chip Making !!

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