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

问题描述

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

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

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

xrayQuery()

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

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

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

我对Maya中的python还是很陌生,因此任何帮助将不胜感激!谢谢!

解决方法

如果希望用户定义的函数返回与内部调用相同的输出,则需要调用return。 如下所示:

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

附带说明,如果您可以解释编写函数的目的而不是调用原始函数,那么了解用例将很有帮助

,

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

import maya.cmds as cmds

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

xray_toggle()