Vla-attachexternalreference

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年10月25日 (日) 04:10時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-attachexternalreference ''vla-object'' ''PathName'' ''Name'' ''InsertionPoint'' ''XScale'' ''YScale'' ''ZScale'' ''Rotation'' ''Overlay'' ''P...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-attachexternalreference vla-object PathName Name InsertionPoint XScale YScale ZScale Rotation Overlay Password)


機能
外部参照を図面にアタッチする。


引数
  • vla-object … VLAオブジェクト(Block、ModelSpace、PaperSpace)
  • PathName … 参照される図面の絶対パスとファイル名。
  • Name … 作成される外部参照の名前。
  • InsertionPoint … 図面内の ExternalReference インスタンスを挿入する点を指定する 3D WCS 座標。現在の図面内の挿入点は、参照ファイル内のシステム変数 BASE により定義される点に位置合わせされる。
  • XScale … 外部参照インスタンスの X 方向の尺度。
  • YScale … 外部参照インスタンスの Y 方向の尺度。
  • ZScale … 外部参照インスタンスの Z 方向の尺度。
  • Rotation … 外部参照インスタンスの回転角度。この角度はラジアンで指定されます。
  • Overlay … ブール値
  • Vlax-True : オーバーレイされます。
  • Vlax-False : アタッチされます。
  • Password … オプション


戻り値
新しく作成される ExternalReference オブジェクト。


注意

  • Block オブジェクトのように、アタッチされた ExternalReference オブジェクトはネストすることができる。別の人が、参照する図面を編集している場合、アタッチされた図面は最後に保存されたバージョンに基づいている。
  • 参照ファイルが無かったり壊れている場合、データは現在の図面に表示されない。


サンプル
(vl-load-com)
(defun c:Example_AttachExternalReference()
    ;; 外部参照を入れ込むサンプル
    ;;
    ;; このサンプルでは "STAIR1.dwg" というファイルを使用するので準備しておくこと
    ;; ファイルの場所は、pathName で調整
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; 外部参照の設定
    (setq InsertPoint (vlax-3d-point 1 1 0))
    (setq pathName (findfile ".\\Sample\\Sheet Sets\\Res\\STAIR1.dwg"))
    
    ;; ブロックのインフォメーションを表示
    (setq msg "")
    (vlax-for tempBlock (vla-get-Blocks doc)
        (setq msg (strcat msg (vla-get-Name tempBlock) "\n"))     ;; ブロックを追加
    )
    
    (alert (strcat "この図面のカレントブロックは : " msg))
    
    ;; 外部参照を追加
    (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)
        (setq msg (strcat msg (vla-get-Name tempBlock) "\n"))     ;; ブロックを追加
    )
    
    (alert (strcat "この図面のカレントブロックは : " msg))
)

関連事項