Banner

Issue 66
Winter 2005
Copyright 2005

In this issue:
  1. New product update: Two new products from CNC Concepts, Inc.
  2. Instructor note: Teaching CNC with the key concepts approach - part eight
  3. Time saver: Do you really need the laser jaw setter?
  4. G-code primer: Programming stored stroke limit (G22 and G23)
  5. Parameter preference: Finding the parameter related to stored stroke limit
  6. Custom macro Tip: Another way to get arguments into a custom macro

The Optional Stop is published quarterly by CNC Concepts, Inc. and is distributed free of charge to people subscribing to our (email) distribution list and to those downloading it from our website (www.cncci.com). Information is aimed at CNC users and instructors teaching live CNC classes. All techniques given in this newsletter are intended to help CNC people. However, CNC Concepts, Inc. can accept no responsibility for the use or misuse of the techniques given.

To subscribe: Simply email us (newsletter@cncci.com) and let us know you'd like to be added to our distribution list.

To unsubscribe: Respond to this email, typing REMOVE in the subject. Please accept our apologies if we have disturbed you.

Quick links to our website:

Of special interest on our website:
ME Consultant Pro
{short description of image}
Ad for machine shop calculator
{short description of image}
eBooks ad Click to get more information about this ebook Click to get more information about this ebook
Ad for CNC manuals Link to CNC turing center programming and operation manual Link to CNC machining center programming and operation manual
Machining center programming and operation CD-rom course

New product update: Two new products from CNC Concepts, Inc.

We're excited about our two newest products. We hope you'll check them out.

ME Consultant Pro

An affordable time and cost estimating system written by Michael Rainey

If you have anything to do with speed and feedrate selection, if you do time and/or cost estimating, or if you are concerned that cutting conditions used for quoting are being used once you get a job, you should really check out this simple-to-use program.

Our website provides all the details, including a demo you can download and a PowerPoint tutorial for the program. ME Consultant Pro includes a material file (with 20 preloaded materials), a machine file (with 3 sample machines), and a configuration file (allowing the entry of a few more time- and cost-related parameters) - so there won't be much for you to enter to get critical information about the machining center machining operations you perform.

Priced at only $100.00 (and $50.00 for each additional seat), this software should be a must-have for anyone serious about manufacturing.

eBook: Machining Operations Performed On Machining Centers

The first in a series of eBooks that address basic machining practice concerns. Written by Mike Lynch.

This introductory eBook is aimed at entry-level CNC people. It provides information regarding what a CNC machining center is designed to do. Included are presentations on hole machining operations and milling operations. Within each presentation, we also show how cutting conditions (speeds and feeds) are calculated. This eBook sells for $29.00.

End of article (M01)

Top of page

Instructor note: Teaching CNC with the Key Concepts approach - part eight

Part eight - Key concept number Seven: You must understand your machine from an operator's viewpoint

Here are some links that allow you to review other parts of this article:

  • Part one: Introduction to the key concepts approach
  • Part two: Key concept number one - know your machine
  • Part three: Key concept number two - preparation for programming
  • Part four: Key concept number three - Understanding the motion types
  • Part five: Key concept number four - You must understand the compensation types
  • Part Six: Key concept number five - You must provide structure to your programs
  • Part Seven: Key concept number Six - Special programming features

Key Concept number seven formally begins the setup and operation part of this course. However, you’ve done a great deal during the programming-related lessons to prepare students for setup and operation. Indeed, we’ve been giving suggestions in each lesson plan to help you stress setup and operation related topics.

We’ve done this for three reasons. First, and as stated many times in our curriculums, programmers must know enough about setup and operation to direct setup people and operators. Truly, the more a programmer knows about setup and operation, the better and more efficient the programs they will write.

We feel this is a common short-coming in many CNC-using companies. Setup people and operators are often left to fend for themselves - with minimal direction from programmers (or anyone else). If a programmer truly understands what it takes to make setups and complete productions runs, they can provide exceptional setup and production run documentation.

