Machsupport Forum
		Mach Discussion => General Mach Discussion => Topic started by: jetrebel on June 14, 2017, 05:00:37 AM
		
			
			- 
				I am using a macro from this site to work my ATC and I seem to be able to reliably change the tools using the T commands. The problem is that although the macro seems to show code to move the X&Y axis to a safe position nothing seems to happen. Could someone offer up any reasons to why this isn't happening? 
 
 I have cut and pasted the macro in it's entirety below.
 
 thanks
 Jason
 
 'This macro drives an 8 position stepper driven ATC.
 'It drives forward past a ratchet, then backwards a little to stall the motor
 'The Y axis is setup for 20 steps per mm, my ATC requires 900 steps per index
 'of 45 degrees.
 'Because of the stall, steps are lost. So, we switch to INC mode for the ATC,
 'then back to ABS mode before we exit.
 
 
 'OEMDRO(1200) is utilized to store the last used tool (OldTool) and is updated
 'upon final execution of the macro. This is resorted to as the Txxyy will overwrite
 'the "CurrentTool" DRO.
 'The Y axis is zeroed if tool is Number1, to prevent an overflow of the DRO after
 'multiple changes.
 
 
 'M6Start.m1s
 Message ("macro running")
 
 OldTool = GetOEMDRO (1200)
 Tool = GetSelectedTool()
 MaxToolNum = 8 'Max number of tools for the changer
 
 If OldTool = Tool Then
 Message ("Selected Tool already loaded")
 Exit Sub
 End If
 
 While Tool > MaxToolNum
 Tool = Question ("Enter New Tool Number up to " & MaxToolNum)
 Wend
 
 xval= getoemdro(800)   'get x
 zval= getoemdro(802)   'get z
 Call Dooembutton(138)
 While IsMoving()
 Wend
 
 
 moveto = Tool- OldTool
 
 If moveto<1 Then moveto=8+moveto
 
 code "G91"   'inc mode
 
 code "G00 Y"+Str((moveto*45)+5)
 While IsMoving()
 Wend
 
 
 code "G00 Y-5"
 While IsMoving()
 Wend
 
 code "G01 Y-2 F100"
 While IsMoving()
 Wend
 
 code "G90"   'abs mode
 
 NewTool=Tool
 If NewTool=1 Then
 Call DoOemButton (1009)      'zero Y
 End If
 
 
 Call SetUserDRO (1200, NewTool)
 SetCurrentTool(NewTool)
 code "G0 Z"+Str(zval)      'return to initial position
 code "G0 X"+Str(xval)      'before tool change
 While IsMoving()
 Wend