Vla-addobject

提供:GizmoLabs - だいたい CAD LISP なサイト
2014年12月2日 (火) 21:38時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-addobject ''dictObj'' ''keyName'' ''className'') ; 機能 : 名前の付いたディクショナリにオブジェクトを追加します...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-addobject dictObj keyName className)


機能
名前の付いたディクショナリにオブジェクトを追加します。
  • サポートされているプラットフォーム: Windows のみ


引数
  • dictObj … Dictionary の VLA オブジェクト
  • keyName … このオブジェクトのディクショナリにリストされるキーワードの文字列。
  • className … ディクショナリに作成されるオブジェクトの rxClassName 文字列。


戻り値
新しく作成される VLA オブジェクト
  • 注意
このメソッドは、ObjectName で指定された新しいエントリをディクショナリに追加する。エントリが既に存在している場合、そのエントリが新しいオブジェクトに置き換えられる。オブジェクトの名前は、KeyWord で指定する。
例えば、ThirdKeyword という Keyword で、オブジェクト タイプが Object3 であるオブジェクトは、次のようにすることで MyDictionary に追加できる。
  • MyDictionary
  • Keyword オブジェクト
  • FirstKeyword Object1
  • SecondKeyword Object2
  • ThirdKeyword Object3
  • Note: このメソッドが正しく機能するようにするためには、オブジェクトを定義する ObjectARX アプリケーションをロードする必要がある。ObjectARX アプリケーションをロードする方法は、vla-loadarx を参照。


サンプル
(vl-load-com)
(defun c:Example_AddObject()
    ;; This example creates a dictionary and adds
    ;; a custom object to that dictionary.
    (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"))
    
    ;; Load the ObjectARX application that defines the custom object.
    ;; Note: The application listed here does not exist and
    ;; will cause an error when run. Change the application name
    ;; to the path and name of your ObjectARX application.
    (vla-LoadArx acadObj "MyARXApp.dll")
    
    ;; カスタムオブジェクトをディクショナリに作成
    (setq keyName "OBJ1")
    (setq className "CAsdkDictObject")

    (setq customObj (vla-AddObject dictObj keyName className))
)


関連事項