yminmax = [ _gc["min_y"] - grid_margin, _gc["max_y"] + grid_margin] dx = 10.0 dy = 10.0 if not dry_run: if do_homing: if verbose: print "# homing..." x = grbl.send_command("$H") if verbose: print "# got:", x if verbose: print "# moving z to:", z_ub x = grbl.send_command("G1 Z" + str(z_safe) + " F" + str(G1_SPEED_Z)) if verbose: print "# got:", x var = grbl.wait_for_var_position('z', z_safe) if verbose: print "# got:", var _pntsxy = [] _y = yminmax[0] while _y <= yminmax[1]: _x = xminmax[0] while _x <= xminmax[1]: _pntsxy.append( [_x, _y] ) _x += dx _pntsxy.append( [xminmax[1], _y] ) _y += dy _y = yminmax[1] _x = xminmax[0] while _x <= xminmax[1]:
print "# setup done\n" if not debug: grbl.get_var_position( "Z" ) for p in grid: x,y = p if verbose: print "# starting probe for x", x, "y", y, "(z", z_up, ")" if not debug: grbl.send_command( "g1 z" + str(z_up) ) grbl.send_command( "g0 x" + str(x) + " y" + str(y) ) grbl.wait_for_var_position("X", x) grbl.wait_for_var_position("Y", y) grbl.wait_for_var_position("Z", z_up) # probe grbl.send_command( "$P" ) # get touched position probe_str = grbl.send_command("$S") if verbose: print "# probe_str:", probe_str m = re.search("contact_z:(-?\d+(\.\d+)?)", probe_str) if m: z = m.group(1)