2024-05-15 11:42:26 发布
网友
我试图找到正确的代码,使玛雅选择我的场景中的所有几何体对象。 我在执行操作时尝试回显命令,得到的结果是:
SelectAllGeometry; select -r `listTransforms -geometry`;
(编辑>;按类型全选>;几何体)
有人能把这个翻译成Python吗?
ls -type(或cmds.ls)使用maya节点层次结构(作为laid out in the docs)。所以你可以用ls -type geometryShape得到所有的几何图形,因为geometryShape是所有其他类型的几何图形的派生节点。(请检查链接中的列表,了解通过选择不同类型和子类型来优化此功能的方法)
ls -type
cmds.ls
ls -type geometryShape
为了得到转换,添加一个listRelatives -p。所以总的来说
listRelatives -p
string $sh[] = `ls -type geometryShape`; string $t[] = `listRelatives -p $sh`; select -r $t;
很简单:
import maya.cmds as cmds cmds.SelectAllGeometry()
您看到的是过程SelectAllGeometry,以及它的内容:
SelectAllGeometry
select -r `listTransforms -geometry`;
这个命令有几个部分。反引号中的部分:
listTransforms -geometry
实际上是一个MEL过程。运行命令help listTransforms查看.mel文件的路径。读到这里,命令实际上是
help listTransforms
listRelatives("-p", "-path", eval("ls", $flags));
其输出是以下参数的参数:
select -r the_list_of_geometry_transforms
因此,请查看Maya的MEL和Python命令参考,了解select、listRelatives和ls,以研究一个命令如何转换为另一个命令:
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)
ls -type
(或cmds.ls
)使用maya节点层次结构(作为laid out in the docs)。所以你可以用ls -type geometryShape
得到所有的几何图形,因为geometryShape是所有其他类型的几何图形的派生节点。(请检查链接中的列表,了解通过选择不同类型和子类型来优化此功能的方法)为了得到转换,添加一个
listRelatives -p
。所以总的来说很简单:
您看到的是过程
SelectAllGeometry
,以及它的内容:这个命令有几个部分。反引号中的部分:
实际上是一个MEL过程。运行命令
help listTransforms
查看.mel文件的路径。读到这里,命令实际上是其输出是以下参数的参数:
因此,请查看Maya的MEL和Python命令参考,了解
select
、listRelatives
和ls
,以研究一个命令如何转换为另一个命令:综合所有这些,实际调用的等效MEL是:
作为Python,这将是:
扩展到更具可读性:
相关问题 更多 >
编程相关推荐