Предотвращение ошибок AutoLISP при выполнении файлов автозагрузки
 
 
 

Если в процессе выполнения AutoLISP-файла автозагрузки происходит ошибка, то оставшаяся часть файла игнорируется и не загружается.

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

(princ (load "mydocapp1" "\nФайл MYDOCAPP1.LSP не загружен."))
(princ (load "build" "\nФайл BUILD.LSP не загружен."))
(princ (load "counter" "\nФайл COUNTER.LSP не загружен."))
(princ)

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

Например, если ошибка возникает при загрузке файла AutoCAD mydocapp1.lsp, то с помощью функции princ будет отображено приведенное ниже сообщение, после чего AutoCAD продолжит загрузку оставшихся двух файлов:

Файл MYDOCAPP1.LSP не загружен.

В файлах acad.lsp, acaddoc.lsp и MNL-файлах функция command обязательно должна вызываться из конструкции defun. Для задания последовательности команд, выполняемой в момент запуска сеанса работы с чертежом, необходимо пользоваться функцией S::STARTUP.

См. также