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

提供:GizmoLabs - だいたい CAD LISP なサイト
(ページの作成:「{{AutoLISP}} ; 構文 : (vla-get-centroid ''vla-object'' '''' '''' '''') ; 機能 : リージョンの面積の中心またはソリッドの質量の中心を取得す...」)
 
編集の要約なし
1行目: 1行目:
{{AutoLISP}}
{{AutoLISP}}
; 構文
; 構文
: (vla-get-centroid ''vla-object'' '''' '''' '''')
: (vla-get-centroid ''vla-object'' )





2015年11月13日 (金) 22:37時点における版

構文
(vla-get-centroid vla-object )


機能
リージョンの面積の中心またはソリッドの質量の中心を取得する。


引数
  • vla-object … 3DSolid、Region の VLAオブジェクト


戻り値
図心を表す 2D 座標


* MEMO : 図心はバリアント型で定義された X、Y 座標で返される。 


サンプル
(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)))
)

関連事項