Vlr-object-reactor
- 構文
- (vlr-object-reactor owners data callbacks)
- 機能
- オブジェクト リアクタ オブジェクトを作成する。
- リアクタ オブジェクトは図面データベースに追加されるが、不変リアクタになるわけではない。
- 引数
-
- owners : 監視する図形オブジェクトを示す VLA オブジェクトの AutoLISP リスト。
- data :リアクタ オブジェクトに関連付ける任意の AutoLISP データ。または、関連付けるデータが存在しない場合は nil。
- callbacks : 次の形式のペアのリスト。
- (event-name . callback_function)
- event-name は、次の「オブジェクト イベント」の表にあるシンボルの 1 つ。callback_function は、イベントが発生したときに呼び出される関数を示すシンボル。 各コールバック関数は、次の 3 つの引数を受け入れる。
- owner イベントを割り当てる VLA オブジェクトのオーナー。
- reactor_object コールバック関数を呼び出した VLR オブジェクト。
- list 個々のイベントに関連付ける特別なデータ要素のリスト。 個々のイベントに対するこのリストの内容については、「オブジェクト イベント コールバック データ」の 表を参照。
- 戻り値
- reactor_object 引数。
オブジェクト イベント | |
---|---|
名前 | イベント |
: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 | オブジェクトの修正が完了した直後 |
オブジェクト イベント コールバック データ | ||
---|---|---|
名前 | リストの長さ | パラメータ |
: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 | コピーして作成されたオブジェクト(図形名) |
:vlr-subObjModified | 1 | 修正された従属オブジェクト(図形名) |
- サンプル
- 次のコードは、オブジェクト リアクタを myCircle オブジェクトにアタッチする。オブジェクトが修正されたとき (:vlr-modified) は常に応答し、修正イベントへの応答時に print-radius 関数を呼び出すリアクタを定義する。
(setq circleReactor (vlr-object-reactor (list myCircle) "Circle Reactor" '((:vlr-modified . print-radius))))