Vla-addfitpoint

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vla-addfitpoint vla-object Index FitPoint)


機能
指定されたインデックスに、スプラインにフィット点を追加する。


引数
  • vla-object … Spline の VLAオブジェクト
  • Index … フィット点を追加するフィット点リスト内の位置。インデックスが負数の場合、点はスプラインの先頭に追加される。インデックスがスプライン上のフィット点の数を超えている場合、点はスプラインの最後に追加される。
  • FitPoint … 追加するフィット点を指定する 3D WCS 座標。


戻り値
nil


MEMO:
  • スプラインにフィット点が追加され、新しい一連の点にしたがってスプラインが再フィットされる。変更内容を表示するには、Update メソッドまたは Regen メソッドを使用する。


サンプル
(vl-load-com)
(defun c:Example_AddFitPoint()
    ;; モデル空間にスプラインを作成してフィット点を追加するサンプル
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    ;; スプラインを作成
    (setq startTan (vlax-3d-point 0.5 0.5 10)
          endTan (vlax-3d-point 0.5 0.5 10))
    (setq fitPoints (vlax-make-safearray vlax-vbDouble '(0 . 8)))
    (vlax-safearray-fill fitPoints '(1 1 10
                                     5 5 10
                                     10 0 10
                                    )
    )
    
    ;; スプラインを追加
    (setq modelSpace (vla-get-ModelSpace doc))  
    (setq splineObj (vla-AddSpline modelSpace fitPoints startTan endTan))
    (vla-ZoomAll acadObj)
    (alert (strcat "The Spline has " (itoa (vla-get-NumberOfFitPoints splineObj)) " fit points."))
    
    ;; 新しいフィット点の定義
    (setq newFitPoint (vlax-3d-point 8 5 0))
    
    ;; フィット点をインデックスの最初に追加
    (vla-AddFitPoint splineObj 1 newFitPoint)
    (vla-Regen doc :vlax-true)
    (alert (strcat "ちっと点を追加:1  WCS: 8, 5, 0"
		                 "\nスプラインのフィット点は " (itoa (vla-get-NumberOfFitPoints splineObj)) " です。"
           )
    )
)

関連事項