「Vla-put-controlpoints」の版間の差分
(ページの作成:「{{AutoLISP}} ; 構文 : (vla-put-controlpoints ''vla-object'' ''list'') ; 機能 : スプラインの制御点を指定する。 ; 引数 :* vla-object … Spline...」) |
細編集の要約なし |
||
101行目: | 101行目: | ||
* [[vlax-get-acad-object]] | * [[vlax-get-acad-object]] | ||
* [[vla-get-activedocument]] | * [[vla-get-activedocument]] | ||
* [[vla-get-controlpoints]] | |||
* [[vla-put-controlpoints]] | |||
* [[vla-get-numberofcontrolpoints]] | * [[vla-get-numberofcontrolpoints]] | ||
[[Category:AutoLISP]] | [[Category:AutoLISP]] |
2015年11月1日 (日) 11:55時点における最新版
- 構文
- (vla-put-controlpoints vla-object list)
- 機能
- スプラインの制御点を指定する。
- 引数
-
- vla-object … Spline の VLAオブジェクト
- list … スプラインに対する 3D WCS 制御点の配列
- 注意
NumberOfControlPoints プロパティを使用すると、スプラインの制御点の数が分かる。
- 戻り値
- nil
- サンプル
(vl-load-com) (defun c:Example_ControlPoints() ;; モデル空間におけるスプラインオブジェクトを作成し、 ;; スプラインの制御点を読み取り制御点を修正するサンプル。 (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 '(0 0 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 ControlPoints (vlax-variant-value (vla-get-ControlPoints splineObj))) ;; 3つのグループ (setq UserMessage "" iPoint 0 iCount 0) (while (>= (vlax-safearray-get-u-bound ControlPoints 1) iCount) (setq iPoint (1+ iPoint)) (setq UserMessage (strcat UserMessage (itoa iPoint) ") " (rtos (nth iCount (vlax-safearray->list ControlPoints)) 2) ", " (rtos (nth (+ iCount 1) (vlax-safearray->list ControlPoints)) 2) ", " (rtos (nth (+ iCount 2) (vlax-safearray->list ControlPoints)) 2) "\n" ) ) (setq iCount (+ iCount 3)) ) (alert (strcat "The " (itoa (vla-get-NumberOfControlPoints splineObj)) " スプラインの制御点は : " "\n\n" UserMessage)) ;; 制御点を変更 (setq newFitPoint (vlax-3d-point 8 2 0)) (vla-AddFitPoint splineObj 3 newFitPoint) (setq ControlPoints (vlax-variant-value (vla-get-ControlPoints splineObj))) (vla-ZoomAll acadObj) ;; 新しい制御点を表示 (setq UserMessage "" iPoint 0 iCount 0) (while (>= (vlax-safearray-get-u-bound ControlPoints 1) iCount) (setq iPoint (1+ iPoint)) (setq UserMessage (strcat UserMessage (itoa iPoint) ") " (rtos (nth iCount (vlax-safearray->list ControlPoints)) 2) ", " (rtos (nth (+ iCount 1) (vlax-safearray->list ControlPoints)) 2) ", " (rtos (nth (+ iCount 2) (vlax-safearray->list ControlPoints)) 2) "\n" ) ) (setq iCount (+ iCount 3)) ) (alert (strcat "The " (itoa (vla-get-NumberOfControlPoints splineObj)) " スプラインの制御点は : " "\n\n" UserMessage)) )
関連事項