Skip to main content
 首页 » 编程设计

python之按类型全选 : Geometry. 等效的 Python 脚本

2025年05月04日18pengyingh

我试图找到正确的代码让 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)