Vla-replace

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年10月17日 (土) 23:00時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-replace ''vla-object'' ''Name'' ''NewObject'') ; 機能 : ディクショナリ内の項目を、与えられた項目に置き換える...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(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)
)

関連事項