What's new
What's new

HAAS ST-10 part shift -Beginner needs some help-

vettedude

Stainless
Joined
Nov 25, 2009
Location
Texas
I am running several parts and would like some help on shifting G54 or using another method in order to not have to manualy offset for each part.

I searched, and I found the below thread which seemed fine except when i attempted to duplicate this, the machine tried to crash several times.

http://www.practicalmachinist.com/vb/haas/g54-shift-191455/

The parts I am making are about 0.25" thick, but due to all of the operations i need to take about 1/2" of stock per part.

I typically setup the machine offsets and parts, then run the below code. i then dial in -0.5 into the g54 z offset and hit cycle start again.
I don't want to stand in-front of the machine and do that every time, my stock sticks out of the chuck by about 7" so, that should be roughly 14 parts per piece of stock. I don't want to copy paste the program 14 times, but if i have to, i will. If someone could point me to an article or an explanation of what to do i would appreciate that.

One other thing, i would like the number of parts to be a parameter, so i could change it from say 2-100.

(P/N: SEPD-03250-03590-1242-A002E VERSION 1.0)
(PRE PROGRAM SETTINGS - ST-10 8" 4 JAW)
G54
G50 S2800
(MATERIAL:---)
G96 S500 M03

(BILLET SIZE OD 3.9 ID 3.1 L 9.000)


(OD TURN TO +0.020 FINAL SIZE)
G28 T1
G00 X3.9 Z0.1
G71 P11 Q12 D0.04 U0. W0. F0.025
N11 G00 X3.634
G01 Z-0.9
N12 G01 X3.9

(FACING )
G00 X3.64 Z0.2
G72 P1 Q2 D0.05 U0. W0. F0.01
N1 G00 Z0.025
N2 G01 X2.6
G00 X3.64
G00 Z0.
G01 X3.1 F0.003
G00 Z0.1

M05



(ID BORE TO -0.020)
G28 T10
M03
G00 X2.55 Z0.1
G71 P4 Q5 D0.02 U0. W0. F0.01
N4 G00 X3.206
G01 Z-0.9
N5 G01 X2.55
M05

(GROOVING)
G28 T7
M03 S200
G00 X3.319 Z0.1
G01 Z0.005 F0.05
G01 Z-0.143 F0.002
X3.37 F0.002
X3.331
Z-0.1292
Z0.1 F0.05
M05

(OD FINISH PROFILE)
M03 S500
G28 T2
G00 X3.5578 Z0.1
G42
N6 G01 Z0.01 F0.05
Z0. F0.005
G03 X3.5928 Z-0.0504 R0.0282 F0.001
G02 X3.5912 Z-0.0636 R0.0089
G03 X3.5873 Z-0.0985 R0.0235
G02 X3.5807 Z-0.1054 R0.0089
G01 Z-0.18
G40

(RAPID OUT)
G00 X3.9
Z0.1

M05
G28 T4
M04
G00 X3.9
G00 X3.8 Z-0.16
G71 P21 Q22 D0.02 U0. W0. F0.005
N21 G01 X3.468 Z-0.265 F0.005
Z-0.35
N22 G01 X3.8

G42
G01 X3.6515 F0.05
G01 X3.458 Z-0.2278 F0.001
Z-0.2408
G03 X3.42 Z-0.2598 R0.019 F0.005
G40
G01 X3.425 F0.005
G00 X3.9
Z0.1
M05

(ID FINISH PROFILE)
G28 T11
M03 S500
G41
G00 X3.282 Z0.1
G00 Z0.01
N8 G01 Z0. F0.005
G02 X3.2472 Z-0.0504 R0.0282 F0.001
G03 X3.2488 Z-0.0636 R0.0089
G02 X3.2527 Z-0.0985 R0.0235
G03 X3.2593 Z-0.1054 R0.0089
N9 G01 Z-0.18
G40

(RAPID OUT)
G00 X3.1
Z0.1

M05

G28 T9
M03
G00 X3. Z0.5
G00 X3. Z-0.16
G71 P23 Q24 D0.02 U0. W0. F0.005
N23 G01 X3.392 Z-0.26 F0.005
Z-0.35
N24 G01 X3.

G41
G01 X3.1885 Z-0.16 F0.005
G01 X3.382 Z-0.2278 F0.001
Z-0.2408
G02 X3.42 Z-0.2598 R0.0282 F0.001
G40
G01 X3.43
G00 X3.1
Z0.1
M05

(PART OFF)
G28 T5
M03 S100
G00 X4.5 Z-0.2598
X3.9
G01 X3.42 F0.05
G01 X3.34 F0.001

G00 X4.5
G28

M02
 
Holy crap Vette!
3.5" dia 7" long in an ST10?
Them are some balls you're wearing there.

Anyhow, the Haas has plenty of workoffsets, so why not just put the whole program into a local sub and call it 14 times, each time with a different offset.
Once you've touched off and set G54, just deduct .5 for G55, 1. for G56, 1.5 for G57 etc etc.


Of course you can also shift it with G50 but I hate that command.
You can also use G52, but in this case I'd prefer the individual workoffsets, since you have plenty enough of them.
 
if you know the definite shift point, why not use g55-g59? g55-g59 should have a z offset you are looking for, and make your x & y the same as g54 since you are just going down the column to make parts.
 
shane123;2322308.... and make your x & y the same as g54 since you are just going down the column to make parts.[/QUOTE said:
Hey! :dopeslap: Wake up Shane! :dopeslap:

It's an ST10, as in 6" turning center!

Nonetheless, it still has the very same number of available workoffsets as the mills ....
 
Hey! :dopeslap: Wake up Shane! :dopeslap:

It's an ST10, as in 6" turning center!

Nonetheless, it still has the very same number of available workoffsets as the mills ....


sorry, been a long day. your right tho, it should have multiple offsets on the g54-g59. he could also g10 work shift, after every part, and at the end of the loop, g10 workshift back to the first offset. matter of fact, i suggest using the g10 to set your g54-g59 in the program, so when ever you call that program up in the future, you have all your offsets in the program, no need to touch off or re-calculate.....
 
Holy crap Vette!
3.5" dia 7" long in an ST10?
Them are some balls you're wearing there.

Anyhow, the Haas has plenty of workoffsets, so why not just put the whole program into a local sub and call it 14 times, each time with a different offset.
Once you've touched off and set G54, just deduct .5 for G55, 1. for G56, 1.5 for G57 etc etc.


Of course you can also shift it with G50 but I hate that command.
You can also use G52, but in this case I'd prefer the individual workoffsets, since you have plenty enough of them.
3.5 x 7 seems to fit in okay, i guess i have never know anything else, so we just work with what we have. We know no better.

I would rather not have to put in a tone of offsets, I would rather have it setup diametrically if that is possible as this will be used for lots of different parts and the offset may not always be 0.500, it would be easier to just change one or two values rather than 15-20 in the offsets, plus that's allot of places for me to make a mistake and cause a crash.

Also, how would you call the local sub routine, i tried to use M97, but i must have done something wrong.
 
sorry, been a long day. your right tho, it should have multiple offsets on the g54-g59. he could also g10 work shift, after every part, and at the end of the loop, g10 workshift back to the first offset. matter of fact, i suggest using the g10 to set your g54-g59 in the program, so when ever you call that program up in the future, you have all your offsets in the program, no need to touch off or re-calculate.....

I like g10, but how would i get the program to cycle? I could write this in C++ but g-code is a bit err different?

Does this look okay?
O10000
M98 P10004 L14
M30

And modify the above program to:
O10004
G54
G10 L2 P1 x-0.50
...
Program above
...
M99
 
I didn't think setting 14 offsets is too much, specially when you only need to deduct .5 from the previous offset, but suit yourself.
In that case use G52 to shift the active ( in this case G54) offset and leave the rest alone.

Just type in
G54
G52 X0 Z0
M97 P1000
G52 Z-.5
M97 P1000
G52 Z-1.
M97 P1000
so on
and so on
and so on
G52 X0 Z0
M30
N1000
your entire turning cycle here
M99
%
 
I didn't think setting 14 offsets is too much, specially when you only need to deduct .5 from the previous offset, but suit yourself.
In that case use G52 to shift the active ( in this case G54) offset and leave the rest alone.

Just type in
G54
G52 X0 Z0
M97 P1000
G52 Z-.5
M97 P1000
G52 Z-1.
M97 P1000
so on
and so on
and so on
G52 X0 Z0
M30
N1000
your entire turning cycle here
M99
%

Would I include the M02 in my program?
 
Well, sort of, but G10 would be the proper way to shift the work coordinate.

However, that is completely unnecessary in this case ( and in many other cases when people use it ) because you have G52.

Far far less dangerous than any G10 monkeying with offsets from within the running program.
I can see probing routines accessing and modifying offsets via G10 and leave them as such, but normally running programs .... I just don't see
a benefit whatsoever.
Not on most of todays machines, certainly not on a Haas.
 
What is the danger?

That you actively set and change your offset via G10 from within the program after each part.
That is to say that during program run, the entries in the OFFSET page under G54 ( or whichever you use ) will be changing
as the program progresses.
No problem under normal circumstances. ( when the program finishes, it executes another G10 and changes the offset back to where it started from )

But then tool breaks after the 2nd or 3rd part, you hit Feedhold and then RESET.
You change your inserts, remove the partially finished part ( since it might have been destroyed or otherwise unmachinable as it is)
put in a new stock and happily hit the Green button hoping all is well....
Except, - unless careful planning and programming took place prior - your G54 workoffset is now 2 or 3 parts below the face of your shiny new stock
and your shiny new insert will make sure to rapid right through it.

That is why I've posted the G52 example above, and note that I explicitly clear the G52 shift not only once, but twice.
Right at the beginning and right at the end.

In addition you can change the Haas setting so G52 gets cleared automatically by RESET.

This is how I run multiple pieces with a single manual barpull, and the absolute worst that can happen is I cut air for the first few pieces ( if I absent mindedly forget to restart somewhere other than the beginning )
 
That you actively set and change your offset via G10 from within the program after each part.
That is to say that during program run, the entries in the OFFSET page under G54 ( or whichever you use ) will be changing
as the program progresses.
No problem under normal circumstances. ( when the program finishes, it executes another G10 and changes the offset back to where it started from )

But then tool breaks after the 2nd or 3rd part, you hit Feedhold and then RESET.
You change your inserts, remove the partially finished part ( since it might have been destroyed or otherwise unmachinable as it is)
put in a new stock and happily hit the Green button hoping all is well....
Except, - unless careful planning and programming took place prior - your G54 workoffset is now 2 or 3 parts below the face of your shiny new stock
and your shiny new insert will make sure to rapid right through it.

That is why I've posted the G52 example above, and note that I explicitly clear the G52 shift not only once, but twice.
Right at the beginning and right at the end.

In addition you can change the Haas setting so G52 gets cleared automatically by RESET.

This is how I run multiple pieces with a single manual barpull, and the absolute worst that can happen is I cut air for the first few pieces ( if I absent mindedly forget to restart somewhere other than the beginning )

I was thinking of G10 callouts for all the g54-g59's, with each piece having its own workset, incase he had any shorties he wouldnt be cutting air, he could call out to the section that has material. more bluntly, g52's for incremental, g10's for absolutes. with the right g10 coding, it wouldnt shift, it would be static and never have to worry about resetting back to a safe zero. and if he has more parts in the program than g54-g59, he could g52 shift from each g54-g59 location :) many many ways to skin this cat... its all fun till someone gets poked in the eye.....
 
If I understand your program, you are doing stuff, parting off, move over and do it again several times. Not familiar with Haas controls.

What I have done on several controls(Fanuc, Fagor, Anilam, GE 1050):

End of program:
M09
M5
G0 X0 Z4.176 (rapid to home/toolchange. This distance accounts for part thickness and a little extra to skim face of next part)
G92 Z5.0 (reset for next part)
M30

Make parts until there is no more material or looks like I will run into chuck on the next part.
 
If you don't have a CAM system to spit out the #'s and it is a repeat job I would write the program for the part in incremental. In your main program approcah to an absolute posistion, then call up the sub with m98 pxxxx Lxx, where the L count would be the amount time to run the sub, which is the amount of parts.

In you sub program you need to incrementally move in Z the shift amount at the end of each loop.

It would be a bit more work to make sure you have a round trip with the incremental program each time, but once you got it you can setup and run a full bar in the future without a ton of offset setting.

The biggest problem with that method is you can't really do a midbar start. A work around would be a main program with an absolute posistion before each sub callup, but then you wouldn't have your part # parameter you were looking for.

I use MCAM and, so it is easy to take a program and transform it around however many times in absolute coordinates, and have an N start for each part if I need to do a midbar start, but the above would be the what I would probably try if I didn't have a CAM.
 








 
Back
Top