从blender导出网格始终具有相同的名称

时间:2012-09-04 10:25:17

标签: python blender blender-2.61

我正在为Blender编写一个导出器,我遇到了一个小问题 - 当我多次导出相同的模型时,导出的网格总是被分配一个不同的名称(添加数字前缀)。

这是我用来访问我想要导出的网格的代码:

for ob in bpy.scene.objects:

    # get derived objects
    free, derived = create_derived_objects(scene, ob)

    if derived is None:
        continue

    for obDerived, mat in derived:
        if ob.type not in {'MESH', 'CURVE', 'SURFACE', 'FONT', 'META'}:
            continue

        try:
            derivedBlenderMesh = obDerived.to_mesh( scene, True, 'PREVIEW' )
        except:
            derivedBlenderMesh = None

        if derivedBlenderMesh:
                        # ... and the export stuff goes here

    # once everything's done, I remove the created instance
    if free:
        free_derived_objects(derivedBlenderMesh)

我从3ds导出器中取出来说实话。

我注意到它创建了一个新的(派生的)对象,然后创建了一个新的网格(转换后的所有内容),所以我想这些是分配新名称的潜在位置。

我浏览了文档,但除了通过 to_mesh 方法之外,我没有发现Object和Mesh实例之间没有明确的关系,这显然会创建一个新的网格实例。

然而 - 我真的需要得到原来的名字。有人能告诉我如何访问它吗?

提前致谢:) 帕克萨斯

1 个答案:

答案 0 :(得分:0)

好的 - 我去了id(有点)。我基本上忽略了网格名称,并在嵌入的对象之后命名导出的网格。

这当然是在一个假设下工作的,即每个对象都有一个专门的网格,但是我在导出之前复制它们,所以情况确实如此。

如果有人有更好的解决方案,请在此处发布。