 - (defun c:wzhb(/ ss i ename dl ell x text e1 e2)
- (setq ss (ssget '((0 . "TEXT")))
- i 0
- dl nil
- minx nil
- );setq
- (if ss
- (progn
- (repeat (sslength ss)
- (setq ename (ssname ss i)
- ell (entget ename)
- x (cadr (assoc 10 ell))
- text (cdr (assoc 1 ell))
- i (1+ i)
- );setq
- (setq dl (append dl (list (list x text ename))))
- );repeat
- (setq dl (vl-sort dl (function (lambda (e1 e2) (< (car e1) (car e2)))))
- i 1
- text (cadr (nth 0 dl))
- ename (caddr (nth 0 dl))
- ell (entget ename)
- );setq
- (repeat (- (length dl) 1)
- (setq text (strcat text (cadr (nth i dl))))
- (entdel (caddr (nth i dl)))
- (setq i (1+ i))
- );repeat
- (setq ell (subst (cons 1 text) (assoc 1 ell) ell))
- (entmod ell)
- (entupd ename)
- );progn
- (princ "\n未选中任何文字!")
- );if
- (princ)
- )
把选中的所有文字合并到最左边一个文字图元。位置、字高、对齐方式就是最左边文字为准。如果楼主要位置、图层、大小都不变化,建议创建组。 |