Vla-get-centroid
- 構文
- (vla-get-centroid vla-object )
- 機能
- リージョンの面積の中心またはソリッドの質量の中心を取得する。
- 引数
-
- vla-object … 3DSolid、Region の VLAオブジェクト
- 戻り値
- 図心を表す 2D または 3D 座標
* MEMO : 図心はバリアント型で定義された X、Y(、Z)座標で返される。
- サンプル
(vl-load-com)
(defun c:Example_Centroid()
;; モデルにボックスを作成して、その中心を返すサンプル
(setq acadObj (vlax-get-acad-object))
(setq doc (vla-get-ActiveDocument acadObj))
;; ボックスの設定値
(setq center (vlax-3d-point 5 5 0)
boxLength 5
boxWidth 7
boxHeight 10)
;; 3DSolidのボックスオブジェクトを作成
(setq modelSpace (vla-get-ModelSpace doc))
(setq boxObj (vla-AddBox modelSpace center boxLength boxWidth boxHeight))
;; ビューをボックスが表示されるように更新
(setq NewDirection (vlax-3d-point -1 -1 1))
(setq activeViewport (vla-get-ActiveViewport doc))
(vla-put-Direction activeViewport NewDirection)
(vla-put-ActiveViewport doc activeViewport)
(vla-ZoomAll acadObj)
;; ボックスの中心を返す
(setq Centroid (vlax-safearray->list (vlax-variant-value (vla-get-Centroid boxObj))))
(alert (strcat "ボックスの中心は " (rtos (nth 0 Centroid) 2) ", " (rtos (nth 1 Centroid) 2)))
)
; 選択したソリッド図形の図心座標点リストを Centroid 変数に格納
(setq Centroid (vlax-safearray->list (vlax-variant-value (vla-get-Centroid (vlax-ename->vla-object (car (entsel)))))))
関連事項