コールバック関数をイベントにリンクするリアクタを作成します。
各タイプのリアクタを作成するための 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)