Vla-bind

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


機能
外部参照を図面にバインドする。


引数
  • vla-object … VLA オブジェクト
  • PrefixName … ブール型; 入力のみ
:vlax-true : シンボル名の先頭には何も付かない。
:vlax-false : <blockname>$x$ がシンボル名の先頭に付く。


戻り値
なし


  • 注記 : 図面に外部参照をバインドすると、永久的に図面の一部分となり、外部参照ファイルではなくなりブロックになる。つまり外部参照された図面が更新されても、バインドされた外部参照は更新されなくなる。このメソッドは、従属シンボルを含む図面のデータベース全体をバインドする。
  • 従属シンボルは、ブロック、寸法スタイル、画層、線種、および文字スタイルのような、名前が付いたオブジェクト。外部参照をバインドすると、外部参照から名前が付いたオブジェクトを現在の図面で使用することができる。
  • bPrefixName パラメータが :vlax-false に設定されると、外部参照図面のシンボル名には <blockname>$x$ が先頭に付く。x は既存のブロック定義の変更を避けるため自動的にインクリメントされた整数。
  • bPrefixName パラメータが :vlax-true に設定されると、外部参照図面のシンボル名には先頭に何も付かずに現在の図面に合成される。重複した名前が存在する場合は、CAD によりローカル図面で既に定義されたシンボルが使用される。
  • 重複したシンボル名が含まれているかどうかがはっきりしない場合は、bPrefixName を :vlax-false に設定することを推奨します。


  • memo:


サンプル
(vl-load-com)
(defun sample-xrefbind (xrefname / bdata blkobj)
;; xrefname をバインドするサンプル
  (setq acaddoc (vla-Get-ActiveDocument (vlax-get-acad-object)))
  (setq bdata (tblsearch "block" xrefname))
  (if bdata  ;; ブロックがない
    (if (/= (logand (cdr (assoc 70 bdata)) 4) 4)
      'nil ;; 外部参照じゃない
      (progn
        (setq blkobj (vla-item (vla-get-Blocks acaddoc) xrefname))
        (vla-bind blkobj :vlax-false) ; バインドする
        T
      )
    )
  )
)

(sample-xrefbind "xxx.dwg")


関連事項