I have, but I don’t think it’s what I am looking for. I would like to offset the TCP for a couple of moves where soft float is used. It would be cleaner to offset it once, go through the moves and clear the offset.
I may be incorrect, but it looks like that is transforming the TCP along the J6 coordinates. I want to move it along the tool’s coordinates which are not the same as J6.
How did you create your TCP? Did you add the rotation of the tool into the TCP tooldata? If you created the tooldata with the correct orientation then you can use the RelTool function to offset from a point relative to the tool coordinate system.
I have the same problem. I need an instruction to offset the tool coordinates in the toolframe direction and not the tool0 directions. Does anyone know how to do that??
mechman is right, the following instruction offsets the tool in the tool0 direction:
tool_offset.tframe.trans.x:= tool1.tframe.trans.x+100;
My tool has a 45degree angle from the flange. I guess I could do some math to calculate it myself but there has to be an easier way.???
I think it’s quite easy to calculate with multiplying the pose datas. You can use your old TCP and some offset pose and multiply them and the result will be the new TCP. For example like this:
I made this function to account for our tools having a variety of standoffs. I know it is the same as your response Osku, but could be handy. Its a shame it doesnt work in a MoveL
e.g.
MoveL p10, v100, z5, myToolOffs(myTool1,0,0,reg1);
FUNC tooldata myToolOffs(
tooldata RefTool,
num xOffs,
num yOffs,
num zOffs)
VAR pose tStandoff:=[[0,0,0],[1,0,0,0]];
!To call use
!tNewTool:=myToolOffs(tOldTool,0,0,10);
!
!creates a new pose with the new standoff
tStandoff.trans.x:=xOffs;
tStandoff.trans.y:=yOffs;
tStandoff.trans.z:=zOffs;
!Adds the new standoff to the tool
RefTool.tframe:=PoseMult(RefTool.tframe,tStandoff);
RETURN RefTool;
ENDFUNC