ActiveX Automation – это разработанная корпорацией Microsoft® технология, которая основана на архитектуре компонентной объектной модели (COM). Этот интерфейс позволяет расширить программы на основе AutoCAD, использовать хранящиеся в чертежах данные в других приложениях, а также автоматизировать выполнение различных задач.
Можно создавать объекты чертежа и управлять ими из любого приложения, выполняющего функцию контроллера Automation. Интерфейс Automation позволяет работать с другими приложениями на макроуровне, что обычно недоступно в AutoLISP. Можно, например, отобразить запрос в командной строке, изменить настройки, создать набор объектов или извлечь данные чертежа.
Все доступные через интерфейс объекты называются объектами Automation. Объекты Automation позволяют работать с методами, свойствами и событиями. Методы — это функции, с помощью которых можно выполнять операции над объектом. Свойства — это функции, которые позволяют устанавливать или получать информацию о состоянии объекта. События — это операции или вхождения, инициированные пользователем, на которые отвечает программа.
Реализация интерфейса ActiveX для программы имеет два преимущества.
Практически любое приложение может работать с объектами 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: ,
В этом примере определяется команда RUNAPP2, при выполнении которой запрашиваются параметры, передаваемые впоследствии запускаемому приложению.
После определения внешней команды для запуска автономного приложения можно использовать ее как часть макроса для элемента пользовательского интерфейса.
Если планируется использовать только одно или два приложения, можно добавить их на одну из стандартных панелей ленты или на панель быстрого доступа. Если планируется работать с несколькими приложениями, можно определить собственные панели ленты, специально предназначенные для этих приложений.