MayaPython manipMoveContex公司

2024-09-30 01:37:50 发布

您现在位置:Python中文网/ 问答频道 /正文

现在,我正在尝试创建一个脚本来更改Maya中的轴方向。(此功能已在Maya建模工具箱中,但我想制作它的自定义和简化版本)但是我的函数遇到问题。代码如下:

cmds.optionMenu(label = 'Pivot', changeCommand = pivotOrient)

cmds.menuItem( label='Object', )
cmds.menuItem( label='World')
cmds.menuItem( label='Component' )
cmds.menuItem( label='Normal' )


def pivotOrient( p ):
    if p == 'Object':
        cmds.manipMoveContext(e= True, mode= 0)
    elif p == 'World':
        cmds.manipMoveContext(e= True, mode= 2)
    elif p == 'Component':
        cmds.manipMoveContext(e= True, mode= 10)
    else:
        cmds.manipMoveContext(e= True, mode= 3)

它显示“#Error:RuntimeError:file第40行:没有指定对象名。#“

你能帮我解决这个问题吗?很抱歉,我还是Python和Maya脚本的新手。提前谢谢。在


Tags: 功能脚本trueworldobjectmode方向label
1条回答
网友
1楼 · 发布于 2024-09-30 01:37:50

当处于editquery模式时,manipMoveContext命令需要第一个参数来指定上下文(请参见:http://help.autodesk.com/cloudhelp/2016/ENU/Maya-Tech-Docs/CommandsPython/manipMoveContext.html#hExamples)。在

在最简单的情况下,可以使用'Move'作为调用的第一个参数,如下所示: cmds.manipMoveContext('Move', e=True, mode=0)

但是对于不那么简单的场景(或者仅仅是为了使代码更健壮),您需要理解操纵器和上下文是如何工作的,并向您的pivotOrient函数添加一些逻辑。在

作为我意思的暗示,你可以看看这些:

另外,试试这个:

curctx = cmds.currentCtx()
print curctx
if cmds.superCtx(curctx, ex=1):
    ctx = cmds.superCtx(curctx, q=1)
    typ = cmds.contextInfo(ctx, q=1, c=1)
    print ctx, typ

相关问题 更多 >

    热门问题