19xy19 发表于 2018-2-6 00:52:55

CAD中批量修改带文字格式内容的多行文字字体

CAD中,多行文字的内容中已经自带了times new roman的字体,如图所示。所以修改样式或者属性或者用ma命令去刷都不行,只能一个个点开多行文字然后选择字体来改。但是图里面有上万个这样的...请问有没有大神能批量修改这样的多行文字的字体的,或者用lsp也行~被领导快逼疯了-.-,若修改成功,100RMB献上T.T

lrd1861 发表于 2018-2-6 09:23:18

试一试这个

ntwison 发表于 2018-2-6 15:17:48

本帖最后由 ntwison 于 2018-2-6 16:39 编辑

再试试下面这个
(defun C:tt( / a b m n)
(setq ssnet (ssget "X" '((0 . "MTEXT"))))
(setq n (sslength ssnet))
(setq m 0)
(setq O-ttp "{\\\fTimes New Roman");Arial改成图中需要改变的字体
(while (< m n)
(setq N-ttp "{\\\fArial");Times New Roman改成想要的字体
(setq a (ssname ssnet m))
(setq b (entget a))
(setq T-old (cdr (assoc 1 b)))
(setq T-match (substr T-old 1 18))
(if (wcmatch T-match O-ttp)
(progn
(setq L-txt (strlen T-old))
(setq Mid-txt (substr T-old 19 L-txt))
(setq N-ttp (strcat N-ttp Mid-txt))
(setq M-txt (subst(cons 1 N-ttp) (assoc 1 b) b));文字样式修改
(entmod M-txt);更新图元
);progn
);if
(setq m (1+ m))
);while
(princ)
);END defun

ntwison 发表于 2018-2-6 12:21:01

(defun C:tt( / a b m n)
(princ"\n请框选你需要修改的文字:")
(setq ssnet (ssget '((0 . "MTEXT"))))
(setq n (sslength ssnet))
(setq m 0)
(setq O-ttp "{\\\fArial")
(while (< m n)
(setq N-ttp "{\\\fTimes New Roman");Times New Roman可以改成你要的字体
(setq a (ssname ssnet m))
(setq b (entget a))
(setq T-old (cdr (assoc 1 b)))
(setq T-match (substr T-old 1 8))
(if (wcmatch T-match O-ttp)
(progn
(setq L-txt (strlen T-old))
(setq Mid-txt (substr T-old 9 L-txt))
(setq N-ttp (strcat N-ttp Mid-txt))
(setq M-txt (subst(cons 1 N-ttp) (assoc 1 b) b));文字样式修改
(entmod M-txt);更新图元
);progn
);if
(setq m (1+ m))
);while
(princ)
);END defun

19xy19 发表于 2018-2-6 00:53:43

想要改成jydan字体..

vectra 发表于 2018-2-6 08:35:52

炸开成单行文字再MA

ㄘ丶转裑ㄧ灬 发表于 2018-2-6 08:56:17

附件上传看看

shh1980 发表于 2018-2-6 09:09:01

持续关注...

mikewolf2k 发表于 2018-2-6 09:22:35

读取Mtext的内容,将\fTimes New Roman改成\fjydan即可。
楼主管道的?

囗Peanut囗 发表于 2018-2-6 11:04:37

7楼的测试了一下可以用,直接清掉格式。
建议不要全选,可以只选择font这一个项目
配合选择易插件效率会更高

19xy19 发表于 2018-2-6 12:10:13

vectra 发表于 2018-2-6 08:35
炸开成单行文字再MA

炸开的话,一段多行文字会变成好几段T.T

19xy19 发表于 2018-2-6 12:11:03

mikewolf2k 发表于 2018-2-6 09:22
读取Mtext的内容,将\fTimes New Roman改成\fjydan即可。
楼主管道的?

怎么读取MText额?楼主对于LSP纯小白-.-!
页: [1] 2 3
查看完整版本: CAD中批量修改带文字格式内容的多行文字字体