-- Mach4Turn 8 positon tool Turret function m6() inst = mc.mcGetInstance() selectedtool = mc.mcToolGetSelected(inst) currenttool = mc.mcToolGetCurrent(inst) Ulock = 10 --' Sets the Unlock Movement in Degrees Value Rlock = 10 -- ' Sets the Relock Movement in Degrees Value T1SafePosX = 2.25 T1SafePosZ = 1.5 if (selectedtool > 8) or (selectedtool < 1) then --DoButton(3) --'Stop Program Run mc.mcCntlSetLastError(inst,"Program Stopped due to Tool Number Out of Range") do return end end if (selectedtool == currenttool) then mc.mcCntlSetLastError(inst,"Tool is the same NO tool change needed") do return end end local Tp = 0 --' Zero's the Tool Positon values DO NOT CHANGE --'------------------- Move to Safe Tool Position ----------- mc.mcCntlSetLastError(inst," Move to Tool Safe Pos") mc.mcCntlGcodeExecuteWait(inst, "G1 F30 X" .. T1SafePosX); mc.mcCntlGcodeExecuteWait(inst, "G1 F40 Z" .. T1SafePosZ); mc.mcCntlSetLastError(inst,"Safe XZ Move Completed") --'------ Begin Tool Change , UNLOCK turret -------------- mc.mcCntlSetLastError(inst," Tool Turret UNLOCKING ") --mc.mcCntlGcodeExecuteWait(inst, " G91"); --'Set to INC mc.mcCntlGcodeExecuteWait(inst, " G52 C0"); mc.mcCntlGcodeExecuteWait(inst, " G00 C " ..Ulock); --' Unlock turret mc.mcCntlGcodeExecuteWait(inst, " G52 C0"); --'------ Select Tool ------------------------------------ if (selectedtool == 1) then mc.mcCntlSetLastError(inst,"Moving to Tool# " ..selectedtool ) if (selectedtool > currenttool) then Moves = selectedtool - currenttool Moves = (Moves * 45) mc.mcCntlSetLastError(" G00 C" ..Moves); end if (selectedtool < currenttool) then Moves = ((8 - currenttool) + selectedtool) Moves = (Moves * 45) mc.mcCntlSetLastError(" G00 C " ..Moves); end Tp = 0 mc.mcCntlSetLastError(inst,"Tool#1 Loaded") end --'------------------------------------------------------------- if (selectedtool == 2) then mc.mcCntlSetLastError(inst, "Moving to Tool# " ..selectedtool ) if (selectedtool > currenttool) then Moves = selectedtool - currenttool Moves = (Moves * 45) mc.mcCntlGcodeExecuteWait(inst, " G00 C" ..Moves); end if (selectedtool < currenttool) then Moves = ((8 - currenttool) + selectedtool) Moves = (Moves * 45) mc.mcCntlGcodeExecuteWait(inst, " G00 C " ..Moves); end Tp = 45 mc.mcCntlSetLastError(inst,"Tool#2 Loaded") end --'---------------------------------------------------------- if (selectedtool == 3) then mc.mcCntlSetLastError(inst,"Moving to Tool# " ..selectedtool ) if (selectedtool > currenttool) then Moves = selectedtool - currenttool Moves = (Moves * 45) mc.mcCntlGcodeExecuteWait(inst, " G00 C" ..Moves); end if (selectedtool < currenttool) then Moves = ((8 - currenttool) + selectedtool) Moves = (Moves * 45) mc.mcCntlGcodeExecuteWait(inst, " G00 C " ..Moves); end Tp = 90 mc.mcCntlSetLastError(inst, "Tool#3 Loaded") end --'-------------------------------------------------------------- if selectedtool == 4 then mc.mcCntlSetLastError(inst,"Moving to Tool# " ..selectedtool ) if selectedtool > currenttool then Moves = selectedtool - currenttool Moves = (Moves * 45) mc.mcCntlGcodeExecuteWait(inst, " G00 C" ..Moves); end if selectedtool < currenttool then Moves = ((8 - currenttool) + selectedtool) Moves = (Moves * 45) mc.mcCntlGcodeExecuteWait(inst, " G00 C " ..Moves); end Tp = 135 mc.mcCntlSetLastError(inst,"Tool#4 Loaded") end --'-------------------------------------------------------------- if (selectedtool == 5) then mc.mcCntlSetLastError(inst,"Moving to Tool# " ..selectedtool ) if (selectedtool > currenttool) then Moves = selectedtool - currenttool Moves = (Moves * 45) mc.mcCntlSetLastError(" G00 C" ..Moves); end if (selectedtool < currenttool) then Moves = ((8 - currenttool) + selectedtool) Moves = (Moves * 45) mc.mcCntlSetLastError(" G00 C " ..Moves); end Tp = 180 mc.mcCntlSetLastError(inst,"Tool#1 Loaded") end --'-------------------------------------------------------------- if (selectedtool == 6) then mc.mcCntlSetLastError(inst,"Moving to Tool# " ..selectedtool ) if (selectedtool > currenttool) then Moves = selectedtool - currenttool Moves = (Moves * 45) mc.mcCntlSetLastError(" G00 C" ..Moves); end if (selectedtool < currenttool) then Moves = ((8 - currenttool) + selectedtool) Moves = (Moves * 45) mc.mcCntlSetLastError(" G00 C " ..Moves); end Tp = 225 mc.mcCntlSetLastError(inst,"Tool#1 Loaded") end --'-------------------------------------------------------------- if (selectedtool == 7) then mc.mcCntlSetLastError(inst,"Moving to Tool# " ..selectedtool ) if (selectedtool > currenttool) then Moves = selectedtool - currenttool Moves = (Moves * 45) mc.mcCntlSetLastError(" G00 C" ..Moves); end if (selectedtool < currenttool) then Moves = ((8 - currenttool) + selectedtool) Moves = (Moves * 45) mc.mcCntlSetLastError(" G00 C " ..Moves); end Tp = 270 mc.mcCntlSetLastError(inst,"Tool#1 Loaded") end --'-------------------------------------------------------------- if (selectedtool == 8) then mc.mcCntlSetLastError(inst,"Moving to Tool# " ..selectedtool ) if (selectedtool > currenttool) then Moves = selectedtool - currenttool Moves = (Moves * 45) end mc.mcCntlSetLastError(" G00 C" ..Moves); if (selectedtool < currenttool) then Moves = ((8 - currenttool) + selectedtool) Moves = (Moves * 45) mc.mcCntlSetLastError(" G00 C " ..Moves); end Tp = 315 mc.mcCntlSetLastError(inst,"Tool#1 Loaded") end --'------------ end Tool Change ------------------------ mc.mcCntlSetLastError(inst," Tool Turret LOCKING ") mc.mcCntlGcodeExecuteWait(inst, " G52 C0"); mc.mcCntlGcodeExecuteWait(inst, " G00 H-" ..Rlock ); -- ' Lock Turret mc.mcCntlGcodeExecuteWait(inst, "G52 C" ..Tp); --mc.mcCntlGcodeExecuteWait(inst, "G90"); --' Reset to ABS tool = selectedtool mc.mcToolSetCurrent(inst, selectedtool) if (mc.mcInEditor() == 1) then m6() end end