热度 7|||
;;删除重叠数字,保留较大的数或保留较小的数
(defun c:tt (/ kd e ll ur n s1)
(initget "Big Small")
(setq kd (getkword "\n[留大数Big/留小数Small]<Big>:"))
(if (= "Small" kd)
(setq kd <)
(setq kd >)
)
(while (setq ss (ssget ":S" '((0 . "*text"))))
(while (> (sslength ss) 0)
(setq e (ssname ss 0))
(vla-GetBoundingBox (vlax-ename->vla-object e) 'll 'ur)
(setq ll (vlax-safearray->list ll)
ur (vlax-safearray->list ur)
)
(setq s1 (ssget "c"
(trans ll 0 1)
(trans ur 0 1)
'((0 . "*text")))
l nil)
(repeat (setq n (sslength s1))
(setq l (cons (ssname s1 (setq n (1- n))) l))
)
(setq l (vl-sort l
'(lambda (a b)
(kd (atof (cdr (assoc 1 (entget a))))
(atof (cdr (assoc 1 (entget b))))))))
(ssdel (car l) ss)
(foreach a (cdr l)
(ssdel a ss)
(entdel a)
)
)
)
(princ)
)