Maya Python引用optionMenu返回为不存在

时间:2018-04-17 01:24:54

标签: python maya optionmenu

我正在尝试编写一个脚本,按下按钮并选择一个关节,将复制所选关节的变换值,然后创建一个从选项菜单中选择的控制器。我的问题是让代码读取选项菜单。我尝试了几种变体,并且都说没有带有所选名称的选项菜单。

代码如下....

import maya.cmds as maya

def testWin():
    winName = maya.window(title="test", rtf = True, mxb = False)
    maya.columnLayout()

    maya.button(label = "run test", c = "test()")
    shapeMenu = maya.optionMenu( label='Shape Menu', changeCommand="test()" )
    maya.menuItem( label='Circle' )
    maya.menuItem( label='Square' )
    maya.menuItem( label='Triangle' )

    maya.showWindow(winName)

testWin()

def test():
    sel = maya.ls(type = "joint", sl=True)
    if not sel:
        print "select at least 1 JOINT"

    else:
        new_pos = maya.xform(q=True, t=True, ws=True)
        new_rot = maya.xform(q=True, rotation=True, ws=True)
        shape = maya.optionMenu("Shape Menu", q = True, value = True)

        if shape == "Circle":
            new_control = maya.circle(center = new_pos)
        elif shape == "Square":
            new_control = maya.nurbsSquare(center = new_pos)
        elif shape == "Triangle":
            new_control = maya.circle(center = new_pos, degree = 1, sections = 3)

1 个答案:

答案 0 :(得分:1)

您无法确定maya会在创建GUI对象时为您提供您所要求的名称 - 在这种情况下,它将永远不会起作用,因为返回的名称将没有空间。

您应该从shapeMenu函数返回testWin()的值,然后在test()函数

中使用该值,来捕获选项菜单的名称
相关问题