Vla-getfitpoint

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年2月2日 (月) 22:47時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-getfitpoint ''vla-object'' ''Index'') ; 機能 : 指定したインデックスのスプラインのフィット点を取得する。 ...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-getfitpoint vla-object Index)


機能
指定したインデックスのスプラインのフィット点を取得する。


引数
  • vla-object … Splineの VLAオブジェクト
  • Index … フィット点リストのインデックス位置。0 から N-1 までの正の整数(N はスプラインのフィット点の総数)。


戻り値
指定したインデックス位置のフィット点の 3D WCS 座標。


サンプル
(vl-load-com)
(defun c:Example_GetFitPoint()
    ;; モデル空間におけるスプラインオブジェクトを作成してからフィット点の座標を求めるサンプル。
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))

    ;; スプラインを作成
    (setq startTan (vlax-3d-point 0.5 0.5 0)
          endTan (vlax-3d-point 0.5 0.5 0)
          fitPoints (vlax-make-safearray vlax-vbDouble '(0 . 8)))
    (vlax-safearray-fill fitPoints '(1 1 0
                                     5 5 0
                                     10 0 0
                                    )
    )
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq splineObj (vla-AddSpline modelSpace fitPoints startTan endTan))
    (vla-ZoomAll acadObj)
    
    ;; フィット点の座標を表示
    (setq index 0)
    (while (>= (1- (vla-get-NumberOfFitPoints splineObj)) 0)
        (setq fitPoint (vlax-safearray->list (vlax-variant-value (vla-GetFitPoint splineObj index))))
        (alert (strcat "フィット点 " (itoa (1+ index)) " の座標は " (rtos (nth 0 fitPoint) 2) ", " (rtos (nth 1 fitPoint) 2) ", " (rtos (nth 2 fitPoint) 2)))
        (setq index (1+ index))
    )
)

関連事項