Vla-getcontrolpoint
- 構文
- (vla-getcontrolpoint vla-object Index)
- 機能
- 指定されたスプライン インデックスの制御点の座標を取得する。
- 引数
-
- vla-object … Spline の VLAオブジェクト
- Index … 取得する制御点のインデックス位置。0 を含む正の整数
- 戻り値
- 指定したインデックス位置での制御点の座標
- 注意 : 制御点は、スプライン曲線の一部に重みを加えることで、スプラインの定義を微調整する。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))) )
関連事項