「Vla-getboundingbox」の版間の差分
(ページの作成:「{{AutoLISP}} ; 構文 : (vla-getboundingbox ''vla-object'' ''MinPoint'' ''MaxPoint'') ; 機能 : 指定されたオブジェクトを囲むボックスの 2 点を取...」) |
細編集の要約なし |
||
| (同じ利用者による、間の1版が非表示) | |||
| 16行目: | 16行目: | ||
; 戻り値 | ; 戻り値 | ||
: nil | : nil | ||
*memo: 各コーナーは、WCS の X、Y、Z 軸に平行なエッジを持つ WCS 座標のボックスである。 | |||
| 38行目: | 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)) )
)
関連事項