View Full Version : grooving sub program


cylicron
10-07-2008, 10:47 PM
i have an sl403 mori seiki lathe with a msx-500 III control

i am putting 280 grooves in a roll that are .220" wide and .215" deep with a
.045" "lip" between each groove, my insert is
.189" wide. can someone give me an example program to cut this groove to finished width and depth before moving to the next groove? currently we groove all 280 of them .189" wide in a pecking cycle then we come back and shift the tool to widen the grooves to the finished size.

g-codeguy
10-14-2008, 01:44 PM
Never heard of that control, but I can give you examples for a Fanuc control, and you could then modify it for use in your control. There are several ways you could do it. I might be a bit concerned that the "lip" could be pushed sideways if finishing each groove before moving to the next. I think you should be alright if you don't get aggressive with the initial roughing plunge. Some depends on the material being machined. Lot of work for one tool to rough and finish, IMHO unless running aluminum, brass, plastics, etc. type materials.

If you don't already know, G75 is a pecking cycle. One way is to run the groove as a subprogram. For programming ease let's assume the O.D. is 2.0 and the furthest edge of the first groove is at Z-1.

O1234 (GROOVE SUB)

G1X2.F.004
G75R.004
G75X1.58P500F.003
X2.03F.03
W-.0455
X2.W.015F.003
G2U-.03W.015R.015F.001
G1X1.57F.003
U.01W.005
G0X2.03
G1W.056F.03
X2.W-.015F.003
G3U-.03W-.015R.015F.001
G1X1.57F.003
W-.031
U.01W.005
G0X2.04W.0105
M99


Main Program

G0X2.04Z-.9845
M98P1234
W-.265
M98P1234
W-.265
M98P1234
ETC.

Probably one of the easiest, but not the shortest.

Now if the control has something similar to Fanuc Macro B, you could shorten the program up considerably. Like so

Main Program.

G0X2.04Z-.9845
#33=0
WHILE[#33LT280]DO1
#33=#33+1
G1X2.F.004
G75R.004
G75X1.58P500F.003
X2.03F.03
W-.0455
X2.W.015F.003
G2U-.03W.015R.015F.001
G1X1.57F.003
U.01W.005
G0X2.03
G1W.056F.03
X2.W-.015F.003
G3U-.03W-.015R.015F.001
G1X1.57F.003
W-.031
U.01W.005
G0X2.04W.0105
IF[#33EQ280]GOTO9
W-.265
N9END1
(grooves finished. go to clearance.)

This will run all 280 grooves.

Although I've used macros for years, this is only my second WHILE statement. I'm sure others could write it more elegantly, but I know it works, cuz I tried it a few minutes ago. Would hate to post something that didn't work. :(

I don't know how to keep the tool from moving W-.265 before kicking out of the loop without using the IF/GOTO statement. That eliminates the extraneous move. One of you more experience guys want to tell me, I'd like to learn.

Thanks, and I hope this helps you.

EDIT: Actually I think I could write the While statement and eliminate the IF/GOTO statement by moving the W-.265 to a block after #33=#33+1 and changing the approach by .265 less. Just made more sense to me this way.

g-codeguy
10-14-2008, 06:19 PM
Thought about another way to run the grooves on the way home. Never had a need to use it myself, but pretty sure it will work. Add one block to my first subprogram:

O1234 (GROOVE SUB)

G1X2.F.004
G75R.004
G75X1.58P500F.003
X2.03F.03
W-.0455
X2.W.015F.003
G2U-.03W.015R.015F.001
G1X1.57F.003
U.01W.005
G0X2.03
G1W.056F.03
X2.W-.015F.003
G3U-.03W-.015R.015F.001
G1X1.57F.003
W-.031
U.01W.005
G0X2.04W.0105
W-.265
M99

Main Program

G0X2.04Z-.9845
M98P2801234
(grooves finished. continue with program)

Problem is I don't know what the limit is on the number of times you can run a program. I think I gave the correct format. No Fanuc manual at home to check. The other method uses an "L" to specify the number of times to run the job. Something like this:

M98P1234L280

Don't take these formats as gospel. Like I said, I've never had the need to use something like this.

This method should be more what you are looking for. Nice and short.

Problem with program as shown is it will increment W-.265 after the last groove. May or may not be a problem. Easy to get around. Make a second subprogram without the W-.265 block (P1235). Run the first sub 279 times. Tool will be in correct position for the last groove. Run the second sub.

G0X2.Z-.9845
M98P2801234
MP8P1235
(DONE)

g-codeguy
10-21-2008, 12:15 PM
Job finished before I posted so you never checked back?