Maya Python: TypeError: Object is invalid

Maya Python: TypeError: Object is invalid

所以我有这段代码,我试图找出两个网格是否相交:

import maya.cmds as cmds
import pymel.core as pmc

mesh_list = pmc.ls(type="mesh")
char_transform = pmc.listRelatives(mesh_list,parent=True)
        
def vtxPose(mesh):
    return pmc.general.PyNode(mesh).getPoints()
    
transform_list = iter(char_transform)
next_one = next(transform_list)
for one in transform_list:
    cmds.polyCBoolOp(one, next_one, op=3, n="intersection")
    vtx_list = vtxPose("intersection")
    if len(vtx_list) > 0:
        cmds.undo()
        print("intersection found")
    else:
        cmds.undo()
        print("no intersection found")

无论如何,当我执行它时,Maya 给出了这个错误:

# Error: TypeError: file <maya console> line 14: Object pSphere1 is invalid # 

我找不到问题(我在编码方面不是很有经验,尤其是在 Maya 中:( ) 我也考虑过用 OpenMaya 的 MFnMesh::allIntersections() 做同样的事情,但认为学习如何使用它可能很耗时。

所以,如果你能告诉我我的代码的问题,那就太好了;)

提前致谢

问题似乎是你混合了 pymel 和 maya.cmds。如果您将 cmds.polyCBoolOp() 更改为 pmc.polyCBoolOp() 它应该可以工作,或者如果您想使用 cmds,您可以将 pymel 对象转换为字符串。