Thomas Larsson - Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода

Здесь есть возможность читать онлайн «Thomas Larsson - Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Третье издание, расширенное и обновлённое для Blender 2.57

Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

bl_idname = "hello.hello"

bl_label = "Say Hello"

country = bpy.props.StringProperty()

def execute(self, context):

if self.country == '':

print("Hello world!")

else:

print("Hello world from %s!" % self.country)

return{'FINISHED'}

#

# Регистрация

# Все панели и операторы должны быть зарегистрированы в Блендере; в противном

# случае они не появятся. Самый простой путь зарегистрировать всё в файле -

# с помощью вызова bpy.utils.register_module(__name__).

#

bpy.utils.register_module(__name__)

Планировка панели и несколько аргументов

Эта программа иллюстрирует, как организовать размещение объектов на панели. Когда скрипт выполнится, будет создана панель в области tool props, с кнопками, расположенными нетривиальным способом.

Сценарий также показывает один метод отсылания нескольких аргументов оператору. Класс OBJECT_OT_Button имеет два свойства, number (номер) и row (строка) и печатает величины этих свойств в окне терминала. Будучи целочисленными свойствами, они оба возвращают 0 по-умолчанию, если не заданы. Таким образом, если мы нажимаем кнопки 7, 8 и 23, скрипт выведет

Row 0 button 7

Row 3 button 0

Row 0 button 0

Но что, если мы хотим задать свойства как number, так и row, то есть вызвать оператор с двумя аргументами? Это нельзя сделать непосредственно, но мы можем создать третье свойство loc, которое является строкой, и которое анализируется оператором, если не нуль. Если мы нажимаем кнопку 13, скрипт выведет

Row 4 button 13

Этот метод можно также использовать, чтобы посылать более сложные структуры данных оператору. Кроме того, мы можем использовать глобальные переменные с этой целью, смотрите подраздел A popup dialog

#----------------------------------------------------------

# File layout.py

#----------------------------------------------------------

import bpy

# Планировка панели

class LayoutPanel(bpy.types.Panel):

bl_label = "Panel with funny layout"

bl_space_type = "VIEW_3D"

bl_region_type = "TOOL_PROPS"

def draw(self, context):

layout = self.layout

layout.label("First row")

row = layout.row(align=True)

row.alignment = 'EXPAND'

row.operator("my.button", text="1").number=1

row.operator("my.button", text="2", icon='MESH_DATA').number=2

row.operator("my.button", icon='LAMP_DATA').number=3

row = layout.row(align=False)

row.alignment = 'LEFT'

row.operator("my.button", text="4").number=4

row.operator("my.button", text="", icon='MATERIAL').number=5

row.operator("my.button", text="6", icon='BLENDER').number=6

row.operator("my.button", text="7", icon='WORLD').number=7

layout.label("Third row", icon='TEXT')

row = layout.row()

row.alignment = 'RIGHT'

row.operator("my.button", text="8").row=3

row.operator("my.button", text="9", icon='SCENE').row=3

row.operator("my.button", text="10", icon='BRUSH_INFLATE').row=3

layout.label("Fourth row", icon='ACTION')

row = layout.row() box = row.box()

box.operator("my.button", text="11", emboss=False).loc="4 11"

box.operator("my.button", text="12", emboss=False).loc="4 12"

col = row.column() subrow = col.row()

subrow.operator("my.button", text="13").loc="4 13"

subrow.operator("my.button", text="14").loc="4 14"

subrow = col.row(align=True)

subrow.operator("my.button", text="15").loc="4 15"

subrow.operator("my.button", text="16").loc="4 16"

box = row.box() box.operator("my.button", text="17").number=17

box.separator()

box.operator("my.button", text="18")

box.operator("my.button", text="19")

layout.label("Fifth row")

row = layout.row() split = row.split(percentage=0.25)

col = split.column()

col.operator("my.button", text="21").loc="5 21"

col.operator("my.button", text="22")

split = split.split(percentage=0.3)

col = split.column()

col.operator("my.button", text="23")

split = split.split(percentage=0.5)

col = split.column()

col.operator("my.button", text="24")

col.operator("my.button", text="25")

# Кнопка

class OBJECT_OT_Button(bpy.types.Operator):

bl_idname = "my.button"

bl_label = "Button" number = bpy.props.IntProperty()

row = bpy.props.IntProperty()

loc = bpy.props.StringProperty()

def execute(self, context):

if self.loc:

words = self.loc.split()

self.row = int(words[0])

self.number = int(words[1])

print("Row %d button %d" % (self.row, self.number))

return{'FINISHED'}

# Регистрация

bpy.utils.register_module(__name__)

Панель свойств

Свойства обсуждались в разделе Свойства, но мы не объяснили, как отображать заказные свойства на панели. Этот скрипт как раз делает это. RNA-свойство отображается синтаксисом

layout.prop(ob, 'myRnaInt')

ID-свойства отображаются с помощью

layout.prop(ob, '["myRnaInt"]')

Заметьте, что панель регистрируется явно с помощью bpy.utils.register_class(MyPropPanel)вместо использования register_module, который регистрирует всё. Какой метод использовать, не имеет значения в этом примере, поскольку MyPropPanel- единственное, что нужно зарегистрировать.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода»

Представляем Вашему вниманию похожие книги на «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода»

Обсуждение, отзывы о книге «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x