Некоторые особенности DEMANDLOAD

При работе внутри AutoCAD иногда приходится менять значение системной переменной demandload. Обычно ситуация такова, что просто поменять значение мало, надо еще и перезапустить AutoCAD. Почему так происходит - здесь и попробую рассказать (как я понимаю эти моменты)

Для начала обратимся к справке:

demandload задает условие загрузки arx-, dbx-приложений и Соответствующим образом написанных и загружаемых. Это абсолютно отдельная тема, которую в свое время разбирал Андрей Бушман у себя на сайте.
Допустимые значения:
0 : автоматическая загрузка отключена.
1 : Режим подгрузки стороннего приложения при открытии чертежа, который содержит объекты, созданные в этом приложении. Это значение не вызывает подгрузку приложения при вызове одной из команд приложения.
2 : Требует подгрузки приложения-источника при вызове одной из команд приложения. Это значение не вызывает подгрузку приложения при открытии чертежа, в котором содержатся принадлежащие приложению объекты.
3 : Требует подгрузки приложения-источника при открытии чертежа, содержащего пользовательские объекты, или при вызове одной из команд приложения.
Значение по умолчанию: 3
Значение сохраняется в реестре.

Еще раз - по умолчанию demandload равна 3. То есть при загрузке файла AutoCAD сразу пытается найти соответствующие arx/dbx модули, отвечающие за обработку т.н. "прокси"-объектов (вопрос о прокси я разбирал уже не раз, добро пожаловать в поиск по сайту ;)). Допустим, в файле обнаружены объекты AcDgnLS. AutoCAD сразу пытается найти соответствующий модуль и втихаря его загружает. Причем следует учитывать, что этот модуль будет доступен сразу для всех документов в текущей сессии AutoCAD - как для уже открытых, так и для обрабатываемых позже. Соответственно объекты AcDgnLS перестают считаться "прокси".

Если после этого поменять demandload, например, на 2, то поведение AutoCAD'a не изменится ни на йоту: модули-то уже загружены.

Кроме того, есть еще один момент: изменения в реестр вносятся только после закрытия AutoCAD'a, а не пока он работает. То есть при открытии следующего файла AutoCAD "подумает", что demandload = 3 и будет вести себя соответственно.

Следовательно, после изменения значения системной переменной demandload просто необходимо перезагружать AutoCAD, чтобы он "подхватил" все изменения.



Поделитесь своим мнением


Я не робот.