Vla-unload

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年10月14日 (水) 23:31時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-unload ''vla-object'' ''Name'') ; 機能 : メニュー グループまたは外部参照をロード解除する。 ; 引数 :* vla-obj...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-unload vla-object Name)


機能
メニュー グループまたは外部参照をロード解除する。


引数
  • vla-object … ExternalReference、MenuGroup のVLAオブジェクト
  • Name … ロード解除する参照の名前。


戻り値
nil


  • 注意
    • ExternalReference: ExternalReference オブジェクト(外部参照)が図面からロード解除されると、図面を開くのが早くなると同時に使用メモリが少なくなる。ロード解除された外部参照は表示されず、外部参照に従属するシンボル テーブル情報は図面に現れない。しかし、Reload メソッドを使用して外部参照を再ロードすれば情報はすべて復元することができる。
    • 外部参照をロード解除するには、外部参照を定義するブロックをロード解除する必要がある。たとえば、VBA コードの次の行は、変数 xrefInserted に格納されている外部参照をロード解除する。
ThisDrawing.Blocks.Item(xrefInserted.name).Unload
    • MenuGroup : メニュー グループが図面からロード解除された場合は、グループ内のメニューおよびツールバーへの参照はどれも無効になる。メニュー グループをロード解除する前に、必ずメニュー グループ内のツールバーおよびメニューへのすべての参照を削除するか、NULL に設定すること。


サンプル
(vl-load-com)
(defun c:Example_Unload()
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
                         
    ;; 外部参照を挿入
    (setq insertionPnt (vlax-3d-point 1 1 0)
          pathName (findfile ".\\Sample\\Sheet Sets\\Architectural\\Res\\STAIR1.dwg"))
    
    ;; 外部参照ブロックを作成
    (setq modelSpace (vla-get-ModelSpace doc))  
    (setq xrefInserted (vla-AttachExternalReference modelSpace pathName "XREF_IMAGE" insertionPnt 1 1 1 0 :vlax-false))
    (vla-ZoomAll acadObj)
    (alert "外部参照をアタッチしました。")
    
    ;; 外部参照をアンロード
    (vla-Unload (vla-Item (vla-get-Blocks doc) "XREF_IMAGE"))
    (vla-Regen doc :vlax-true)
    (alert "外部参照をアンロード。")

    ;; 外部参照をリロード
    (vla-Reload (vla-Item (vla-get-Blocks doc) "XREF_IMAGE"))
    (alert "The external reference is reloaded.")
)


関連事項