Vla-replace

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vla-replace vla-object Name NewObject)


機能
ディクショナリ内の項目を、与えられた項目に置き換える。


引数
選択セットの場合
  • vla-object … Dictionary の VLA オブジェクト
  • Name … 置き換えられるオブジェクトの名前(キーワード)。
  • NewObject … 新しいオブジェクト。


戻り値
なし


  • MEMO : たとえば、次のようなディクショナリで、"FirstKeyword" という名前のオブジェクトを置き換える。
   MyDictionary
   Keyword オブジェクト
   FirstKeyword Object1
   SecondKeyword Object2

新しいオブジェクト「NewObject」によって、次のようなディクショナリになりる。

   MyDictionary
   Keyword オブジェクト
   FirstKeyword NewObject
   SecondKeyword Object2


サンプル
(vl-load-com)
(defun c:Example_Replace()
    ;; ディクショナリを作成してカスタム オブジェクトを追加してから
    ;; ディクショナリ内のオブジェクトを置き換えるサンプルます。

    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    (setq dictionaries (vla-get-Dictionaries doc))
  
    (setq dictObj (vla-Add dictionaries "TEST_DICTIONARY"))
    
    ;; カスタムオブジェクトの ObjectARX アプリケーションをロード
    ;; 
    ;; Note: ObjectARX アプリがないと止まるので準備しておくこと
    (vla-LoadArx acadObj "MyARXApp.dll")
    
    ;; カスタムオブジェクトを作成
    (setq keyName "OBJ1")
    (setq className "CAsdkDictObject")
    
    (setq customObj (vla-AddObject dictObj keyName className))
    
    ;; ディクショナリのオブジェクトをリプレイス
    (setq newCustomObject (vlax-make-variant))
    (vlax-variant-type newCustomObject vlax-vbObject)
    (vla-Replace dictObj keyName newCustomObject)
)

関連事項