Python 防止混合器名称索引

Python 防止混合器名称索引,python,blender,Python,Blender,我正在使用python脚本在Blender中导入和导出波前obj文件。问题是,如果已经添加了具有相同名称的对象,Blender会将索引添加到对象的名称中。例如,myObject变为myObject.001,如果过去已经添加了一个名为myObject的对象(即使删除了所述对象)。当我将对象导出为.obj时,名称不再与以前相同 如何重置“名称计数器” blender中的每个项目在其所属的项目列表中都必须有一个唯一的名称(每个名称都是一个字典键),并将根据文件中的其他项目添加一个数字后缀,从而使名称唯

我正在使用python脚本在Blender中导入和导出波前obj文件。问题是,如果已经添加了具有相同名称的对象,Blender会将索引添加到对象的名称中。例如,
myObject
变为
myObject.001
,如果过去已经添加了一个名为
myObject
的对象(即使删除了所述对象)。当我将对象导出为.obj时,名称不再与以前相同


如何重置“名称计数器”

blender中的每个项目在其所属的项目列表中都必须有一个唯一的名称(每个名称都是一个字典键),并将根据文件中的其他项目添加一个数字后缀,从而使名称唯一。请注意,它是基于文件而不是场景的,因为混合文件可以包含多个场景。在此过程中不会考虑已删除的对象,而其他项目(如材质和网格数据)将保留在列表中,直到文件关闭

obj导入器首先创建网格数据块,然后使用与网格数据相同的名称创建对象-这导致新对象始终具有比以前的对象大的数字后缀

如果使用python脚本导入多个对象,则可以在导入对象后重命名该对象

bpy.ops.import_scene.obj(filepath='Object1.obj')
bpy.context.selected_objects[0].name = 'Object'
bpy.context.selected_objects[0].data.name = 'Object'

在这种情况下,任何名为“object”的现有对象都将被重命名为具有后缀。

a.obj文件可以包含多个对象。导入文件后,如何查找其“真实”名称?导入obj文件
bpy.context.selected_objects
后,将显示刚刚导入的对象列表,之前的任何对象都将被取消选择。在该列表上循环并通过删除后缀来重命名它们。Ok。但是,如果模型已经包含后缀呢?例如,因为它是由blender?通过
bpy.data.mesh
循环生成的,并将它们全部重命名为“old”,然后导入OBJ。