Хранение пользовательских типов данных. Часть 1. Данные внутри документа
Как я обещал, первая часть. Касается данных, требуемых в контексте только текущего документа. Текста будет немного (наверное).
Итак, как я писал в статье О форматировании кодов, глобальные переменные можно "обрамлять" символом звездочки. Например, *lispru-acad* будет vla-указателем на текущую сессию AutoCAD'a, *lisp-adoc* - на текущий документ и так далее.
Такие переменные проще всего инициализировать в стартовом лисп-коде, время от времени его дополняя. Правда, одно "но" - такой лисп должен быть один и только один. В противном случае слишком легко запутаться и попытаться обратиться к еще неинициализированной переменной.
Лично у меня подобных глобальных переменных немного:
Имя переменной | Хранимое значение |
*lispru-acad* | Указатель на процесс AutoCAD |
*lispru-adoc* | Указатель на текущий документ |
*lispru-model* | Указатель на пространство модели текущего документа |
*lispru-path* | Основной путь хранения файлов дополнений (шрифтов, типов линий, arx-приложений и т.п. |
*lispru-reg* | Основная ветка реестра для хранения данных |
*lispru-name* | Имя дополнений. Используется при динамическом формировании dcl-диалогов |
*lispru-ver* | Версия приложения |
Естественно, что у Вас этот список, скорее всего, будет отличаться.