Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
METHOD / Основы САПР / AutoLISP2006.doc
Скачиваний:
84
Добавлен:
05.03.2016
Размер:
1.04 Mб
Скачать

10. Вызов команд Автокада из программы на языке AutoLisp

Ввод данных в программу на AutoLISP и вспомогательные вычисления над ними призваны служить автоматизации проектирования. Поэтому в AutoLISP не есть средство, позволяющее обращаться к командам Автокада из программ пользователя. Таким средством является функция языка AutoLisp COMMAND:

(command аргумент1 аргумент2 . . .)

Эта функция выполняет команду AutoCAD из AutoLisp и всегда возвращает nil. Аргументы представляют собой команды AutoCAD и их опции; каждый аргумент вычисляется и посылается в AutoCAD как ответ на соответствующий запрос. Имена команд и опции представляются как строковые константы, двухмерные и трехмерные точки - как списки из двух или трех действительных чисел соответственно. Пустая строка функции COMMAND равносильна нажа-тию пробела на клавиатуре. Вызов COMMAND без аргументов равносилен нажатию CTRL С с клавиатуры и прерывает большинство команд п. AutoCAD.

Например:

(command “redraw”) - будет выполнена команда п.AutoCAD REDRAW.

(command “zoom” “p”) - будет выполнен переход к предыдущему изображению экрана (если оно существует!).

Если переменная Автокада CMDECHO установлена в 0 то при выполнении этой функции на экран не будут выводиться информационные строки выполнение команды. На использование этой функции налагаются некоторые ограничения:

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

С помощью функции COMMAND нельзя работать с такими командами п. AutoCAD, как, DTEXT, DROW, PLOT, а также с командами, объявленными пользователем

(defun С:команда)

Нельзя использовать восклицательный знак для указания команде п. AutoCAD значения переменной.

Например: (setq pt1 (getpoint”Enter first point\n”)

(setq pt2 (getpoint”Enter second point\n”)

(command “line” pt1 pt2 “ “)

(command “erase” “l“ “ “)

Команда LINE строит отрезок прямой между точками pt1 и pt2 определенными ранее, “ “ - прерываем команду. Команда ERASE с опцией “last” (последний) убирает построенный отрезок. Если в строке аргументов команды, вызываемой функцией COMMAND, встречается ключевое слово Pause, то функция COMMAND приостановит свое действие, чтобы пользователь непосредственно ввел значение (или произвел отслеживание). В этот момент можно выполнить прозрачную команду, после чего выполнение функции COMMAND возобновится. Это позволяет, в частности, в процессе выполнения функции COMMAND использовать команду ZOOM. Пауза будет длиться до тех нор, пока не будет введен допустимый аргумент и пока не выполнятся все прозрачные команды. При этом если функция COMMAND требует ввода, запрос может быть удовлетворен с помощью меню. Для приостановления действия меню следует указать обратную косую черту.

Например: (command “zoom” pt1 pause) Одна угловая точка “окна” pt1, определена ранее, для ввода другой угловой точки AutoLisp приостанавливает свое действие, инициализируя запрос “Other corner”.

Соседние файлы в папке Основы САПР