This document contains a macro for automatically zeroing a tool using a touch probe. The macro saves the current machine state, probes the tool down until contact, retracts to the touch plate thickness, and sets the z-axis to zero. It restores the original machine state and prompts the user if an error occurs.
Download as DOC, PDF, TXT or read online on Scribd
100%(1)100% found this document useful (1 vote)
2K views
Auto Tool Zero Script
This document contains a macro for automatically zeroing a tool using a touch probe. The macro saves the current machine state, probes the tool down until contact, retracts to the touch plate thickness, and sets the z-axis to zero. It restores the original machine state and prompts the user if an error occurs.
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 2
CurrentAbsInc = GetOemLED (48) 'Copy current G90/G91 state
CurrentGMode = GetOemDRO (819) 'Copy current G0/G1 state
CurrentFeed = GetOemDRO (818) 'Copy current feedrate Contact = 0 'Clear the contact flag PlateThickness = 1.0 'Touch Plate thickness is set here ProbeFeed = 6 'Probing feedrate is set here SetVar (1, -6) 'Maximum probing distance is set here SetVar (2, 2) 'Retract height is set here Code "M5" 'Ensures spindle is not running Code “G20” 'Ensure inch units are used Zs = GetOemDRO (61) 'Copy current Z-Scale DRO Call SetOemDRO (61,1) 'Set Z-Scale DRO to 1 Label1: 'Entry point for Retry DoOemButton (1010) 'Zero Z-Axis DRO Code "(Setting Tool Zero)" 'Message for status bar While IsMoving () 'Wait until task has been completed Wend If GetOemLED (825) = 0 Then 'Check to see if touch plate is already grounded Code "G90 G31 Z #1 F" & ProbeFeed 'Probing move While IsMoving () 'Wait until task has been completed Wend If GetOemLED (825) = True Then 'Check to see if probe has touched plate Contact = 1 'Set the contact flag End If DoOemButton (1003) 'Clear a possible feed-hold condition ProbePos = GetVar (2002) 'Exact point probe touched Code "G0 Z" & ProbePos 'Go back to exact point of touch if there was any overrun While IsMoving () 'Wait until task has been completed Wend Call SetDRO (2,PlateThickness) 'Set Z-Axis DRO to Touch Plate thickness Code "G0 Z #2" 'Retract off Touch Plate the set distance While IsMoving () 'Wait until task has been completed Wend Code "(Z-Axis is now Zeroed.)" 'Message for status bar Code "F" & CurrentFeed 'Restore feedrate to original setting If Contact = 0 Then 'Probe reached max travel without touching Code "(ERROR - Probe did not touch.)" 'Message for status bar Response = MsgBox ("ERROR - Probe did not touch.",37,"Auto Tool Zero") If (Response = 4) Then 'User chose Retry GoTo Label1 'Retry Probing routine End If End If Else Code "(ERROR - Touch Plate is grounded.)" 'Message for status bar Response = MsgBox ("ERROR - Touch Plate is grounded - Check connection.",16,"Auto Tool Zero") End If Call SetOemDRO (61,Zs) 'Restore Z-Scale DRO to original setting If CurrentAbsInc = 0 Then 'If G91 was in effect before then return to it Code "G91" End If If CurrentGMode = 0 Then 'If G0 was in effect before then return to it Code "G0" End If