Блендер заморожен в скрипте Python?

Я новичок как в Blender, так и в Python.

Я пытался манипулировать некоторыми свойствами объекта с помощью скрипта Python в консоли скриптов Blender.

Что я не понимаю, так это то, что я могу это сделать.

bpy.data.object['Cube'].rotation_euler.x+=1

но когда я ставлю это в петлю.

import time
i=1
while i<100:
   i+=1
   bpy.data.object['Cube'].rotation_euler.x+=1
   print('run once')
   time.sleep(5)

Blender зависает без вывода "Run Once". Кто-нибудь, пожалуйста, скажите мне, что не так с этим кодом.

1 ответ

Решение

Ваш скрипт не зависает, у Blender просто нет возможности обновиться во время цикла.

Команда time.sleep(5) спит в течение 5 секунд, запуск 100 раз означает, что запуск сценария занимает 8 минут, на каком этапе blender обновляет свой интерфейс снова.

Возможно, вы захотите взглянуть на модальный оператор - в шаблонах python есть несколько примеров, доступных в текстовом редакторе blender.

Другие вопросы по тегам