概要 - リアクタを作成する(AutoLISP/ActiveX)

コールバック関数をイベントにリンクするリアクタを作成します。

注: AutoLISP での ActiveX のサポートは Windows のみに制限されています。

各タイプのリアクタを作成するための AutoLISP 関数があります。これらの関数は、リアクタ タイプと同じ名前です。ただし、先頭のコロンは不要です。たとえば、vlr‑acdb‑reactor はデータベース リアクタを作成し、vlr-toolbar-reactor はツールバーのリアクタを作成するというようになります。オブジェクト リアクタ以外は、リアクタ作成関数に次の引数を指定する必要があります。

たとえば、次の文は DWG 編集リアクタを定義します。リアクタは、ユーザによる SAVE[保存]コマンドの実行に応答して saveDrawingInfo 関数を呼び出します。

(vlr-dwg-Reactor nil '((:vlr-saveComplete . saveDrawingInfo)))

この例では、最初の引数は、このリアクタにアタッチするアプリケーション固有のデータがないため nil です。2 番目の引数は、ドットで区切られたペアのリストからなるリストです。各ドット ペアのリストには、リアクタを介して通知しようとしているイベントと、そのイベントに応答して実行されるコールバック関数を指定します。この場合は、リアクタを介して 1 つのイベント :vlr‑saveComplete だけが通知されます。

編集リアクタは、AutoCAD のコマンド プロンプトに対して、ユーザ インタフェース要素から、または AutoLISP プログラムから、コマンドを実行するたびに通知されます。そのため、この DWG リアクタのコールバック関数は、リアクタが何に応答しているかを正確に判断する必要があります。この例では、save‑drawingInfo は SAVE コマンドに対するチェックだけを行います。

各リアクタ タイプで応答可能なイベントは、リアクタ作成関数のリファレンス トピックにリストされています。または、vlr-reaction-names を使用して取得することができます。たとえば、DWG リアクタで応答可能なイベントのリストを検索するには、次の文を使用します。

(vlr-reaction-names :VLR-DWG-Reactor)
(:VLR-beginDwgOpen :VLR-endDwgOpen :VLR-dwgFileOpened 
:VLR-databaseConstructed :VLR-databaseToBeDestroyed 
:VLR-beginSave :VLR-saveComplete :VLR-beginClose)
注: すべてのリアクタ作成関数は、リアクタ オブジェクトを返します。