ObjectDBX
ObjectDBX — это программный интерфейс (API) и технология доступа к данным чертежей, разработанная компанией Autodesk для работы с файлами форматов DWG и DXF. ObjectDBX предоставляет возможность чтения, записи и модификации геометрических и атрибутивных данных, хранящихся в чертежах, без необходимости запуска полнофункционального приложения AutoCAD. Технология является частью семейства продуктов Autodesk и используется для создания приложений, автоматизирующих обработку чертежей, извлечение данных и интеграцию с другими системами.
История
Разработка ObjectDBX была начата компанией Autodesk в конце 1990-х годов как часть стратегии по расширению возможностей работы с форматом DWG. Первоначально технология была известна как ObjectDBX (Object Database eXtension) и представляла собой библиотеку, позволяющую разработчикам обращаться к объектной модели чертежа напрямую, минуя графический интерфейс AutoCAD. Это стало возможным благодаря переходу на объектно-ориентированную архитектуру в AutoCAD 2000.
В 2000-х годах ObjectDBX стал основой для ряда продуктов Autodesk, включая AutoCAD LT (урезанная версия AutoCAD, не поддерживающая расширения ARX, но использующая ObjectDBX для чтения/записи DWG), AutoCAD WS (облачный сервис для просмотра и редактирования чертежей) и AutoCAD 360 (мобильное приложение). В 2010-х годах, с развитием облачных технологий, ObjectDBX был адаптирован для работы в веб-среде, что позволило создавать приложения для просмотра и редактирования чертежей в браузере.
Архитектура и принцип работы
ObjectDBX построен на основе объектной модели чертежа AutoCAD, которая представлена иерархией классов. Основные компоненты включают:
- Database — корневой объект, представляющий весь чертеж. Содержит коллекции объектов (слои, блоки, размеры, примитивы).
- Transaction — механизм для управления изменениями. Все операции чтения и записи выполняются в рамках транзакций, что обеспечивает целостность данных.
- ObjectId — уникальный идентификатор объекта в базе данных. Используется для ссылок на объекты без их загрузки в память.
- DBObject — базовый класс для всех объектов чертежа (линии, окружности, тексты, блоки и т.д.).
Доступ к данным
Для работы с чертежом через ObjectDBX необходимо:
- Открыть файл DWG или DXF с помощью метода
Database.ReadDwgFile(). - Начать транзакцию через
TransactionManager.StartTransaction(). - Получить доступ к нужным объектам через
Transaction.GetObject(). - Выполнить операции чтения или модификации.
- Завершить транзакцию (Commit или Abort).
Пример (C#):
```csharp using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Runtime;
public void ReadDwg(string filePath) { Database db = new Database(false, true); db.ReadDwgFile(filePath, FileOpenMode.OpenForReadAndAllShare, false, ""); using (Transaction tr = db.TransactionManager.StartTransaction()) { BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead); BlockTableRecord btr = (BlockTableRecord)tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForRead); foreach (ObjectId id in btr) { DBObject obj = tr.GetObject(id, OpenMode.ForRead); if (obj is Line line) { // Работа с линией } } tr.Commit(); } } ```
Поддерживаемые форматы
ObjectDBX поддерживает все версии формата DWG, начиная с AutoCAD 2000 (версия 15) и до актуальных (например, DWG 2018). Также поддерживается формат DXF (Drawing Exchange Format) всех версий, включая ASCII и бинарный.
Применение
ObjectDBX используется в широком спектре задач, связанных с автоматизацией работы с чертежами:
- Извлечение данных: массовое чтение атрибутов блоков, текстов, размеров, слоев и других объектов. Применяется для составления спецификаций, ведомостей материалов, отчетов.
- Конвертация форматов: преобразование DWG в DXF, DWF, PDF, а также в другие форматы (например, в формат систем автоматизированного проектирования (САПР) других вендоров).
- Пакетная обработка: автоматическое изменение свойств объектов (слой, цвет, толщина линий) в сотнях файлов без открытия каждого вручную.
- Интеграция с базами данных: связывание чертежей с корпоративными системами управления данными (PDM/PLM). Например, автоматическое обновление чертежей при изменении спецификации в ERP-системе.
- Разработка веб-приложений: создание онлайн-просмотрщиков и редакторов DWG. ObjectDBX позволяет рендерить чертежи на сервере и передавать клиенту только изображение, не раскрывая исходный файл.
- Создание плагинов для AutoCAD: расширение функциональности AutoCAD через пользовательские команды, работающие с объектной моделью чертежа.
Сравнение с другими технологиями
| Технология | Назначение | Зависимость от AutoCAD |
|---|---|---|
| ObjectDBX | Чтение/запись данных DWG/DXF | Не требует запуска AutoCAD, но требует установки библиотек Autodesk |
| AutoCAD .NET API | Разработка плагинов для AutoCAD | Требует запущенного AutoCAD |
| AutoLISP | Скриптинг в AutoCAD | Требует запущенного AutoCAD |
| Open Design Alliance (ODA) | Чтение/запись DWG/DXF без Autodesk | Не требует Autodesk, но неофициальная реализация |
| libredwg | Чтение/запись DWG (открытый исходный код) | Не требует Autodesk, но ограниченная поддержка |
ObjectDBX является официальным API от Autodesk, что обеспечивает полную совместимость с форматом DWG, но требует лицензирования и установки соответствующих библиотек. В отличие от Open Design Alliance (ODA), ObjectDBX не поддерживает работу с чертежами, созданными в AutoCAD 2018 и новее, без установки соответствующих обновлений.
Ограничения и лицензирование
- Лицензирование: ObjectDBX входит в состав SDK Autodesk и распространяется по лицензии, требующей покупки или подписки на продукты Autodesk. Бесплатное использование возможно только для разработки приложений, работающих в связке с лицензионным AutoCAD.
- Платформы: Поддерживаются только Windows (x86/x64). Для Linux и macOS требуется использование эмуляторов или виртуальных машин.
- Производительность: При работе с большими чертежами (сотни тысяч объектов) может наблюдаться снижение скорости из-за необходимости загрузки всей базы данных в память.
Интересные факты
- ObjectDBX используется в продукте Autodesk Vault для автоматического обновления чертежей при изменении связанных данных.
- Технология лежит в основе Autodesk Design Review — бесплатного приложения для просмотра и аннотирования чертежей.
- В 2015 году Autodesk выпустила ObjectDBX for Web, позволяющий выполнять операции чтения/записи DWG через веб-сервер на Node.js.
- ObjectDBX не поддерживает работу с динамическими блоками, внешними ссылками (Xref) и некоторыми другими объектами, специфичными для AutoCAD.
Критика
Основные претензии к ObjectDBX связаны с его закрытостью и зависимостью от экосистемы Autodesk. Разработчики отмечают:
- Высокую стоимость лицензирования для коммерческого использования.
- Отсутствие поддержки кроссплатформенности (только Windows).
- Необходимость установки тяжеловесных библиотек Autodesk (до 1 ГБ).
- Ограниченную документацию и отсутствие примеров для сложных сценариев.
В ответ на это сообщество разработчиков САПР активно использует альтернативы, такие как Open Design Alliance (ODA) и libredwg, которые предоставляют открытый доступ к формату DWG, хотя и с некоторыми ограничениями по точности воспроизведения.
Источники
- Autodesk Developer Network. ObjectDBX Developer's Guide. 2020.
- Autodesk. AutoCAD .NET Developer's Guide. 2023.
- Open Design Alliance. DWGdirect SDK Documentation. 2022.
- libredwg. Official Repository and Documentation. 2023.
- Журнал «САПР и графика». Статья «ObjectDBX: технология доступа к данным чертежей». №4, 2019.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →