「Vlr-acdb-reactor」の版間の差分
編集の要約なし |
編集の要約なし |
||
(同じ利用者による、間の1版が非表示) | |||
1行目: | 1行目: | ||
{{AutoLISP}} | |||
; 構文 | ; 構文 | ||
: (vlr-acdb-reactor ''data'' ''callbacks'') | : (vlr-acdb-reactor ''data'' ''callbacks'') | ||
6行目: | 7行目: | ||
: 図面データベースにオブジェクトが追加、修正、削除されたときに通知するリアクタ オブジェクトを作成する。 | : 図面データベースにオブジェクトが追加、修正、削除されたときに通知するリアクタ オブジェクトを作成する。 | ||
: vlr-acdb-reactor 関数は、データベース リアクタ オブジェクトを作成する。 | : vlr-acdb-reactor 関数は、データベース リアクタ オブジェクトを作成する。 | ||
; 引数 | ; 引数 | ||
35行目: | 37行目: | ||
| :vlr-objectUnErased || オブジェクトの削除フラグが解除された直後 | | :vlr-objectUnErased || オブジェクトの削除フラグが解除された直後 | ||
|} | |} | ||
; 戻り値 | ; 戻り値 | ||
: 作成されたリアクタ オブジェクト。 | : 作成されたリアクタ オブジェクト。 | ||
55行目: | 59行目: | ||
'''#<VLR-AcDb-Reactor>''' | '''#<VLR-AcDb-Reactor>''' | ||
</pre> | </pre> | ||
----- | |||
関連事項 | |||
* [[vl-load-com]] 関数 | |||
* [[リアクタ関数]] | |||
[[Category:AutoLISP]] | [[Category:AutoLISP]] |
2023年11月3日 (金) 11:23時点における最新版
- 構文
- (vlr-acdb-reactor data callbacks)
- 機能
- 図面データベースにオブジェクトが追加、修正、削除されたときに通知するリアクタ オブジェクトを作成する。
- vlr-acdb-reactor 関数は、データベース リアクタ オブジェクトを作成する。
- 引数
-
- data : リアクタ オブジェクトに関連付ける任意の AutoLISP データ。または、関連付けるデータが存在しない場合は nil。
- callbacks : 次の形式のペアのリスト。
- (event-name . callback_function)
- event-name は、次の「データベース リアクタ イベント」の表にあるシンボルの 1 つ。
- callback_function は、イベントが発生したときに呼び出される関数を示すシンボル。 各コールバック関数は、次の 2 つの引数を受け入れる。
- reactor_object : コールバック関数を呼び出した VLR オブジェクト
- obj : イベントに関連付けられたデータベース オブジェクト(AutoLISP 図形)。
データベース リアクタ イベント 名前 イベント :vlr-objectAppended オブジェクトが図面データベースに追加された直後 :vlr-objectUnAppended オブジェクトが図面データベースからアタッチ解除された直後。UNDO が使用された場合など。 :vlr-objectReAppended オブジェクトが図面データベースに復元された直後。REDO が使用された場合など。 :vlr-objectOpenedForModify オブジェクトが変更される直前 :vlr-objectModified オブジェクトが変更された直後 :vlr-objectErased オブジェクトに削除フラグが設定された直後 :vlr-objectUnErased オブジェクトの削除フラグが解除された直後
- 戻り値
- 作成されたリアクタ オブジェクト。
- サンプル
- 次の例は、DTEXTとMTEXTに対して変更リアクタオブジェクトを作成している。
; イベントコールバックのドットペアリスト作成 (defun evtObjectModified (objReactor lstObjectModified / objModified) (setq objModified (vlax-ename->vla-object (cadr lstObjectModified))) (if (and (wcmatch (vla-get-objectname objModified) "AcDbMText,AcDbText") (not blnRerun)) (setq lstObjectsModified (cons objModified lstObjectsModified))) (princ) ) (setq rxnObjectModified (vlr-acdb-reactor nil '((:vlr-objectModified . evtObjectModified )))) '''#<VLR-AcDb-Reactor>'''
関連事項