Discussion of fix for versa corner probing in 2.9...
Code:
def probe(self, name):
if name == "xminus" or name == "yminus" :
travel = 0 - self.data_max_travel
latch = 0 - self.data_latch_return_dist
elif name == "xplus" or name == "yplus":
travel = self.data_max_travel
latch = self.data_latch_return_dist
else:
return -1
axis = name[0].upper()
laxis = name[0].lower()
# save current position
rtn = self.CALL_MDI_WAIT('#<{}>=#<_{}>'.format(laxis,laxis), self.timeout)
# probe toward target
s = """G91
G38.2 {}{} F{}""".format(axis, travel, self.data_search_vel)
rtn = self.CALL_MDI_WAIT(s, self.timeout)
if rtn != 1:
return 'Probe {} failed: {}'.format(name, rtn)
# retract
s = "G1 {}{} F{}".format(axis, -latch, self.data_rapid_vel)
rtn = self.CALL_MDI_WAIT(s, self.timeout)
if rtn != 1:
return 'Probe {} failed: {}'.format(name, rtn)
# wait and probe toward target
s = """G4 P0.5
G38.2 {}{} F{}""".format(axis, 1.2*latch, self.data_probe_vel)
rtn = self.CALL_MDI_WAIT(s, self.timeout)
if rtn != 1:
return 'Probe {} failed: {}'.format(name, rtn)
# retract to original position
s = "G90 G1 {}#<{}> F{}".format(axis, laxis, self.data_rapid_vel)
rtn = self.CALL_MDI_WAIT(s, self.timeout)
if rtn != 1:
return 'Probe {} failed: {}'.format(name, rtn)
# all good
return 1