mayapy:图形输出在哪里?

时间:2014-02-27 10:49:44

标签: maya

  1. 找到 mayapy 命令的路径(Maya的预配置外部python解释器)

    $ locate mayapy # result: /usr/autodesk/maya2014-x64/bin/mayapy

  2. 在终端

    中启动Maya配置的python解释器

    $ /usr/autodesk/maya2014-x64/bin/mayapy

  3. 创建一个球体

    import maya.standalone maya.standalone.initialize( name='python' ) cmds.sphere( radius=4 )

  4. (这“工作”并返回以下结果:)

    `[u'nurbsSphere1', u'makeNurbSphere1']`
    

    问:我如何让这个球体出现在Maya(我已经打开)?

2 个答案:

答案 0 :(得分:3)

每个maya独立会话都是它自己的maya副本 - 它没有以任何方式连接到你的maya开放实例。这就像在同一时间以gui模式打开两个maya会话一样。

如果要从IDE或外部连接到Maya,可以使用Maya中的commandPort命令来响应通过tcp发送的数据包(这里是example using the Wing IDE,这里是using Eclipse)。对于更复杂的东西,您可以使用远程过程调用库(如RPyC)远程与Maya会话进行交互。

答案 1 :(得分:1)

以下是我使用外部python在当前打开的Maya中创建新球体的方法。

1)在Maya中打开一个端口(在屏幕的底部有一个显示“MEL”的命令行)并输入:

commandPort -stp "python" -n ":5055" ;

2)在新窗口/终端中打开python shell并运行以下python代码在Maya中创建一个新球体:

import socket
maya = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
maya.connect(("127.0.0.1", 5055))
maya.send("""maya.cmds.polySphere( radius=4 )""")

上面的代码将在您当前运行的Maya中创建一个新的球体。你可以使用任何python终端(不一定是mayapy)。

(如果您正在运行python3,最后一个命令将产生错误,直到您将其更改为:

maya.send(bytes("""maya.cmds.polySphere( radius=4 )""", 'UTF-8'))