Vla-get-xrefdatabase

提供:GizmoLabs - だいたい CAD LISP なサイト
2016年1月23日 (土) 19:40時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-get-xrefdatabase ''vla-object'') ; 機能 : ブロックの内容を定義する Database オブジェクトを取得する。 ; 引数...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-get-xrefdatabase vla-object)


機能
ブロックの内容を定義する Database オブジェクトを取得する。


引数
  • vla-object … Block の VLAオブジェクト


戻り値
ブロックの内容を定義する Database オブジェクト。


  • MEMO : このプロパティは ブロックの IsXRef プロパティが True の場合にのみ使用できる。


サンプル
(vl-load-com)
(defun c:Example_XRefDatabase()
    ;; 現在の図面への外部参照を追加するサンプル。
    ;; 図面内の各ブロック オブジェクトを循環し、ブロックの IsLayout および
    ;; IsXRef プロパティにアクセスして各ブロックのスタイルを決定する。
    ;; ブロックが外部参照ブロックの場合、そのブロックの外部のデータベース
    ;; オブジェクトへの参照を取得してデータベースに含まれるブロック数を表示する。

    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; 外部参照の定義
    (setq InsertPoint (vlax-3d-point 1 1 0)
          pathName (findfile ".\\Sample\\xref\\xref1.dwg")) ; ファイルは用意しておくこと
    
    ;; 外部参照を追加
    (setq modelSpace (vla-get-ModelSpace doc))  
    (setq insertedBlock (vla-AttachExternalReference modelSpace pathName "XREF_IMAGE" InsertPoint 1 1 1 0 :vlax-false))
        
    (vla-ZoomAll acadObj)
    
    (setq msg "")
    (vlax-for tempBlock (vla-get-Blocks doc)
        (if (= (vla-get-IsXRef tempBlock) :vlax-true)
            (progn
                ;; 外部参照ブロックは追加
                (setq msg (strcat msg (vla-get-Name tempBlock) " は"
                                  (itoa (vla-get-Count (vla-get-Blocks (vla-get-XRefDatabase tempBlock)))) " ブロックに含まれている\n"))
            )
        )
    )

    ;; XRefDatabase のインフォメーションを表示
    (alert (strcat "この図面に添付された外部参照ブロックのブロック数 : " msg))
)


関連事項