1
VB and the development of wizards / IsMoving Hangs Mach3
« on: July 18, 2014, 05:26:25 PM »
Hello All,
I have a custom version of a Z zeroing macro I found here. For some reason one of the IsMoving loops hangs Mach3 when it executes. The only way I can regain control is to hit the reset button in mach. The last message I see is "Retracting Probe to touch depth" and it never comes out of the IsMoving loop as "Retract Complete" never shows up. Anyone have thoughts on this? I am running version 066 (latest - just downloaded). I am calling the script from the Set Z Height button on the Offsets tab. Any input is greatly appreciated.
Thanks.
Greg
I have a custom version of a Z zeroing macro I found here. For some reason one of the IsMoving loops hangs Mach3 when it executes. The only way I can regain control is to hit the reset button in mach. The last message I see is "Retracting Probe to touch depth" and it never comes out of the IsMoving loop as "Retract Complete" never shows up. Anyone have thoughts on this? I am running version 066 (latest - just downloaded). I am calling the script from the Set Z Height button on the Offsets tab. Any input is greatly appreciated.
Thanks.
Greg
Code: [Select]
DownStroke = -0.5 'Set the down stroke to find probe
DownFeedRate = 10 'Set the down FeedRate
RetractStroke = 0.5 'Set the retract Stroke
RetractFeedRate = 40 'Set the retract FeedRate
PlateThickness = 0.060
CurrentFeed = GetOemDRO(818) 'Get the current feedrate to return to later
CurrentAbsInc = GetOemLED(48) 'Get the current G90/G91 state
CurrentGmode = GetOemDRO(819) 'Get the current G0/G1 state
' Not getting correct value for PlateThickness - hard coded for now
' PlateThickness = GetUserDRO(1151) 'Z-plate thickness DRO
If GetOemLed (825)=0 Then 'Check to see if the probe is already grounded or faulty
DoOEMButton (1010) 'zero the Z axis so the probe move will start from here
Code "G4 P2" ' this delay gives me time to get from computer to hold probe in place
Code "G90 G31 Z" &DownStroke &" F" &DownFeedRate 'probing move
While IsMoving() 'wait while it happens
Wend
ZProbePos = GetVar(2002) 'get the axact point the probe was hit
If Abs(ZprobePos) <= Abs(DownStroke)-0.1 Then 'Check if the probe has been found
Code "G0 Z" &ZProbePos 'go back to that point, always a very small amount of overrun
While IsMoving ()
Code "(Retracting Probe to touch depth)"
Wend
Code "(Retract Complete)"
Call SetDro (2, PlateThickness) 'set the Z axis DRO to whatever is set as plate thickness
Code "G4 P0.25" 'Pause for Dro to update.
Code "G1 Z" &RetractStroke &" F" &RetractFeedRate 'retract
While IsMoving ()
Wend
Code "(Z axis is now zeroed - hard coded to " &PlateThickness &")" 'puts this message in the status bar
Else
Code "G0 Z0" 'retract to start pos
While IsMoving ()
Wend
Code "(Z-Plate not found, check connection or stroke - try again)" 'puts this message in the status bar
End If
Else
Code "(Z-Plate is grounded, check connection and try again)" 'this goes in the status bar if aplicable
End If
Code "F" &CurrentFeed 'Returns to prior feed rate
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
Exit Sub