Created and Maintained by the Real World Software Developers and Machinists at www.KentechInc.com ... click here to check it out !!
Showing posts with label machining. Show all posts
Showing posts with label machining. Show all posts

Wednesday, July 30, 2014

Homemade Bar Puller for Your CNC Lathe - Resurrected

We first published this tip a few years ago ... and it has become so popular and copied on many other sites and in many trade journals ... and is asked about by so many of our clients ... that we had to bring it back for a repeat post ... once again !!

Enjoy ... and profit from this simple yet super efficient plan.

----------------------------------

One of the best ways to add efficiency to your CNC lathe is to make it run unattended. Using a bar feeder or a simple bar-puller, you can make your lathe run in a more complete AUTO cycle, stopping only for the refilling of the stock and minor offset adjustments. In this article, we'll share a simple but efficient design for a bar-puller and show you a programming example of how to put it to use.

Granted, a little work is required but when put to the right use, unattended operation can really help your bottom line. For example, how about being able to leave the shop at 5:00 and still have your lathe running producing another 50-60 parts while you're home eating dinner. Or for the one man shop, how about having production being run while your on the phone getting that next deal. With the right combination of cutting conditions and unattended operation, there's no telling where you can go.

The CONCEPT
The idea behind this bar-puller is to fill the spindle with a bar length of material, then using an auto cycle perform the following sequence :
  • Grab the stock with the puller
  • Open the chuck
  • Pull the stock to the desired length
  • Close the chuck
  • Retract the puller
  • Machine the part
  • Cut-Off the part
Then simply repeat the cycle again, the number of times for repeat depends on the number of parts that can be made using the length of bar stock in the spindle.

The SET-UP
To create your bar-puller feature, you'll need a couple of other items other than the bar puller to be outlined here.

First, you'll need to cut the bar stock the length of your spindle so the stock can be slid inside your spindle and pulled by the bar puller through the chuck or collett nose in the front. NEVER, NEVER, NEVER hang any size stock outside the end of the spindle - all stock must fit inside the spindle housing and be supported with spindle liners or a support ring as outlined below.


Since the difference between the stock OD and the spindle ID is usually pretty big, you can't just put the stock in the spindle. It must be supported in the spindle to prevent the stock from rattling around. This can be done with commercially purchased spindle liners or you can make a simple spindle liner ring using the design and concept outlined here. Please note that these liners take up the "slop" between the stock size and the ID of the spindle and must be used to prevent possible whip or damage to the spindle bearings or other possible injury.

One method is to make a ring out of plastic or similar material that attaches to the end of the stock with a set screw. The OD of the ring fits snuggly into the spindle ID and the ID of the ring attaches to the OD of the stock. This ring will move along the inside of the spindle along with the stock as it gets pulled toward the chuck. Calculate the number of cycles so this ring will reach the end of it's possible stroke as the max count is reached.


The BAR PULLER
Now the homemade bar puller needs to be made. The concept behind this puller is that you can make the size required as needed for the size material you are currently working with. You can make a few at a time, leaving some finishing operations until the ID size is determined. This way you'll have maybe 70% of the puller made then you can simply finish the rest when the time approaches and the final sizes are determined.

The bar puller uses a "split" piece of aluminum or other material softer than the material you will be machining. It uses simply a piece of bar or tube that is machined with the OD to fit into an ID tool holder station in the turret, and the ID slightly smaller than the OD of the stock. You may need to turn down the front end as per the sketch below to maintain a wall thickness that is thin enough to slide over the stock when split yet strong enough to pull the bar, depending on the weight of the bar stock determined by the diameter of the stock. The puller is then split in two or three or more places using a hack saw or slitting saw and an O-Ring placed on the OD of the puller to keep the tension. This allows for the puller to split and feed over the bar stock with the O-Ring providing tension to pull the stock and for the puller to return to it's original shape when done.


The PROGRAM
In the program, the puller is mounted in the turret, in our example Tool #3. Then in the CNC programs AUTO cycle, it is fed over the bar stock, the chuck opened, the turret moved to position taking the stock with it, the chuck closed, and the machining begun.</P><P>In the example below, we are simulating a Fanuc series 10T or higher CNC control. Your M functions may be different, please consult your programming manual for your specific commands. Use this program as a guide, not a bible. The X0 is the center line and Z0 for this tool is set at the face of the stock as it sticks out of the chuck after cut off.

N0001 --------------- sequence number for this operation
M05 ----------------- make sure the spindle is stopped
G00 T0303 ---------- index to the bar puller station
G00 X0 Z.200 ------- rapid to a clearance point
G98 ----------------- change feed to IPM
G01 Z-.750 F20.0 --- feed onto the stock
M11 ----------------- open the chuck
G01 Z2.000 ----------feed to needed length plane
M10 ----------------- close the chuck
G01 Z3.500 ---------- feed off the stock
G00 X8.00 Z8.00 ---- rapid to index position
T0300 --------------- cancel the tool offset
G99 ------------------ return feed to IPR
M01 ----------------- optional stop

This sequence should be placed at either the top or bottom of the machining program. The best way to put the AUTO cycle into use is with the use of sub-programming. The MAIN program would be the call for the machining program including the number of times to call the program depending on the number of pieces you can make from the length of bar stock in the spindle. The SUB program would actually do the pulling and the machining. For example, in the example below, program O0001 is the MAIN program, calling the SUB program O1111 - 12 times, which actually does the pulling and the machining.

