 - (defun c:tt ()
- (setq ss (ssget '((0 . "MTEXT"))))
- (setq slen (sslength ss))
- (setq n 0)
- (while (< n slen)
- (setq ssn (ssname ss n))
- (setq entdat (entget ssn))
- (setq pt (cdr (assoc 10 entdat)) ;读取文字的插入点坐标
- txt (cdr (assoc 1 entdat)) ;读取文字内容
- zg (cdr (assoc 40 entdat))) ;读取文字的字高
- (setq i 1 ftxt "")
- (while (and (< i (strlen txt)) (/= (setq tmp (substr txt i 1)) "\\"))
- (setq ftxt (strcat ftxt tmp) i (1+ i))
- )
- (princ ftxt) ;第一行
- (setq a1 (strlen ftxt))
- (setq txt (substr txt (+ 3 a1)))
- (setq i 1 gtxt "")
- (while (and (< i (strlen txt)) (/= (setq tmp (substr txt i 1)) "\\"))
- (setq gtxt (strcat gtxt tmp) i (1+ i))
- )
- (princ gtxt) ;第二行
- (setq a2 (strlen gtxt))
- (setq txt (substr txt (+ 3 a2)))
- (setq i 1 htxt "")
- (while (and (< i (strlen txt)) (/= (setq tmp (substr txt i 1)) "\\"))
- (setq htxt (strcat htxt tmp) i (1+ i))
- )
- (princ htxt) ;第三行
- (setq result (strcat ftxt" " gtxt " " htxt)) ;合并前三行
-
- (entmake (list '(0 . "TEXT") (cons 1 result) (cons 10 pt) (cons 40 zg)))
- (entdel ssn)
- (setq n (+ 1 n))
- )
- (princ)
- )
就你所提的要求简单写了下,如果需要更改为更宽的应用场景再做修改调整 |