 - (defun C:aa (/ A1 A2 ANG BP CNT D DIST SS)
- (defun ax:GetBoundingBox (ent / ll ur)
- (vla-getboundingbox (vlax-ename->vla-object ent) 'll 'ur)
- (mapcar 'vlax-safearray->list (list ll ur))
- )
- (PRINC "\n 角度阵列\(2005.8.5胡晓航\) ")
- (cond
- ((setq ss (car (entsel "\n选择对象:")))
- (initget 1)
- (setq bp (getpoint "\n基点: "))
- (initget 1)
- (setq ang
- (getangle bp "\n阵列方向: ")
- )
- (initget 7)
- (setq dist
- (getdist "\n对象间距: ")
- )
- (initget 7)
- (setq cnt (getint "\n对象个数: "))
- (setvar "cmdecho" 0)
- (setvar "osmode" 0)
- (repeat (1- cnt)
- (setq a1 (ax:GetBoundingBox ss))
- (setq a2 (list (caadr a1) (cadar a1)))
- (setq d (distance (car a1) a2))
- (setq d (+ d dist))
- (command "_.copy" ss "" bp (polar bp ang d))
- (setq ss (entlast))
- )
- )
- )
- (setvar "osmode" 15359)
- (princ)
- )
;注意只考滤陈列间距二水平的效果 |