Vla-rename

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vla-rename vla-object oldname newname )


機能
ディクショナリ内の項目や保存された画層設定の名前を変更する。


引数
選択セットの場合
  • vla-object … Dictionary、LayerStateManager の VLA オブジェクト
  • oldname … ディクショナリ内のオブジェクトの現在の名前(キーワード)または、保存された画層設定セットの名前。
  • newname … ディクショナリ内のオブジェクトの新しい名前(キーワード)または、保存された画層設定の新しい名前。


戻り値
なし


サンプル
(vl-load-com)
(defun c:Example_Rename()
    ;; ディクショナリにカスタムオブジェクトを作成して
    ;; リネームするサンプル
    (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 アプリを読み込む
    ;; ノート : ここで読み込むアプリケーションが存在しないと実行時エラーになるので、 ObjectARX アプリケーション名とパスは適宜変更すること。

    (vla-LoadArx acadObj "MyARXApp.dll")
    
    ;; ディクショナリにカスタムオブジェクトを追加
    (setq keyName "OBJ1")
    (setq className "MyAPPDictObject")
    
    (setq customObj (vla-AddObject dictObj keyName className))
    
    ;; オブジェクトをリネーム
    (vla-Rename dictObj keyName "NewKeyName")
)

(defun c:Example_RenameLayerSettings()
    ;; 画層設定を作成して"ColorLinetype" から 
    ;; "OldColorLinetype" にリネームするサンプル
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    ;; LayerStateManager オブジェクトにアクセス
    (setq oLSM (vla-GetInterfaceObject acadObj "AutoCAD.AcadLayerStateManager.20"))
	   
    ;; 現在の図面データベースに LayerStateManager オブジェクトを
    ;; 関連付け。
    (vla-SetDatabase oLSM (vla-get-Database doc))
	
    (vla-Save oLSM "ColorLinetype" (+ acLsColor acLsLineType))

    ;; 画層設定をリネームして保存
    (vla-Rename oLSM "ColorLinetype" "OldColorLinetype")
)

関連事項