ActiveX オートメーションは、図面や ActiveX 法をサポートしている他の Windows アプリケーションの内容をプログラムで処理する手段です。
多くの場合、AutoCAD 図面のオブジェクトを操作するときに、ActiveX は従来の AutoLISP 関数よりも高速に動作します。ActiveX プログラミング インタフェースは、多くの言語や環境から使用できます。AutoLISP で ActiveX オブジェクトを扱うときは、同じオブジェクト モデル、プロパティ、および他のプログラミング環境から操作できるメソッドを使用します。
オブジェクトは、ActiveX アプリケーションの主要な構成要素です。ある意味では、既にこの概念が分かっていることと思います。たとえば、線分、円弧、ポリライン、円のような AutoCAD 図面の要素は、長い間オブジェクトと呼ばれてきました。しかし、ActiveX の手法では、次の AutoCAD 構成要素もオブジェクトと呼ばれます。
図面や AutoCAD アプリケーション自体も、オブジェクトとみなされます。
ActiveX には、entget、entmod、setvar のような標準の AutoLISP 関数によって提供されている多くの機能があります。これらの関数に比べて、ActiveX はより高速に実行し、オブジェクトのプロパティにより簡単にアクセスできます。たとえば、標準の AutoLISP 関数を使用して円の半径を取得するには、entget 関数を使用して図形のリストを取得してから、assoc 関数を使用して希望のプロパティを検索する必要があります。また、次の例に示すように、assoc 関数を使用してプロパティを取得するには、そのプロパティに関連付けられているコード番号(DXF グループ値)も分かっている必要があります。
(setq radius (cdr (assoc 40 (entget circle-entity))))
ActiveX 関数を使用すると、次のように簡単に円の半径を取得できます。
(setq radius (vla-get-radius circle-object))