RealDWG¶
RealDWG — это проприетарная библиотека разработчика (Software Development Kit, SDK), предоставляемая компанией Autodesk, которая позволяет сторонним разработчикам программного обеспечения читать, записывать и создавать файлы в формате DWG (Drawing) — основном формате хранения данных систем автоматизированного проектирования (САПР), используемом в программе AutoCAD. RealDWG предоставляет прямой доступ к геометрии, атрибутам, слоям, блокам и другим элементам чертежа без необходимости запуска самого AutoCAD.
¶История
Формат DWG является закрытым и проприетарным, на протяжении десятилетий он развивался компанией Autodesk. Долгое время единственным способом работы с файлами DWG из сторонних приложений был либо запуск AutoCAD через его API (ObjectARX), либо использование обратной инженерии формата, что было чревато юридическими рисками и несовместимостью.
В начале 2000-х годов Autodesk начала предоставлять RealDWG как официальный SDK для легального доступа к формату. Однако лицензионные ограничения были очень строгими: использовать RealDWG разрешалось только для разработки приложений, которые не конкурируют напрямую с AutoCAD (например, для просмотрщиков, конвертеров или специализированных отраслевых решений, но не для полноценных САПР общего назначения). В 2006 году, после антимонопольного разбирательства с компанией SolidWorks, Autodesk была вынуждена ослабить ограничения, и с версии RealDWG 2007 лицензия стала более открытой, хотя и осталась платной и требующей подписания соглашения.
¶Ключевые возможности и архитектура
RealDWG SDK предоставляет разработчикам набор классов и функций на C++ (а также обёртки для .NET и COM), которые позволяют:
- Чтение файлов DWG: открытие чертежей любых версий, начиная с AutoCAD 2000 (и более ранних, в зависимости от версии SDK), и извлечение всех объектов: линий, дуг, текста, размеров, блоков, атрибутов, слоёв, типов линий, стилей и т.д.
- Запись и создание: создание новых файлов DWG с нуля, добавление геометрии и данных, сохранение в любой поддерживаемой версии формата (например, сохранение в AutoCAD 2018 или 2021).
- Работа с базами данных чертежа: SDK оперирует понятиями
AcDbDatabase(база данных чертежа),AcDbObjectId(идентификатор объекта),AcDbEntity(геометрическая сущность) и другими, полностью повторяя объектную модель AutoCAD. - Поддержка пользовательских объектов: RealDWG может обрабатывать объекты, созданные сторонними приложениями (например, ObjectARX), если соответствующие модули (протоколы) зарегистрированы в системе.
- Работа с DXF: SDK также поддерживает чтение и запись формата DXF (Drawing Exchange Format), хотя основная цель — именно DWG.
¶Применение
RealDWG используется в широком спектре приложений, где требуется программная обработка чертежей:
- Просмотрщики и конвертеры: программы для просмотра DWG-файлов без установки AutoCAD (например, Autodesk DWG TrueView, который также использует RealDWG, и множество сторонних решений).
- Системы документооборота и PDM: интеграция с корпоративными системами управления данными об изделии (PDM) для автоматического извлечения метаданных, создания эскизов и проверки чертежей.
- Инженерные расчёты и анализ: программы, которые выполняют расчёты на основе геометрии чертежа (например, расчёт площадей, объёмов, трассировка сетей).
- CAM-системы: системы автоматизированного проектирования технологических процессов (CAM) часто используют RealDWG для импорта геометрии деталей.
- Веб-приложения и облачные сервисы: серверные решения, которые обрабатывают DWG-файлы, загруженные пользователями, для отображения, конвертации или анализа.
¶Лицензирование и ограничения
RealDWG является коммерческим продуктом. Для его использования необходимо приобрести лицензию у Autodesk. Лицензия обычно распространяется на одного разработчика и позволяет распространять готовое приложение с включённым SDK (royalty-free). Однако существуют строгие ограничения:
- Запрет на конкуренцию: лицензия может содержать пункты, запрещающие создание приложений, которые по функциональности полностью дублируют AutoCAD (например, полноценная САПР общего назначения с редактированием всех типов объектов).
- Отсутствие поддержки некоторых функций: RealDWG не предоставляет доступа к функциям, связанным с пользовательским интерфейсом, печатью или некоторыми специфическими командами AutoCAD.
- Версионная привязка: SDK обновляется вместе с выходом новых версий AutoCAD, и для поддержки последних версий формата DWG требуется обновление SDK.
¶Критика и альтернативы
Основная критика RealDWG связана с его закрытостью и стоимостью. Разработчики, не желающие платить Autodesk или не согласные с лицензионными ограничениями, могут использовать альтернативные решения:
- Open Design Alliance (ODA): некоммерческая организация, разрабатывающая библиотеку Teigha (ныне ODA SDK), которая также читает и записывает файлы DWG. ODA SDK является более дешёвой альтернативой и поддерживает более широкий спектр версий DWG, включая старые. Однако юридически ODA SDK не является официальным продуктом Autodesk, и его использование может быть связано с рисками, если Autodesk изменит формат.
- libredwg: свободная библиотека с открытым исходным кодом (GPLv3), которая пытается реализовать поддержку формата DWG. Она менее стабильна и не поддерживает все возможности, но является бесплатной и доступной для изучения.
- libdxfrw: библиотека для работы с форматом DXF, который является текстовым аналогом DWG, но не поддерживает все возможности бинарного формата.
¶Интересные факты
- Формат DWG (от англ. Drawing) был разработан в 1970-х годах Майком Риддлом (Mike Riddle) и впервые использован в программе Interact CAD. В 1982 году Autodesk приобрела права на формат и сделала его основой для AutoCAD.
- RealDWG является основой для многих продуктов Autodesk, включая AutoCAD LT, Revit, Inventor и Civil 3D, хотя в этих программах он используется в составе более крупных SDK.
- В 2018 году Autodesk объявила о прекращении поддержки RealDWG для .NET Framework в пользу .NET Core, что потребовало от разработчиков перехода на новую платформу.
¶Источники
- Autodesk Developer Network. RealDWG SDK Documentation.
- Open Design Alliance. ODA SDK Overview.
- libredwg project. Official Documentation.
- "AutoCAD: The Complete Reference" by George Omura.