如何通过命令行向maya发送信息
白羽 2018-05-30 来源 :网络 阅读 2210 评论 0

摘要:本文将带你了解如何通过命令行向maya发送信息,希望本文对大家学Maya有所帮助。



写maya插件时,在maya的脚本编辑器里太难写了,一般都是用一些专门的IDE,比如sublime或pycharm,如果这时可以给这些专门的IDE写个插件,可以将在IDE里写的代码直接发送到maya里,岂不是很好,不用来回拷贝代码了,下面就说下这种插件实现的一个思路方法。


       主要用到一个命令是commandPort,相当于在maya里创建一个服务器端口,一般在我们本地用的话,随便给个大于1024的数值就行,至于为什么要大于1024,是因为小于1024需要有管理员权限才能绑定,相当于给maya设置了一个端口,maya这是就相当于是一个服务器了,现在我们就再完成一个客户端就行了。


[python] view plain copy
1. if not cmds.commandPort( ':7001', q = 1):  
2.     cmds.commandPort(n = ':7001')  
      客户端主要用到的是socket模块,具体用如下代码就可以实现:
[python] view plain copy
1. import socket  
2.   
3. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  
4. s.connect(('127.0.0.1', 7001))  
5. s.send('print "hello world"')  
6. s.send('polyCube()')  
7. s.send('python("import maya.cmds as cmds; cmds.sphere()")')

 

 

        这里相当于将mel和python都执行了下,如果需要的话,可以将mel设置一个端口,再将python设置成另一个端口,再用commandPort的sourceType来设置source类型,那么这时IDE就可以分别向maya发送mel和python脚本了,这是可以将我们在maya里设置端口的代码再改进下:

[python] view plain copy
1. if not cmds.commandPort( ':7001', q = 1):  
2.     cmds.commandPort(n = ':7001', stp = 'mel')  
3.   
4. if not cmds.commandPort(':7002', q = 1):  
5.     cmds.commandPort(n = ':7002', stp = 'python')  
 
        当然了,如果你又不想将IDE里的代码发送到maya里了,可以将maya里的这个端口都关掉就可以了:
[python] view plain copy
1. cmds.commandPort(n = ':7002', cl = 1)  
2. cmds.commandPort(n = ':7001', cl = 1)  
最后我们可以把代码,完善成如下的模式:
[python] view plain copy
1. if not cmds.commandPort( ':7001', q = True ):  
2.     cmds.commandPort(n = ':7001', stp = 'mel')  
3.     cmds.warning('Mel port is open...')  
4.   
5. else:  
6.     cmds.commandPort(n = ':7001', cl = 1)  
7.     cmds.warning('Mel port is close...')  
8.   
9.
10. if not cmds.commandPort(':7002', q = True):  
11.     cmds.commandPort(n = ':7002', stp = 'python')  
12.     cmds.warning('Python port is open...')  
13. else:  
14.     cmds.commandPort(n = ':7002', cl = 1)  
15.     cmds.warning('Python port is close...')


最后说一句,一个端口只能分配给一个服务器,在这里也就是只能将一个端口分配给一个maya,如果分配给两个的话,第二个会报错。

执行的结果如图:

 

 

 如何通过命令行向maya发送信息


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标常用软件之Maya频道!



本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程