K-Glide,
Cool thank you. Your 45 degree mount and dowel placement made this fun, but it works.
So the white arrow is a pointer, fixed mount. Teach a UF to the pointer with a good pointer Utoolframe, origin touching and then Jog world X+ for X position, and jog Y+ for Y position. I'm gonna call it UF[ 2:Teach]
Touch your dispenser tip to the Pointer, with the robot faceplate squared up to your UF[2:teach]. Then the code is...
Utool_num = 0
Uframe_num = 2 (teach)
PR[3:found] = LPOS
PR[4:New Utool] = LPOS - LPOS (to zero out the PR)
PR[4:New Utool, 1] = PR[3:found,3] (I rotated picture, dowel is down, so X is a plus)
PR[4:New Utool, 2] = PR[3:found,2] (because of rotation whichever side Y is, it is in the UF)
PR[4:New Utool, 3] = PR[3:found,1] * (-1) (LPOS will show minus in the UF X, It will be a + tool Z)
! we know that it is 45 degrees pitch
PR[4:New Utool, 5] = 45
Utool [1:dispense] = PR[4:New tool]
Once your comfy with it, Write a program to preposition the Tool in the config you want.
Drive down, touch tip to pointer, run the above code. No applying offsets, no monkeying around.
If your dispense programs have hundreds of points, no problem. Adjusting the tool frame does the work for you