ActiveX Automation – это разработанная корпорацией Microsoft® технология, которая основана на архитектуре компонентной объектной модели (COM). Этот интерфейс позволяет выполнять адаптацию AutoCAD, использовать хранящиеся в чертежах данные совместно с другими приложениями, а также автоматизировать выполнение различных задач.
Можно создавать объекты чертежа и управлять ими из любого приложения, выполняющего функцию контроллера автоматизации. Интерфейс Automation позволяет работать с другими приложениями на макроуровне, что невозможно в AutoLISP.
Реализация интерфейса ActiveX для программы имеет два следующих преимущества.
Можно, например, выдать запрос в командной строке, изменить настройки, создать набор объектов или найти нужные объекты чертежа. Тип используемых средств для создания контроллера следует выбирать с учетом сложности манипуляций, которые будут выполняться с объектами чертежа.
Все доступные через интерфейс объекты называются объектами Automation. Объекты Automation позволяют работать с методами, свойствами и событиями. Методы являются функциями, с помощью которых можно выполнять операции над объектом. Свойства являются функциями, которые позволяют устанавливать или получать информацию о состоянии объекта. События — это операции или вызовы, инициированные пользователем, на которые отвечает программа.
Практически любое приложение может работать с объектами Automation непосредственно в среде AutoCAD. В качестве таких приложений могут выступать отдельные исполняемые exe-файлы, библиотеки динамической компоновки (DLL-файлы), а также макросы, созданные в таких приложениях, как Microsoft Word или Microsoft Excel. Наиболее распространенным, вероятно, будет отдельный исполняемый файл. При использовании приложений сторонних разработчиков необходимо следовать прилагаемым к ним инструкциям по установке и использованию продукта.
Можно использовать файл acad.pgp для определения команд, при обращении к которым выполняется внешняя команда запуска автономного приложения аналогично поведению псевдонимов команд, которые используются для запуска команд.
В приведенном ниже примере определяется псевдоним команды RUNAPP1, запускающий приложение app1.exe из папки c:\vbapps\. (Этот код следует добавить в раздел внешних команд в файле acad.pgp.)
RUNAPP1, start c:\vbapps\app1, 0
Если при запуске приложения требуется задавать определенные параметры, можно воспользоваться следующим примером:
RUNAPP2, start c:\vbapps\app2, 0, *Parameters: ,
В этом примере определяется команда ЗПРИЛ2, при выполнении которой запрашиваются параметры, передаваемые впоследствии запускаемому приложению.
Другой способ запуска приложений, использующих Automation, заключается в применении функции AutoLISP startapp . Как только AutoLISP запускает внешнее приложение, контроль операций становится невозможным. Однако имеется возможность использовать AutoLISP для поиска и запуска других приложений на основании определенных параметров.
После определения внешней команды для запуска автономного приложения можно использовать ее как часть макроса для элемента пользовательского интерфейса.
Если планируется использовать только одно или два приложения, можно добавить их на одну из стандартных панелей ленты или на панель быстрого доступа. Если планируется работать с несколькими приложениями, можно определить собственные панели ленты, специально предназначенные для этих приложений.