В некоторых ситуациях компилятор не может распознать намеренья определения переменных как глобальные: использование переменных из подсказки AutoCAD ‘command’ или с отладочными средствами ; при передачи имени переменной в строке или в форме с кавычками; при использовании неместнных переменных для передачи параметров между функциями, кампилируемыми раздельно. См. ниже функцию SPECIAL.
Функциональные аргументы
В некоторых случаях компилятор может не узнать функциональные аргументы, представленные текстовой строкой, заключенных в кавычки (т.е. имена функций или lambda-выражений). Поэтому может оказаться необходимым показать их явным образом, используя форму FUNCTION. Во всех других отношениях она такая же, как и функция QUOTE.
Максимальное количество параметров
Максимальное количество параметров, используемых в определяемых пользователем функциях и предопределенных функциях с переменным количеством параметров, не должно превышать 32.
Функции в которых можно использовать любое количество параметров в оригинальном оверлее Auto LIPS, но которые имеют ограничение до 32 параметров в оверлее, поддерживаемом компилятором: + - * / = / = < < = > >= and append bool expt list logand logior lsh mapcar max min or rem strcat strlen.
Функции, на которые это ограничение не распространяется: command cond debug defun foreach lambda progn repeat setg trace undebug untrace whil.
5.6 Специальные функции среды компилятора
(special <список переменных>)
предназначена для объявления переменных глобальными. Эта функция имеет смысл только для компилятора и не делает ничего при использовании с интерпритатором. Чтобы такое объявление было эффективным, его необходимо поместить на верхнем уровне программы, а не внутри определения функции или обращения к ней.
(nextatom [<следующий>])
предназначен для доступа ко всем существующим атомам, поскольку при работе с компилятором запрещается пользоваться переменной ATOMLISY.Аргумент <следующий> предназначен для определения начальных обращений от обращений “выделения следующего атома”.
6. Средства отладки в среде стандартного AutoLISP
(trace <функция>…)
используется как средство отладки. Функция trace устанавливает режим трассировки для заданных <функций> и возвращает имя последней функции. При выполнении функции на экране появляется точка входа в функцию (с отступлением на глубину вложенности функции) и печатается результат выполнения функции (см. функциюUNTRACE).
(untrace <функция> …)
снимает режим трассировки для указанных функций и возвращает имя последней функции.
(*error* <строка>)
определяемая пользователем функция, трактующая ошибки. Если она не nil, то выполняется как функциявсякий раз, когда AutoLISP обнаруживает ошибку. Функция может иметь один аргумент – строку, в которую передается описание ошибки. Код последней ошибки сохранеенной AutoCAD сохраняется в системной переменной ERRNO.
7. Средства отладки в среде компилятора AutoLISP
Текущая версия средств отладки предназначена для использования с интерпретируемыми (нескомпилированными) программами. При использовании для отладки скомпилированных программ большая часть информации, полезной для отладки, будет потеряна.
Средства отладки и обработки ошибок для оверлея AutoLISP и для Расширенного AutoLISP включают:
· возможность приостанавливать выполнение основной программы в следующих случаях:
- ошибка (вызванная явным оброщением пользоваталя или интерпретатором);
- вызов функции, помеченной для отладки;
- обращение к всторенной функции BREAK;
- прерывание с пульта;
· возможность продолжить выполнение, начиная с точки при остановки (кроме при остановки из–за ошибки);
· возможность выделить часть в так называемое “окно ошибок”, когда при появлении внутри этого окна любой программой ошибки или ошибки из-за неправильного ввода, можно продолжить выполнение программы за пределами этого окна;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.