ObjectARX, AutoCAD. Среда программирования библиотеки C++

       

Загрузка Запроса на Обнаружении Заказных Объектов{*целей*}


Когда DWG или DXF файл, содержащий заказные объекты загружен, AutoCAD определяет, действительно ли приложение - обработчик загружено. Если приложение не загружено, и первый бит переменной системы DEMANDLOAD установлен, AutoCAD ищет системный реестр системы Windows информацию относительно приложения и его модуля загрузчика. Если AutoCAD находит соответствующую информацию в системном реестре, это загружает приложение.

ОБРАТИТЕ ВНИМАНИЕ, что загрузка Запроса на обнаружении заказных классов будет только работать с классами, которые получены из AcDbObject, или непосредственно или косвенно.

Как гипотетический пример, давайте предполагать, что AutoCAD читает файл, созданный Приложением ObjectArx polysamp (изделие{*программа*} PolySamp компании).

1 После чтения чертежного файла, AutoCAD сталкивается с заказными объектами{*целями*}, созданными с приложением polysamp, и решает, что приложение не загружено.

2 AutoCAD находит, что DEMANDLOAD системная переменная установлена, чтобы допустить загрузке запроса приложений на полномочном обнаружении, так что это ищет раздел Приложений AutoCAD системного реестра для polysamp клавиши{*ключа*}.

В пределах этой клавиши{*ключа*}, это находит значение LoadCtrls, которое определяет условия{*состояния*}, при которых приложение должно быть загружено, и значение RegPath, которое обеспечивает полный путь системного реестра для polysamp модуля. Этот раздел системного реестра смотрел бы кое-что вроде этого:

 \\HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R15.0\

ACAD-1:409\

Applications\PolyCAD\

LoadCtrls:REG_DWORD:0xd

RegPath:REG_SZ:

 \\HKEY_LOCAL_MACHINE\SOFTWARE\PolySampInc\polysamp

3 AutoCAD читает polysamp\Loader клавишу{*ключ*}, чтобы определить каталог, путь, и имя файла модуля, который будет загружен. Этот раздел каталога смотрел бы кое-что вроде этого:

\\ HKEY_LOCAL_MACHINE\SOFTWARE\

PolySampInc\polysamp\

 Loader\MODULE:REG_SZ:c:\polysampinc\arx\polyui.arx

Name\PolySamp:REG_SZ:PolyCad

4 AutoCAD тогда пытается загружать ObjectARX модуль. Если загрузки модуля успешно, AutoCAD прибавляет маркер{*дескриптор*} приложения к списку прикладных маркеров{*дескрипторов*}, которые будут посланы kLoadDwgMsg сообщение. AutoCAD тогда подтверждает{*проверяет*}, что приложение было загружено должным образом, и подтверждает{*проверяет*}, что заказной класс зарегистрирован. Если приложение было загружено успешно, AutoCAD продолжится

Загружать чертежный файл. Если ObjectARX модуль не может быть загружен, или если все еще не имеется выполнения класса, доступные, заказные объекты{*цели*} обработаны как proxies, и загрузка продолжается.



Содержание раздела