Правильное использование foreach_set

foreach_set – это удобная обертка в Blender Python API для быстрого присвоения каждому элементу коллекции bpy_prop_collection нужного значения. Однако при использовании этой функции разработчики скриптов часто сталкиваются с появлением не совсем очевидной ошибки.

Например, давайте переключим все полигоны меша в режим сглаженного отображения (smooth shading).  Для этого свойство каждого полигона меша “use_smooth” нужно установить в True.

Используя стандартный синтаксис Python мы можем сделать это так:

Если же мы хотим использовать foreach_set, логичным кажется написать так:

однако вызов этой функции таким образом приведет к ошибке:

couldn’t access the py sequence

Это происходит потому, что вторым параметром в функции foreach_set должно идти не само значение, которое мы ходим установить для свойства “use_smooth”, а список значений для каждого из полигонов.

Вмето

Нам нужно указывать

Длина списка должна соответствовать количеству элементов для которых вызывается foreach_set, в нашем случае – количеству полигонов.

Поэтому чтобы правильно использовать foreach_set для начала нужно создать список значений по количеству полигонов меша:

а затем передать его вторым параметром в функцию:

Или все в одну строчку:

0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии