我知道,这是一个非常简单的问题,但我到处寻找。也许我错过了这一点,我不知道;但这应该相当容易。
我的问题很简单,如何通过Python在Blender 2.6中按名称选择对象?
在2.4-5中,可以简单地使用:
bpy.ops.object.select_name("OBJECT")
......但是这已经停止了,取而代之的是什么?
可以获得当前选择的对象......
bpy.context.selected_objects
还有一种设置场景活动对象的方法......
bpy.context.scene.objects.active = bpy.data.objects["OBJECT"]
还可以通过操作选择,例如select_all()
或select_by_type()
......
bpy.ops.object.select_all(action="TOGGLE")
但我找不到简单地通过名称选择的方法。
谢谢,我完全失去了......
答案 0 :(得分:27)
bpy.data.objects['OBJECT'].select = True
选择数据包含在各个对象中。您可以阅读和,如图所示。以稍微可读的形式:
object = bpy.data.objects['OBJECT']
object.select = True
答案 1 :(得分:15)
bpy.ops.object.select_name()
已被bpy.ops.object.select_pattern()
取代(我认为约为2.62?),这是一个功能更强大的版本(它可以选择一个确切的名称,但也可以使用带有通配符的模式,如果是 - 不敏感等):
bpy.ops.object.select_pattern(pattern="Cube")
答案 2 :(得分:4)
import bpy
def returnObjectByName (passedName= ""):
r = None
obs = bpy.data.objects
for ob in obs:
if ob.name == passedName:
r = ob
return r
obs = bpy.data.objects
bpy.ops.object.select_all(action='DESELECT')
for ob in obs:
print (ob.name)
myObj = returnObjectByName(ob.name)
if myObj != None:
print (dir(myObj))
myObj.selected = True
myObj.location[2] = 10
myObj.selected = False
不是我的代码,不保证能够正常工作。