- 积分
- 1467
- 明经币
- 个
- 注册时间
- 2013-3-4
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
各位大侠,如何让上面的程序多行文字后面不加\n,只在中间的值上加,我要合并X,Y,Z三个单行文本,仅需要在X,Y的数据后加\n, z值后面不要\N,如何改
(defun C:test (/ EN ENT LST LST1 OLDAUN OLDOSM PT SS STR TXT ZG)
(setq oldaun (getvar "aunits")
oldosm (getvar "osmode"))
(setvar "aunits" 3) ;设为弧度
(setvar "osmode" 0 ) ;设为无捕捉方式
(setq ss (ssget '((0 . "TEXT"))))
(if (not ss) ;图中没有插入各种符号
(progn (alert " 没有选中文本")
(exit))
(progn
(while (> (sslength ss) 0)
(setq ent (entget(setq en (ssname ss 0))));取出第一个数据
(setq pt (cdr(assoc 10 ent))
txt (cdr(assoc 1 ent))
zg (cdr(assoc 40 ent))
lst (cons (list pt txt zg) lst);;获取表
ss (ssdel en ss))
(entdel en));删除图元
(setq lst1 (vl-sort lst
(function (lambda (e1 e2)
(< (cadr(car e1)) (cadr(car e2))) ) ) ));根据y坐标排序
(setq str "")
(foreach e lst1
(setq str (strcat (cadr e) "\n" str))
(setq pt (car e);插入点
zg (caddr e)));字高
(setq pt (polar pt (* pi 0.5) zg))
(command "MTEXT" pt "H" zg "W" 0 str "")))
(setvar "aunits" oldaun) ;设为弧度
(setvar "osmode" oldosm )
(princ)
)
各位大侠,如何让上面的程序多行文字后面不加\n,只在中间的值上加,我要合并X,Y,Z三个单行文本,总是在Z后面加\n,
|
|