Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Макро скрипты

Читайте также:
  1. Аталған цитокиндердің қайсысы макрофагтардың қызметін белсендіреді?
  2. Вопрос 5. 5. Оптимизация макроэкономической политики в условиях неопределенности. Виды неопределенности. Простейшая модель оптимальной политики с учетом неопределенности.
  3. Вопрос Макропроектирование системы складирования
  4. Глава 2. Основные негативные состояния и их скрипты.
  5. Глава 8. Макро-контакт
  6. Двухуровневая макростратегия Эйнштейна
  7. Добавление макроса в структуру

Макро скрипты – это программы, написанные на MAXScript, которые ассоциированы с кнопками на инструментальной панели, и выполняются при нажатии этой кнопки. Прежде всего, нужно определить макро скрипт с помощью следующей синтаксической конструкции

macroScript Имя_переменной category: Текстовая_строка

buttonText: Текстовая_строка toolTip: Текстовая_строка

icon: Массив_или_строка silentErrors: Логическое_выражение

Далее должен следовать текст программы на MAXScript, которая и будет выполняться при нажатии кнопки. Рассмотрим пример макро скриптов, создающих свободную и направленную камеры.

macroScript Free_Camera category:"Cameras" tooltip:"Free Camera" \

Icon:#("Cameras",2)

(StartObjectCreation FreeCamera)

 

macroScript Target_Camera category:"Cameras" \

tooltip:"Targeted Camera" Icon:#("Cameras",1)

(StartObjectCreation TargetCamera)

После определения макро скрипта его имя появляется в списке макро скриптов диалога настройки пользовательского интерфейса. Разместить кнопку, соответствующую макро скрипту, можно на инструментальной панели или панели с закладками. Для этого надо нажать на них правую кнопку мышки и выбрать в появившемся меню пункт Customize. На экране появится диалог Customize User Interface, который изображен на рисунке. В списке макро скриптов Вы видите два только что определенных скрипта.

В выпадающем списке Category надо выбрать категорию созданного макро скрипта и отбуксировать нужный Вам скрипт в выбранное место инструментальной панели. Имя переменной – единственный обязательный параметр. В данном случае в эту переменную ничего не заносится. Макро скрипты запоминаются в файлах, о чем речь будет далее. Если не определен параметр buttonText, то именно это имя заносится в список. Параметр category определяет пункт в выпадающем списке Category. Макро скрипты, определяемые с одинаковыми значениями этого параметра заносятся в списки, которые появляются при выборе этого пункта. Текст всплывающей подсказки, для создаваемой кнопки определяется параметром toolTip. Параметр buttonText задает текст на кнопке и в списке. Текст на кнопке появляется, если не определен параметр icon, с помощью которого определяется картинка на кнопке. Этот параметр может быть представлен либо массивом из строки и числа, либо одной строкой. Строка определяет имя файла, в котором содержатся иконки, а число – номер иконки в этом файле. Если задана только строка, то номер иконки считается равным единице. Имя файла с иконками состоит из двух частей. Первая, базовая, указывается в параметре. Далее следует суффикс, например, “_24i.bmp”, который указывает размер и тип файла с иконками. В качестве имени файла может быть указана и пустая строка. В этом случае используются внутренние иконки 3ds max. Например

macroScript Box category:”Objects” toolTip:”Box”

icon:#(“standard”,1) –Используется первая иконка файла standard

(

StartObjectCreation Box

)

macroScript Sphere category:"Objects" tooltip:"Sphere"

icon:#("", 2) -- Используется вторая стандартная иконка

(

StartObjectCreation Sphere

)

 

macroScript Cone category:"Objects" tooltip:"Cone"

icon:"myicon" -- Используется вторая иконка файла myicon

(

StartObjectCreation Cone

)

Подробно правила создания файлов с иконками будут рассматриваться далее.

Параметр silentErrors определяет поведение макро скрипта в случае возникновения ошибки. Если этот параметр установлен в true, то сообщение об ошибке не выдается. По умолчанию значение этого параметра – false.

Тело макро скрипта – обычная программа на MAXScript и переменные, определенные внутри него, подчиняются обычным правилам видимости. Если внутри макро скрипта определяется свиток, то в его функциях можно использовать локальные переменные этого макро скрипта, но ни одна внешняя программа не может получить доступа к ним. Определение макро скрипта не генерирует переменной, с помощью которой можно было бы обратится к нему. Вместо этого результатом определения является целое число, которое служит идентификатором определяемого скрипта. Для каждого из определенных в 3ds max макро скриптов запоминается информация о том, в каком файле он содержится и начиная с какого места этого файла выполняется. Последнее особо актуально, если в одном файле определено несколько скриптов. В связи с этим не рекомендуется корректировать, удалять или перемещать файлы, содержащие макро скрипты.

