Autodesk Maya 2016中的标记“testVisibility”无效

时间:2017-10-06 06:05:00

标签: python maya mel

我正在尝试确定当前是否有一组网格节点可见。使用pymel和isVisible()可以正常工作,但这是一个巨大的性能影响。 通过文档查看,我找到了(希望)解决我的问题的东西,即hide上的标记src | └---AppBundle | |---Controller | | | |---Backend | | | | | └---UserController | | | └---Frontend | | | └---UserController | |---Entity | |---Form | | | └---Backend | | | | | └---UserType | | | └---Frontend | | | └---UserType | └---Model | |---Repository | └---Handler

根据文档,flag命令将返回一个值,告诉我指定的节点是否可见。

问题是,该标志不存在。

testVisibility

给出错误

import maya.cmds as cmds

cmds.sphere(name='testsphere')
cmds.hide('testsphere', testVisibility = True)

同样的标志“tv”的短名称,以及在MEL中完成整个事情:# Error: Invalid flag 'testVisibility' # Traceback (most recent call last): # File "<maya console>", line 4, in <module> # TypeError: Invalid flag 'testVisibility' #

自Maya 2016以来,该文档包含此标志。这也是我目前使用的Maya版本(更具体地说,Maya 2016 SP5)。使用python文档的内置链接,我得到了与上面发布的相同的文档。浏览SP6的更改日志也没有提到它的任何内容,所以我认为它不会解决我的问题。

我在Maya 2017上尝试过相同的命令,但它确实有效。这对我没什么帮助,因为那不是我们团队目前使用的Maya版本。

我无法联系Autodesk支持,因为我不是订阅者(感谢autodesk,非常有帮助)。

所以我的问题是:

  • 有什么东西让我失踪/我忽略了吗?这些标志只在某种超级开发者插件中实现吗? Maya版本只使用以前版本的API吗?

    • 有没有办法检查一个命令是否有一个标志,而不试图抓住它?
    • 任何与我上面提到的pymel路径不同的解决方法?

1 个答案:

答案 0 :(得分:0)

你是对的。我还为tv命令尝试了hide标志,但它肯定不起作用。

尝试setter / getter:

import maya.cmds as cmds

cmds.sphere(name="testsphere")
cmds.setAttr("testsphere.visibility", False)
cmds.getAttr("testsphere.visibility")

我在Maya 2016/2018进行了测试。

# Result: False #