Загрузка...

Виды функций. Создание и описание новых функций. Способы запуска программ на языке AutoLisp. Средства отладки: функция COMMAND.


Все виды функций делятся на три группы:
1. встроенные.
2. функции, созданные разработчиком и описанные в текущем примере.
3. функции, созданные разработчиком и описанные в других программах.
Описание функций должно предшествовать обращению к данной функции. Для описания новой функции используется новая функция:
<описание функции> : : = (DEFUN<имя функции>([<аргумент>…][/<локальная переменная>…]) [<выражение>])
Имя функции – это набор символов, идентифицирующие функцию.
Аргументы – список имен, обозначающие не данные, которые будут посылаться в функцию перед ее выполнением.
Локальная переменная – это перечень переменных, определение которых действует внутри данной функции.
Выражение – комментарий к функции.
Аргументы и локальные переменные могут отсутствовать, но скобки должны быть.
Выражение – это символьная запись.
(DEFUN SINCOS (X) (+ (SIN X)(COS X))); вычисляется сумма SIN и COS
(DEFUN AXJS XY( ) ; начало определения
(COMMAND “LINE” “100,50” “100,100” “ ”)
(COMMAND “LINE” “50,100” “150,100” “ ”)
) ; конец
Текст программы набирается в любом текстовом редакторе (VisualLisp) или в командной строке.
Для работы с AutoLisp необходим ряд условий:
1. AutoLisp должен быть подключен.
2. версия AutoLisp должна иметь модуль ADE3.
3. наличие компилятора.
Способы запуска программ:
a. непосредственный ввод программы с клавиатуры. Любой текст начинающийся с открывающей скобки, система воспринимает как функцию, т.е. начинает работать компилятор. (недостаток – при повторном запуске необходим повторный набор)
b. ввод программы, оформеленный как описание функции. Программа, набранная в ходе сеанса может быть использована повторно, если оформлена как описание одной (нескольких) функций, оформленных с помощью DEFUN. Повторный вызов программы производиться как обрщение к описанной функции до момента завершения сианса.
c. запись программы в виде файла. Программа может создавать текстовый файл или используя среду Visual Basic. Такой файл желательно написать в отдельный каталог, дав ему имя с расширением lsp. Перед использованием программу загружают в память с помощью функций (load “<имя_файла>”). При запросе COMMAND вводиться имя функции из этого файла.
d. оформление программы как готовой команды системы AutoCAD. Программу на AutoLisp можно оформить как команду (т.е. без скобок). Для этого в определении главной функции перед ее именем ставят C: DEFUN C:AXISXY()) то относиться к файлам без аргументов.
e. Автоматическая загрузка программ. Используется когда необходимо запустить программу без использования LOAD, это делается путем до записи новых функций в файл ACAD.LSP.
f. автоматический запуск программ. Отличается от пункта 5, тем что автоматически запускается на использование, а не просто загружается. Для этого ее включают в файл ACAD.LSP под именем S::STARTUP.

Средства отладки
Чтобы узнать значение символа в командной строке ставится !
COMMAND:! <символ>
COMMAND:! A
Для контроля работы заданной функции используется (TRACE <функция>…)
Данная функция устанавливает признак трассировки, в ходе выполнения появляется имя функции и возращаемый результат.
(UNTRACE <функция>…) – отмена трассировки.
Если количество открывающихся и закрывающихся скобок разное, то появляется сообщение
COMMAND: n >, где n – целое число, количество не закрывающихся скобок и значение «такая ошибка может возникать, если пропущен знак»
Выход: набрать недостающие скобки и кавычки, нажать ENTER.

Использование функции COMMAND (использование команд системы AutoCAD в программах на языке AutoLisp)
(COMMAND “<имя_команды_autocad>” [<аргументы>…])
Аргументы перечислены в той последовательности, в которой они используются в команде. В качестве аргумента могут быть функции AutoLisp (при этом возвращающее значение должно иметь соответствующий тип данных), а также переменные.
Значения и опции команд берутся в кавычки, имена переменных – нет. Аргументы разделяются пробелами. Для остановки работы используется слово PAUSE.
После этого программа ждет очередного аргумента, опции. В одной функции COMMAND может вызываться несколько команд системы AutoCAD.
(COMMAND “ ”) соответствующий вводу пробел (т.е. Enter)
(COMMAND) равносильно Ctrl+C
(COMMAND “CIRCLE” “10.5,20.7” PAUSE “LINE” “2.8,37” “
15.6” “ “); функция запускает построение окружности с центром (10.5,20.7) и радиусом задаваемым пользователем. Далее строится отрезок.

Загрузка...