「Vla-getboundingbox」の版間の差分
細編集の要約なし |
細編集の要約なし |
||
40行目: | 40行目: | ||
(alert str) | (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)) ) | |||
) | |||
</pre> | </pre> |
2014年11月7日 (金) 13:01時点における最新版
- 構文
- (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)) ) )
関連事項