我试图找到正确的代码让 Maya 选择我场景中的所有几何对象。 我在执行操作时尝试回显命令,我得到了这个:
SelectAllGeometry;
select -r `listTransforms -geometry`;
(编辑 > 按类型全选 > 几何图形)
谁能把它翻译成 Python?
请您参考如下方法:
您看到的是过程 SelectAllGeometry,及其内容:
select -r `listTransforms -geometry`;
该命令由几个部分组成。反引号中的部分:
listTransforms -geometry
其实就是一个MEL程序。运行命令 help listTransforms 以查看 .mel 文件的路径。读到这里,命令实际上是
listRelatives("-p", "-path", eval("ls", $flags));
它的输出是以下参数:
select -r the_list_of_geometry_transforms
因此请查看 Maya 的 MEL 和 Python 命令引用以了解 select、listRelatives 和 ls,以研究一个命令如何转换为另一个:
将所有这些结合在一起,实际调用的等效 MEL 是:
select -r `listRelatives("-p", "-path", eval("ls", $flags))`
作为 Python,这将是:
from maya import cmds
cmds.select(cmds.listRelatives(cmds.ls(geometry=True), p=True, path=True), r=True)
扩展为更具可读性:
from maya import cmds
geometry = cmds.ls(geometry=True)
transforms = cmds.listRelatives(geometry, p=True, path=True)
cmds.select(transforms, r=True)
