Work Offset

Is there a way to program an offset without using G54,G55,G56 etc. I need a way to offset a machine using a Fanuc controller to use 25 work offsets. This way we wouldn't need manually enter offsets into a parameter page each time to offset the machine. Is there a G code that can manage this.

Thank you for any information on this.

Jerry

Reply to
jerrjocnc
Loading thread data ...

G10

Reply to
PrecisionMachinisT

Jerry:

G92 coordinate shift is one way. Here's an example:

formatting link
Although I'll add that a mid-program start might be a little dicey in certain circumstances.

Reply to
BottleBob

G10 L2 Pn Xnn.nnnn Ynn.nnnn Znn.nnnn

G10 is the data setting command, L2 designates a Work Offset, P is the Number of the offset (P1 is G54, P2 is G55, etc) and X, Y and Z are the values (distance from machine zero)

If you want to get real clever, use G91 with G10 to increment the work offset from the last setting.

Fred

Reply to
ff

When I need a lot of fixture offsets, I like to do the following:

Main Program:

G0 G54 G65 P9000 A1 (CALL MACRO THAT SETS COORDINATE SYSTEM #1) ... ... (MACHINING CODE IN SYSTEM #1) ... G65 P9000 A2 (CALL MACRO THAT SETS COORDINATE SYSTEM #2) ... ... (MACHINING CODE IN SYSTEM #2 ... Etc.

Macro Sub Program:

O9000 #100=[#[498+[#1*3]]] (SET #100 AS STORED X OFFSET #501 FOR A=1) (#504 IF A=2, #507 IF A=3, ETC.) #101=[#[499+[#1*3]]] (SET #101 AS STORED Y OFFSET #502 FOR A=1) (#505 IF A=2, #508 IF A=3, ETC.) #102=[#[500+[#1*3]]] (SET #102 AS STORED Z OFFSET #503 FOR A=1) (#506 IF A=2, #509 IF A=3, ETC.) G10 L2 P1 X#100 Y#102 Z#103 (SET G54 COORDINATE SYSTEM WITH SELECTED VARIABLES) M99 %

The actual values for the offsets are stored in varible registers starting with #500. The reason I like this approach is that I don't need (and neither does an operator) to edit the program when I want to set or adjust the fixture offset postions. The common variable registers function just like a list of offsets; and the program can be written, stored, recalled, or even used with different fixtures or different machines, without re-writing the code. Just put the appropriate list of X, Y, and Z values in the variables, and you're ready to go.

If you have 100 variables available, this method allows up to 33 sets of 3 axis fixture offsets, or up to 50 sets if you only need to adjust in 2 axes. More available variables, of course, gives even more capability. And, the macro call in the main is easy to read. A1 means co-system #1. A2 is co-system 2, etc. It's simple, and it doesn't clutter the program screen an operator actually looks at while trying to proof the program or make parts.

If you want to get a little fancier, and you want the list of variables to be easier to read and adjust, then change the variable assignment lines above to use the variables in sets of four, rather than three:

#100=[#[497+[#1*4]]] (SET #100 AS STORED X OFFSET #501 FOR A=1) (#505 IF A=2, #509 IF A=3, ETC.) #101=[#[498+[#1*4]]] (SET #101 AS STORED Y OFFSET #502 FOR A=1) (#506 IF A=2, #510 IF A=3, ETC.) #102=[#[499+[#1*4]]] (SET #102 AS STORED Z OFFSET #503 FOR A=1) (#507 IF A=2, #511 IF A=3, ETC.)

Doing it this way lets you enter offset values into nicely visible sets of three (X, Y, and Z), and then allows you to leave a blank offset between each set, like so:

#501 -10.000 (X Offset #1) #502 -10.000 (Y Offset #1) #503 -15.000 (Z Offset #1) #504 (Blank register, just to separate the sets of three) #505 -11.000 (X Offset #2) #506 -11.000 (Y Offset #2) #507 -16.000 (Z Offset #2) #508 (Blank spearator) Etc.

Have fun!

KG

Reply to
Kirk Gordon

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.