CAD文字字体批量统一(一键改字体,有源码)
在工程投标中,经常遇到需要图纸文字采用规定的统一的字体的要求。特别是在暗标中。如果图纸绘制过程中没有可以去注意字体的统一,甚至图纸中部分内容是从原来项目图纸中拷贝过来的,可能会造成图纸中存在很多字体样式。而每种字体样式所调用的字体可能又各不相同、每种字体样式的字宽、字高等参数又可能各不相同。如果考虑将图纸中的文字全部用新建一个特定字体的文字样式去套用可能会导致CAD文字原有的字高字宽等参数全部混乱。
最好的办法就是在不改变文字样式的情况下单一的修改对应文字样式的字体。如果字体样式有很多,一个一个改就比较麻烦了。
下面就介绍一下如何通过LISP来实现批量同意修改文字字体。
注意点:不修改原来的字宽、字高等参数。
这样就不能使用修改统一修改文字的样式为一种,这样会导致所有的文字,字高,字宽等参数均调用这一个字体样式的内容,导致排版与之前不一致。
如果能保持原来的字体样式不变,只是修改字体样式内对应的字体,就可以实现不改变排版的情况下同意字体了。
用LISP来批量文字字体的思路如下:
1.获取当前文档内所有图层样式名称。
2.利用CAD中的style命令来修改文字样式对应的字体,并保留原来的参数不变。
3.通过循环函数来批量处理文档内所有的字体样式。
实现源码如下:
;;***批量修改文字样式字体为XX字体***
(defun C:T1 (/ TxtStyles TxtStyleList TxtStyleListLenth i) ;;T1为改函数启动命令,可以自定义修改
(vl-load-com) ;;加载LISP扩展功能
(setq TxtStyles (vla-get-textstyles (vla-get-activedocument (vlax-get-acad-object)))) ;;获取文件内字体样式集合
(setq TxtStyleList '()) ;;新建一个空的表来存储获取到的文字样式名
;;遍历文字样式集合,将文字样式名存入表内
(vlax-for TxtStyle TxtStyles
(setq TxtStyleList (cons (vla-get-name TxtStyle) TxtStyleList))
)
(setq TxtStyleListLenth (length TxtStyleList));;获取文字样式名列表的长度,即总共有多少个文字样式
(setq i 0) ;;用来循环计数的
;;创建一个循环,来批量修改每一个字体样式对应的字体
(repeat TxtStyleListLenth
(command "_.style" (nth i TxtStyleList ) "宋体" "" "" "" "" "") ;;修改文字,这里主要修改的是字体,其他保持不变
(setq i (+ i 1))
)
)
;;***批量修改文字样式字体为XX字体***
如果对LISP源码编辑有困难,也可以使用小葛CAD工具箱字体批量修改功能进行快捷修改。
小葛CAD工具箱提供了三种常用字体的一键修改功能,可一键将图纸中所有文字样式所调用的字体替换未宋体、黑体、中国国家标准大字体。同时保留原先字体样式的字高、字宽等参数。
具体功能演示如下所示:
一键宋体: YJST
将图纸中所有文字样式对应的字体更改为宋体,
更改后可能出现大面积问号,更后保存关闭CAD(重启CAD软件),宋体生效
此过程不可逆,请先备份好图纸
演示:
一键黑体: YJHT
将图纸中所有文字样式对应的字体更改为黑体,
更改后可能出现大面积问号,更后保存关闭CAD(重启CAD软件),黑体生效
此过程不可逆,请先备份好图纸
演示:
一键国标: YJGB
将图纸中所有文字样式对应的字体更改为国标,
更改后可能出现大面积问号,更后保存关闭CAD(重启CAD软件),国标生效
此过程不可逆,请先备份好图纸
演示:
以上工具均来自于小葛CAD工具箱。
小葛CAD工具箱是一个CAD扩展工具集。提供了100多项实用便捷功能。 小葛CAD工具箱将多步骤才能完成的工作,简化到几步甚至一步,将人工重复性工作,简化为半自动甚至自动,从细节处尽可能的提升CAD绘图效率。
所有功能均支持面板操作和自定义快捷键操作。
如有疑问可联系我的个人微信:
我的微信/QQ:1026539820
备用微信/QQ:2261896995
有相关问题咨询讨论可加入我的QQ群:
CAD交流学习群:311710655
EXCEL技术交流群:499560580
更多CAD使用技巧关注我的微信公众号
关注公众号
发表评论: