From my python script I want to add some objects to scene and process them later (add constraints etc.). If the object to be added is an Empty, I can simply write:
>>> name = "MyObject"
>>> obj = bpy.data.objects.new(name, None)
...
>>> process(obj)
However if the object to be added is a simple mesh, we may use bpy.ops.mesh.primitive_*
operators, which adds objects (e.g. cube) to the scene.
>>> bpy.ops.mesh.primitive_cube_add(radius=2)
But how can I get reference to the newly added object? It returns {'FINISHED'}
instead of the reference to object.
>>> obj = ???
>>> process(obj)
We do not know name of the new object (and I'm not interested in guessing it:)
). Instead, I've tried using the index, but it did not work (gives wrong result):
>>> obj = bpy.data.objects[-1] # We don't know the name :(
bpy.data.objects['Lamp']
>>> # ^^ bpy.data.objects['Cube'] was expected
bpy.data.objects.new(name, None)
, that is a cool trick forEmpty
creation. $\endgroup$