「Vla-get-centroid」の版間の差分
編集の要約なし  | 
				編集の要約なし  | 
				||
| 16行目: | 16行目: | ||
* MEMO : 図心はバリアント型で定義された   | * MEMO : 図心はバリアント型で定義された X、Y(、Z)座標で返される。   | ||
2021年8月30日 (月) 09:46時点における最新版
- 構文
 - (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)))))))
関連事項