llsheng_73 发表于 2023-5-15 22:29:01

强制修改所有字体样式使用宋体(也可以指定为自己需要的其它字体文件)

本帖最后由 llsheng_73 于 2023-9-3 18:12 编辑

宋体是比较常用的字体,但它在CAD里边比较另类,首先它实际使用的字体文件是TTC,其它黑体什么的都是TTF,其实这倒无所谓,麻烦在于试图通过DXF数据来创建或修改字体样式使用宋体无法成功,但别的字体基本无这个烦恼,比如,可以很容易通过ENTMOD修改使用仿宋的字体样式去使用黑体,通过ENTMAKE也可以很容易的创建一个字体样式来使用仿宋体。。。但要想修改已有样式的字体为宋体却只能失败,相信不少人试过,我也折腾过,但没成功过。失败的原因也比较怪异:使用宋体的字体样式,它的fontFile属性、DXF的3组为空。。。
废话了半天,改用VLA方法,主要是满足不想用COMMAND的强迫症,其实通过style命令来收拾根本就没问题;P

(defun tt(f / styles *doc);;;强制修改所有字体样式使用宋体,f为NIL时重生成所有视口,否则不重生成(不自动更新显示)
(vl-load-com)
(setq *doc(vlax-get-property(vlax-get-acad-object)'activedocument)
      styles(vlax-get-property *doc 'textstyles))
(or(VL-CATCH-ALL-ERROR-P(VL-CATCH-ALL-APPLY'vlax-invoke-method(list(vlax-invoke-method(vlax-get-property *doc 'TextStyles)'item 0)'SetFont"宋体":vlax-false :vlax-false 0 0)));;;检测宋体是否可用,虽然一般无必要,防万一吧
   (vlax-for x styles(vlax-invoke-method x 'SetFont"宋体" :vlax-false :vlax-false 0 0))
   f(vlax-invoke-method *doc'Regen acAllViewports)))


wharan 发表于 2023-5-16 12:04:27

这有一个自用的字型替换程序,把shx字型替换成自用的"sim.shx和hzfst.shx“,把Windows字形的"封面正文"替换成宋体。稍加修改就能满足你的需求。

vormittag 发表于 2023-5-29 17:13:59

SimSun 是一个超丑的字体,为啥要用这玩意儿呢,而且,还有商业使用的风险。

Noangler 发表于 2023-5-16 19:14:13

wharan 发表于 2023-5-16 12:04
这有一个自用的字型替换程序,把shx字型替换成自用的"sim.shx和hzfst.shx“,把Windows字形的"封面正文"替 ...

Automation 错误。 文件处理器错误
请问怎么解决。

hzyhzjjzh 发表于 2023-5-16 12:35:34

谢谢楼主分享{:1_1:}

Noangler 发表于 2023-5-16 19:03:43

wharan 发表于 2023-5-16 12:04
这有一个自用的字型替换程序,把shx字型替换成自用的"sim.shx和hzfst.shx“,把Windows字形的"封面正文"替 ...

谢谢分享。

zhangkui9070 发表于 2023-5-16 21:17:39

对块中的多行文字有用吗?

zhulei 发表于 2023-5-28 22:44:18

非常感谢。

llsheng_73 发表于 2023-5-29 13:58:50

zhangkui9070 发表于 2023-5-16 21:17
对块中的多行文字有用吗?

应该是有用的,因为这个是修改所有字体样式实际使用的字体为宋体,重生成或更新后所有字体样式都会被修改

meja 发表于 2023-5-29 17:08:03

wharan 发表于 2023-5-16 12:04
这有一个自用的字型替换程序,把shx字型替换成自用的"sim.shx和hzfst.shx“,把Windows字形的"封面正文"替 ...

我也一直用siim字体,通杀
页: [1] 2
查看完整版本: 强制修改所有字体样式使用宋体(也可以指定为自己需要的其它字体文件)