Vla-insertblock

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年12月5日 (土) 22:29時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-insertblock ''vla-object'' ''pt'' ''name'' [ ''Xscale'' [ ''Yscale'' [ ''Zscale'' [ ''rot'' [ ''Password'' ]]]]]) ; 機能 : 図面ファ...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-insertblock vla-object pt name [ Xscale [ Yscale [ Zscale [ rot [ Password ]]]]])


機能
図面ファイルまたは現在の図面で定義された名前の付いたブロックを挿入する。


引数
  • vla-object … VLAオブジェクト(Block、ModelSpace、PaperSpace)
  • pt … ブロックを挿入する図面内の位置を指定する 3D WCS 座標。
  • name … 挿入する CAD 図面ファイルまたはブロックの名前。ファイル名の場合、拡張子 .dwg と CAD がファイルを探すために必要なパスの情報を含める。 
  • Xscale … X軸の挿入倍率。 既定値は 1.0 。正の数にする必要がある。
  • Yscale … Y軸の挿入倍率。 既定値は 1.0 。正の数にする必要がある。
  • Zscale … Z軸の挿入倍率。 既定値は 1.0 。正の数にする必要がある。
  • rot … 挿入角度の値。既定値は、0.0 ラジアンです。
  • password … 図面を保存したときに図面ファイルに適用されたパスワード。


戻り値
nil


  • memo : ブロックを他のブロック内に挿入すると、ネストされたブロックが作成される。InsertBlock メソッドを初期化されていない Name パラメータで呼び出そうとすると、予期しない結果になるので注意。


サンプル
(vl-load-com)
(defun c:Example_InsertBlock()
    ;; ブロックを作成してから挿入するサンプル
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))

    ;; ブロックを作成
    (setq insertionPnt (vlax-3d-point 0 0 0))
    (setq blockObj (vla-Add (vla-get-Blocks doc) insertionPnt "CircleBlock"))
    
    ;; 円をブロックに追加
    (setq center (vlax-3d-point 0 0 0)
          radius 1)
    (setq circleObj (vla-AddCircle blockObj center radius))
   
    ;; ブロックを挿入
    (setq insertionPnt (vlax-3d-point 2 2 0))
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq blockRefObj (vla-InsertBlock modelSpace insertionPnt "CircleBlock" 1 1 1 0))
    
    (vla-ZoomAll acadObj)
)

関連事項