Существует пять способов определения макро скриптов

В MAXScript имеется ряд функций для работы с макро скриптами. Все они являются методами предопределенной структуры macros. Например функция

macros.load Символьная_строка

Загружает как макро скрипты все файлы с расширением .mcr, которые содержатся в директории, указанном символьной строкой. Если строка не указана, то в качестве директория берется директорий текущих настроек пользовательского интерфейса. Создать новый макро скрипт можно с помощью функции

macros.new Символьная_строка_1 Символьная_строка_2

Символьная_строка_3 Символьная_строка_4 Символьная_строка_5

Первая символьная строка задает имя макро скрипта, вторая - категорию, а третья - текст всплывающей подсказки. Четвертый параметр представляет собой текст на кнопке и, наконец, пятый - сам текст скрипта. При таком способе определения картинку на кнопке определить нельзя.

Для выполнения уже определенного макро скрипта предназначена функция

macros.run Символьная_строка_1 Символьная_строка_2

или

macros.run Число

В первом случае выполняется скрипт с именем, заданным первой строкой и категорией, указанной во втором параметре. Во втором используется идентификатор макро скрипта, то есть целое число, которое возвращается оператором его определения. Аналогичные параметры имеет и функция редактирования макро скрипта

macros.edit Символьная_строка_1 Символьная_строка_2

или

macros.edit Число

В результате ее вызова на экране появится окно редактирования, в которое будет загружен текст указанного макро скрипта. Этот способ предоставляет Вам возможность корректно исправить макро скрипт во время работы 3ds max

В качестве примера можно привести макро скрипт, создающий графический файл с копией активного видового окна.

MacroScript GrabViewport category:"Tools" tooltip:"Grab Viewport"

(

---------------------------------------------------------------------

-- Макро скрипт MACROSCRIPT

--Создан:3/23/99

--Исправлен:4/28/99

--Автор: Borislav Petrov

--bobo@email.archlab.tuwien.ac.at

---------------------------------------------------------------------

--Копирует активное видовое окно в графический файл

--Формат Имени файла:

--VPGRAB_ИмяMaxФайла_ИмяВидовогоОкна_НомерТекущегоКадра

---------------------------------------------------------------------

--

-- Инициализация переменных

local grab_bmp --Битовая карта, в которую будет помещен снимок

-- видового окна

local bmp_name --Имя файла для сохранния битовой карты

local get_viewport_name --Имя видового окна

local gac,gct,mfn --Переменные, в которых хранятся активная камера,

-- текущее время, имя MAX файла

--

--Начало макро скрипта

grab_bmp = gw.getViewportDib() --Занесем снимок активного окна в

-- битовую карту

get_viewport_name = viewport.GetType() --Получим имя активного окна

gvn = get_viewport_name as string --и переведем его в символьную

-- строку

gvn = substring gvn 6 (gvn.count-5) --обрежем строку слева на 5

-- символов

--(Отрезаются символы "view_"

if gvn == "camera" then --если оставшееся слово - "camera"

(gac = getActiveCamera() --получим эту камеру

gvn = gac.name --и ее имя

)

 

mfn = MaxFileName --Получим имя загруженного MAX файла

if mfn == "" then --Если имя не указано,

mfn = "Untitled" --считаем его "Untitled".

else --В противном случае

mfn = getFileNameFile mfn --возьмем имя без расширения ".MAX"

gct = SliderTime as string --Преобразуем в строку номер текущего кадра

bmp_name = "VPGRAB_"+ mfn +"_" +gvn + "_" + gct --Сформируем имя

-- выходного файла

--Откроем стандартный диалог сохранения файла

bmp_name = getSaveFileName caption:"Save Viewport to:" \ filename:bmp_name \

types:"BMP(*.bmp)|*.bmp|JPG(*.jpg)|*.jpg|TGA(*.tga)|*.tga|"

if bmp_name!= undefined then -- Если пользователь подтвердил

-- сохранение файла

(grab_bmp.filename = bmp_name --Получим окончательно выбраное

--имя файла

save grab_bmp --Сохраним в него битовую карту

display grab_bmp --Выведем битовую карту в окно

)

-- Конец макро скрипта

)

 


Дата добавления: 2015-10-31; просмотров: 144 | Нарушение авторских прав


Читайте в этой же книге: Составные части тела свитка | Свойства, методы и события свитков и утилит | Создание перемещаемых окон | Общие параметры компонентов пользовательского интерфейса | Типы компонентов пользовательского интерфейса | Фиксируемая кнопка | Список с редактором (combobox) | Однострочный редактор | Список с возможностью множественного выбора | Индикатор процесса |
<== предыдущая страница | следующая страница ==>
Тело контекстного меню| Правила оформления средств работы с мышью

mybiblioteka.su - 2015-2024 год. (0.018 сек.)