O0001 ------------ Main Program
M98 P1111 L12 -- sub program call
M30 --------------- program end
..
..
O1111 ------------- Sub Program
N0001 ------------- Bar pull sequence
--
--
--
M01
N0002 ------------- machine the part
--
--
--
M01
N0003 ------------- cut off
 --
 --
 --
M01
M99 --------------- sub program end

In the above example, the operator only presses the Cycle Start on the MAIN program. This starts a 12 piece cycle that will include the pulling out of the stock, the machining of the part, and the cut off of the part. Recalling and executing the cycle 12 times.

Happy Chip Making !!

Please visit our website for the best in Real World Machine Shop Software ... 
just CLICK the pic below !!

Tuesday, May 21, 2013

Multi-Part Machining Series - Part #3

Machining Multiple - Different Parts

So far in our series we have looked at machining multiple parts of all the same part mounted in our fixtures during our machining cycle. What if we want to machine different parts during the cycle ... we want to mount different fixtures on the table and machine one of each during the machining cycle.

First let's look at some reasons WHY we might want to do this.

  1. Perhaps we will be delivering an assembly made of multiple parts we need to machine. If we machine all the components at the same time ... during the machining cycle ... we can better accomplish scheduling and production of the entire assembly.
  2. Perhaps similar parts utilize similar cutting tools ... if we can machine them at the same time we can reduce and better control our tooling requirements both from a "tool in the machine" as well as from an inventory viewpoint.
  3. We need to break into a production run for some "special circumstance" ... rather than halt the production all-together, we can sneak another fixture on the table and machine both parts during the same cycle.
  4. Having lived in the real world ... we could go on and on and on ... you know !!

Looking back at Part #1 and Part #2 in our series ... any of these scenarios certainly becomes a fairly simple task.

Fixture Offsets from Part #1
As we mount the different fixtures on the table ... we can establish a Work Offset for each fixture. Now each fixture is independent of the others ... and can be called with a simple G54-G59 call.


Sub-Programming from Part #2
We could use a variety of sub-programming options to accomplish the various scenarios. The easiest is to simply have a complete machining program for each fixture ... and call it using the sub-program call in our main program. So we would utilize a main program to actually link all our different machining programs together. Something line this :

Main Program :

