如何在搅拌机中标记最后导入的* obj

时间:2013-01-03 21:09:38

标签: python object import blender

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

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

如何解决这个问题?有没有选择从场景最后添加的对象?或者也许某种方式来标记' * obj对象是在导入下一个函数之前导入的吗?或者也许有一种方法可以将* obj数据直接导入到创建的早期空白对象中。

欢呼声, regg

PS:使用Blender 2.63

2 个答案:

答案 0 :(得分: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]

答案 1 :(得分:0)

根据我在导入内容后看到的内容,默认标记对于所有对象(包括场景中已存在的对象)都为true。因此,为了标记对象,您必须为它们分配一个false值,然后导入,然后在它们的标记为True时将它们添加到导入的对象中。没有相反的方式。所以我不确定这个答案是否准确。