概要 - ActiveX オートメーションを使用してアプリケーションを開発する

ActiveX オートメーションは、Microsoft® が開発した COM(コンポーネント オブジェクト モデル)アーキテクチャに基づく技術です。ActiveX オートメーションを使用して AutoCAD ベースの製品を拡張したり、図面データを他のアプリケーションと共有したり、タスクを自動化できます。

オートメーション コントローラとして機能する任意のアプリケーションから、図面オブジェクトを作成したり操作することができます。したがってオートメーションは、複数のアプリケーションにわたるマクロ プログラミングを可能にし、AutoLISP にはない機能を実現できます。

注: ActiveXは、AutoCAD LT および Mac OS ではサポートされていません。

このプログラム用の ActiveX インタフェースを実装する利点は、2 つあります。

たとえば、ユーザに入力を要求したり、基本設定を行ったり、選択セットを作成したり、図面データを取得したいことがあります。操作の種類に応じて、どのコントローラを使用するかを決めることができます。

表示されるオブジェクトは、「オートメーション オブジェクト」と呼ばれます。オートメーション オブジェクトは、メソッドとプロパティを使用できるようにします。メソッド は、オブジェクトに対して動作を実行する関数です。プロパティ は、オブジェクトの状態に関する情報を設定する関数、またはその情報を返す関数です。イベントは、ユーザが開始するアクションまたはプログラムが応答する項目です。

事実上どの種類のアプリケーションも、AutoCAD 内で公開されているオートメーション オブジェクトにアクセスできます。それらのアプリケーションには、スタンドアロンの実行ファイル、ダイナミック リンク ライブラリ(DLL)ファイル、および Microsoft Word や Microsoft Excel のようなアプリケーションのマクロがあります。これらの中で最も一般的なのは、スタンドアロン実行ファイルです。サードパーティ開発者のアプリケーションを使用している場合は、その製品のインストールおよび使用方法に従ってください。

アプリケーションを起動するための外部コマンドを定義する

acad.pgp ファイルを使用して、スタンドアロン アプリケーションを起動する外部コマンドを実行するコマンド(コマンド起動時に使用可能なコマンドのエイリアスと同様)を定義することができます。

次の例では、RUNAPP1 コマンドを定義しています。これは、c:¥vbapps¥ フォルダの app1.exe を実行します。(このコードを、acad.pgp ファイルの外部コマンド セクションに追加します)。

RUNAPP1, start c:\vbapps\app1, 0

アプリケーションがコマンド ライン パラメータを必要とする場合は、次のコードを使用します。

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

上の例は、コマンド RUNAPP2 を定義します。このコマンドを実行すると、パラメータが要求されます。入力されたパラメータは、アプリケーションに渡されます。

AutoLISP の startapp 関数を使用して、オートメーションを使用するアプリケーションを起動することもできます。AutoLISP で外部アプリケーションを起動すると、その動作をコントロールすることはできなくなります。しかし、AutoLISP を使用して、特定のパラメータに基づいて他のアプリケーションを見つけて実行することはできます。

ユーザ インタフェースからアプリケーションを起動する

スタンドアロン アプリケーションを起動する外部コマンドを定義したら、そのコマンドをユーザ インタフェース要素からのコマンド マクロの一部として使用することができます。

使用するアプリケーションが 1 つまたは 2 つだけの場合は、標準のリボン パネルの 1 つまたはクイック アクセス ツールバーに追加できます。多数のアプリケーションを使用する場合は、これらのアプリケーション専用のリボン パネルを独自に定義できます。