使用 Python 在 Maya 中切换 X 射线模式

Toggle X-Ray Mode in Maya using Python

我正在尝试将一些 Python 代码绑定到一个键,以便我可以在 Maya 中切换 X-Ray 模式。

让我感到困惑的一件事是,当我 运行 这行代码时...

def xrayQuery():
    cmds.modelEditor('modelPanel4', q=True, xr=True)

xrayQuery()

即使我查询了 xray 模式,也没有返回任何结果。但是当我 运行 只是没有功能的命令时...

cmds.modelEditor('modelPanel4', q=True, xr=True)

我第一次得到了预期的结果,这是一个基于是否启用 xray 模式的布尔结果。谁能告诉我这是为什么?

我是 python Maya 的新手,非常感谢您的帮助!谢谢!

如果您希望 user-defined 函数return 输出与内部调用相同的输出,则需要调用 return。 如下所示:

def xrayQuery():
    return cmds.modelEditor('modelPanel4', q=True, xr=True)

附带说明一下,如果您能解释编写函数而不是调用原始函数的目的,将有助于理解 use-case

所以我想出了一种方法来简化我试图实现的目标,这是几行代码来为特定视口打开和关闭 x-ray 视图模式。通过在此代码块中使用 'not' 运算符,我能够消除对 if else 语句的需要:

import maya.cmds as cmds

def xray_toggle():
    result = cmds.modelEditor('modelPanel4', q=True, xr=True)
    cmds.modelEditor('modelPanel4', e=True, xr=not result)

xray_toggle()