Consider, for example, a technique shown in lesson eighteen that is related to trial machining using block delete. With a true understanding of what a setup person or operator must do in order to trial machine, a programmer can include commands right in the program that facilitate any trial machining application. If a programmer doesn't understand trial machining, of course, the setup person and operator must struggle through trial machining on their own. Worse, they will not know how to trial machine and scrap many workpieces.

Second, setup people and operators can truly benefit from having a working knowledge of certain programming features. When appropriate, we’ve provided suggestions in each lesson plan to help you explain certain programming functions to setup people and operators.

While you won't go into programming details for setup people and operators, you explain enough to help them understand the setup- and operation-related implications of these programming features. During Key Concepts one and four, for example, you explain enough about program zero assignment, tool length compensation, and cutter radius compensation to help setup people and operators understand the reasons why certain things must be done at the machine.

Third, we’ve minimized the need for duplicating presentations. If you’ve followed our recommendations and presented the setup- and operation-related implications of certain programming features during programming, you won’t have to repeat these presentations during the setup and operation part of this class – though reviewing key points never hurts.

Key concept number seven contains two topics (lessons):

  • Setup-related tasks versus production-run-related tasks
  • Buttons and switches on the control panels

You can see our specific recommendations for each topic in our recently completed Lesson Plans manuals. We won't duplicate the suggestions here.

Here are two links that bring you to our CNC curriculum page and our CNC educators page. Use these two links to learn more about how you can use our key concepts approach in your own classes.

End of article (M01)

Top of page

Time saver: Do you really need the laser jaw setter?

by Mursheen

Just watched "laser jaw setter" video. Good idea, but if the issue is changeover time, isn't it easier (and a lot faster) to use a referenced boring bar as a jaw setting guide? I have been programming and setting cnc turning centers for 5 years and find this a very simple and fast changeover method. Referenced turning tools are an easy guide for internal grip soft jaws.

Editor's note: We do include both methods of mounting jaws on three jaw chucks on our website - using the laser jaw setter and using a boring bar. One advantage of the laser jaw setter is that it provides ample room for mounting jaws. With a boring bar, you're limited by the length of the boring bar - and it can get pretty cramped.
End of article (M01)

Top of page

G-code primer: Programming stored stroke limit (G22 and G23)

Suggested by Chris Kocourek

Chris writes: I'd like to see an article addressing stored stroke limit when working on over-size work pieces which overhang the vertical machining center table. Just this past week I had this situation arise. If the machine table was to advance forward far enough in Y- direction, my oversize work piece would hit the Z axis way cover, damaging it. I would have liked to set a "soft" travel limit, but didn't know exactly how to go about doing it.

This is an excellent application for stored stroke limit. With this feature (which most machine tool builders include as part of their standard package), you have the ability to define a zone (three-dimensional box for a machining center) in which the machine's axes must stay. If an attempt is made to send an axis outside of this box - either manually or by a programmed command, an over travel alarm will sound.

To test if your machine has stored stroke limit

It is pretty easy to test for any optional G code. Simply execute the G code in the MDI mode. In this case, simply execute G22. If you receive alarm number ten (unusable G code), the machine does not have the feature. If you receive no alarm - or if the alarm is related to the (missing) words that must be included with your G code, the machine has the feature.

How stored stroke limit works

You can set up stored stroke limit in one of two ways (by parameter setting). In either case, you'll be defining a box or cube. Either the axes will not be allowed to leave the box (the standard or default parameter setting with most controls) or the axes will not be allowed to enter the box. The parameter number will vary from one Fanuc control model to another, so you must look in the Fanuc manual (for the descriptions of G22 and G23) to find the parameter and its use. For this application, the parameter must be set so that the axes must not exit the box.

You'll be using a G22 command to instate the stored stroke limit and G23 when you want to cancel it. For this application (protecting the Z axis ways from the oversize workpiece on the table), the G22 command will limit how far the Y axis can move in the Y minus direction.

To define the box out of which the axes cannot move, you must specify two points - the left-front-bottom of the box in X, Y and Z and the right-back-top of the box in X, Y, and Z. The left-front-bottom point will be defined with the letter addresses I, J, and K (I for X, J for Y, and K for Z) while the right-back-top point will be defined with letter addresses X, Y, and Z.

