Класс сервиса приложения
Когда ObjectDBX используется, чтобы создать ведущее приложение, код в ObjectDBX библиотеке ожидает, что ведущее приложение обеспечит это некоторыми услугами; например, файл находит механизм. Когда Вы записываете ObjectDBX ведущее приложение, Вы требованы, чтобы осуществить эти услуги, которые будут использоваться и, ObjectDBX непосредственно, и потенциально другими приложениями DBX.
Эти назначения и услуги сделаны доступными прикладным объектным классом AcDbHostApplicationServices. Ваше ведущее приложение должно получить, создавать, и регистрировать образец этого класса с ObjectDBX, который в свою очередь вызывает функции члена образца класса как необходимо.
Файл заголовка для прикладных услуг - dbapserv. h. Классы и методы в этом файле заголовка относятся к одной из трех категорий:
§ Те Вы должен перегрузить, потому что никакое заданное по умолчанию выполнение не обеспечивается как метод, принят, чтобы быть очень специфичным для приложения. Они, как объявляют, являются чистыми виртуальными.
§ Те Вы можете перегружать, но это имеет заданное по умолчанию выполнение, которое минимально удовлетворит код базы данных. Они объявлены виртуальными.
§ Те Вы не можете перегружать, поскольку они, как ожидается, будут работать тождественно во всех ведущих приложениях. Они вообще объявляются не виртуальными.
Это требовано, что любое ObjectDBX ведущее приложение должно обеспечить класс, полученный из AcDbHostApplicationServices. Это отличается от пути DWG Отключенный, работал, где заданное по умолчанию обслуживание обеспечивалось. Детальное описание класса существует в ObjectARX Ссылке, где каждый метод описан с его заданным по умолчанию выполнением (если это имеет один), что Вы должны делать, чтобы перегрузить метод успешно, и как вызвать метод. Когда ваше приложение инициализирует, это должно создать образец вашего класса, полученного из AcDbHostApplicationServices. Конфигурируйте это, по мере необходимости и делайте объект доступным приложению, вызывая глобальную функцию acdbSetHostApplicationServices ().
Различия между ObjectDBX и ObjectARX
Наиболее видимое различие между ObjectDBX и ObjectARX-приложениями - присутствие AutoCAD. ObjectDBX может использоваться, чтобы создать DBX файлы, которые будут работать с любым ведущим приложением, но ObjectARX-приложения всегда требуют AutoCAD как их ведущее приложение. ObjectDBX может также использоваться, чтобы создать ведущие приложения, но ObjectARX не может использоваться, чтобы создать ведущие приложения.
ObjectDBX и ObjectARX доля библиотек большинство того же самого основания кода C++ имели обыкновение разрабатывать AutoCAD. Однако, ObjectDBX не использует функции ObjectARX, определенные на сессию рисунка AutoCAD, и некоторые из тех функций имеют замены в ObjectDBX, которые восполняют отсутствие во время выполнения AutoCAD.
Типовые программы, включенные с ObjectDBX иллюстрируют различные использования ObjectDBX библиотек. Выборка creatent - самое простое и лучшее место, чтобы начать изучать развитие приложения ObjectDBX.
Следующие секции обеспечивают детальную информацию относительно различий между ObjectARX и ObjectDBX библиотеками.
AcEditorReactor Класс
Следующие AcEditorReactor уведомления имеют силу в ObjectDBX:
- dwgFileOpened databaseToBeDestroyed saveComplete beginInsert otherInsert abortInsert endInsert wblockNotice beginWblock otherWblock endWblock beginDeepClone beginDeepCloneXlation abortDeepClone endDeepClone sysVarChanged sysVarWillChange
AcGi API
Предназначенное использование AcGi уровня описано в “AcGi” на странице 664. Определенное в AutoCAD выполнение его AcGi уровня - не часть ObjectDBX. Вместо этого, ObjectDBX обеспечивает его собственный графический интерфейс для отображающихся примитивов AutoCAD.
Локализация и XMX Файлы
С тех пор acdb. xmx оттранслирован для всех ограниченных версий AutoCAD, pretrans-lated XMX файлы теперь отправлены как часть ObjectDBX SDK, так что Вы можете создавать полностью ограниченное языком конечное изделие. Это позволит, Вы, чтобы создать несколько версий языка вашего приложения, или вашего приложения можете сделать запрос пользователя с выбором нескольких языков.
Выбор языка будет ответственность вашего приложения. К тому концу, загрузка XMX файла находится в функции acdbValidateSetup ().
Эта функция берет параметр LCID, чтобы определить выбор приложения языка. Функция будет пытаться загружать это XMX файл сначала, используя AcDbHostApplicationServices:: findFile () метод и, если это терпит неудачу, смотря в каталоге, который содержит AcDb15.dll.
Сигнатура для acdbValidateSetup ()
Acad::ErrorStatus
acdbValidateSetup( long lcid );
Acdb. xmx файл теперь назван acdbLLL. xmx, где ЯЗЫК НИЗКОГО УРОВНЯ - сокращение локализации языка с тремя символами, которое может быть получено из LCID.
Autodesk поддерживает, и в конечном счете отправит или иначе обеспечит, acdbLLL. xmx файлы на следующих языках.
XMX файлы типа
Language | Language Abbreviation | Language ID from LCID |
English (USA) | ENU | 0409 |
Chinese (Taiwan) | CHT | 0404 |
Chinese (Simplified) | CHS | 0804 |
Czech | CSY | 0405 |
French (Default) | FRA | 040c |
German (Default) | DEU | 0407 |
Greek | ELL | 0408 |
Hungarian | HUN | 040e |
Italian | ITA | 0410 |
Japanese | JPN | 0411 |
Korean | KOR | 0412 |
Polish | PLK | 0415 |
Portuguese (Brazilian) | PTB | 0416 |
Portuguese (Default) | PTG | 0816 |
Russian (Default) | RUS | 0419 |
Spanish (Default) | ESP | 040a |
Как ObjectDBX разработчик, Вы должны делать две вещи создать ограниченный языком конечный продукт:
§ Вы должен отправить соответствующие acdbLLL. xmx файлы наряду с вашим изделием{*программой*}.
§ Вы должен сообщить ObjectDBX который acdbLLL. xmx файл загрузиться, пропуская соответствующий LCID к acdbValidateSetup ().
Если LCID не соответствует одному из сокращений с тремя символами выше, или если соответствующий XMX файл не был отправлен, ваше приложение ObjectDBX будет не в состоянии загружаться должным образом.
Если неспособно найти, желательный acdb. xmx файл, acdbValidateSetup () будет пытаться загружать Английский язык как по умолчанию. Снова, это будет сначала использовать findFile (), и затем принимать тот же самый путь как AcDb15.dll. Если это находит Английский язык, но Английский язык не был, требуемый язык, Acad:: eFileNotFound возвращен. Если функция неспособна найти любой acdb. xmx файл, это остановится с fatalError (), и ваше приложение не будет загружаться.
Управление транзакцией
Обработка Транзакции - теперь часть ObjectDBX вместо AutoCAD, и соответствующая библиотека - acdb. dll вместо выполнимой программы AutoCAD. Имеется один новый класс, AcDbTransactionManager, как часть этого изменения.
AcTransaction и Классы AcTransactionReactor
Эти классы были перемещены от AutoCAD до ObjectDBX DLL. Их файл заголовка - теперь dbtrans. h, хотя Вы можете продолжать использовать actrans. h заголовок, так как actrans. h включает dbtrans. h. Для информации относительно классов, пожалуйста см. секции на AcTransaction и AcTransactionReactor в ObjectARX Ссылке.
AcTransactionManager и Классы AcDbTransactionManager
AcDbTransactionManager класс нов в этом выпуске, и существующий AcTransactionManager класс теперь получен из AcDbTransactionManager.
Все методы AcTransactionManager, кроме enableGraphicsFlush () и flushGraphics (), теперь принадлежат AcDbTransactionManager. EnableGraphicsFlush () и flushGraphics () методы - все еще члены AcTransactionManager класса. Для описания классов и методов, пожалуйста см. ObjectARX Ссылку. AcTransactionManager класс - все еще часть acad. lib библиотеки.
Создание Средства просмотра
ObjectDBX включает компоненты, которые могут использоваться, чтобы разработать средство просмотра для геометрических моделей, сохраненных в базе данных AutoCAD. Эта работа компонентов вместе, чтобы формировать полную библиотеку рассмотрений но может использоваться или заменен независимо разработчиками. Компоненты взаимодействуют с AcDb моделями через AcGi API, который является тем же самым интерфейсом, что система графики AutoCAD использует, чтобы взаимодействовать с AcDb.
Компоненты Средства просмотра
ObjectDBX обеспечивает три отличных инструментальных средства, которые работают вместе, чтобы осуществить средство просмотра:
- AcGix библиотека разработок SimpleView производят выборку векторного берущего, использующего HDC WhipView берущий вектора дисплейного файла
Типовое приложение ObjectDBX ViewAcDb демонстрирует использование этих компонентов. Это снабжено в двоичной форме и в полной исходной форме с файлом проекта Microsoft Visual C++.
Хотя не принудительно, что приложение использует любой из этих компонентов, принимается, что большинство приложений будет хотеть использовать AcGix библиотеку и что существенное число их будет хотеть использовать или приспособить код SimpleView. WhipView библиотечный Autodesk использований частная технология дисплейного файла, чтобы обеспечить уровень “перегенерально - свободного” панорамирования и изменения масштаба изображения.
AcGi
AcGi API - интерфейс между AcDb и системы исполнения имели обыкновение отображать AcDb модели. Этот интерфейс используется функциями члена AcDbEntity worldDraw (), viewportDraw (), и saveAs (), которые являются частью стандартного протокола примитива.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |


