You can use a Macro and have that set a G52 offset in XYZ for the given tool. then you could tell Fusion to output M600 P1 or M600 P2 etc. and at the end of the run call M600 P0 to cancel the G52.
OK Here where I am now.
So I made the new M1002 macro to cover this task (M600 was already taken
)
I created a Relative Work Offsets table in the DIagnostic page of my custom screenset, so I can populate the G52 offsets from the X,Y,Z DRO and call them back with the M1002 the macro. Once a new G52 offsets is applied you get the relative message at the bottom of the screenset and also updated in the "REL WCS" window. For the moment if I saved the offsets as positive they are called as negative, I think is correct but I will just try and in case reverse the signal in the Macro if needed. Another thing I noticed is that if I am in DIAMETER mode then the X value are entered double like to convert radius to diameter. Need to see if that is an issue, I cna always /2 in the macro or use the screenset in RADIUS mode.
I will now modify the Post Processor to output M1002 Px for each new tool.
Below I have attache dfew pictures to show the screenset and few useful info. Time to test it!
For the moment the script I used are:
1st:
'Script to transfer X,Y,Z DRO to the corresponding G52 Px line in the table (each button transfers to different SetUserDRO ( *********x, Xdro) ecc...)
Xdro = GetOEMDRO (800) 'Get X DRO current working offset
Ydro = GetOEMDRO (801) 'Get Y DRO current working offset
Zdro = GetOEMDRO (802) 'Get Z DRO current working offset
SetUserDRO (1100, Xdro)
SetUserDRO (1101, Ydro)
SetUserDRO (1102, Zdro)
2nd:
'1002 Macros to call G52 X,Y,Z offsets from a given WorkOffsets (G54 usually)
DoSpinStop() ' Make sure the spindle is OFF
Code"M09" ' Make sure the coolant is OFF
nxt = Param1()
If nxt = 0 Then
code "G52 X" & GetUserDRO (1100) & "Y" & GetUserDRO (1101) & "Z" & GetUserDRO (1102)
End If
If nxt = 1 Then
code "G52 X" & GetUserDRO (1103) & "Y" & GetUserDRO (1104) & "Z" & GetUserDRO (1105)
End If
If nxt = 2 Then
code "G52 X" & GetUserDRO (1106) & "Y" & GetUserDRO (1107) & "Z" & GetUserDRO (1108)
End If
If nxt = 3 Then
code "G52 X" & GetUserDRO (1109) & "Y" & GetUserDRO (1110) & "Z" & GetUserDRO (1111)
End If
If nxt = 4 Then
code "G52 X" & GetUserDRO (1112) & "Y" & GetUserDRO (1113) & "Z" & GetUserDRO (1114)
End If
If nxt = 5 Then
code "G52 X" & GetUserDRO (1115) & "Y" & GetUserDRO (1116) & "Z" & GetUserDRO (1117)
End If
.... 'Here I will add all the other nxt = 6,7,8,9...14
SetUserLabel (15,"G52 P" & nxt) 'Display the new G52 Px offset on the screenset
Message "Relative WorkOffset G52 P" & nxt 'Display the new G52 Px offset on the screenset as INFO Message
End