3

(可能写得不太好)问题是:有没有办法在通过 bpy.import_scene.obj 函数加载对象数据后立即获取它?

我的意思是当我用这个函数导入一个 obj 文件时,我需要为它做更多的转换。当我通过名称“网格”(导入后对象的默认名称)选择一个对象时,所有这些功能都适用于我场景中名为“网格”的其他对象。我试图从场景中的对象列表中获取最后一个对象,但它们是按字母顺序排列的,所以效果不佳。当我尝试更改 object.name 并对其应用下一个功能时,它仅适用于一个。导入对象的所有早期实例都恢复为默认值。

如何解决这个问题?是否可以从场景最后添加的对象中获取?或者,在导入 *obj 对象之后,在应用下一个函数之前,有什么方法可以“标记”它?或者也许有一种方法可以将 *obj 数据直接导入到之前创建的空白对象中。

干杯,雷格

PS:使用 Blender 2.63

4

2 回答 2

4

操作员不会返回他们加载的数据,但您可以通过这种方式使用标记...

for obj in bpy.data.objects:
    obj.tag = True

bpy.import_scene.obj(filepath="somefile.obj")

imported_objects = [obj for obj in bpy.data.objects if obj.tag is False]
于 2013-01-05T02:39:11.303 回答
0

从我在导入东西后看到的情况来看,所有对象(包括场景中已经存在的对象)的默认标签都是 true。所以似乎为了标记对象,您必须为它们分配一个 false 值,然后导入,如果它们的标记为 True,则将它们添加到导入的对象中。反过来不行。所以我不确定这个答案是否准确。

于 2018-01-02T17:12:39.237 回答