The point of origin for these entries will be the machine's reference position (the zero return position). Here is an example command:

  • G22 I-25.0 J-20.0 K-15.0 X-2.0 Y-1.0 K0

Note that with most machining centers, the zero return position is very close to the over travel limit in each axis, meaning the specified values in the G22 command will probably be negative. From the time when this command is given, whenever an axis moves out of the specified box, an alarm will sound.

One severe limitation (in my opinion) is related to the Z axis. Stored stroke limit does not consider tool length compensation. That is, if you want to guard something in the Z axis, each tool will require its own G22 command - and of course, you'll have to know the precise length of each tool in order to give each G22 command. Again, this dramatically minimize how helpful the stored stroke limit feature will be. But for our application (protecting only the Y axis), this limitation will not be a factor.

Setting up the safety zone

While you may be able to predict the values needed in the G22 command, it might be better to actually cautiously move the machines axes - while monitoring the machine position display (which shows the current distance to the zero return position).

With our application, first place the oversize workpiece on the table. Since we're only concerned with the Y axis, cautiously move the Y axis in the negative direction until the large workpiece is close to the Z axis ways. Let's say at this point the Y axis machine position display shows Y-13.4843. So maybe you want to limit the position to Y-13.0.

For X and Z, there is no need to limit, so we'll simply use values that exceed the machine's over travel limits for these axes (the machine's normal over travel limits [soft and hard limits] will still be in effect even when the machine is under the influence of a G22 command).

We'll say that the machine has 20.0 inch X axis travel and 18.0 inch Z axis travel. Here is a command that will protect the Z axis ways:

  • G22 I-21.0 J-13.0 Z-19.0 X0 Y0 Z0

Notice that the positive limits need no protection, so we provide the machine's zero return position for the limit (with X0, Y0, and Z0).

G22 is modal, so once given, the safety zone will remain in effect until a G23 is given (or until the machine's power is turned off). So you should only need to give one G22 command - at the very beginning of the program.

End of article (M01)

Top of page

Parameter preference: Finding the parameter related to stored stroke limit

In the previous article, we mentioned that the method by which stored stroke limited works is controlled by parameter. Either the machine will keep the axes from leaving the box created by the G22 command - or it will keep the axes from entering this box. For our application, the machine must keep the axes from leaving the box.

To find any parameter, you should begin by looking in the Fanuc manual at the section that describes the feature in question. In our case, this means looking at the description of G22 - stored stroke limit.

I happen to be looking in a 6MB manual. A sentence that is close to the description of the forbidden area states: Parameter (RWL) selects either inside or outside as forbidden area. While this is helpful, I cannot find anything that specifies the parameter number that is involved. This means I must search through the parameter list (which unfortunately, is not uncommon) to find the parameter named RWL.

In this case, it doesn't take very long - it is bit number six of parameter number nine. According to Fanuc's documentation:

  • 1: Forbidden area of stored stroke limit is outside
  • 0: Forbidden area of stored stroke limit is inside

So bit six (seventh bit from the right) must be set to a 1 for the application given above.

End of article (M01)

Top of page

Custom macro tip: Another way to get arguments into a custom macro

For part family applications, one way to provide arguments (input variables) for the custom macro is to list them right at the beginning of the custom macro program. We normally use common variable (#100 series) along with a nice documenting message to explain the meaning of the variable. Consider, for example, this part family custom macro:

  • O0003 (Spacer ring)
  • #101=4.5 (HOLE DIA)
  • #102=6.0 (OUTSIDE DIA)
  • #103=5.25 (BOLT CIRCLE DIA)
  • #104=1.0 (THICKNESS)
  • #105=0.125 (SLOT DEPTH)
  • N005 T01 M06 (1/2 end mill)
  • (Constants for milling operation)
  • #110=#102/2 + 0.35 (Outside clearance)
  • #111=#101/2 - 0.35 (Inside clearance)
  • N010 G54 G90 S800 M03 T02
  • N015 G00 X0 Y-#110
  • N020 G43 H01 Z-#105
  • N025 G01 Y-#111 F4.0
  • N030 G00 Z0.1
  • N035 X#110 Y0
  • N040 Z-#105
  • N045 G01 X#111
  • N050 G00 Z0.1
  • N055 X0 Y#110
  • N060 Z-#105
  • N065 G01 Y#111
  • N070 G00 Z0.1
  • N075 X-#110 Y0
  • N080 Z-#105
  • N085 G01 X-#111
  • N090 G00 Z0.1
  • N195 G91 G28 Z0 M19
  • N100 M01
  • N105 T02 M06 (1/4 drill)
  • #112=#103/2 (Bolt circle radius)
  • N110 G54 G90 S1300 M03 T01
  • N115 G00 X0 Y-#112
  • N120 G43 H02 Z0.1
  • N125G81R-[#105-.1]Z-[#104+0.11]F3.5 G98
  • N130 X#112 Y0
  • N135 X0 Y#112
  • N140 X-#112 Y0
  • N145 G80
  • N150 G91 G28 Z0 M19
  • N155 M30

All of the arguments needed for the program are specified right at the beginning with common variables - and the accompanying message makes it clear as to what each argument represents. Again, this is a common method for getting arguments into a part family custom macro.

Consider adding one more criteria to this application. What if the workpiece material varies from job to job. Maybe sometimes this workpiece is made from aluminum - other times it is made from steel - yet other times it is made from brass, or copper, or nickel. You could of course, add some additional arguments to specify feeds and speeds for each tool, but these values would have to be changed every time a new material is to be machined. Here is another way to handle this problem.

We can set up a series of special cutting conditions custom macros (actually called as subprograms) that specify all cutting conditions needed for the material. For example, this might be the custom macro for steel:

  • O1001 (Cutting conditions for steel workpiece)
  • #121=800 (Speed for end mill)
  • #122=4.0 (Feedrate for end mill)
  • #123=1300 (Speed for drill)
  • #124=3.5 (Feedrate for drill)
  • M99

And here is the custom macro for an aluminum workpiece:

  • O1002 (Cutting conditions for aluminum workpiece)
  • #121=2800 (Speed for end mill)
  • #122=12.0 (Feedrate for end mill)
  • #123=3400 (Speed for drill)
  • #124=14.0 (Feedrate for drill)
  • M99

You can easily create as many cutting conditions custom macros as you have materials to machine. The main program, of course, must be modified to reflect this new criteria:

  • O0003 (Spacer ring)
  • #101=4.5 (HOLE DIA)
  • #102=6.0 (OUTSIDE DIA)
  • #103=5.25 (BOLT CIRCLE DIA)
  • #104=1.0 (THICKNESS)
  • #105=0.125 (SLOT DEPTH)
  • (O1001: STEEL, O1002: ALUMINUM, O1003: BRASS)
  • M98 P1001 (Get cutting conditions for steel workpiece)
  • N005 T01 M06 (1/2 end mill)
  • (Constants for milling operation)
  • #110=#102/2 + 0.35 (Outside clearance)
  • #111=#101/2 - 0.35 (Inside clearance)
  • N010 G54 G90 S#121 M03 T02
  • N015 G00 X0 Y-#110
  • N020 G43 H01 Z-#105
  • N025 G01 Y-#111 F#122
  • N030 G00 Z0.1
  • N035 X#110 Y0
  • N040 Z-#105
  • N045 G01 X#111
  • N050 G00 Z0.1
  • N055 X0 Y#110
  • N060 Z-#105
  • N065 G01 Y#111
  • N070 G00 Z0.1
  • N075 X-#110 Y0
  • N080 Z-#105
  • N085 G01 X-#111
  • N090 G00 Z0.1
  • N195 G91 G28 Z0 M19
  • N100 M01
  • N105 T02 M06 (1/4 drill)
  • #112=#103/2 (Bolt circle radius)
  • N110 G54 G90 S#123 M03 T01
  • N115 G00 X0 Y-#112
  • N120 G43 H02 Z0.1
  • N125G81R-[#105-.1]Z-[#104+0.11] F#124 G98
  • N130 X#112 Y0
  • N135 X0 Y#112
  • N140 X-#112 Y0
  • N145 G80
  • N150 G91 G28 Z0 M19
  • N155 M30
End of article (M01)

Top of page