求取逐个显示选中的图元的代码
我有这样的设想,就是逐个显示选中的图元。选中图元可以用常青藤来进行,比如筛选出了5个TEXT,内容为“ABC”,或5个直径为3的圆。由于选中的这些图元分布零散,我就想写一些代码,将这些图元逐个显示。显示时需先计算这个图元的外包围盒的大小,再定视口高度是围盒的大小的4倍大,将窗口缩放到这一图元上。按一个空格键,其它的图元也如此逐个显示。甚至还可以设一个文本框,可以输入数值,设定从第几个开始显示。
请高手帮忙写一下看看,VBA、LISP都行 试试(defun c:t11 (/ enbox a ss en lst)
(defun enbox (ename / ll ur)
(vla-getboundingbox (vlax-ename->vla-object ename) 'll 'ur)
(mapcar 'vlax-safearray->list (list ll ur))
)
(setq a -1)
(if
(setq ss (cadr(ssgetfirst))
)
(while
(setq en (ssname ss (setq a (1+ a))
)
)
(setq lst (enbox en)
p0 (mapcar '- (cadr lst) (car lst))
p1 (mapcar '-(car lst) p0)
p2 (mapcar '+(cadr lst) p0)
)
(getint "\n空格/右键-看大图")
(command "ZOOM" "W" p1 p2)
)
(alert "没有选择集")
)
(princ)
) 谢谢您!很好用啊。
页:
[1]