### Converts an input HP-GL file (command line argument) ### to Ettan Spot Picker commands and sends them via an IP ### socket to a GSIOC interface controller. import socket import sys # origin on the paper dx = 1000 dy = 1000 file=sys.argv[1] host = '192.168.1.2' port = 12318 size = 1024 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((host,port)) def cmd(cmd): print cmd s.send(cmd) data = s.recv(size) return(data) def xy(x,y): return cmd("bX%(x)04d/%(y)04d"%{"x": x+dx, "y": y+dy}) def penup(): return cmd("bZ0750") def pendown(): return cmd("bZ0670") def pentop(): return cmd("bZ1300") def _IN(arg): #cmd("bH") pentop() xy(dx, dy) return def PU(arg): args=arg.split(",") penup() if (len(args)>1): xy(int(args[0]), int(args[1])) return def PD(arg): args=arg.split(",") pendown() if (len(args)>1): xy(int(args[0]), int(args[1])) return def _VOID(arg): return # read file f=open(file, "r") c=f.read() commands = {"IN": _IN, "PU": PU, "PD": PD, "SP": _VOID, "\n": _VOID} for command in c.split(";"): ci = command[0:2] commands[ci](command[2:]) pentop() f.close() s.close()