Vla-loadshapefile

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年2月1日 (日) 21:04時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-loadshapefile ''vla-object'' ''Name'') ; 機能 : シェイプ ファイル(.shx)をロードする。 ; 引数 :* vla-object … VLAオ...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-loadshapefile vla-object Name)


機能
シェイプ ファイル(.shx)をロードする。
引数
  • vla-object … VLAオブジェクト(Document)
  • Name … ロードするシェイプファイル名。


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


  • MEMO:このメソッドを使用すると、シェイプ ファイル内のすべてのシェイプを現在の図面で利用できるようになる。シェイプを図面に追加するには、vla-addshape メソッドを使用する。
最初に必要となった時点で、シェイプ ファイルをロードしておきく。それ以後は CAD がシェイプ ファイルをロードする。シェイプ ファイルを使用する図面を編集するたびに、シェイプ ファイルが必要になる。


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

関連事項