Vla-getboundingbox
- 構文
- (vla-getboundingbox vla-object MinPoint MaxPoint)
- 機能
- 指定されたオブジェクトを囲むボックスの 2 点を取得する。
- 引数
-
- vla-object … ボックスを取得する VLA オブジェクト(すべての図形オブジェクト,、AttributeReference、Dimension)
- MinPoint … オブジェクトの境界ボックスの最小点を指定する 3D WCS 座標。 バリアント型(3 要素の倍精度浮動小数点数型配列)
- MaxPoint … オブジェクトの境界ボックスの最大点を指定する 3D WCS 座標。 バリアント型(3 要素の倍精度浮動小数点数型配列)
- 戻り値
- nil
- memo: 各コーナーは、WCS の X、Y、Z 軸に平行なエッジを持つ WCS 座標のボックスである。
- サンプル
(defun C:bbox-Test ()
(vl-load-com)
(setq obj (vlax-ename->vla-object (car (entsel))))
(if obj
(progn
(vla-getboundingbox obj 'minpt 'maxpt)
(setq minpt (vlax-safearray->list minpt))
(setq maxpt (vlax-safearray->list maxpt))
(setq minpt (list (car minpt) (cadr minpt)))
(setq maxpt (list (car maxpt) (cadr maxpt)))
(setq str (strcat
"Minimum Point X: " (rtos (car minpt) 2 16)
"、Y: " (rtos (cadr minpt) 2 16) "\n"
"Max Point X: " (rtos (car maxpt) 2 16)
"、Y: " (rtos (cadr maxpt) 2 16)
))
(alert str)
)))
;;;------------------------------------------------
(defun GZ:ssbbox ( s / a b i m n o )
(repeat (setq i (sslength s))
(if (and
(setq o (vlax-ename->vla-object (ssname s (setq i (1- i)))))
(vlax-method-applicable-p o 'getboundingbox)
(not (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list o 'a 'b))))
)
(setq m (cons (vlax-safearray->list a) m)
n (cons (vlax-safearray->list b) n) )))
(if (and m n)
(mapcar '(lambda ( a b ) (apply 'mapcar (cons a b))) '(min max) (list m n)) )
)
関連事項