O0001
G54
M98 P1234 ( program to machine fixture #1 completely )
G55
M98 P5678 ( program to machine fixture #2 completely )
G56
M98 P8888 ( program to machine fixture #3 completely )
M30
%


When we press the cycle start at program O0001 .... it will call each of our compete machining programs and will machine the workpieces at each fixture completely. Simple. You could get very creative and efficient if you did some specific tooling / sub-programming calls ... think about it.

And .... we still have our independent programs available should we need to just machine one of the parts for some reason.

As I'm writing this ... different scenarios and reasons to utilize this approach keep popping into my head. But rather than write a long dissertation here ... look around your shop ... look at your work flow ... and see if you can view some of your own scenarios where better work flow can be achieved using some of our talking points from this series.

If you are so inclined ... please drop us an email at Sales@KentechInc.com ... tell us some of your unique situations ... or even ask us our recommendations ... and we'll publish / add them into this post for the benefit of others to review.

Thanks in advance to everyone ... and 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 !!!



Wednesday, May 8, 2013

Multi-Part Machining Series - Part #2

Programming for Multiple Fixtures

So the decision has been made ... "We need production ... which means we need to mount as many vises or fixtures on the table as we can fit ... to make as many parts as possible."

First scenario ...
  1. We are going to make all the same part. 
  2. For our example here ... let's say that we can fit 4 fixtures on the table ... we are going to machine 4 parts in one cycle.
Some thoughts :
  1. When the tool is in the spindle ... we want to do as much work with it as possible. That means hitting each part on each fixture while it's in the spindle.
  2. As mentioned in Part #1 ... each fixture is independent with it's own work coordinate system.
  3. As a set-up ... we want to make one part first ... confirm that it is correct dimensionally and that the cutting conditions are optimal ... and then expand those toolpaths to machine the other vises.
  4. For this article ... we are not going to be concerned with the actual G code program ... more with the flow of the program. How we can structure the program to machine all the parts.
So we mount the fixtures on the table ... set up and record our Work Coordinate Offsets ... G54 - G57.

How can we write the program to machine one part ... then expand it to 3 more parts ... with the least amount of effort. Our suggestion : Sub Programming ( for a more in-depth MAKING CHIPS blog post on sub-programming ... go here : http://kipware.blogspot.com/2013/02/the-hows-and-whys-of-sub-programming.html )

Here is the structure of our initial set-up program :

O0001 ( Main Program )

N0001
G00G91G28Z0
T01M06
G90S3500M03
G43Z1.500H01M08 -------- Put the tool in the spindle, start the spindle, position Z to clearance

G00G54X0Y0 --------------- Move to the first fixture, call the sub to do the work with this tool
M98 P1000

G00G91G28Z0 --------------- End this tools sequence
M01

N0002
G00G91G28Z0
T02M06
G90S1200M03
G43Z1.500H02M08 -------- Put the next tool in the spindle, start the spindle, position Z to clearance

G00G54X0Y0 --------------- Move to the first fixture, call the sub to do the work with this tool
M98 P1001

G00G91G28Z0 --------------- End this tools sequence
M01

ETC
ETC -------------------------- Create similar cycles for all the remaining tools.
ETC
M30

Once all of the above is confirmed ... w're ready to rock and roll on all the fixtures.
Just make these simple edits :

O0001 ( Main Program )

N0001
G00G91G28Z0
T01M06
G90S3500M03
G43Z1.500H01M08

G00G54X0Y0
M98 P1000
G00G55X0Y0
M98 P1000
G00G56X0Y0
M98 P1000
G00G57X0Y0
M98 P1000

G00G91G28Z0
M01

N0002
G00G91G28Z0
T02M06
G90S1200M03
G43Z1.500H02M08

G00G54X0Y0
M98 P1001
G00G55X0Y0
M98 P1001
G00G56X0Y0
M98 P1001
G00G57X0Y0
M98 P1001

G00G91G28Z0
M01

ETC
ETC -------------------------- Create similar cycles for all the remaining tools.
ETC
M30

The above will work fine ... one blaring item is that we are positioning back to the first fixture ... from the last fixture each time ... some wasted movement. Easy to fix because of our structure and the use of sub-programs ... just start each tool at the last vise where the last tool was working ... like this :

First Tool :
G00G54X0Y0
M98 P1000
G00G55X0Y0
M98 P1000
G00G56X0Y0
M98 P1000
G00G57X0Y0
M98 P1000

Next Tool ( work the offsets backwards ):
G00G57X0Y0
M98 P1001
G00G56X0Y0
M98 P1001
G00G55X0Y0
M98 P1001
G00G54X0Y0
M98 P1001

Next Tool :
G00G54X0Y0
M98 P1002
G00G55X0Y0
M98 P1002
G00G56X0Y0
M98 P1002
G00G57X0Y0
M98 P1002

ETC ... ETC ... ETC.

So there you have it ... combining our knowledge of SUB-PROGRAMMING with WORK COORDINATE OFFSETS ... we machined (4) parts on (4) fixtures ... efficiently.

If you followed the other Making Chips posts on SUB-PROGRAMMING and WORK COORDINATE OFFSETS... you will have an even better understanding of why these features will prove so useful when :
  1. Johnny "bumps" the middle fixture with his hammer
  2. Paul adds a revision .... an additional hole to the part
  3. "The Boss" decides he wants to take off one of the fixtures ... who knows why !!!
Anyway ... if you aren't sure why the above are simple fixes ... just go back and review the other posts !!

In the next post in the series ... we'll take a closer look at some other scenarios and options ... Stay Tuned !!

As always ... 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 !!!

Wednesday, April 24, 2013

Multi-Part Machining Series - Part #1

Work Coordinate Systems

Most production shops will rarely utilize a one-vise or one-fixture setup on a VMC or HMC when running a multiple piece production run. The most efficient production will have the cutting tool performing it's function on as many parts as possible while it is in the spindle. That normally means adding as many multiple vises or fixtures as the room on the table will permit.

We will be devoting the next couple of Making Chips posts to set-up and programming tips and tricks dealing with multi-part machining.

What does that multi-part machining mean for programming? As with anything in life ... first we want to reduce the amount of work ... in this case, the amount of programming. The use of sub-programming to cut down on the amount of typing or data entry or whatever work ... is one. ( We dealt with sub programming in a previous post here : http://kipware.blogspot.com/2013/02/the-hows-and-whys-of-sub-programming.html ). The other is a little feature on most machines called WORK OFFSETS. In our post here we will be explaining the Fanuc style and codes of Work Offsets ... since about 95% of machines out there are what we refer to as "fanuc compatible." And that includes the popular Haas machines as well.

Why Work Offsets?

Let's take a simpler example of placing two vises on the VMC table ... both will hold identical pieces of stock ... and we want to machine two identical workpieces using the same identical tools.

Hole dimensions are identical for both workpieces.

We could always do something like use the top left corner on the part on the left as X0/Y0 and then add the 12.300 + 3.100 to program the two holes on the part on the right ... sure, simple in this case. But even this scenario is fraught with potential problems. 

  1. What if we "bump" the vise ... and the 12.300 is no longer the case. We now have to go back into the program and adjust the X and Y coordinates to reflect the new distance. 
  2. What if one vice is a different height / thickness than the other ... the parts Z0 is different.
  3. Next time we run the job ... we have to get the vises exactly 12.300 apart ... or alter the program again.
  4. .... it goes on and on ... none of the scenarios are nice to imagine.

This type of situation ... and this is a simple one ... begs for the use of Work Offsets.

What are Work Offsets?

The Work Offsets allow the user to designate distances from the fixed Zero Return position on the machine to a certain location on the machine through an offset table. The Work Offsets are recorded distances from a fixed position on the machine ... usually the Zero Return or Reference Return position on the machine. This position is the only position that can be repeated on the machine without fail ... because it is defined from a physical limit switch. Once the electronics on the machine are powered off ... most internally recorded positions are lost ... no power to keep the computer running, it loses it's memory. When the machine is powered back on ... we can find our Zero Return by utilizing that function on the machines panel because it searches for that physical limit switch ... it doesn't rely on any memorized position ... it is dependent on the physical limit switch. For that reason ... all Work Offset positions are recorded from that Zero Return position for all axis.

The number of Work Offsets available on a machine tool can vary ... some have as little as one or two and others have 300-500 ... on Fanuc controlled machines the standard number is six ... although options to add  more are available. They are designated by G code calls ... G54, G55, G56, G57. G58 and G59.

If you were to look in the Work Offset table ... you would see something similar to :

So the user measures the distance from the fixed Zero Return position to ... let's use our example ... to the top left corner of the left hand vice as that parts X0/Y0 location. The measured distance is then entered in the Work Offset table ... both X and Y ... under one of the Work Offset designations ... we'll use G54. The steps are repeated for the left hand vice ... and the X and Y distances are entered in the G55 offset locations.

In our example, let's imagine that the vises and the stock are the same height in the Z axis ... just for simplicity ... but the Z axis could have a value similar to X and Y if required.

How to use Work Offsets in the G Code Program?

Let's say we have the scenario below .... the machines Zero Return position is the point on the top right designated with the purple circle :

Our Work Offset Table would look like :

Now for the programming part. Whenever the G code calls out a Work Coordinate System .... G54 thru G59 ... that Work Coordinate System becomes the default and any X / Y / Z coordinates called out for in the G code will reflect the X/Y/Z coordinates from the offset table. So the programming line ...
G00 G90 G54 X0 Y0
 ... would move the tool to the top left corner of the left hand vise. If we were to then command ...
X3.100 Y-2.125
.... we would position to the top left hole of the left hand vise ... because the G54 Work Coordinate System is the default. Similarly ... the command lines :
G00 G90 G55 X0 Y0
X3.100 Y-2.125 
... would position the tool to first the top left corner of the right hand vise ... then the top left hole of the right hand vise using the G55 Work Coordinate System.

So using the Work Coordinate Offsets and Work Coordinate System calls ... it is very easy to switch between the left hand and right hand vise by simply commanding G54 or G55.

The Advantages of Work Offsets

As we outlined above ... we are asking for problems when we don't use the Work Offsets. How did we fix them?

  1. If we "bump" the vise ... only the values in the Work Offset table will change ... the G code program will not need any editing.
  2. If the vises were different heights .... we could easily use the Z value in the Offset Table to make that adjustment ... again, no program editing.
  3. Next time we run the job ... we only need to adjust the G54 and G55 Offset Table values ... no program editing is required.
  4. and on and on and on. I'm sure you will see many more advantages on the shop floor.
As we progress through our Multi-Part Machining Series over the next posts ... we'll try to highlight some of the other programming Tips and Tricks that can be employed.

Stay Tuned .... and 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 !!!

Wednesday, April 10, 2013

Circle Milling Like a Professional


Milling a counterbore or doing other circle cutting using an end mill or similar tool can be a powerful and creative machining process. Most times replacing the need for a reamer, boring bar or other sizing tool. This type of cutting, when combined with cutter compensation gives the operator much more flexibility in adjusting the size of the finished hole.

However, the main drawback is usually created using simple programs and is usually found at the entry and exit points where a small tool mark can be created due to the tool pressure caused at the entry of the cut. With a little creative programming technique and some simple calculations, a much more efficient and "professional" program can be created.

In this post, we're going to take you step by step through a program creation to mill a circle using the "loop in - loop out" method which takes the cutter from the center into the side of the hole using an arc move - then cuts completely around the hole - then loops back to the center using another arc move. This type of cutting gives a real nice finish in the hole, helps maintain size a little better and leaves no tool mark at entry or exit points.

In our example, finish milling an inside round pocket using G02 or G03, a cutter mark will remain from tool pressure at the entrance and exit point of the arc. In order to create a smooth entrance and exit, some “tricky” machining technique must be employed because most machines do not have a “canned cycle” for the type of cutting explained here. Although this employs nothing more than simple G02 or G03 commands, the manner in which the codes are used and the type of process that results, makes efficient use of the simple codes and makes a more attractive and accurate workpiece.

The objective with the example below is to create a smooth transition into and out of the cut. In the example below, we are attempting to machine a 2 in. radius circle with a 1 in. radius cutter.

STEP #1 : We calculate the arc needed to move the cutter from the center of the pocket to the finish wall edge. In the example below, we use the following formula :

2.00 (pocket radius) - 1.00 (cutter radius) = 1.00

This is the distance needed to move from the pocket center to the wall edge, allowing for the cutter radius.

STEP #2 : Next divide the total distance in half to obtain the radius needed to swing an arc from the center to the outer edge as calculated above.

1.00 / 2 = .500


If you like this concept ...
we invite you to take a look at our
it auto-creates G code from fill-in-the-blank forms ...
NO CAD experience required !!!

Cutter  Compensation  Note : 
Some controls will allow for the activation of CUTTER COMPENSATION on the example program block #1. In that case, you can calculate the same as above but do not compensate for the cutter radius, instead call the cutter compensation G Code and compensation offset number on the program block. In our example, the program block would be :

G02 G91 G42 X2.00 Y0 R.500 D12 

In this block, we are using G42 (cutter compensation right) and storing the radius of the cutter in offset #12. Using cutter comp as above will allow for the easy adjustment of the pocket size by adjusting the value in offset #12. Don't forget to cancel the cutter comp with G40 after the tools cutting is complete.


Creating a "CYCLE" : 
Using a simple combination of sub-programming, you can take the example above a step further and create a simple Z axis step-down cycle resulting in the roughing of the above example with little effort.

In the program example below, we are taking the circle cutting routine created above and storing it in a sub program. The main program will step the Z axis down - call the sub-program to machine the hole at that depth, then return to the main program which will in turn move the Z axis to another depth and start the process again. This "cycle" repeats until the total depth is achieved.

Main Program : 
{ start and position the tool to the hole center as normal }
G01 G90 Z-.100 F15.0 ; --- move to the depth of the first cut
M98 P1111 ---------------- call Sub Program O1111 which does the cutting as above
G01 G90 Z-.200 F15.0 ; --- move to the next depth of cut
M98 P1111 ---------------- call Sub Program O1111 again at the new depth
G01 G90 Z-.300 F15.0 ; --- move to the next depth of cut
M98 P1111 ---------------- call Sub Program O1111 again
G01 G90 Z-.400 F15.0 ; --- move to the next depth of cut
.... etc. till the desired depth is realized

Sub Program : 
O1111;
G02 G91 X1.00 Y0 R.500 F10.0 ; -- circle to the hole edge
G02 I-1.00 ; --------------------- cut the complete circle
G02 X-1.00 Y0 R.500 ; ------------ circle back to the center
M99 ; ---------------------------- return to the main program

This is just one example of the combination use of the sub-programming feature and "simple" programming codes to create a user cycle. You can always use your initiative and create some other ideas. Maybe think about these  : 
How can you put the Z axis move in the sub-program as well ?
Call the sub program and repeat a set number of times ?
... any others ?

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




Wednesday, March 13, 2013

Cutter Compensation - A Programmers Best Friend


In this Making Chips post ... we would like to touch on some of the points regarding cutter compensation ... when turning ... angles and radii ... on Fanuc based CNC controls.

Many programmers shy away from cutter compensation ... primarily because they have never taken the time to fully understand both it's power nor how to use it properly. But the reality is that cutter comp is one of a programmers best friends. The most common reason goes something like this "It's just as easy to have the CAD/CAM system compensate for the TNR ( tool nose radius ) and out put the hard numbers." That is true ... but life on the shop floor makes this a bad practice. A couple of reasons why :

  1. The "numbers" in the G code don't match the "numbers" on the part ... because they are taking into account the TNR. If manual edits need to be made ... even simple edits ... this makes it much harder because the part dimensions don't match the G code numbers.
  2. Say after cutting ... the conditions warrant either a bigger or smaller TNR for better cutting conditions. If cutter comp is used ... it's a simple offset change. If not ... it's a trudge back to the CAD/CAM guy or system to re-post and make a new G code program for the revised tool and it's TNR.
  3. In milling ... let's say I broke my last perfect .250R end mill ... but I have a re-ground one that is .245R.. Again, if cutter comp is used ... it's a simple offset change. If not ... it's another trudge back to the CAD/CAM guy or system to re-post and make a new G code program for the revised tool radius.

But here we are going to stick with turning here ... and here are a couple of simple rules for when to use and when not to use cutter compensation.

  • Whenever angles or radii are involved ... you must use TNR compensation or the angles and radii will be off. Because the programmed point of the cutting tool, an imaginary sharp point, does not coincide with the actual point of the cutting tool which always has some corner radius. For this reason, when machining close tolerance angle or radius cuts, inaccurate workpieces will be produced. The amount of error is proportional to the amount of the tool nose radius.
  • Only worry about using it for finishing ... It's really not worth the effort to use it roughing ... the amount you leave for finish allowance will probably "hide" the mismatch due to the TNR.
  • You must start cutter comp with a "start up block". This block is usually the move as you approach the part ... the move distance must be greater than the radius in the TNR offset. So if your tool has a radius of .032 ... make a move at least .035 ... preferably more. 
  • Make sure that your TNR is less than any radius on the part ... don't try to jam an .032 tool into a .020 radius ... alarms will greet you somewhere along the way.
  • We'll cover some additional thoughts at the end of the post.


The Details :
The CNC control has the capability to automatically compensate for the tool nose radius thru the CUTTER COMPENSATION codes of G41 and G42. G41 is called cutter compensation left. The left side is explained as the side of the workpiece the cutting tool is on when viewed in the direction of cutter movement or the cutter is moving on the left side of the programmed path. Once commanded, G41 or G42 are modal commands and remain active until the G40 or cancel condition is obtained.

In Fanuc controls, in addition to commanding G41 or G42 direction, the programmer must also tell the control two other aspects of the cutting tool which are : (a) the amount of the tool nose radius and (b) the imaginary tool tip location. Both these values are entered in the tools geometry or wear offset table. In the offset table, the R value is the amount of the tools nose radius. If the program called T0101 in the tool command, in offset table #1, under the R column, the nose radius of the tool would be entered. The T column in the offset tables holds the imaginary tool tip location.



Cutter compensation must be programmed using what is commonly referred to as a start up block. This block, which must be a G01 type block, is used to activate the cutter compensation before the cutting tool actual contacts the workpiece. The movement amount in the start up block must always be greater than the nose radius of the tool stored in the R column of the offset table. Circular commands using G02 or G03 are not allowed on start up blocks.

G40 is used to cancel the automatic compensation of the tool nose radius. G40 should always be commanded on a G00 block as the tool moves away from the workpiece with the tool in a clearance position.

More Rules and Thoughts :
Many rules apply in the use of cutter compensation as the control is always checking the tool position so it can calculate for the tool nose radius. Three rules of thumb apply and should keep you free of the controls cutter compensation alarms :

(1) Always command a start up block before contacting the workpiece and move in the
G01 mode with a move greater than the nose radius of the tool.

(2) Use cutter compensation primarily in the finishing cut and try to eliminate it in the roughing
passes. The more moves made with G41 or G42 modal, the more likely for a
problem. To finish the part, use the start up block, finish cut the part and
command G40 when done. If additional cuts are required, use another start
up block and cancel the cutter comp each time as soon as the profile cut is
finished.

(3) Always cancel G41 or G42 using the G40 command. The best place to command G40 is
on a G00 block, at a clearance point or moving to a clearance point.

Because cutter compensation causes the control to perform some powerful calculations and is a complex command, you should also consult your controls instruction manual for further info on G41 or G42.

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

Monday, February 18, 2013

G28 - Do you REALLY Know What It Does?


Most programmers use the FANUC G28 command to return an axis to the ZERO RETURN or REFERENCE RETURN position for a variety of reasons. Because this position is normally the position of the axis almost at one end of the stroke, those reasons range from tool change considerations to clearance considerations to safety considerations.

On a CNC lathe, REFERENCE RETURN or ZERO RETURN is the normally the axis at the farthest position away from the chuck - used mostly for safety and clearance reasons. On a vertical machining center, the Z axis is normally required to be at this position for a tool change sequence to start - an alignment issue here.. On a horizontal machining center, both Z and Y may be required to be there for a tool change alignment.

The How's & Why's of ZERO RETURN ?
The ZERO RETURN position is a very important position to the machine tool because this position never changes, even after POWER OFF. Basically, the ZERO RETURN position is a fixed position in which the machine tool builder uses a physical limit switch to obtain. The normal mode of operation when finding ZERO RETURN is that the axis rapids in the zero return direction looking for the signal from the limit switch that the dog has made contact. At that point, the axis slows to a feedrate set within the control and feeds until the dog feeds off the switch. At this point, the axis will begin to feed at a slower rate, a set number of pulses of the motor or set number of turns of the ballscrew. This final distance is called the GRID SHIFT and is usually adjustable through the machine parameters.

This type of system assures that the ZERO RETURN position will be arrived at even after power off and will be the same position, within tenths, all the time. For this reason, the ZERO RETURN position is very important to the machine tool and the programmer. It is the only position on the machine that can be found again and again after power off - because of the use of the "hard wired" limit switch. For this reason, most work coordinate systems (G54-G59) and PART ZERO locations are measured from the ZERO RETURN position.

In the newer machines and newer controls (referencing FANUC controlled machines with "red cap" axis drive motors), the zero return position is memorized within the control. Although the "hard wired" limit switch is used to set the position initially and after a CNC failure, once the position is found it is memorized in the control. This allows for a much faster movement to ZERO RETURN either through the program or in the manual mode. This system is commonly referred to as DOGLESS ZERO RETURN.

Usually on older machines, after POWER OFF, it becomes necessary to re-establish the ZERO RETURN position before operation can begin. Therefore, the first act upon power on of the machine should be to return the machine to the ZERO RETURN either by the manual method or thru the programmed G28 command. Oftentimes, machines are set up and will not allow automatic operation until manual reference point return is completed. This type of machine set up restricts the initial reference point return to manual operation only.

The Program and Zero Return ?
As mentioned above, it often becomes necessary in a program to send one or all of the axis to the ZERO RETURN position for any of the reasons outlined above. This can be accomplished in the program through the G28 - Return to Reference Point command. Although most programmers use this command, I have encountered many instances when I ask them why and how they use it, they simply say, "I don't know, that's the way we do it and it works?"

Like all movement commands, G28 can be made in either the ABSOLUTE mode (G90) or INCREMENTAL mode (G91). In either case, the movement is always made through an INTERMEDIATE POINT in the G28 command. The intermediate point is a point the tool will go through before proceeding to the ZERO RETURN position.

If G28 is commanded in the ABSOLUTE mode, that is with an absolute dimension after the G28, this absolute dimension is regarded as the INTERMEDIATE POINT and the machine tool will first go to this point before moving to reference return. For example, used in a machining center, one might command :

Machining Center Ref. : G00 G90 G28 X4.00 Y2.00 ;
Lathe Ref. : G00 G28 X4.00 Z2.00 ;

The above command would move the tool from the current position to the absolute position of X4.00 and Y2.00, then to the X and Y axis reference point return position. This is movement through an absolute INTERMEDIATE POINT. This can be used for safety or clearance reasons and eliminates the need for a seperate move to the clearance point than another command to the zero return position.

When used in the INCREMENTAL mode, the G28 can produce a move directly to the zero return position. For example, the machining center command of :

Machining Center Ref. :G00 G91 G28 X0 Y0 ;
Lathe Ref. : G00 G28 U0 W0 ;

The above command actually establishes an intermediate point of with an incremental distance in X and Y of 0. Therefore the tool moves to the intermediate point (no movement) then to the reference point. The end result is a direct move to the reference point. This is commonly used in programming.

As stated in the above examples, the Return to Reference Point is performed using the modal G movement command (G00 or G01) if not commanded in the same line as the G28 command. Therefore, good programming practice is to include the G00 or G01 on the same line as the G28 command.

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

Monday, February 11, 2013

The How's and Why's of 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".

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

Monday, January 28, 2013

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.

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
Conversational CAD/CAM
Quoting & Estimating
G Code Conversion
CNC Training
.... and MORE !!!

Monday, January 14, 2013

A Homemade Bar Puller for Your CNC Lathe

We first published this tip a few years ago ... and it has become so popular and copied on many other sites and in many trade journals ... that we decided to help it live on forever by re-publishing here in our blog.

Enjoy ... and profit from this simple yet super efficient plan.

----------------------------------


One of the best ways to add efficiency to your CNC lathe is to make it run unattended. Using a bar feeder or a simple bar-puller, you can make your lathe run in a more complete AUTO cycle, stopping only for the refilling of the stock and minor offset adjustments. In this article, we'll share a simple but efficient design for a bar-puller and show you a programming example of how to put it to use.

Granted, a little work is required but when put to the right use, unattended operation can really help your bottom line. For example, how about being able to leave the shop at 5:00 and still have your lathe running producing another 50-60 parts while you're home eating dinner. Or for the one man shop, how about having production being run while your on the phone getting that next deal. With the right combination of cutting conditions and unattended operation, there's no telling where you can go.

The CONCEPT
The idea behind this bar-puller is to fill the spindle with a bar length of material, then using an auto cycle perform the following sequence :

  • Grab the stock with the puller
  • Open the chuck
  • Pull the stock to the desired length
  • Close the chuck
  • Retract the puller
  • Machine the part
  • Cut-Off the part

Then simply repeat the cycle again, the number of times for repeat depends on the number of parts that can be made using the length of bar stock in the spindle.

The SET-UP
To create your bar-puller feature, you'll need a couple of other items other than the bar puller to be outlined here.

First, you'll need to cut the bar stock the length of your spindle so the stock can be slid inside your spindle and pulled by the bar puller through the chuck or collett nose in the front. NEVER, NEVER, NEVER hang any size stock outside the end of the spindle - all stock must fit inside the spindle housing and be supported with spindle liners or a support ring as outlined below.


Since the difference between the stock OD and the spindle ID is usually pretty big, you can't just put the stock in the spindle. It must be supported in the spindle to prevent the stock from rattling around. This can be done with commercially purchased spindle liners or you can make a simple spindle liner ring using the design and concept outlined here. Please note that these liners take up the "slop" between the stock size and the ID of the spindle and must be used to prevent possible whip or damage to the spindle bearings or other possible injury.

One method is to make a ring out of plastic or similar material that attaches to the end of the stock with a set screw. The OD of the ring fits snuggly into the spindle ID and the ID of the ring attaches to the OD of the stock. This ring will move along the inside of the spindle along with the stock as it gets pulled toward the chuck. Calculate the number of cycles so this ring will reach the end of it's possible stroke as the max count is reached.



The BAR PULLER
Now the homemade bar puller needs to be made. The concept behind this puller is that you can make the size required as needed for the size material you are currently working with. You can make a few at a time, leaving some finishing operations until the ID size is determined. This way you'll have maybe 70% of the puller made then you can simply finish the rest when the time approaches and the final sizes are determined.

The bar puller uses a "split" piece of aluminum or other material softer than the material you will be machining. It uses simply a piece of bar or tube that is machined with the OD to fit into an ID tool holder station in the turret, and the ID slightly smaller than the OD of the stock. You may need to turn down the front end as per the sketch below to maintain a wall thickness that is thin enough to slide over the stock when split yet strong enough to pull the bar, depending on the weight of the bar stock determined by the diameter of the stock. The puller is then split in two or three or more places using a hack saw or slitting saw and an O-Ring placed on the OD of the puller to keep the tension. This allows for the puller to split and feed over the bar stock with the O-Ring providing tension to pull the stock and for the puller to return to it's original shape when done.


The PROGRAM
In the program, the puller is mounted in the turret, in our example Tool #3. Then in the CNC programs AUTO cycle, it is fed over the bar stock, the chuck opened, the turret moved to position taking the stock with it, the chuck closed, and the machining begun.</P><P>In the example below, we are simulating a Fanuc series 10T or higher CNC control. Your M functions may be different, please consult your programming manual for your specific commands. Use this program as a guide, not a bible. The X0 is the center line and Z0 for this tool is set at the face of the stock as it sticks out of the chuck after cut off.

N0001 --------------- sequence number for this operation
M05 ----------------- make sure the spindle is stopped
G00 T0303 ---------- index to the bar puller station
G00 X0 Z.200 ------- rapid to a clearance point
G98 ----------------- change feed to IPM
G01 Z-.750 F20.0 --- feed onto the stock
M11 ----------------- open the chuck
G01 Z2.000 ----------feed to needed length plane
M10 ----------------- close the chuck
G01 Z3.500 ---------- feed off the stock
G00 X8.00 Z8.00 ---- rapid to index position
T0300 --------------- cancel the tool offset
G99 ------------------ return feed to IPR
M01 ----------------- optional stop

This sequence should be placed at either the top or bottom of the machining program. The best way to put the AUTO cycle into use is with the use of sub-programming. The MAIN program would be the call for the machining program including the number of times to call the program depending on the number of pieces you can make from the length of bar stock in the spindle. The SUB program would actually do the pulling and the machining. For example, in the example below, program O0001 is the MAIN program, calling the SUB program O1111 - 12 times, which actually does the pulling and the machining.

O0001 ------------ Main Program
M98 P1111 L12 -- sub program call
M30 --------------- program end
..
..
O1111 ------------- Sub Program
N0001 ------------- Bar pull sequence
--
--
--
M01
N0002 ------------- machine the part
--
--
--
M01
N0003 ------------- cut off
 --
 --
 --
M01
M99 --------------- sub program end

In the above example, the operator only presses the Cycle Start on the MAIN program. This starts a 12 piece cycle that will include the pulling out of the stock, the machining of the part, and the cut off of the part. Recalling and executing the cycle 12 times.

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

Tuesday, January 1, 2013

Roughing Canned Cycle in Turning - Part 2

This post is continuing with the important feature of programming canned cycles for rough turning. In Part 1 we discussed the general outline, format and command lines for the cycles ... in Part 2 we want to illustrate some examples using Fanuc ( and therefore Haas ) programming that hopefully we give an even clearer picture of the uses and commands for these cycles. We do have some Okuma Programming Notes at the bottom of this post.

The examples will use the same shape ... but will illustrate the to main Fanuc cycles for bar stock roughing ... G71 -Turning and G72 - Facing.

G71 will produce a cutting motion along the Z axis ... generally referred to as a turning motion. The G72 cycle will produce a cutting motion along the X axis ... or a facing type motion.

The way we position our Points A - B - C will also determine the motion as illustrated below. The general rule of thumb is to describe the cutting motion through the finish contour code in a motion that moves from A to B along the contour to C. This description will assist you in placing Points A - B - C in their correct location in relation to the part and the contour.

___________________________________________________________

Example #1 : 
OD Cutting Along the Z axis - Turning
(1) First we established our points A - B - C and using a clearance amount of .100 in X and .050 in Z.
(2) In our program ... the first step is to rapid to point A ... N1000 = our P call in the canned cycle block.
(3) Then command the Canned Cycle Call
(4) Then rapid to point B and proceed around the part contour to point C ... N1100 = our Q call in the canned cycle block.

G96S650M03
G00X11.0Z1.0M08
G00X10.3408Z0.05
G71P1000Q1100U0.01W0.01D0.1F0.012
N1000G00X4.8729.0Z0.05
G01X4.8729.0Z0.0F0.012
G01X4.8729Z-1.2967F0.012
G01X6.9769Z-1.998F0.012
G01X6.9769Z-3.4277F0.012
G01X10.2409Z-3.4277F0.012
N1100G00X10.3408Z-3.4277
G00X10.3408Z0.05

___________________________________________________________

Example #2 :
OD Cutting Along the X Axis - Facing

By re-arranging Points A - B - C ... and using the G72 cycle ... we can change the cutting direction from turning to facing. The basics of the format and steps in the program are the same ... move from A to B along the contour to C ... and this will help us position Points A - B - C.

G96S650M03
G00X10.1000Z1.0M08
G00X10.3408Z0.05
G72P2000Q2100U0.01W0.01D0.1F0.012
N2000G00X10.3408Z-3.4277
G01X10.2408Z-3.4277F0.012
G01X6.9769Z-3.4277F0.012
G01X6.9769Z-1.998F0.012
G01X4.8729Z-1.2967F0.012
G01X4.8729Z0.0F0.012
N2100G00X4.8729Z0.05
G00X10.34Z0.05

___________________________________________________________

Example #3 :
ID Rough Cutting Along the Z Axis Turning

Now let's turn things to focus on ID cutting. Again ... the same procedures and rules apply ... flip Points A - B - C to reflect cutting the ID rather than the OD. The same rule applies ... move from A to B along the contour to C.

G96S650M03
G00X.9717Z1.0M08
G00X0.9717Z0.05
G71P1000Q1100U-0.01W0.01D0.05F0.012
N1000G00X2.7117Z0.05
G01X2.7117Z0.0F0.012
G01X2.7117Z-0.8633F0.012
G01X1.7622Z-1.6563F0.012
G01X1.0717Z-1.6563F0.012
N1100G00X0.9717Z-1.6563
G00X0.9717Z0.05

___________________________________________________________

Example #4 :
ID Rough Cutting Along the X Axis - Facing

And again ... by re-positioning Points A - B - C and using G72 ... we can perform the rough cutting using cutting from the centerline out in a facing motion.

G96S650M03
G00X1.0Z1.0M08
G00X0.9617Z0.05
G72P2000Q2100U-0.01W0.01D0.05F0.012
N2000G00X0.9617Z-1.6563
G01X1.0717Z-1.6563F0.012
G01X1.7622Z-1.6563F0.012
G01X2.7117Z-0.8633F0.012
G01X2.7117Z0.0F0.012
N2100G00X2.7117Z0.05
G00X0.9617Z0.05

___________________________________________________________

Okuma Programming Notes :

Okuma OSP controls refer to the cycles as illustrated above as LAP cycles. The format and use is pretty basically the same as described for Fanuc / Haas controls with some modifications. If you can understand the outlines above ... the notes below should get you through the differences between the Fanuc / Haas format and that required by OSP controls.

  1. For motion for both turning and facing ... command a G85 as the canned cycle command. The variables in the G85 line are outlined in Part 1 of this series.
  2. On the line immediately following the G85 call ... command a G81 for turning or G82 for facing. This G code should appear on a line by itself with no other code on the line.
  3. The N number command on the G85 line should refer to the N number of the line where the G81 / G82 is commanded.
  4. At the end of the sequence that describes the finish contour ... command a G80 on a line by itself to signify the end of the finish profile sequence.

The Fanuc / Haas code from example #1 above has been transposed for the Okuma OSP format below :

G96S650M03
G00X11.0Z1.0M08
G00X10.3408Z0.05
G85 N1000 U0.01 W0.01 D0.1 F0.012
N1000 G81
G00X4.8729.0Z0.05
G01X4.8729.0Z0.0F0.012
G01X4.8729Z-1.2967F0.012
G01X6.9769Z-1.998F0.012
G01X6.9769Z-3.4277F0.012
G01X10.2409Z-3.4277F0.012
G00X10.3408Z-3.4277
G80
G00X10.3408Z0.05


___________________________________________________________

They say a picture is worth a thousand words ... hopefully the illustrations here will help you solidify your programming of these powerful and important canned cycles.

If anyone notices any errors in this post ... please leave a Comment below and straighten it out ... to benefit anyone stopping by ... and Thanks in advance.

Happy Chip Making in 2013 !!



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