Разработка приложений с помощью ActiveX Automation

ActiveX Automation – это разработанная корпорацией Microsoft® технология, которая основана на архитектуре компонентной объектной модели (COM). Этот интерфейс позволяет расширить программы на основе AutoCAD, использовать хранящиеся в чертежах данные в других приложениях, а также автоматизировать выполнение различных задач.

Можно создавать объекты чертежа и управлять ими из любого приложения, выполняющего функцию контроллера Automation. Интерфейс Automation позволяет работать с другими приложениями на макроуровне, что обычно недоступно в AutoLISP. Можно, например, отобразить запрос в командной строке, изменить настройки, создать набор объектов или извлечь данные чертежа.

Все доступные через интерфейс объекты называются объектами Automation. Объекты Automation позволяют работать с методами, свойствами и событиями. Методы — это функции, с помощью которых можно выполнять операции над объектом. Свойства — это функции, которые позволяют устанавливать или получать информацию о состоянии объекта. События — это операции или вхождения, инициированные пользователем, на которые отвечает программа.

Прим.:
  • Автоматизация ActiveX в AutoCAD LT для Windows поддерживается только библиотекой AutoCAD ActiveX и языком программирования AutoLISP. AutoCAD LT не поддерживает автоматизацию ActiveX с VBA и другими языками программирования. Не поддерживаются также и сторонние библиотеки ActiveX, например те, которые используются для доступа к Microsoft Word и Microsoft Excel. Для использования всех преимуществ автоматизации ActiveX необходимо наличие AutoCAD или программного продукта на основе AutoCAD.
  • Автоматизация ActiveX не поддерживается в Mac OS и в веб-приложении.

Доступ к внешним приложениям с помощью ActiveX (только AutoCAD для Windows)

Реализация интерфейса ActiveX для программы имеет два преимущества.

Практически любое приложение может работать с объектами Automation непосредственно в среде AutoCAD. В качестве таких приложений могут выступать отдельные исполняемые exe-файлы, библиотеки динамической компоновки (DLL-файлы), а также макросы, созданные в таких приложениях, как Microsoft Word или Microsoft Excel. Наиболее распространенным, вероятно, будет отдельный исполняемый файл. При использовании приложений сторонних разработчиков необходимо следовать прилагаемым к ним инструкциям по установке и использованию продукта.

Запуск внешнего приложения из командной строки (только AutoCAD для Windows)

Можно использовать файл acad.pgp для определения команд, при обращении к которым выполняется внешняя команда запуска автономного приложения аналогично поведению псевдонимов команд, которые используются для запуска команд.

В приведенном ниже примере определяется псевдоним команды RUNAPP1, запускающий приложение app1.exe из папки c:\vbapps\. (Этот код следует добавить в раздел внешних команд в файле acad.pgp.)

RUNAPP1, start c:\vbapps\app1, 0

Если при запуске приложения требуется задавать определенные параметры, можно воспользоваться следующим кодом:

RUNAPP2, start c:\vbapps\app2, 0, *Parameters: ,

В этом примере определяется команда RUNAPP2, при выполнении которой запрашиваются параметры, передаваемые впоследствии запускаемому приложению.

Совет: Другой способ запуска приложений, использующих Automation, заключается в применении функции AutoLISP startapp. Как только AutoLISP запускает внешнее приложение, контроль операций становится невозможным. Однако имеется возможность использовать AutoLISP для поиска и запуска других приложений на основании определенных параметров.

Запуск приложения с помощью пользовательского интерфейса (только AutoCAD для Windows)

После определения внешней команды для запуска автономного приложения можно использовать ее как часть макроса для элемента пользовательского интерфейса.

Если планируется использовать только одно или два приложения, можно добавить их на одну из стандартных панелей ленты или на панель быстрого доступа. Если планируется работать с несколькими приложениями, можно определить собственные панели ленты, специально предназначенные для этих приложений.