
- •С чего начать
- •Переменные и присвоение им значений
- •Области видимости
- •Настойчивые переменные
- •Изменяемый тип переменных
- •Присвоение значения по ссылке
- •Выделение памяти и уборка мусора
- •Имена переменных
- •Литералы
- •Числовые литералы
- •Строковые литералы
- •Литералы времени
- •Литералы имен объектов
- •Литералы точек в двумерном и трехмерном пространстве
- •Литералы массивов
- •Выражения
- •Простые выражения
- •Математические выражения
- •Порядок выполнения операций в математических выражениях
- •Полиморфизм
- •Выражения сравнения
- •Логические операции
- •Сокращенное выполнение логических выражений
- •Позиционированные и именованные параметры
- •Приоритет вызова функций
- •Написание вызова функции в несколько строк
- •Другой способ вызова функций
- •Контекстные выражения
- •Комментарии
- •Обращение из одного скрипта к другим
- •Управление порядком выполнения операторов
- •Пропуск выполнения цикла
- •Собственная обработка ошибок
- •Оформление функций
- •Переменная, содержащая функцию
- •Параметры функций
- •Принудительное завершение функции
- •Определение структур
- •Создание функций, локальных внутри структуры
- •Базовые классы maxScript Класс Value
- •Операторы
- •Литералы
- •Операторы
- •Свойства
- •Операторы
- •Точка в трехмерном пространстве
- •Литералы
- •Конструкторы
- •Свойства
- •Операторы
- •Литерал
- •Конструкторы
- •Свойства
- •Произвольный поворот
- •Литералы
- •Конструкторы
- •Операторы
- •Свойства
- •Углы Эйлера
- •Операторы
- •Свойства
- •Прямоугольник
- •Литералы
- •Конструкторы
- •Свойства
- •Операторы
- •Функция
- •Массив_чисел
- •Вспомогательные методы Функция
- •Функция
- •Можно открыть зашифрованный файл, используя функцию
- •Свойства
- •Свойства
- •Особенности работы с ключами анимации
- •Массив параметров
- •Конструкторы
- •Свойства
- •Операторы
- •Множества
- •Шаблонные группы
- •Свойства
- •Операторы
- •Функции для работы с группами
- •Наборы объектов
- •Конструкторы
- •Свойства
- •Операторы
- •Функции, работающие с наборами
- •Дополнительные сведения
- •Конструкторы
- •Свойства
- •Операторы
- •Прочие функции
- •Операторы
- •Конструкторы
- •Свойства
- •Операторы
- •Конструкторы
- •Свойства
- •Операторы
- •Конструкторы
- •Свойства
- •Операторы
- •Литералы
- •Свойства
- •Операторы
- •Конструкторы
- •Свойства
- •Операторы
- •Конструкторы
- •Свойства
- •Операторы
- •Прочие функции
- •Скрипт-утилиты
- •Панель скрипт-утилиты
- •Составные части тела свитка
- •Создание перемещаемых окон
- •Видимость локальных переменных, структур, функций и компонент интерфейса из кода свитка
- •Доступ к локальным переменным и прочим элементам утилит и свитков из внешнего кода
- •Компоненты пользовательского интерфейса
- •Название_компонента Имя_переменной Символьная_строка
- •Общие свойства компонентов пользовательского интерфейса
- •Общие параметры компонентов пользовательского интерфейса
- •Типы компонентов пользовательского интерфейса Для примера рассмотрим утилиту, использующую все возможные компоненты пользовательского интерфейса
- •Битовая карта
- •Параметры
- •Свойства
- •События
- •Параметры
- •Параметры
- •Свойства
- •События
- •Параметры
- •Свойства
- •События
- •Выпадающий список
- •Параметры
- •Свойства
- •События
- •Свойства
- •События
- •Кнопка выбора текстурной карты
- •Параметры
- •Свойства
- •События
- •Кнопка выбора материала
- •Параметры
- •Свойства
- •События
- •Список с возможностью множественного выбора
- •Параметры
- •Свойства
- •События
- •Кнопка выбора объекта
- •Параметры
- •Свойства
- •События
- •Задатчик
- •Параметры
- •Свойства
- •События
- •Параметры
- •Свойства
- •События
- •Кнопки с картинками
- •Скрипт контекстного меню
- •Тело контекстного меню
- •Пункт меню
- •Разделитель
- •Подменю
- •Макро скрипты
- •Создание файлов с иконками
- •Средства работы с мышью
- •Остановить работу средства можно вызовом функции
- •Правила оформления средств работы с мышью
- •События
- •Скрипт плугины
- •Правила построения скрипт-плугина
- •Внесение изменений в плугин
- •Урок 1. Твердые тела
- •Создание набора твердых тел
- •Добавление тел к набору
Свойства
Количество ребер в массиве может быть получено с помощью свойства
Массив_ребер.count
Имена всех именованных наборов ребер можно получить с помощью свойства
Массив_ребер.selSetNames
При этом необязательно, чтобы ребра, выделенные на текущий момент, входили в именованные наборы.
Следующие свойства могут применяться только для массивов, содержащих одно ребро. Такой массив можно получить с помощью операции индексирования. Индекс ребра в сетке можно получить с помощью свойства
Массив_ребер.index
При переборе массива ребер в цикле, результатом как раз является массив, содержащий одно ребро. Например, если имеется сетка MyMesh, то получить индексы выделенных ребер можно с помощью такого скрипта
for i in MyMesh.SelectedEdges collect i.index
Операторы
Выделить ребра сетчатого объекта можно с помощью оператора присваивания
Редактируемая_сетка.selectedEdges = Массив_или_Битовый_массив
Массив, стоящий справа, указывает ребра, которые будут выделены.
Оператор индексирования имеет разное назначение при работе с ребрами, в зависимости от того, что используется в качестве индекса. Получить массив, состоящий из одного ребра можно, указав в скобках целое число
Массив_ребер [ Целое_число ]
Кроме того, тот же вид индексирования можно применять для установки координат ребра
Массив_ребра [ Целое_число] = Точка_в_3D_пространстве
Получить новый массив ребер произвольного размера можно, используя массив целых чисел или битовый массив
Массив_ребер [ Битовый_массив_или_массив_целых_чисел ]
Если в скобках указано имя или строка, то можно получить ребра, составляющие именованный набор, присвоить этому набору нужный массив ребер или создать новый набор
Массив_ребер [ Имя_или_строка ]
Массив_ребер [ Имя_или_строка ] = Массив_ребер
Массив_ребер [ Имя_или_строка ] = Битовый_массив
Массив_ребер [ Имя_или_строка ] = Массив_целых_чисел
Методы
Переместить набор ребер можно с помощью функции
move Массив_ребер Точка_в_3D_пространстве
Координаты указанной точки означают расстояние, на которое переместится каждая из вершин, составляющих ребра набора. Чтобы выделить ребра, входящие в набор, используйте функцию
select Массив_ребер
а для обратного действия
deselect Массив_ребер
Функция
delete Массив_ребер
уничтожает ребра, входящие в массив. Добавить набор ребер или ребро с заданным индексом к набору позволяет функция
append Массив_ребер Массив_ребер
или
append Массив_ребер Целое_число
в последнем случае число задает индекс ребра в сетке. Чтобы проверить, находится ли ребро в массиве, используйте функцию
findItem Массив_ребер Целое_число
в этом случае число означает индекс ребра в сетке, или
findItem Массив_ребер Массив_ребер[ Целое_число]
В этом случае вторым параметром стоит массив ребер из одного ребра.
Битовые массивы
Битовые массивы предоставляют средства для работы с последовательностями элементов, которые могут принимать только два значения. Поэтому очень часто битовые массивы трактуются именно как массивы логических значений.
Литералы
Битовый массив в тексте программы можно задать, как последовательность чисел или диапазонов чисел, заключенных в фигурные скобки и разделенных запятой. Перед открывающей скобкой должен стоять знак #. Например
#{3,7,12..15,48}
Приведенная запись означает, что в данном массиве значение true имеют элементы третий, седьмой, с двенадцатого по пятнадцатый включительно и сорок восьмой. Допускается пустой битовый массив, который записывается как
#{ }