Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python在Maya中切换X射线模式_Python_Maya_Mel - Fatal编程技术网

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

使用Python在Maya中切换X射线模式,python,maya,mel,Python,Maya,Mel,我正在尝试将一些Python代码绑定到一个键,以便在Maya中切换X射线模式 让我困惑的是,当我运行这行代码时 def xrayQuery(): cmds.modelEditor('modelPanel4', q=True, xr=True) xrayQuery() 即使我查询了X射线模式,也没有返回结果。但是当我只运行命令而不运行函数时 cmds.modelEditor('modelPanel4', q=True, xr=True) 我第一次得到了我期望的结果,这是一个基于是否启

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

让我困惑的是,当我运行这行代码时

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

xrayQuery()
即使我查询了X射线模式,也没有返回结果。但是当我只运行命令而不运行函数时

cmds.modelEditor('modelPanel4', q=True, xr=True)
我第一次得到了我期望的结果,这是一个基于是否启用X射线模式的布尔结果。谁能告诉我这是为什么


我对Maya中的python非常陌生,因此非常感谢您的帮助!谢谢

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

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

另一方面,如果您可以解释编写函数而不是调用原始函数的目的,那么理解用例将很有帮助,因此我找到了一种简化我尝试实现的方法,这是为特定视口打开和关闭x射线视图模式的几行代码。通过在这段代码中使用“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()

谢谢你的回答!因此,我认为我使用的是一个函数,因为我希望切换同时影响所有四个视口,我认为这需要多行,如:cmds.modeleEditor('modelPanel4',q=True,xr=True)cmds.modeleEditor('modelPanel3',q=True,xr=True)cmds.modeleEditor('modelPanel2',q=True,xr=True)等等,但我真的不确定这是否有意义,或者这是最好的方法。