Bit rushed to read all you have written but if I recall Dolphin just lets you set a tool change position for ALL TOOLS rather than one for individual.
You could do a few things if you want to clear the offsets,
1. Is like I mentioned above, call the slot number but with 00 for the offset part of it.
2.You could call T0000 and depending on your Macro it would probably just do the same as above.
3.Use the additional Command option in Dolphin to insert a G53G0X*Z* (ie a machine coords move) so that the machine goes to the desired position depending on the tool you are currently at and the one you want.
For the last one you could probably even write in the PP to automatically enter a G53 move and have it look at current and next tool and decide the position required, I did something similar when I had both front and rear toolposts and was using Dolphin.
Hood
Hi and thx for help, that was good idea, I tried that , T0000 and it is same effect as G49 that does not work in Mach3 apperently.
I have Partmaster Lathe V13, and I opend all tabs and I did mange to find only where to define safe tool change (home position) for front and rear turret, I have only rear turret, so maybe it was possible in older version or I just do not know where should I enter those data , even I saw in manual from post processor commands that serves for taking coordiantes of tool change positions, so this is why I am not sure did I can not find where to enter those data (that would be totaly crazy) or that just does not exist for lathe, maybe it is for mill, I do not know.
So have idea what to make with T0000 when G49 does not work and now I came to problem that is connected with how is my tool changer designed, it can only rotate in one direction and then it locks in opposite side, and everything worked perfectly until I stated to experiment with entering T0000, it does not rotates turret but inside of macro are two functions, one gives information about previous tool and other about tool that I want to choose, so according to difference between those 2 information I made checks how to determine for how much I need to actually to rotate turret that will give me in reality tool same as in mach3.
Other thing when I enter in mach3 I need to reference turret first ( I have one optical sensor in turret) and after turret is referenced (rotation of magazine is stopped on place after I press command T0101 I will get in reality tool 1).
So problem is I do not know how to adjust function that it only once rotate turret so I have synchronization between mach3 tool number 1 and really tool 1 in turret, I tried to use ( I had idea to use variable that could be flag, so if I once initialize turret I can remove value of flag from 1 to zero in order not to enter in that part of if then check, so I think that I conclude every time I enter in macro for controlling tool changer flag loses its value, so how to make that variable save/ memorize value.
I will post code of m6start , it works fine until I choose T000 and after that T0101, it should not move turret but it does, because I do not know how to write conditions that if OldTool is =0 and NewTool =1 that that part should only be entered once , I know it is possible how it is written to find combination that I enter multiple time but I really can not think of some solution without variable that can save data (marker, flag, I hope you get idea).
So here is code, if somebody have idea how to make that (will help me a lot), I was trying to think out solution yesterday till 2 in the morning and I thought that I save macro and today when I start all over again , I opened macro and it was empty, I could not believed LOL, luckily I manage to remember logic (If then parts), rest of it I had saved under another name in case that this happens.
Sub main ()
Dim OldTool, NewTool , a As Integer
CurrentFeedrate = GetOemDRO(818)
Code"G90 G94"
Message "Old tool New Tool " &GetCurrentTool () &GetSelectedTool ()
OldTool= GetCurrentTool ()
NewTool = GetSelectedTool ()
SetCurrentTool (NewTool)
If NewTool=1 And OldTool=0 Then
a=1
GoTo label1
End If
If NewTool=0 And OldTool=0Then
a=0
GoTo label1
End If
If NewTool=0 Then
a=0
End If
If NewTool > 0 And OldTool>0 Then
a=NewTool - OldTool
End If
If NewTool > 1 And OldTool=0 Then
a=NewTool-OldTool-1
End If
label1:
If (a = 1) Or (a = -7) Then
Code "G91G01 Y1.251 F200"
While IsMoving()
sleep(50)
Wend
Code "G91G01 Y-0.201 F20"
While IsMoving()
sleep(50)
Wend
End If
If (a = 2) Or (a = -6) Then
Code "G91G01 Y2.301 F200"
While IsMoving()
sleep(50)
Wend
Code "G91G01 Y -0.201 F20"
While IsMoving()
sleep(50)
Wend
End If
If (a =3) Or (a = -5) Then
Code "G91G01 Y3.351 F200"
While IsMoving()
sleep(50)
Wend
Code "G91G01 Y -0.201 F20"
While IsMoving()
sleep(50)
Wend
End If
If (a =4) Or (a = -4) Then
Code "G91G01 Y4.401 F200"
While IsMoving()
sleep(50)
Wend
Code "G91G01 Y -0.201 F20"
While IsMoving()
sleep(50)
Wend
End If
If (a =5) Or (a = -3) Then
Code "G91G01 Y5.451 F200"
While IsMoving()
sleep(50)
Wend
Code "G91G01 Y -0.201 F20"
While IsMoving()
sleep(50)
Wend
End If
If (a =6) Or (a = -2) Then
Code "G91G01 Y6.501 F200"
While IsMoving()
sleep(50)
Wend
Code "G91G01 Y -0.201 F20"
While IsMoving()
sleep(50)
Wend
End If
If (a =7) Or (a = -1) Then
Code "G91G01 Y7.551 F200"
While IsMoving()
sleep(50)
Wend
Code "G91G01 Y -0.201 F20"
While IsMoving()
sleep(50)
Wend
End If
Code " G90 "
Code "F" & CurrentFeedrate
End Sub