Blender заморожен в скрипте python?

#python #blender #blender-2.67 #bpy

#python #блендер #blender-2.67 #bpy

Вопрос:

Я новичок как в 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, есть несколько примеров.

Комментарии:

1. Спасибо! Я не заметил, что в шаблоне есть модальный оператор. Я попробую.