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

问题描述 投票:3回答:2

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

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

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

欢呼,雷吉

PS:在Blender上工作2.63

python object import blender
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]

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.