Exemple #1
0
    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
Exemple #2
0
    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')
Exemple #3
0
 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!')
Exemple #4
0
    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')
Exemple #5
0
    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!')