vlr-object-reactor (AutoLISP/ActiveX)

図面オブジェクト リアクタ オブジェクトを作成します。

サポートされているプラットフォーム: Windows のみ

構文と要素

(vlr-object-reactor owners data callbacks)
owners

タイプ: リスト

監視する図形オブジェクトを示す VLA オブジェクトの AutoLISP リスト。

data

タイプ: 整数、実数、文字列、リスト、VLA オブジェクト、セーフ配列、バリアント、T、nil

リアクタ オブジェクトに関連付ける任意の AutoLISP データ。または、関連付けるデータが存在しない場合は nil

callbacks

タイプ: リスト

次の形式のペアのリスト。

(event-name . callback_function)

  • event-name は、次の「オブジェクト イベント」のいずれかです。

    オブジェクト イベント

    名前

    イベント

    :vlr-cancelled

    オブジェクトの修正がキャンセルされた直後

    :vlr-copied

    オブジェクトが複写された直後

    :vlr-erased

    オブジェクトの削除フラグが設定された直後

    :vlr-unerased

    オブジェクトの削除フラグが解除された直後

    :vlr-goodbye

    オブジェクトがメモリから削除される直前

    :vlr-openedForModify

    オブジェクトが修正される直前

    :vlr-modified

    オブジェクトが修正された直後。修正がキャンセルされた場合は、:vlr-cancelled と :vlr-modifyUndone も呼び出されます。

    :vlr-subObjModified

    オブジェクトの従属図形が修正された直後。このイベントは、ポリラインやメッシュの頂点が修正されたときや、ブロック参照に所有されている属性が修正されたときに発生します。

    :vlr-modifyUndone

    オブジェクトの修正が元に戻されたとき

    :vlr-modifiedXData

    オブジェクトの拡張図形データが修正された直後

    :vlr-unappended

    オブジェクトが図面データベースからアタッチ解除された直後

    :vlr-reappended

    オブジェクトが図面データベースに再アタッチされた直後

    :vlr-objectClosed

    オブジェクトの修正が完了した直後

  • callback_function は、イベントが発生したときに呼び出される関数を示すシンボルです。各コールバック関数は、次の 3 つの引数を受け入れます。

    owner: イベントを割り当てる VLA オブジェクトのオーナー。

    reactor_object: コールバック関数を呼び出した VLR オブジェクト。

    list: 特定のイベントに関連付ける特別なデータ要素のリスト。個々のイベントに対するこのリストの内容については、「オブジェクト イベント コールバック データ」の 表を参照してください。

    オブジェクト イベント コールバック データ

    名前

    リストの長さ

    パラメータ

    :vlr-cancelled

    :vlr-erased

    :vlr-unerased

    :vlr-goodbye

    :vlr-openedForModify

    :vlr-modified

    :vlr-modifyUndone

    :vlr-modifiedXData

    :vlr-unappended

    :vlr-reappended

    :vlr-objectClosed

    0

    :vlr-copied

    1

    コピーして作成されたオブジェクト(ename)。

    :vlr-subObjModified

    1

    修正された従属オブジェクト(ename)

戻り値

タイプ: VLR オブジェクト

callback_function からの reactor_object 引数。

注意

リアクタ オブジェクトは図面データベースに追加されますが、不変リアクタになるわけではありません。

次のコードは、オブジェクト リアクタを myCircle オブジェクトにアタッチします。オブジェクトが修正されたとき(:vlr-modified)は常に応答し、修正イベントへの応答時に print-radius 関数を呼び出すリアクタを定義します。

(setq circleReactor (vlr-object-reactor (list myCircle)
         "Circle Reactor" '((:vlr-modified . print-radius))))