重新选择活动对象
Reselect active object
Blender 中 python 脚本的新手,想做一些相对简单的事情 - 创建一个对象,复制它并翻译复制的对象,然后重新选择原始对象。这是我使用 Blender 2.76 的代码:
import bpy
from bpy import context
original_object = bpy.ops.mesh.primitive_cube_add()
bpy.ops.object.duplicate()
bpy.ops.transform.rotate(value(90),axis=(1,0,0))
bpy.context.scene.objects.active = original_object
最后一行无效 - 原始对象未再次激活。想知道错误在哪里?
这个:
bpy.context.scene.objects.active = original_object
只需为当前场景设置活动对象,但您还需要select它,这可以通过以下方式完成:
original_object.select = True
因此,在您的情况下,您可以这样写:
import bpy
from bpy import context
bpy.ops.mesh.primitive_cube_add()
original_object = bpy.context.scene.objects.active
bpy.ops.object.duplicate()
bpy.ops.transform.rotate(value=90,axis=(1,0,0)) # you need to put value=90 instead of value(90), otherwise you will get an error
for obj in bpy.context.selected_objects: # deselects all selected objects
obj.select = False
bpy.context.scene.objects.active = original_object
original_object.select = True
Blender 中 python 脚本的新手,想做一些相对简单的事情 - 创建一个对象,复制它并翻译复制的对象,然后重新选择原始对象。这是我使用 Blender 2.76 的代码:
import bpy
from bpy import context
original_object = bpy.ops.mesh.primitive_cube_add()
bpy.ops.object.duplicate()
bpy.ops.transform.rotate(value(90),axis=(1,0,0))
bpy.context.scene.objects.active = original_object
最后一行无效 - 原始对象未再次激活。想知道错误在哪里?
这个:
bpy.context.scene.objects.active = original_object
只需为当前场景设置活动对象,但您还需要select它,这可以通过以下方式完成:
original_object.select = True
因此,在您的情况下,您可以这样写:
import bpy
from bpy import context
bpy.ops.mesh.primitive_cube_add()
original_object = bpy.context.scene.objects.active
bpy.ops.object.duplicate()
bpy.ops.transform.rotate(value=90,axis=(1,0,0)) # you need to put value=90 instead of value(90), otherwise you will get an error
for obj in bpy.context.selected_objects: # deselects all selected objects
obj.select = False
bpy.context.scene.objects.active = original_object
original_object.select = True