Vla-addshape

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年2月1日 (日) 20:53時点におけるGizmon (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-addshape vla-object Name InsertionPoint ScaleFactor Rotation)


機能
名前で指定されたテンプレートに基づいて、挿入点、尺度、回転を指定して、Shape 図形を作成する。


引数
  • vla-object … VLAオブジェクト(Block、ModelSpace、PaperSpace)
  • Name … 挿入するシェイプの名前。
  • InsertionPoint … シェイプの挿入位置を示す 3D WCS 座標。
  • ScaleFactor … シェイプに適用される尺度係数。指定しない場合は 1.0。正の数値でなければならない。
  • Rotation … シェイプに適用される回転角度(ラジアン)。


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


  • MEMO:シェイプを挿入する前に、vla-loadshapefile メソッドを使用して、挿入するシェイプが入っているファイルをロードする必要がある。
サンプル
(vl-load-com)
(defun c:Example_AddShape()
    ;; typeshp.shx ファイルから BAT のシェイプを作成するサンプル
    (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  
    ;; シェイプファイルからシェイプをロードして作成。
    ;; ltypeshp.shx が入ってないとダメ。
    (setq shapeFile ".\\ltypeshp.shx")

    (if (/= (findfile shapeFile) nil)
        (progn
            (vla-LoadShapeFile doc (findfile shapeFile))
            (setq insertionPoint (vlax-3d-point 2 2 0)
                  shapeName "BAT"
                  scalefactor 1
                  rotation 0)      ;; Radians
    
            ;; モデルに BATのシェイプを作成。
            (setq modelSpace (vla-get-ModelSpace doc))
            (setq shapeObj (vla-AddShape modelSpace shapeName insertionPoint scalefactor rotation))
        )
        (alert "シェイプファイルが無いっす")
    )
)

関連事項