Maya:编写脚本以将网格切割成相等的部分时遇到问题

时间:2017-04-23 03:49:19

标签: scripting maya mel pymel

我想基于多个顶点将网格划分为多个部分。基本上,我想要一个网格切割成300个顶点的部分,每个顶点都有剩余的剩余部分。

我在大多数情况下已经完成了这个(我可以获得顶点/面孔等),但是我很难找到一种优雅的方法来迭代提取的网格。

我正在使用polyChipOff,它对于它所削减的面没有返回值,所以它是创建的全新对象,我无法处理,因此我不能再继续从前一块中删除,因为它不再存在。

关于如何更好地解决这个问题的任何建议?

我想过要么迭代场景中的所有网格以获取新网格(在开始时缓存它们),要么使用scriptJob来检测正在制作的新对象。这两个看起来都非常hacky,所以如果有人有建议,那就很好奇。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

import maya.cmds as cmds

shape = cmds.listRelatives(p=True)
object = cmds.listRelatives(a, p=True)
selectedFace = cmds.ls(sl=True)

cmds.select(object[0] + '.f[:]', tgl=True)
unselecetedFace = cmds.ls(sl=True)

duplicated = cmds.duplicate(object, un=True)[0]
cmds.delete(duplicated, ch=True)
cmds.delete(selectedFace)

for i in range(len(unselecetedFace)):
    unselecetedFace[i] = unselecetedFace[i].replace(object[0],duplicated)

cmds.delete(unselecetedFace)
cmds.select(duplicated)