Blender 2.6: Seleccionar objeto por nombre a través de Python
bpy (3)
bpy.ops.object.select_name()
ha sido reemplazado por bpy.ops.object.select_pattern()
(alrededor de 2.62, creo?), que es una versión más potente (puede seleccionar un nombre exacto, pero también usar patrones con comodines, no se distingue entre mayúsculas y minúsculas, etc.):
bpy.ops.object.select_pattern(pattern="Cube")
Lo sé, esta es una pregunta extremadamente simple, pero he buscado en todas partes. Tal vez me esté perdiendo el punto, no lo sé; pero esto debería ser razonablemente fácil.
Mi pregunta es sencillamente, ¿cómo selecciona los objetos por nombre a través de Python en Blender 2.6?
En 2.4-5, uno podría simplemente usar:
bpy.ops.object.select_name("OBJECT")
... pero esto ha sido descontinuado, para ser reemplazado por qué?
Uno puede obtener los objetos seleccionados actualmente como así ...
bpy.context.selected_objects
Y hay una manera de establecer el objeto activo de la escena ...
bpy.context.scene.objects.active = bpy.data.objects["OBJECT"]
Y también se puede seleccionar mediante operaciones , como select_all()
o select_by_type()
...
bpy.ops.object.select_all(action="TOGGLE")
Pero no puedo encontrar una manera de seleccionar simplemente por nombre.
Gracias, estoy totalmente perdido ...
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
No es mi código, no se garantiza que funcione.
bpy.data.objects[''OBJECT''].select = True
Los datos de selección están contenidos dentro de los objetos individuales. Puedes leerlos y escribirlos como se muestra. En una forma un poco más legible:
object = bpy.data.objects[''OBJECT'']
object.select = True