maya命令端口 commandPort

# Maya
import pymel.core as pm

class MayaPort(object):
    
    @classmethod
    def get_info(cls):

        print('''
----------------------
{} port :           
    number is : {}   
    status is : {}  
----------------------\n'''.format(cls._type.capitalize(), cls._num, cls._status))
    
    @classmethod
    def set_status(cls, status):
        
        status = bool(status)
        already = cls._status is status
        already_to_str = {True : ' already ', False : ' '}
        
        if not already:
            if status:
                pm.commandPort(n = ':%d' %cls._num, stp = cls._type)
            else:
                pm.commandPort(n = ':%d' %cls._num, cl = 1)
            cls._status = status
            
        if status:
            pm.warning('{0} port is{1}open.'.format(cls._type.capitalize(), already_to_str[already]))
        else:
            pm.warning('{0} port is{1}close.'.format(cls._type.capitalize(), already_to_str[already]))
    
class MelPort(MayaPort):
    
    _type = 'mel'
    _num = 7001
    _status = pm.commandPort(':%d' %_num, q = 1)

class PythonPort(MayaPort):
    
    _type = 'python'
    _num = 7002
    _status = pm.commandPort(':%d' %_num, q = 1)

if __name__ == '__main__':
    PythonPort.get_info()
    #PythonPort.set_status(1)
    #PythonPort.set_status(0)
# IDE
import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1', 7002))
p = s.send

p('print "IDE is linked to python."')

参考:

https://blog.csdn.net/lulongfei172006/article/details/53143463

猜你喜欢

转载自blog.csdn.net/weixin_42099626/article/details/81837455
今日推荐