「Vla-get-centroid」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
編集の要約なし
編集の要約なし
 
(同じ利用者による、間の1版が非表示)
13行目: 13行目:


; 戻り値
; 戻り値
:  図心を表す 2D 座標
:  図心を表す 2D または 3D 座標




* MEMO : 図心はバリアント型で定義された X、Y 座標で返される。 
* 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)))))))

関連事項