「Vla-addobject」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
(ページの作成:「{{AutoLISP}} ; 構文 : (vla-addobject ''dictObj'' ''keyName'' ''className'') ; 機能 : 名前の付いたディクショナリにオブジェクトを追加します...」)
 
編集の要約なし
34行目: 34行目:
(vl-load-com)
(vl-load-com)
(defun c:Example_AddObject()
(defun c:Example_AddObject()
     ;; This example creates a dictionary and adds
     ;; ディクショナリにカスタムオブジェクトを作成・追加するサンプル
    ;; a custom object to that dictionary.
     (setq acadObj (vlax-get-acad-object))
     (setq acadObj (vlax-get-acad-object))
     (setq doc (vla-get-ActiveDocument acadObj))
     (setq doc (vla-get-ActiveDocument acadObj))
42行目: 41行目:
     (setq dictObj (vla-Add dictionaries "TEST_DICTIONARY"))
     (setq dictObj (vla-Add dictionaries "TEST_DICTIONARY"))
      
      
     ;; Load the ObjectARX application that defines the custom object.
     ;; カスタムオブジェクトの ObjectARX アプリケーションをロード。
    ;; 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")
     (vla-LoadArx acadObj "MyARXApp.dll")
      
      

2014年12月2日 (火) 21:59時点における版

構文
(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()
    ;; ディクショナリにカスタムオブジェクトを作成・追加するサンプル
    (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 アプリケーションをロード。
    (vla-LoadArx acadObj "MyARXApp.dll")
    
    ;; カスタムオブジェクトをディクショナリに作成
    (setq keyName "OBJ1")
    (setq className "CAsdkDictObject")

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


関連事項