Введение в Автолисп | страница 11
(command “line” pt1 pt2 “”).
Здесь Автолисп передает Автокаду команду line для проведения отрезка прямой из точки pt1 к точке pt2. Пустая строка завершает ввод параметров. При организации строки параметров следует обратить внимание на то, что она практически описывает символами действия оператора, вводящего параметры с клавиатуры или с помощью мыши. Действительно, при ручном вводе последовательность действия оператора выглядела бы следующим образом:
Command: _line
From point: pt1
To point: pt2
To point: Enter
Команды Автокада, вызываемые функцией command, не отражаются на экране, если системная переменная CMDECHO установлена в ноль. Если необходим ввод данных с клавиатуры или с помощью мыши, нужно либо осуществлять эту операцию до использования функции command, либо организовать паузу внутри команды (см. разд. 4.1).
3.2. Создание новой функции
Создавая новую внешнюю функцию, программист должен сообщить Автолиспу, что предлагаемая ему структура является именно функцией, которую Автолиспу предстоит обработать по той же технологии, по которой он обрабатывает встроенные функции. В составе Автолиспа имеется встроенная функция, определяющая внешнюю структуру как функцию. Такая функция записывается в формате:
(defun имя ([аргументы]/[локальные переменные])),
например:
(defun my_prog (a b / temp)).
Здесь функция my_prog содержит два аргумента (a, b) и одну локальную переменную (temp). Пара круглых скобок после имени функции обязательна, даже если аргументы отсутствуют.
Переходя к изложению техники программирования на Автолиспе, автор считает необходимым еще раз подчеркнуть, что настоящее пособие не является справочником по функциям языка. Описываемые функции сгруппированы по назначению лишь частично и лишь в той степени, которая необходима для понимания рассматриваемых программ. Детальное изучение языка требует привлечения дополнительных материалов (например [1, 2]).
3.3. Создание новой команды Автокада
Каждая внешняя функция Автолиспа может использоваться как команда Автокада путем введения ее в командную строку, если использована особая структура имени функции - с:имя_функции. Структура с: должна присутствовать обязательно, имя_функции определяет имя назначаемой команды Автокада. В такой функции список аргументов должен отсутствовать, локальные переменные могут быть указаны. Строго говоря, перечень аргументов или локальных переменных не всегда обязателен, поскольку они создаются автоматически при первом упоминании. Формат создаваемой функции: