Редактор Visual MAXScript

Дополнительные функции двоичного ввода-вывода

Чтение из двоичного файла

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

1. Установите 3dsMax в исходное состояние.

2. Создайте в любом видовом окне сферу радиусом около 10. Этой сфере должно быть присвоено имя Sphered.

3. Преобразуйте сферу в редактируемый каркас.

4. Начните сценарий с открытия файла для чтения:

stream = fopen "с:\\temp\\bintest.txt" "rb"

5. Прочитайте данные из файла и примените их к сфере для ее видоизменения:

num = getnumVerts $Sphere01

pos = [0, 0, 0]

for i = 1 to num do


Приложение

(

pos.x = readFloat stream

pos.y = readFloat stream

pos.z = readFloat stream

setVert $sphere01 i pos

)

fclose stream

-- Обновить сферу, чтобы увидеть изменения

update $sphere01

6. Выполните сценарий.

Сфера перемещается в то место, где она была создана в предыдущем упражнении. Кроме того, размер сферы становится таким же, как и в предыдущем упражнении.

Если вас интересуют дополнительные сведения о манипулировании каркасами и их вершинами для написания сценариев экспорта и импорта данных, обратитесь к следующему разделу справочного руководства по MAXScript: MAXScript Language Reference ⇨ 3dsMax Objects ⇨ Editable Meshes, Splines, Patches, and Polys ⇨ Editable_Mesh: GeometryClass and TriMesh: Value (Справочник по языку MAXScript ⇨ Объекты 3dsMax ⇨ Редактируемые каркасы, сплайны, лоскуты и многоугольники ⇨ Класс Editable_Mesh: классы GeometryClass и TriMesh: Значение).

Ниже приведены функции, манипулирующие двоичными файлами и эквива­лентные функциям установки указателя текстового файла.

• fTell — возвращает текущее положение указателя файла.

• fSeek — перемещает указатель файла в указанное положение. В качестве аргументов этой функции указываются величина, на которую следует переместить указатель файла, а также начальное положение, которое может быть установлено в начале файла (#seek_set), внутри файла (#seek_cur) или же в конце файла (#seek_end). Не путайте эту функцию с функцией seek для файлового ввода-вывода в коде ASCII.

В MAXScript предоставляются удобные средства для построения пользовательских интерфейсов. В частности, визуальный редактор Visual MAXScript (VMS) позволяет интуитивно строить панели на основании готовых форм, наблюдая за их внешним видом по ходу данного процесса и не заботясь о расположении отдельных элементов пользовательского интерфейса программным путем. Кроме того, редактор VMS автоматически формирует код для обработчиков событий, которые требуется включить в сценарий. Разумеется, написание кода, составляющего тело самих обработчиков событий, по-прежнему возлагается на вас как на автора сценария.

 


Приложение

С помощью редактора Visual MAXScript можно создать панель, которая дейст­вует таким же образом, как и свиток. А если потребуется, то панель можно будет затем отобразить как диалоговое окно.

Для доступа к редактору Visual MAXScript выполните следующее упражнение.

1. Перейдите к панели Utilities, щелкните на кнопке More, а затем выберите из списка вариант Visual MAXScript.

Откроется окно визуального редактора VMS Editor. По умолчанию в левой части этого окна отображается панель с черными маркерами, с помощью которых можно изменить ее размеры. При стандартных размерах панель правильно вписывается в панель команд.

С другой стороны, доступ к редактору Visual MAXScript можно получить из окна редактора MAXScript Editor.

2. Закройте редактор Visual MAXScript.

3. Откройте окно редактора MAXScript Editor и выберите из его меню команду Tools ⇨ NewRollout (Инструменты Новый свиток).

 

 


Команда NewRollout позволяет создать совершенно новый свиток, тогда как команда EditRollout открывает созданную ранее панель. Это удобно для формирования свитка в процессе написания сценария.

Вдоль нижнего края окна редактора VMS располагается ряд пиктограмм, обозначающих все доступные для построения элементы интерфейса. Если поместить над пиктограммой курсор, появится всплывающая подсказка с обозначением данного элемента. А его краткое описание появляется в строке состояния, расположенной в нижней части окна данного редактора.

 

 


Приложение

Для построения элементов пользовательского интерфейса выполните следую­щее упражнение.

1. Щелкните на третьей слева пиктограмме кнопки.

 

 


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

2. Перетащите курсор на панели, чтобы создать кнопку.

 

 


Маркеры вокруг изображения кнопки позволяют изменять размеры и положение кнопки визуально. При этом в правой части окна редактора VMS появляются вкладки Properties (Свойства) и Events (события).

3. Щелкните на вкладке Properties.

 

 

 

 

Приложение

На этой вкладке можно установить любое значение, перейдя к соответствующему столбцу и введя нужное значение или же выбрав это значение из раскрывающегося списка. Дополнительные сведения по данному вопросу приведены в следующем разделе справочного руководства по MAXScript: MAXScript Tools and Interaction with 3dsMax ⇨ Creating MAXScript Tools ⇨ Scripted Utilities and Rollouts ⇨ Rollout User-Interface Controls ⇨ lmage Buttons (Инструменты MAXScript и взаимодействие с 3dsMax ⇨ Создание инструментов MAXScript ⇨ Сценарные утилиты и свитки ⇨ Элементы управления из пользовательского интерфейса свитка ⇨ Кнопки с изображением).

В поле toolTip можно ввести текстовую строку, которая появится в виде всплывающей подсказки, как только пользователь поместит курсор над данным элементом пользовательского интерфейса.

4. Выберите вкладку Events. Для кнопки имеется лишь один обработчик событий pressed, предназначенный для реакции на событие, связанное со щелчком на кнопке.

 

 

5. Поместите курсор над словом pressed и щелкните.

Откроется диалоговое окно Edit Event Handler (Правка обработчика событий).

6. Введите в окне правки этого диалогового окна код сценария, который должен быть выполнен после щелчка на кнопке, например:

Messagebox "Here is the message!"

В этом примере обработчик событий отображает окно сообщения после щелчка на кнопке.

7. Щелкните на кнопке ОК, чтобы вернуться в редактор VMS. Теперь обработчик событий pressed выбран. Итак, вы создали панель и сценарий для ее функционирования. Далее вам предстоит узнать, как эта панель приводится в действие.