Ram*_*uer 1 python scripting geometry select maya
我试图找到正确的代码以使maya选择场景中的所有几何对象。我尝试在执行操作时回显命令,并且得到以下信息:
SelectAllGeometry;
select -r `listTransforms -geometry`;
Run Code Online (Sandbox Code Playgroud)
(编辑>按类型全选>几何)
有人可以将其翻译成Python吗?
您所看到的是该过程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命令参考select,listRelatives和ls,研究一个命令如何转化到其他:
将所有这些结合在一起,实际上称为等效项的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)