Введение в Автолисп | страница 16



в Автокад, позволяющая обрисовать пять стандартных форматов и создать поле изображения нужных размеров, должна выглядеть следующим образом:


(autoload "formats” ‘("А0" “A1” “A2" “A3” “A4” “scr”)).


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

В заключение необходимо отметить следующее. Описанная программа, равно как и предлагаемые далее, приведена в качестве примера программирования. В связи с этим в программах, используемых для иллюстрации, могут присутствовать структуры, не являющиеся обязательными. В частности, в программе format.lsp, строго говоря, не обязательна функция pole, так как расширить границы видового экрана до границ рамки можно, используя команду View → Zoom → Extents, а границы поля изображения расширять командой limits. Однако всегда имеет смысл предусматривать возможные результаты действия программ и сводить к минимуму операции доводки чертежа вручную.

И еще одно замечание. Программа будет работать без сбоев лишь при определенных условиях, а именно: в чертеже должны отсутствовать загружаемые слои и типы линий и отключена автоматическая объектная привязка. Возможности создания программ, исключающих эти неудобства, рассмотрены в разделах 6.6 и 6.7.


4. ОРГАНИЗАЦИЯ ПАУЗ И ВЕТВЛЕНИЕ ПРОГРАММ

4.1. Организация пауз для ввода данных

Автолисп содержит ряд функций, объединенных общей структурой getxxx, вызывающих паузу в работе программ и ожидающих ввода запрашиваемых данных. Эти функции перечислены в табл. З.


Tаблица 3. Функции запроса данных

Имя функцииХарактер запрашиваемой информации
getintЦелое число из командной строки
getrealВещественное число из командной строки
getstringСтроковая константа из командной строки
getpointКоординаты точки из командной строки или прямым указанием точки на экране
getcornerКоординаты одного из противолежащих углов окна или секущей рамки из командной строки или прямым указанием на экране
getdistЦелое или вещественное число, определяющее необходимое расстояние, из командной строки или прямым указанием отрезка на экране
getangleВеличина угла из командной строки или указанием трех точек на экране
getorientTo же
getkwordАльтернативный выбор по ключевому слову

Функции getint, getreal и getstring требуют ввода в командную строку параметра соответствующего типа.