Scripting Maya:在编写脚本以将网格切成相等的块时遇到问题

Scripting Maya:在编写脚本以将网格切成相等的块时遇到问题,scripting,maya,mel,pymel,Scripting,Maya,Mel,Pymel,我想根据顶点数将网格分割为多个部分。基本上,我想要一个网格切割成300个顶点的部分,每个顶点都有剩余部分 我在大部分情况下都是这样做的(我可以得到顶点/面等),但是我很难找到一种优雅的方式来迭代提取的网格 我使用的是polyChipOff,它对它削掉的面没有返回值,所以它是创建的全新对象,我无法处理,所以我不能继续从以前的片段中削掉,因为它已经不存在了 关于如何更好地进行这项工作,有什么建议吗 我考虑过在场景中的所有网格中迭代新网格(在开始时缓存它们),或者使用scriptJob检测正在生成的新

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

我在大部分情况下都是这样做的(我可以得到顶点/面等),但是我很难找到一种优雅的方式来迭代提取的网格

我使用的是polyChipOff,它对它削掉的面没有返回值,所以它是创建的全新对象,我无法处理,所以我不能继续从以前的片段中削掉,因为它已经不存在了

关于如何更好地进行这项工作,有什么建议吗


我考虑过在场景中的所有网格中迭代新网格(在开始时缓存它们),或者使用scriptJob检测正在生成的新对象。这两种方法看起来都很老套,所以我很好奇是否有人有建议。

您可以尝试以下方法:

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)

啊,非常有趣,我没有想到重复的共享相同的垂直顺序。这似乎比我想要的要慢一点,但你永远不知道。我会试试看,比较一下!