通过类型全选:几何。等价的Python脚本?

Ram*_*uer 1 python scripting geometry select maya

我试图找到正确的代码以使maya选择场景中的所有几何对象。我尝试在执行操作时回显命令,并且得到以下信息:

SelectAllGeometry;
select -r `listTransforms -geometry`;
Run Code Online (Sandbox Code Playgroud)

(编辑>按类型全选>几何)

有人可以将其翻译成Python吗?

mhl*_*ter 7

您所看到的是该过程SelectAllGeometry及其内容:

select -r `listTransforms -geometry`;
Run Code Online (Sandbox Code Playgroud)

该命令分为几个部分。反引号中的部分:

listTransforms -geometry
Run Code Online (Sandbox Code Playgroud)

实际上是MEL程序。运行命令help listTransforms以查看.mel文件的路径。读到该命令实际上是

listRelatives("-p", "-path", eval("ls", $flags));
Run Code Online (Sandbox Code Playgroud)

该参数的输出是:

select -r the_list_of_geometry_transforms
Run Code Online (Sandbox Code Playgroud)

因此,请检查Maya的MEL和Python命令参考selectlistRelativesls,研究一个命令如何转化到其他:


将所有这些结合在一起,实际上称为等效项的MEL是:

select -r `listRelatives("-p", "-path", eval("ls", $flags))`
Run Code Online (Sandbox Code Playgroud)

作为Python,它将是:

from maya import cmds
cmds.select(cmds.listRelatives(cmds.ls(geometry=True), p=True, path=True), r=True)
Run Code Online (Sandbox Code Playgroud)

扩展了一点可读性:

from maya import cmds
geometry = cmds.ls(geometry=True)
transforms = cmds.listRelatives(geometry, p=True, path=True)
cmds.select(transforms, r=True)
Run Code Online (Sandbox Code Playgroud)