引用一段源码,来自PF工具箱
 - ;【PF工具箱--自动边界盒】
- (defun c:bjh (/ ss i l1 l2 ll ur os d)
- (setq os (getvar 'osmode))
- (PRINC "\n【PF工具箱--QQ交流群:214654218】--自动边界盒 ")(PRINC)
- (setq d (getreal "\n偏距<5>"))
- (if (null d)
- (setq d 5)
- )
- (setq ss (ssget))
- (repeat (setq i (sslength ss))
- (vla-getboundingbox
- (vlax-ename->vla-object (ssname ss (setq i (1- i))))
- 'll
- 'ur
- )
- (setq l1 (cons (vlax-safearray->list ll) l1)
- l2 (cons (vlax-safearray->list ur) l2)
- )
- )
- (mapcar 'set
- (list 'll 'ur)
- (mapcar '(lambda (a b) (apply 'mapcar (cons a b)))
- '(min max)
- (list l1 l2)
- )
- )
- (command
- "rectang"
- (trans (polar ll (* pi 1.25) (setq d (sqrt (+ (* d d) (* d d)))))
- 0
- 1
- )
- (trans (polar ur (* pi 0.25) d) 0 1)
- )
- (setvar 'osmode os)
- (princ)
- )
程序很好,但是针对框选的两点,来生成边界框;假如图形中有多个需要框选的“范围”,这些“范围”,如何被批量的识别及生成边界框,是个问题;
|
|