Открыть сервис

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 необходимо:

  1. Открыть файл DWG или DXF с помощью метода Database.ReadDwgFile().
  2. Начать транзакцию через TransactionManager.StartTransaction().
  3. Получить доступ к нужным объектам через Transaction.GetObject().
  4. Выполнить операции чтения или модификации.
  5. Завершить транзакцию (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 →