Свойства объектов

Необходимо не только создавать объекты, но и просматривать и изменять их свойства. Любой объект, создаваемый в 3dsMax, имеет ряд свойств, или атрибутов, определяющих этот объект.


Основы MAXScript

Для обращения к свойствам объектов служит переменная ссылочного типа. Ранее в этой главе была создана такая переменная b. Для доступа к конкретному свойству параллелепипеда b перед именем этого свойства ставится точка (.), как в следующих примерах:

b.length b.width b.height

Свойства объектов можно распознать по названиям соответствующих параметров, появляющихся на панели Create или Modify при создании объекта непо­средственно в видовом окне.

С помощью функции box() ранее был создан параллелепипед, и поэтому все его свойства исходно имеют устанавливаемые по умолчанию значения. При этом не было указано, в какой точке мирового пространства должен располагаться па­раллелепипед, какими должны быть его размеры и сколько у него должно быть сегментов. Таким образом, данная функция позволяет создать параллелепипед с устанавливаемыми по умолчанию значениями всех его свойств.

В нриемнике команд отображаются координаты [0.00000,0.00000, 0.00000] стандартного положения параллелепипеда, но не его стандартные длина, ширина и высота. Если перейти к панели Modify и посмотреть на параметры параллелепипеда, то можно заметить, что его длина, ширина и высота составляют 25,0, 25/0и25/0 соответственно.

Для обнаружения имеющихся свойств объекта конкретного типа служит функция showProperties:

showProperties <узел>

Функцию showProperties следует применять к переменной, содержащей сам объект, а не его тип. Для этого необходимо использовать следующий фрагмент кода:

b = box()

showProperties b

А в ответ на следующую команду появится сообщение об ошибке:

showProperties box

Примечание. Еще один способ доступа к функции showProperties состоит в использовании псевдонима show.

Для видоизменения свойств объекта достаточно установить новые значения этих свойств. Например, в следующей строке кода устанавливается длина параллелепипеда — 40 единиц:

box.length = 40

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

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

1. Введите в окне приемника команд следующую строку кода:

s = sphere()


Глава 1

2. Введите в окне приемника команд следующую строку кода:

showss

В данном случае появляется радиус в качестве свойства объекта, имеющего сферический тип данных.

3. Для просмотра текущего значения радиуса сферы введите следующую строку кода:

s.radius

4. Для изменения радиуса сферы введите следующую строку кода:

s.radius = 50

В итоге радиус сферы изменится в видовых окнах.