Переизбрать активный объект - PullRequest
1 голос
/ 10 марта 2019

Новый для сценариев Python в Blender и хочет сделать что-то относительно простое - создать объект, продублировать его и перевести дублированный объект, а затем повторно выбрать исходный объект. Вот мой код с использованием 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

Последняя строка не работает - исходный объект снова не становится активным. Хотите знать, где ошибка?

1 Ответ

1 голос
/ 11 марта 2019

Это:

bpy.context.scene.objects.active = original_object

просто устанавливает активный объект для текущей сцены, но вам также нужно выбрать его, что можно сделать с помощью:

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
...