Введение в Автолисп | страница 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 | Величина угла из командной строки или указанием трех точек на экране |
getorient | To же |
getkword | Альтернативный выбор по ключевому слову |
Функции getint, getreal и getstring требуют ввода в командную строку параметра соответствующего типа.