单行文字转多行文字
本帖最后由 linshiyin2 于 2012-12-29 23:13 编辑此为常青藤,谁能写个lisp的方法。 (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))
(entdelen));删除图元
(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)
) nuts26173802 发表于 2012-12-30 18:37 static/image/common/back.gif
cad有這個功能 是text2mtext
啥功能呢,指点一下,是什么命令? linshiyin2 发表于 2013-1-10 17:14
这个实现了原位合并,非常适合那些施工说明被炸开的图纸 原来是广告 本帖最后由 nuts26173802 于 2012-12-30 21:14 编辑
cad有這個功能 是text2mtext(X) 記錯了------誤人子弟了
工具条:Express Text Tools 菜单:Express > Text 快捷工具中的文字命令,可用于处理文字和属性TXT2MTXT该命令可将一行或多行文本转换为段落文本。其命令提示是:Command: TXT2MTXT
Select text objects or press ENTER to set Options:
Select objects:选择需转换的文本对象http://www.mjtd.com/caduse/info-49-35.html
看不出来 哥都是复制的。。 未知命令“TEXT2MTEXT”。按 F1 查看帮助。
用不了,别误人子弟 linshiyin2 发表于 2013-1-10 17:14 static/image/common/back.gif
为什么字体的样式改变了呀。如果还是原来的字体样式要好点。 linshiyin2 发表于 2013-1-10 17:14 static/image/common/back.gif
字体位置会跑掉啊,能不能在原位不动啊 3楼说的应该是“txt2mtxt”
页:
[1]
2