「Vlr-acdb-reactor」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
編集の要約なし
 
編集の要約なし
 
(同じ利用者による、間の2版が非表示)
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 || オブジェクトの削除フラグが解除された直後
|}
|}


; 戻り値
; 戻り値
: 作成されたリアクタ オブジェクト。
: 作成されたリアクタ オブジェクト。




; サンプル
; サンプル
: 次の例は、DTEXTとMTEXTに対して変更リアクタオブジェクトを作成している。  
: 次の例は、DTEXTとMTEXTに対して変更リアクタオブジェクトを作成している。
<pre class="brush: autolisp;">
  ; イベントコールバックのドットペアリスト作成
  ; イベントコールバックのドットペアリスト作成
  (defun evtObjectModified (objReactor lstObjectModified / objModified)
  (defun evtObjectModified (objReactor lstObjectModified / objModified)
53行目: 58行目:
  (setq rxnObjectModified (vlr-acdb-reactor nil '((:vlr-objectModified . evtObjectModified ))))
  (setq rxnObjectModified (vlr-acdb-reactor nil '((:vlr-objectModified . evtObjectModified ))))
  '''#<VLR-AcDb-Reactor>'''
  '''#<VLR-AcDb-Reactor>'''
</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>'''



関連事項