明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 9087|回复: 29

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

[复制链接]
发表于 2018-2-6 00:52 | 显示全部楼层 |阅读模式
CAD中,多行文字的内容中已经自带了times new roman的字体,如图所示。所以修改样式或者属性或者用ma命令去刷都不行,只能一个个点开多行文字然后选择字体来改。但是图里面有上万个这样的...请问有没有大神能批量修改这样的多行文字的字体的,或者用lsp也行~被领导快逼疯了-.-,若修改成功,100RMB献上T.T

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2018-2-6 15:17 来自手机 | 显示全部楼层
本帖最后由 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
发表于 2018-2-6 12:21 | 显示全部楼层
(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

点评

选择对象: ; 错误: 输入中含有多余的闭括号 他显示这个问题...  发表于 2018-2-6 13:16
发表于 2018-2-6 13:33 | 显示全部楼层
19xy19 发表于 2018-2-6 12:11
怎么读取MText额?楼主对于LSP纯小白-.-!

lisp不会。vba会。源码共享里面发过一个多重文本批量替换的vba程序,应该可用。而且论坛中也还有很多其它的文本替换软件,很可能可以用。
 楼主| 发表于 2018-2-6 00:53 | 显示全部楼层
想要改成jydan字体..
发表于 2018-2-6 08:35 | 显示全部楼层
炸开成单行文字再MA
发表于 2018-2-6 08:56 | 显示全部楼层
附件上传看看
发表于 2018-2-6 09:22 | 显示全部楼层
读取Mtext的内容,将\fTimes New Roman改成\fjydan即可。
楼主管道的?
发表于 2018-2-6 09:23 | 显示全部楼层
试一试这个  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2018-2-6 11:04 | 显示全部楼层
7楼的测试了一下可以用,直接清掉格式。
建议不要全选,可以只选择font这一个项目
配合选择易插件效率会更高
 楼主| 发表于 2018-2-6 12:10 | 显示全部楼层
vectra 发表于 2018-2-6 08:35
炸开成单行文字再MA

炸开的话,一段多行文字会变成好几段T.T
 楼主| 发表于 2018-2-6 12:11 | 显示全部楼层
mikewolf2k 发表于 2018-2-6 09:22
读取Mtext的内容,将\fTimes New Roman改成\fjydan即可。
楼主管道的?

怎么读取MText额?楼主对于LSP纯小白-.-!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-27 01:25 , Processed in 0.322369 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表