「Vla-addshape」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
(ページの作成:「{{AutoLISP}} ; 構文 : (vla- ''vla-object'' ''Name'' ''InsertionPoint'' ''ScaleFactor'' ''Rotation'') ; 機能 : 名前で指定されたテンプレートに基づい...」)
 
編集の要約なし
 
1行目: 1行目:
{{AutoLISP}}
{{AutoLISP}}
; 構文
; 構文
: (vla- ''vla-object'' ''Name'' ''InsertionPoint'' ''ScaleFactor'' ''Rotation'')
: (vla-addshape ''vla-object'' ''Name'' ''InsertionPoint'' ''ScaleFactor'' ''Rotation'')





2015年2月1日 (日) 20:53時点における最新版

構文
(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 "シェイプファイルが無いっす")
    )
)

関連事項