Читаем Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода полностью

        if not ob:

            return

        layout = self.layout

        layout.prop(ob, 'myRnaInt')

        try:

            ob["MyIdString"]

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

        except:

            pass

        if ob.type == 'MESH':

            me = ob.data

            layout.prop(me, 'myRnaFloat')

            try:

                me["MyIdBool"]

                layout.prop(me, '["MyIdBool"]')

            except:

                pass


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

bpy.utils.register_class(MyPropPanel)


Использование свойств сцены для сохранения информации

Эта программа позволяет пользователю ввести информацию различного типа, которая затем посылается на панель кнопкам. Механизм заключается в использовании RNA-свойств, которые можно настроить с помощью панели и читать с помощью кнопки. Все типы данных Блендера могут иметь свойства. Глобальные свойства, которые непосредственно не связаны каким-либо специфическим объектом, может оказаться удобно хранить в текущей сцене. Заметим, однако, что они будут потеряны, если Вы переключитесь на новую сцену.



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

# File scene_props.py

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

import bpy

from bpy.props import *  


#

# Сохранение свойств в активной сцене

#

def initSceneProperties(scn):

    bpy.types.Scene.MyInt = IntProperty(

        name = "Integer",

        description = "Enter an integer")

    scn['MyInt'] = 17


    bpy.types.Scene.MyFloat = FloatProperty(

        name = "Float",

        description = "Enter a float",

        default = 33.33,

        min = -100,

        max = 100)


    bpy.types.Scene.MyBool = BoolProperty(

        name = "Boolean",

        description = "True or False?")

    scn['MyBool'] = True


    bpy.types.Scene.MyEnum = EnumProperty(

        items = [('Eine', 'Un', 'One'),

                 ('Zwei', 'Deux', 'Two'),

                 ('Drei', 'Trois', 'Three')],

        name = "Ziffer")

    scn['MyEnum'] = 2


    bpy.types.Scene.MyString = StringProperty(

        name = "String")

    scn['MyString'] = "Lorem ipsum dolor sit amet"

    return 


initSceneProperties(bpy.context.scene)  


#

# Меню в районе UI

#

class UIPanel(bpy.types.Panel):

    bl_label = "Property panel"

    bl_space_type = "VIEW_3D"

    bl_region_type = "UI" 


    def draw(self, context):

        layout = self.layout

        scn = context.scene

        layout.prop(scn, 'MyInt', icon='BLENDER', toggle=True)

        layout.prop(scn, 'MyFloat')

        layout.prop(scn, 'MyBool')

        layout.prop(scn, 'MyEnum')

        layout.prop(scn, 'MyString')

        layout.operator("idname_must.be_all_lowercase_and_contain_one_dot")  


#

# Кнопка выводит значения свойств в окне консоли.

class OBJECT_OT_PrintPropsButton(bpy.types.Operator):

    bl_idname = "idname_must.be_all_lowercase_and_contain_one_dot"

    bl_label = "Print props" 


    def execute(self, context):

        scn = context.scene printProp("Int: ", 'MyInt', scn)

        printProp("Float: ", 'MyFloat', scn)

        printProp("Bool: ", 'MyBool', scn)

        printProp("Enum: ", 'MyEnum', scn)

        printProp("String: ", 'MyString', scn)

        return{'FINISHED'}  


def printProp(label, key, scn):

    try:

        val = scn[key]

    except:

        val = 'Undefined'

    print("%s %s" % (key, val))  


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

bpy.utils.register_module(__name__)


Опрос (Polling)

Перейти на страницу:

Похожие книги

Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ

Эта книга представляет собой перевод третьего издания американского бестселлера Effective C++ и является руководством по грамотному использованию языка C++. Она поможет сделать ваши программы более понятными, простыми в сопровождении и эффективными. Помимо материала, описывающего общую стратегию проектирования, книга включает в себя главы по программированию с применением шаблонов и по управлению ресурсами, а также множество советов, которые позволят усовершенствовать ваши программы и сделать работу более интересной и творческой. Книга также включает новый материал по принципам обработки исключений, паттернам проектирования и библиотечным средствам.Издание ориентировано на программистов, знакомых с основами C++ и имеющих навыки его практического применения.

Скотт Майерс , Скотт Мейерс

Программирование, программы, базы данных / Программирование / Книги по IT
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Гэри Розенцвейг

Программирование, программы, базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT