Другие способы вызова функций

Определенный порядок следования параметров функции с указанием дополнительных параметров с помощью ключевых слов

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

Функция создания параллелепипеда имеет ряд дополнительных параметров, которые могут следовать в произвольном порядке, но требуют указания ключевых слов. Покажем на конкретном примере, каким образом указываются такие параметры функции.

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

2. Введите в окне приемника команд следующее выражение и нажмите комбинацию клавиш <Shift+Enter>:

b = box length: 20.5 width: 15.0 height: 5.6

3. Сместите параллелепипед в сторону.


Основы MAXScript

4. Введите в окне приемника команд следующее выражение и нажмите комбинацию клавиш <Shift+Enter>:

b2 = boxheight: 5.6 length: 20.5 width: 15.0

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

В MAXScript имеется функция LoadMaxFile для загрузки файла сцены 3dsMax. Обозначение данной функции состоит из следующих элементов.

• Обязательное строковое значение с именем файла, которое должно следовать непосредственно после имени функции

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

Если функция выполняется успешно, она возвращает логическое значение true, а если ее выполнение окажется неудачным (например, при отсутствии указанного файла), онавозвратит логическое значение false.

Ниже приведены четыре разных, но вполне допустимых способа вызова данной функции:

result = LoadMaxFile "c:/scenes/trucks.max"

result = LoadMaxFile "c:/scenes/trucks.max" useFileUnits: true

result = LoadMaxFile "c:/scenes/trucks.max" quiet: true useFileUnits: false

result = LoadMaxFile "c:/scenes/trucks.max" useFileUnits: false quiet: true

Обратите внимание на два последних примера. В обоих случаях функции передаются одинаковые аргументы, изменен лишь порядок следования двух необя­зательных аргументов.

Ниже представлены другие способы вызова функций в зависимости от того, как они определены.

• FunctionName() — у функции отсутствуют аргументы. Функция не требует аргументов или использует устанавливаемые по умолчанию значения. Например, функция sphere() создает сферу со стандартными значениями параметров.

• FunctionName значение1значение2—уфункцииимеются аргу­менты,поэтомукруглыескобкинеиспользуются.Такаяфункциявоспринимает


Глава 1

один или несколько параметров. Из определения функции можно установить порядок следования ее параметров, чтобы указать передаваемые значения в правильном порядке. Например, функция subtract var1 var2 вычитает переменную var1 из переменной var2.

• FunctionName ключевое_слово1:значение1 ключевое_слово2: значение2 - у функции имеются аргументы, указываемые в произвольном порядке. Для указания конкретных передаваемых функции значений служат ключевые слова и знак двоеточия (:). Например, функция boxheight: 10 length: 20 создает параллелепипед высотой 10 и длиной 20 единиц.

• FunctionName значение1 ключевое_слово2: значение2 — это вариант, комбинированный из предыдущих способов вызова функций. Такой способ вызова функции используется нечасто. Первый аргумент функции — обязательный, второй аргумент — необязательный, и если он не указывается, то в функции используется устанавливаемое по умолчанию значение.