你可以根据下面程序修改一下 (defun c:fbbb (/ x y os cmd ds clay m int n b p1 r a aa ss temp t1 tt t2 t3) (setq os (getvar "osmode")) (setq cmd (getvar "cmdecho")) (setq ds (getvar "dimscale")) (setq clay (getvar "clayer")) ;保存旧参数 (setvar "osmode" 0) (setq m 0 int 0 n 0 b nil p1 nil ) ;设定新参数 (setq r (/ ds 5)) (setq a (getstring "\n请输入要插入的第一个序号")) (setq a (strcase a)) (setq int (getint "\n请输入要插入的序号个数")) (setq ent1 (entsel "\n请选择图层")) (setq LAY (cdr (assoc 8 (entget (car ent1))))) (setq ss (ssget (list (cons 0 "TEXT") (CONS 8 LAY)))) (setq bwt (atoi a)) (repeat (sslength ss) (setq temp (ssname ss m)) (setq t1 (entget temp)) (setq tt (atoi (cdr (assoc 1 t1)))) (if (= tt 0) (progn (setq strs (cdr (assoc 1 t1))) (setq n (strlen strs)) (setq strs4 (substr a 1 1)) (setq as5 (ascii strs4)) (setq hh (substr strs 2 4)) (if (and (>= as5 65) (<= as5 90)) (progn (if (= n 1) (progn (setq as1 (ascii strs)) (setq as2 (+ as1 int)) (setq stradd (chr as2)) (setq t1 (subst (cons 1 stradd) (assoc 1 t1) t1)) (setq t2 (cdr (assoc 1 t1))) (setq t3 (strlen t2)) (if (/= t3 1) (setq t1 (subst (cons 41 (- 0.9 (* t3 0.1))) (assoc 41 t1) t1) ) ) (entmod t1) ) ))) ) (progn (if (>= tt bwt) (progn (setq t1 (subst (cons 1 (itoa (+ tt int))) (assoc 1 t1) t1)) (setq t2 (atoi (cdr (assoc 1 t1)))) (setq t3 (strlen (itoa t2))) (if (/= t3 1) (setq t1 (subst (cons 41 (- 0.9 (* t3 0.1))) (assoc 41 t1) t1) ) ) (entmod t1) ) ) ) ) (setq m (+ m 1)) ) (setvar "osmode" os) (setvar "cmdecho" cmd) (setvar "clayer" clay) (princ) ) |