我试图找到合适的代码,让maya选择场景中的所有几何对象。 我尝试在执行操作时回显命令,我得到了这个:
SelectAllGeometry;
select -r `listTransforms -geometry`;
(编辑>按类型选择全部>几何)
有人可以将其翻译成Python吗?
答案 0 :(得分:5)
您所看到的是程序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的select
,listRelatives
和ls
的MEL和Python命令参考,以研究一个命令如何转换为另一个命令:
将所有这些组合在一起,实际调用的等效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)
答案 1 :(得分:2)
ls -type
(或cmds.ls
)使用maya节点层次结构(laid out in the docs。因此,您可以使用ls -type geometryShape
获取所有几何形状,因为 geometryShape 是所有其他类型的几何体派生的节点。(通过选择不同的类型和子类型,检查链接中的列表以获得改进方法)
要获得转换,请添加listRelatives -p
。所以总数将是
string $sh[] = `ls -type geometryShape`;
string $t[] = `listRelatives -p $sh`;
select -r $t;
答案 2 :(得分:1)
很简单:
{{1}}