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

ObjectARX

ObjectARX — это программный интерфейс (API) для разработки пользовательских приложений, расширяющих функциональность систем автоматизированного проектирования (САПР) на платформе AutoCAD и некоторых других продуктов компании Autodesk. ObjectARX предоставляет разработчикам прямой доступ к объектной модели чертежа, ядру графической системы и базам данных САПР, позволяя создавать собственные команды, объекты, диалоговые окна, процедуры обработки событий и иные модули, работающие в одном адресном пространстве с AutoCAD.

История

ObjectARX был разработан компанией Autodesk в середине 1990-х годов как преемник более ранних технологий расширения AutoCAD — AutoLISP (интерпретируемый язык, основанный на Lisp) и ADS (AutoCAD Development System, основанный на языке C). Основным преимуществом новой технологии стала возможность создания высокопроизводительных, динамически загружаемых библиотек (DLL-модулей) на языках C и C++, которые компилируются в машинный код и выполняются непосредственно в процессе AutoCAD, что обеспечивало значительно большую скорость работы по сравнению с интерпретируемыми скриптами.

Первая версия ObjectARX была выпущена вместе с AutoCAD R13 (1994 год). С тех пор интерфейс постоянно развивался, адаптируясь к изменениям в архитектуре AutoCAD (переход на .NET Framework, появление 64-битных версий, внедрение поддержки многоядерных процессоров). Начиная с AutoCAD 2006, компания Autodesk также продвигала Managed .NET API (на базе C# и VB.NET) как более простую и безопасную альтернативу для многих задач, однако ObjectARX остаётся основным инструментом для создания сложных, критичных к производительности приложений, особенно тех, которые требуют создания собственных графических примитивов (пользовательских объектов).

Архитектура и принципы работы

ObjectARX построен на объектно-ориентированной модели, где каждый элемент чертежа (линия, окружность, текст, размер, блок, слой, стиль и т.д.) представлен как объект определённого класса, наследующего от базового класса AcDbObject. Все объекты чертежа хранятся в контейнерах — базах данных чертежа (AcDbDatabase), которые, в свою очередь, управляются ядром AutoCAD.

Основные компоненты ObjectARX:

Приложение на ObjectARX представляет собой DLL-библиотеку, которая загружается в память AutoCAD с помощью команды ARX или автоматически при запуске. Внутри DLL реализуется точка входа acrxEntryPoint, которая обрабатывает сообщения от ядра (например, загрузка, выгрузка, начало команды). Разработчик регистрирует свои классы и команды, после чего они становятся доступны в среде AutoCAD как встроенные функции.

Классификация приложений

Приложения, создаваемые с помощью ObjectARX, можно разделить на несколько категорий по функциональному назначению:

Преимущества и недостатки

Преимущества:

Недостатки:

Применение

ObjectARX широко используется в промышленности и строительстве для создания специализированных САПР-решений. На его основе разработаны многие известные приложения, в том числе:

В России ObjectARX также применяется для разработки локализованных решений и надстроек, адаптирующих AutoCAD под требования отечественных стандартов (ГОСТ, СПДС). Например, существуют модули для автоматического оформления чертежей по ЕСКД, создания спецификаций и ведомостей.

Лицензирование и инструменты

Для разработки приложений ObjectARX требуется лицензия на AutoCAD (или другой продукт Autodesk, поддерживающий API) и среда разработки Microsoft Visual Studio (поддерживаются определённые версии, соответствующие версии AutoCAD). Autodesk предоставляет бесплатный SDK (Software Development Kit) для ObjectARX, который содержит заголовочные файлы, библиотеки, примеры кода и документацию.

Распространение готовых приложений ObjectARX обычно осуществляется в виде скомпилированных DLL-файлов, которые пользователь загружает в AutoCAD. Коммерческие приложения могут требовать отдельной лицензии или распространяться как платные надстройки.

Критика и альтернативы

Основная критика ObjectARX связана с его сложностью и высокой стоимостью разработки. Для многих задач, не требующих создания пользовательских объектов или экстремальной производительности, более предпочтительными альтернативами являются:

Выбор между ObjectARX и .NET API часто определяется требованиями к производительности и необходимости создания пользовательских объектов. Для большинства современных разработок Autodesk рекомендует начинать с .NET API и переходить на ObjectARX только в случаях, когда его возможностей недостаточно.

Источники

  1. ObjectARX Developer's Guide. Autodesk, Inc.
  2. AutoCAD ObjectARX SDK Documentation. Autodesk, Inc.
  3. Ч. Мак-Олифф. Программирование на ObjectARX. — М.: ДМК Пресс, 2005.
  4. Mastering AutoCAD ObjectARX. — Autodesk University Class Materials.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →