我使用了Python API在搅拌机一“散点图”改变了我对象的名称。 数据是一个将名称映射到3D点列表的字典,因此有名称的点云。搅拌机
我需要在每个云看单独或隐藏其他人,这是我的设置:
- 在字典每个名字,我创建一个空的对象
- 属于此每个3D点名字,我创建了一个小立方体,将它放置并重新放置到空物体上。现在
我可以隐藏在3D视图中的父对象。 程序工作正常,但有一个奇怪的问题:名字很重要,我需要能够找到他们在sceneview。但搅拌机更改名称。像“TopDown”这样的名称变成“TopDown.001”。尽管事实上没有这个名字的其他对象,但这种情况发生了。
这里是我的代码:
for plotname, positions in points.items():
bpy.ops.object.add(type='EMPTY')
bpy.context.active_object.name = plotname
bpy.context.active_object.location=(0,0,0)
print(plotname) #<---------------here the name is still correct
for position in positions:
me = bpy.data.meshes.new(plotname + 'Mesh')
ob = bpy.data.objects.new(plotname+"Mesh", me)
ob.location = (position[0], position[1], position[2])
ob.show_name = True
bpy.context.scene.objects.link(ob)
me.from_pydata(verts_loc, [], faces)
me.update(calc_edges=True)
ob.parent=bpy.context.active_object
实际的程序是长一点,verts_loc
和faces
该段之前已经建立。他们代表一个立方体。
如何确保plotname
保持plotname
而不会变成plotname.001
?
UPDATE
澄清:不要紧,该地块内的点被重新命名。像“plotnameMesh.001”和“plotnameMesh.002”是没有问题的。但父对象被重命名为。 实际上,将“网格”附加到对象名称的唯一目的是保持顶层曲线名唯一。
职位通常会有所不同,但不能保证。感谢您提供关于如何删除给定名称的对象的提示。这可能非常有用。但它不能解决我的具体问题,即搅拌器更改对象的名称。 – lhk
但这个循环就是你所得到的重复 - 在位置每个位置要创建一个名为'plotname +“网格”的对象' - 第一个将获得该名称和其他人将获得数字扩展添加。 – sambler
哦对不起。我的问题不够确切。循环中的名称更改是可以接受的。问题在于顶级对象。他们也改变了。带“mesh”的对象是否重命名并不重要。我只需要确保plotnames输入网格的对象不会改变 – lhk