Vla-appendvertex

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年10月12日 (月) 09:50時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-appendvertex ''vla-object'' ''Point'') ; 機能 : 3DPolyline、Polyline、PolygonMesh オブジェクトの端点に頂点を追加する...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-appendvertex vla-object Point)


機能
3DPolyline、Polyline、PolygonMesh オブジェクトの端点に頂点を追加する。


引数
  • vla-object … 3DPolyline、PolygonMesh、PolylineのVLAオブジェクト
  • Point … 追加する頂点を指定する座標。
  • PolygonMesh: 追加する頂点の列を指定する 3D WCS 座標。
  • 3DPolyline: 追加する頂点を指定する 3D WCS 座標。
  • Polyline: 3D 座標。X および Y 座標は OCS で指定され、Z 座標は無視される。


戻り値
nil


MEMO : PolygonMesh: PolygonMesh オブジェクトの端点に頂点を追加すると、頂点の列を追加することになる。たとえば、4 x 3 の PolygonMesh の場合 12 の頂点定義になるが、頂点を追加すると 5 x 3 のマトリックスになるので、3 つの頂点を新たに追加する必要がある。4 x 3 マトリックスの最後の頂点を次のように仮定する。
   頂点(3,0): 6,6,6
   頂点(3,1): 7,7,7
   頂点(3,2): 8,8,8

この場合、追加される頂点は次のようになる。

   頂点(4,0): 10,10,10
   頂点(4,1): 10,5,0
   頂点(4,2): 10,20,30

Polyline オブジェクトの OCS 座標は、 TranslateCoordinates メソッドを使用して他の座標系との相互変換が可能。


サンプル

(vl-load-com)
(defun c:Example_AppendVertex()
    ;; ポリラインを作成してから点を追加するサンプル
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; 2D polyline の点
    (setq center (vlax-make-safearray vlax-vbDouble '(0 . 14)))
    (vlax-safearray-fill 
        center 
        '(1 1 0      1 2 0
          2 2 0      3 2 0
          4 4 0            )
    )
        
    ;; lightweight Polyline を生成
    (setq modelSpace (vla-get-ModelSpace doc))  
    (setq plineObj (vla-AddPolyline modelSpace points))
    (vla-ZoomAll acadObj)
    (alert "頂点 4、1、0 を追加します。")
    
    (setq newVertex (vlax-3d-point 4 1 0))
    (vla-AppendVertex plineObj newVertex)
    (vla-ZoomAll acadObj)
    (alert "頂点 4、1、0 を追加しました。")
)

関連事項