def connect(self): """connects to ZBrushServer """ try: # close old socket, might not exist so skip self.sock.close() except AttributeError: print 'no socket to close...' self.status = False utils.validate_host(self.host) utils.validate_port(self.port) self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # time out incase of a bad host/port that actually exists self.sock.settimeout(45) try: self.sock.connect((self.host, int(self.port))) except socket.error as err: self.status = False if errno.ECONNREFUSED in err: raise errs.ZBrushServerError('Connection Refused: %s:%s' % (self.host, self.port)) self.status = True
def send(self): """ send a file load command to ZBrush via ZBrushServer commands are send looking like: open|object#parentobject:nextobject#nextparent this is then parsed by ZBrushServer """ # export, send if self.status: self.export() sendlist = [] # organize lists so top level objects are first for obj in self.objs: if obj.split('#')[0] == obj.split('#')[1]: sendlist.append(obj) for obj in self.objs: if obj.split('#')[0] != obj.split('#')[1]: sendlist.append(obj) self.sock.send('open|' + ':'.join(sendlist)) # check receipt of objs self.load_confirm() else: raise errs.ZBrushServerError( 'Please connect to ZBrushServer first')
def load_confirm(self): """ make sure files loaded correctly """ if self.sock.recv(1024) == 'loaded': print 'ZBrush Loaded:' print('\n'.join(self.objs)) else: self.status = False self.sock = None print 'ZBrushServer is down!' raise errs.ZBrushServerError('ZBrushServer is down!')
def send(self): """ send to ZBrush """ # export, send if self.status: self.export() self.sock.send('open|' + ':'.join(self.objs)) # check receipt of objs self.load_confirm() else: raise errs.ZBrushServerError( 'Please connect to ZBrushServer first')
def load_confirm(self): """ checks with ZBrushServer to make sure objects are loaded after a send 'loaded' will be sent back from ZBrushServer on load of a object from maya """ if self.sock.recv(1024) == 'loaded': print 'ZBrush Loaded:' print ('\n'.join(self.objs)) else: self.status = False self.sock = None print 'ZBrushServer is down!' raise errs.ZBrushServerError('ZBrushServer is down!')