接到一张外部图纸,打开一看:中文全变成了问号,标高数字还在,钢筋符号变成了一串看不懂的符号,标注文字挤成一团。这不是图纸坏了,也不是你的 CAD 有问题,是字体对不上。
这个问题几乎每个画 CAD 的人都遇过,但绝大多数人的处理方式是「换台电脑打开试试」或者「让对方转个 T3 版本」。本文把根因讲透,并给出一套不依赖对方的解决办法——你手里只要有这张图,就能自己让它正常显示。
一、先分清楚:你遇到的是哪一种乱码
不同现象对应完全不同的根因,先对号入座,别上来就乱装字体。
| 现象 | 根因 | 能否自己修 |
|---|---|---|
| 中文变成一排 ??? | 缺少大字体(Bigfont)文件 | 能,装字体或替换即可 |
| 中文显示为方块 □□ | Windows 字体缺失或编码不匹配 | 能,装 TTF 字体 |
| 钢筋符号变成乱码符号 | 缺专用形字体(如 tssdeng.shx) | 能,但需确认原字体名 |
| 数字和英文正常,只有中文异常 | SHX 字体在,大字体没挂上 | 能,一行设置解决 |
| 全部文字消失或错位 | 字体替换后字宽变化导致排版错乱 | 能,但要重新调排版 |
| 打开就弹出缺字体对话框 | 系统找不到同名 SHX | 能,用替代字体 |
判断要诀:数字和英文正常、只有中文变问号,是大字体问题;连英文一起变问号,是 SHX 主字体缺失;只有钢筋符号这类特殊符号异常,是专用形字体缺失。
二、根因:CAD 的文字字体其实是两层
这是很多人不知道的地方。CAD 里一个中文字的显示,靠的是两层字体配合:
- 第一层:SHX 形字体——负责英文、数字、符号,比如
romans.shx、mono.shx、isocp.shx - 第二层:大字体 Bigfont——负责中文等双字节字符,比如
gbcbig.shx、hztxt.shx、tssdeng.shx
在文字样式(STYLE 命令)里,这两层是分开填的。如果只填了 SHX 没勾「使用大字体」,中文就显示不出来;如果勾了但大字体文件不在,就会退化成问号。
为什么别人发来的图会缺字体:图纸文件本身不携带字体,只记录字体名。对方用了他电脑上装的天正字体、探索者字体、或者是他自己公司的定制字体,你电脑上没有同名文件,就显示不出来。
三、立刻能用的三档解决方案
方案一:临时替代,先看图(30 秒)
打开图纸弹出「缺少字体」对话框时,不要一个个点,直接做这两件事:
- 把系统变量
FONTALT设成一个你电脑一定有的字体:FONTALT回车,输入gbcbig.shx(或hztxt.shx) - 命令行输入
REGEN重生成,问号立刻变成可读中文
这个办法只影响显示,不改原图的字体设置,适合先看图、先量数、先出活的场合。
方案二:一劳永逸,写字体映射表(推荐)
CAD 有一个很少人用的文件:acad.fmp(Font Mapping Table,字体映射表)。它的作用是告诉 CAD:遇到你不认识的字体 X,自动用 Y 代替。
找到它的方法:命令行输入 OPTIONS → 「文件」选项卡 → 「文本编辑器、词典和字体文件名」 → 「字体映射文件」,路径一般在:
- C:\Users\你的用户名\AppData\Roaming\Autodesk\AutoCAD 20xx\Rxx\chs\Support\acad.fmp
用记事本打开,格式是一行一组,原字体名;替代字体名,例如:
hztxt;gbcbig.shx(常见中文单线字体缺失)tssdeng;gbcbig.shx(探索者钢筋字体缺失)tssdchn;gbcbig.shx(探索者中文)hzfs;gbcbig.shx(仿宋体)monotxt;mono.shx
改完保存,重启 CAD 生效。这一招的价值在于:以后所有缺字体的图你打开就自动正常,不用每次点对话框。
方案三:直接装原字体(最彻底)
如果你知道对方用的是什么字体(问一句最省事),把对应 SHX 文件拷到 CAD 的 Support 目录下即可:
- C:\Program Files\Autodesk\AutoCAD 20xx\Fonts\
或者放到图纸同目录,CAD 也会搜到。注意:只从可信来源获取字体,网上下载的来路不明字体可能携带恶意宏,出图单位通常有自己的标准字体库,优先要对方的。
四、钢筋符号乱码:单独处理
结构图的钢筋符号是重灾区,因为它既依赖字体,又依赖控制码。CAD 里用双百分号加数字表示特殊字符:
| 控制码 | 显示 | 用途 |
|---|---|---|
| %%c | Ø | 直径符号,最常用 |
| %%d | ° | 度(角度标注) |
| %%p | ± | 正负号(公差) |
| %%130 | 一级钢筋符号 | HPB300 光圆 |
| %%131 | 二级钢筋符号 | HRB335 带肋 |
| %%132 | 三级钢筋符号 | HRB400 带肋 |
| %%133 | 四级钢筋符号 | HRB500 带肋 |
关键点:%%130 这一组代号不是 CAD 原生标准,需要对应的形字体(如探索者的 tssdeng.shx、天正的专用字体)才能正确渲染。没有该字体时,它会显示成字母或乱码。
如果你只是要读图,用方案一或方案二把中文显示出来就够了;但如果你是出图方,务必确认接收方也有同款字体,否则对方打出来的就是乱码——这是送审被退回的高频原因之一。
五、常见字体对照表(可保存)
| 字体名 | 类型 | 说明 | 缺失时替代 |
|---|---|---|---|
| gbcbig.shx | 大字体 | 国标中文大字体,CAD 自带 | 自带,一般不会缺 |
| hztxt.shx | 单线中文 | 国内最通用的中文单线字体 | gbcbig.shx |
| hzfs.shx | 仿宋 | 图纸说明文字常用 | gbcbig.shx |
| tssdeng.shx | 探索者英文+符号 | 含钢筋符号 | gbcbig.shx(符号会丢) |
| tssdchn.shx | 探索者中文 | 结构图常见 | gbcbig.shx |
| romans.shx | 罗马单线 | 英文数字标准字体 | 自带 |
| mono.shx | 等宽 | 表格数字对齐 | 自带 |
| isocp.shx | ISO | 欧标图纸 | 自带 |
六、防止自己的图发出去变乱码
乱码是双向的——你抱怨别人发给你的图乱码,别人也会抱怨你的图。出图方做好这四件事:
- 优先用通用字体:中文用 hztxt 或 gbcbig,英文用 romans,别用只有你电脑上有的定制字体
- 钢筋符号谨慎用控制码:确认接收方有同款字体,否则改用文字标注「HRB400」
- 交付时同时提供 PDF:重要图纸附一份 PDF,字体已经嵌入,对方一定能看
- 实在要用特殊字体就打包字体:把 SHX 文件和图纸放同一个文件夹一起发
七、排查清单(10 条,按顺序走)
- 1. 先区分现象:中文问号 / 全问号 / 只有符号异常,对应不同根因
- 2. 命令行输入
FONTALT,确认替代字体已设(推荐 gbcbig.shx) - 3. 输入
REGEN重生成,看是否恢复 - 4. 输入
STYLE,逐个查看文字样式,确认哪些字体名显示为异常 - 5. 记录缺失的字体名,写进 acad.fmp 映射表
- 6. 重启 CAD,重新打开图纸验证
- 7. 若需原样出图,向发送方索要对应 SHX 文件
- 8. 字体到位后输入
REGENALL全图重生成 - 9. 检查排版:字体替换会改变字宽,标注可能错位,需人工核对
- 10. 出图前另存 PDF 自检,确认 PDF 里文字正常
八、两个进阶技巧
技巧一:一次性查全图用了哪些字体。 命令行输入 STYLE 只能一个个看。更快的方法是另存为 DXF 后用文本编辑器搜索 $TEXTSTYLE 段落,或者用 -PURGE 命令的字体选项查看可清理的字体样式。也可以直接用我们站的 文字批量处理工具,一键导出全图文字清单 CSV,顺带看清每种文字用的什么样式。
技巧二:PDF 保底法。 如果对方催得急、你又装不上字体,直接 PLOT 选择 DWG To PDF 打印机,虚拟打印一遍。打印时 CAD 会用替代字体输出,虽然字形可能和原字体不同,但至少文字内容是完整可读的,先看清图再说。这个方法在现场看图、紧急核对尺寸时特别实用。
九、什么时候该怀疑不是字体问题
如果按上面全套走完仍然异常,可能是另外三种情况:
- 文件本身编码损坏——尝试用
RECOVER命令修复,或从备份恢复 - 版本兼容问题——高版本 CAD 保存为低版本格式时可能丢失特性,让对方另存为你能打开的版本
- 代理图形(Proxy Graphics)——图纸由天正等专业软件创建,你没装对应插件时显示为代理对象,需要对方装「图形导出」或转 T3
这三种情况都不是装字体能解决的,判断依据很简单:字体缺失时对象本身可选中、可编辑;代理图形则整块无法分解编辑。
十、一页速查
- 中文问号 → 缺大字体 → 设 FONTALT 或写 acad.fmp 映射
- 全问号 → SHX 缺失 → 装原字体或映射替代
- 钢筋符号异常 → 缺 tssdeng.shx 这类专用字体 → 问对方要,或改文字标注
- 方框 → Windows 字体/编码问题 → 装对应 TTF
- 急用 → 虚拟打印 PDF 保底
把这五种对号入座记住,以后再遇到乱码,不用再满世界找「CAD 字体库全集」压缩包了。
💬 评论 (0)
暂无评论,快来抢沙发~