我正在编写一个自定义导出脚本来解析搅拌机文件中的所有对象,按名称过滤它们,然后检查以确保它们符合某些特定条件。
我正在使用搅拌机 2.68a。我创建了一个带有一些基本 2d 和 3d 网格的搅拌机文件,以及一些不符合我的测试标准的文件。我在 Blender 的内部 Python 控制台中工作。这是使用 blender python API 的唯一方法,因为它们的 python 环境是定制的。
我已经排序了如何使用 for 循环和 D.objects 迭代器遍历对象,然后使用正则表达式检查名称匹配,然后使用以下方法从对象中获取网格:
mesh = obj.to_mesh(C.scene, True, 'RENDER') #where obj is an bpy.data.object[index] in the scene
mesh.update(True, True)
mesh.polygons[index].<long list of possible functions>
让我访问一个多边形数组,以了解是否存在一组带有形成多边形的边的顶点,以及它们的键值是什么。
我无法解决的是如何从 python 控制台确定一个多边形是一张脸还是一个多边形。是否有内置功能,或者我可以执行哪些测试来以编程方式确定这一点?例如,我可以有一个网格 4 个顶点和 4 个没有面的边,我不想导出它,但是如果我要编辑相同的 4 个顶点/边并在上面放置一个面,那么它成为理想的出口。
谁能解释 bpy.data.object 数据结构或解释“面孔”的存储位置?似乎这将是 npolys 本身的属性,但 API 并没有使其显而易见。任何澄清这一点的帮助将不胜感激。干杯。