Vla-setcontrolpoint
- 構文
- (vla-setcontrolpoint vla-object Index point)
- 機能
- 指定されたスプライン インデックスの制御点の座標を取得する。
- 引数
-
- vla-object … Spline の VLAオブジェクト
- Index … 取得する制御点のインデックス位置。0 を含む正の整数
- Point … 指定されたインデックス位置のスプラインの制御点を指定する 3D WCS 座標。
- 戻り値
- nil
- 注意 : 制御点は、スプライン曲線の一部に重みを加えることで、スプラインの定義を微調整する。NumberOfControlPoints プロパティを使用して、スプラインの制御点の総数を取得できる。制御点に新しい座標位置を設定するには、SetControlPoint メソッドを使用する。制御点に新しい重みを設定するには、SetWeight メソッドを使用する。
- サンプル
(vl-load-com)
(defun c:Example_GetControlPoint()
;; スプラインを作成して最初の制御点座標を求め、
;; その値を変更するサンプル。
(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 controlPoint (vlax-safearray->list (vlax-variant-value (vla-GetControlPoint splineObj 0))))
(alert (strcat "最初の制御点 " (rtos (nth 0 controlPoint) 2) ", " (rtos (nth 1 controlPoint) 2) ", " (rtos (nth 2 controlPoint) 2)))
;; 制御点の座標を変更
(setq controlPoint (vlax-3d-point 0 3 0))
(vla-SetControlPoint splineObj 0 controlPoint)
(vla-Update splineObj)
(setq controlPoint (vlax-safearray->list (vlax-variant-value (vla-GetControlPoint splineObj 0))))
(alert (strcat "いまの最初の制御点 " (rtos (nth 0 controlPoint) 2) ", " (rtos (nth 1 controlPoint) 2) ", " (rtos (nth 2 controlPoint) 2)))
)
関連事項