尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
DWG图纸乱码根源剖析:SHX字体替换与映射配置全指南
简介面对日常打开DWG图纸时频繁出现的字体缺失与乱码问题这套SHX字体合集做了系统整理属于CAD用户常备的字体资源。全包共有357个文件绝大多数为SHX字体文件此外还包含少量RSC资源、XML配置、PFB字体、字体说明及系统相关文件压缩包大小约80.8MB。字体内容覆盖常用的汉字、仿宋、黑体、等线等中文字形也收录了数字、字母、符号及专业符号字体可用于替换缺失字体、规范图纸显示也能满足日常绘图、打印输出时的字体调用需求。该合集主要面向AutoCAD、浩辰CAD等常见平台兼容性较好。已有4822人学习下载。文件按常用与专业用途集中打包适合设计院、施工单位、个人绘图员将其统一安装至CAD字体目录一次解决因缺字体出现的问号、空白或异常符号减少看图与协作时的显示干扰提升出图效率。1. DWG 图纸打开全是问号SHX 字体是 CAD 绕不开的一环接手一份 DWG 图纸打开后标题栏全是??或者本应是“仿宋_GB2312”的位置变成了一排歪歪扭扭的方块这类问题在工程圈几乎每天发生。根子基本都在 DWG 引用了某种 SHX 字体而当前电脑里没有这个字体文件。SHX 是 AutoCAD 自创的“形字体”格式和 Windows 系统里的 TTF 字体完全两套体系它不随图纸嵌入只靠文件名引用于是换台电脑就出幺蛾子。这篇笔记把 DWG 里 SHX 字体的原理、安装路径、样式替换、映射表配置和批量处理一次讲透适合设计院出图、施工图归档、审图和外协项目交接的人直接照着做。2. SHX 字体到底是什么形字体与 TTF 的差别以及它为什么总惹麻烦2.1 SHX 是“形文件”不是普通字体笔画、编码与文件结构SHX 的全称是 Shape File最早是 AutoCAD 用来描述简单符号的“形文件”后来扩展成字体。它和 TTF 最大的区别在于TTF 用贝塞尔曲线描述字形轮廓渲染时由操作系统字体引擎负责而 SHX 由一系列矢量笔画命令组成每个字符本质是“抬笔、落笔、画一条线、画一个圆弧”的十六进制指令序列。所以 SHX 字体极为轻量单个文件通常只有几百 KB渲染速度比 TTF 快一个量级特别适合 CAD 这种要快速平移缩放、频繁重绘的场景。因为 SHX 是 CAD 私有的Windows 记事本、浏览器、Office 都不能直接渲染它。DWG 文件里保存的也只是字体文件名比如simplex.shx、complex.shx打开图纸时 CAD 到字体搜索路径去找这个名字找到了就渲染找不到就触发字体替换机制结果就是问号或乱码。SHX 文件还有个特性是“大字体Big Font”。普通 SHX 单字节编码最多 256 个字符一个字节映射一个字形但汉字几千个根本塞不下。AutoCAD 的解决办法是引入双字节“大字体”文件比如gbcbig.shx、hztxt.shx一个汉字用两个字节编码在文字样式里“大字体”栏单独指定。这段历史遗留设计直接导致了后续所有中文乱码问题。2.2 中文乱码的根源代码页、大字体与 GBK 的纠缠一张 DWG 里的文字乱码至少有三个叠加因素代码页、字体文件、文字样式配置。DWG 文件头里有一项代码页标识老版本R14 及更早用代码页声明文字编码方式中文图纸一般标ANSI_936GBK 编码。如果图纸跨过语言版本被打开、或者被某些转换工具当成拉丁字符集处理文字在存储层就开始错位。第二层是字体缺失。文字样式里写的是“字体名 大字体名”比如经典的gbenor.shx搭配gbcbig.shx这组成了国标工程字体。但很多设计院实际用的是tssdeng.shx天正西文和tssdchn.shx天正中文这类第三方字体不属于 AutoCAD 安装包只在装过天正软件的机器上存在。一旦换到干净的 CAD 环境样式指向的 SHX 找不到CAD 就用默认字体替代汉字位通常变成?。第三层是“字体映射表”决定替代策略。如果替代字体没配对比如把西文样式换成了纯 ASCII 的txt.shx而大字体栏是空的那么所有中文字符全部落空。这也是为什么“打开 CAD 图纸全是问号”几乎是所有设计师的初学必修课——它不是玄学是字体解析链路上某一环断了而已。2.3 为什么不用 TTF 一劳永逸打印一致性与样式兼容的代价很多人会问既然 SHX 这么麻烦为什么不直接在 DWG 里全部用 Windows 的 TTF 字体比如宋体、仿宋答案是能但有代价。TTF 在 AutoCAD 里的渲染性能明显比 SHX 慢在几兆的大图纸里缩放平移会出现明显的字体“粘滞”感更关键的是打印线宽控制SHX 是纯矢量笔画打印时笔宽完全由图层颜色决定粗细统一而 TTF 在打印时是填充轮廓会被当成“实体”对象偶尔出现加粗、发黑、边缘毛刺。另一个兼容性问题是第三方生态。天正、中望、浩辰这些 CAD 兼容软件以及 EPLAN 这类能打开 DWG 的电气设计软件对 SHX 的支持程度各不相同。EPLAN 甚至根本不解析 SHX打开后仍然按 Windows 字体渲染效果和你本机缺不缺 TTF 直接相关。所以业界的通用准则是出图、归档、打印用 SHX内部编辑和跨系统交换用 TTF 或转曲线。知道了这个边界后面所有配置就都有据可依。3. 把 SHX 字体装进 CAD 并替换乱码路径、样式与字体映射表3.1 放对字体目录与支持文件搜索路径三个位置和一种标准做法解决乱码的第一步不是去改图纸而是先让 CAD 能找到字体。AutoCAD 的字体搜索顺序是当前图纸所在目录 → 支持文件搜索路径中指定的目录 → AutoCAD 安装目录下的Fonts文件夹。支持文件搜索路径可以在OP选项命令里文件选项卡查看。最常见的三个放置位置位置适用场景C:\Program Files\Autodesk\AutoCAD 20XX\FontsAutoCAD 自带字体目录放这里全军共用C:\Users\用户名\AppData\Roaming\Autodesk\AutoCAD 20XX\RXX\chs\Fonts用户级目录不污染公共安装适合小范围测试D:\CAD_Fonts自定义目录企业统一字体库位置需要手动加到支持路径我一般会建议采用第三种把公司所有 SHX 集中到一个“字体库”目录然后统一在每台机器的支持文件搜索路径里加一行。这样做的好处是换人换机器时只需拷贝整个文件夹不需要重装软件。在国产 CAD 的 Linux 版本如中望 CAD、浩辰 CAD 运行在麒麟、统信 UOS 上里逻辑相同只是路径变成了用户主目录下的.local/share/fonts或/usr/share/fontsSHX 文件本身是跨平台的直接拷贝即可。配置好后命令行输入STYLE打开文字样式管理器检查当前缺少的字体是否已能正常显示预览。3.2 用 STYLE 批量替换文字样式命令步骤与参数字体文件就位后下一步是把图纸里所有引用缺失字体的文字样式改到已有字体上。常见做法是打开STYLE命令在文字样式对话框中逐个修改但更高效的做法是先用-STYLE命令行版本配合通配符批量操作。以最常见的替换场景为例把缺失的tssdeng.shx替换成gbenor.shx把tssdchn.shx替换成gbcbig.shx。命令行下执行-STYLE 输入样式名或 [?]: tssdeng 字体文件: gbenor.shx 大字体文件: gbcbig.shx 高度: 0 宽度因子: 1.0关键点-STYLE命令里每一项都要按提示回车不能跳过。高度必须设为 0否则 CAD 会强制所有文字使用固定高度导致图上原来用多行文字控制字高的地方全部变成统一大小。宽度因子保持 1.0除非图纸原样式里有特殊比例比如0.7否则不要动一旦动了整个图面宽度全部跑偏。如果一个图纸里有几十个样式要改手动敲太慢可以直接编辑 DWG 同目录下的.fmp字体映射文件配合FONTMAP实现自动替代这是下一节的内容。改造完样式后用REGEN重生成模型再用QSAVE保存乱码这一层基本能清干净。3.3 配置 acad.fmp 字体映射表让缺失字体自动兜底acad.fmp是 AutoCAD 的字体映射表路径通常在C:\Users\用户名\AppData\Roaming\Autodesk\AutoCAD 20XX\RXX\chs\Support下。它的作用原理是当 DWG 引用的字体在当前环境找不到时CAD 会查这张表用表里指定的字体去替换。每行格式是“缺失字体名;替代字体名”分号分隔注意分号是英文半角。我处理外协图纸时会先备份原acad.fmp然后在末尾追加一段最常见的替换规则tssdeng.shx;gbenor.shx tssdchn.shx;gbcbig.shx hztxt.shx;gbcbig.shx st64f.shx;gbenor.shx ; 用户自定义映射——按项目需要继续加保存时有个极易踩的坑必须用“记事本另存为 ANSI 编码”因为 AutoCAD 读取 fmp 文件时默认按系统代码页解析UTF-8 带 BOM 会让第一行规则失效表现为“替换一两个字体后后面的全不生效”。配置完成后重新打开 DWGCAD 会按映射表自动处理缺失字体不再弹出难看的“未找到字体”对话框。这个表同时也对 DWG 转其它格式有意义比如把 DWG 转出为图元给 GIS 做 shp 时文字注记能否保真很大程度上依赖这一步的替换质量。4. 字体冲突与乱码排查五个高频踩坑记录4.1 中文变问号、西文正常大字体没挂上现象是图纸打开后所有英文数字完好所有中文变成?但命令行里不报任何缺字体错误。原因在于文字样式里“大字体”栏是空的或者大字体指定成了txt.shx这类单字节文件。AutoCAD 的中文 SHX 必须依赖大字体机制普通字体栏管西文大字体栏管中文两个都配上才能同时显示。解决方法是进入STYLE选中出问题的样式名把字体名保持原样把“大字体”下拉框从“无”改成gbcbig.shx。改完后点“应用”然后用REGEN刷新。如果整个图纸有大量样式可以在命令行用 LISP 一句批处理(command -style 当前样式名 gbenor.shx gbcbig.shx 1.0 )但注意这个命令是把样式整体重建会丢失原样式里的特殊宽度因子用前一定先截图对比。4.2 天正图纸用原版 CAD 打开乱码tssd 字体缺失设计院之间交换图纸最常见的情况甲方用天正你先用原版 AutoCAD 打开整个图面文字错位、中文全糊。原因是天正图纸里的文字样式写着tssdeng.shx和tssdchn.shx这两个文件只有装过天正软件才有。替代字体gbenor.shx和gbcbig.shx虽能显示但字宽、字符间距和天正原版完全不同图面仍然“看着就是不对”。正确做法是安装完整的天正字体包把tssdeng.shx、tssdchn.shx放进字体目录后重启 CAD。如果实在搞不到字体文件可以在acad.fmp里映射到gbenor.shx但要接受版式错位。中望 CAD 打开这类图纸时自带部分天正字体兼容但版本跨度大时同样会缺排查时先看文字样式里到底缺哪个文件再决定是补字体还是改映射。4.3 替换字体后标注整体偏移宽度因子与 SHX 笔画差异把hztxt.shx替换成gbcbig.shx以后文字内容不乱了但尺寸标注的箭头、文字全部挤成一团甚至跑出界线。原因是不同 SHX 的字符宽度定义不一样hztxt.shx是宽体字单个汉字宽度约占字高的 1.0 倍gbcbig.shx是长仿宋宽度因子约 0.7 倍。替换后 CAD 宽度计算翻车标注里文字位置重排自然就偏移。解决方式不是在标注里一个个调选中所有相关标注在特性面板里把“文字样式”统一改成替换前宽度一致的新样式更稳的办法是用图纸原有的文字样式名只把底层字体换成宽度接近的 SHX比如hztxt.shx用tssdchn.shx替代而不是gbcbig.shx宽度比例更相近。血泪经验是批量替换字体后务必导出一次 PDF和原图放在一起叠图对比肉眼看不准的用“测量”功能量几处关键尺寸框。4.4 打印 PDF 时仿宋字体加粗发黑TTF 替代惹的祸明明屏幕上显示正常打印成 PDF 后标题栏的“仿宋_GB2312”全部糊成一团笔画粗得像黑体。这个现象几乎都出在文字样式里用的是 Windows TTF 字体而不是 SHX。TTF 字体在打印时被 AutoCAD 当作填充图形输出笔宽不受图层“默认线宽”控制叠加粗线宽设置后就会明显发黑。规避办法两条出图前把这类文字样式全部切换到 SHX 字体比如工程字用gbenor.shx gbcbig.shx如果效果上坚持要仿宋 TTF就必须在打印样式表里把对应图层的“线宽”改成0.13mm或更细并在“打印设置”里勾选“按对象线宽打印”而不是“按图层”。这条属于老设计院“玄学”里的高频话题实际上就是轮廓字体和笔画字体在光栅化阶段的行为差异跟打印驱动关系不大。4.5 同一个 DWG 在不同电脑上显示不一致字体搜索顺序的玄学同一张 DWG在自己电脑上显示正常发给同事以后字体整体偏大或变小甚至部分中文变成了另一种字形。原因不是图纸坏了而是每台机器字体搜索路径里的同名 SHX 文件版本不同。SHX 没有版本号概念同名文件可能来自不同年代、不同 CAD 版本编码细节有细微差异。AutoCAD 搜索时“先找到谁就用谁”于是同一张图在多台机器上渲染结果不一样。标准做法是给项目建一个“字体环境快照”把用到的所有 SHX 拷贝到图纸同级的_fonts文件夹再把OP → 文件 → 支持文件搜索路径第一优先级指到这个目录。这样只要对方不删文件夹打开图纸就能看到完全一致的字体。另外打开时可执行GRAPHSCR观察缺字体检报告或者用DWG TrueView的批量转换功能把所有图纸转成统一版本顺手把缺失字体在转换阶段替换掉能省去大量现场排查时间。5. 批量修复 DWG 的 SHX 字体LISP、python 与看图软件的极限5.1 用 FONTALT 和 acad.lsp 让启动即兜底如果不想每次打开图纸都手动改可以直接设置系统变量FONTALT它的作用是当某个 SHX 完全找不到时自动替换成你指定的默认字体绕开弹出对话框。命令行执行SETVAR FONTALT hztxt.shx注意FONTALT只接受单个字体文件名不能同时设置大字体。这意味着它只能兜底西文中文仍然会出问题。更完整的做法是在启动脚本acad.lsp里加一段自动修改样式的逻辑(defun c:FIXFONT () (command -style HZTXT gbenor.shx gbcbig.shx 1.0 ) (command -style TSSD tssdeng.shx tssdchn.shx 1.0 ) (princ \n样式已修复) )这段逻辑是定义一个新命令FIXFONT每次打开异常图纸时手动执行一次把两个最常用的样式重建为标准配置。高度参数用了空字符串表示保持原样1.0是宽度因子。之所以不写全自动加载是因为有些图纸的样式名并不是固定的全自动改容易误伤自定义样式手动触发更可控。把这段代码保存到acad.lsp所在的 Support 目录重启 CAD 后就能直接调用。5.2 python 批量改 DXF 里的 STYLE 表代码与三个边界当一批 DWG几十张甚至上百张都需要替换字体时手动一条条改不可行。常见做法是先把 DWG 转成 DXF用 python 的ezdxf库直接改文字样式表再转回 DWG。转换环节通常用 ODA File Converter 或 CAD 自带的SAVEAS来完成。核心脚本如下import ezdxf doc ezdxf.readfile(input.dxf) styles doc.styles for style in styles: font style.dxf.font.lower() bigfont style.dxf.get(bigfont, ).lower() if tssdeng in font: style.dxf.font gbenor.shx if tssdchn in bigfont or hztxt in bigfont: style.dxf.set(bigfont, gbcbig.shx) doc.saveas(output.dxf) print(done)逻辑说明ezdxf把 DXF 文件里的 STYLE 表映射为doc.styles可迭代对象每个样式对象有font和bigfont两个属性。代码先统一转小写再匹配避免大小写差异然后把天正西文字体替换成国标字体把天正中文/旧式汉字字体替换成gbcbig.shx。用这段脚本要清楚三个边界第一ezdxf只能处理 DXF不能直接吃 DWG中间必须有转换环节第二DXF 只保留文字样式定义不会保存 SHX 文件的二进制内容所以替换后目标机器仍然要有gbenor.shx和gbcbig.shx第三高版本 DWG 里如果包含代理对象天正自定义实体转换成 DXF 再转回 DWG 会丢失代理数据批量处理前一定要对原始图纸做备份并先小批量验证。python 方案适合“图面文字样式统一”这种粗粒度操作不适合逐字精改。5.3 LibreCAD 与 DWG TrueView看图工具的字体处理差异有人图省事用 LibreCAD 打开 DWG 看效果发现字体还是乱的。这不是文件的问题而是 LibreCAD 对 SHX 的解析非常有限——它本身优先面向 DXF 格式对 DWG 的兼容是借了第三方库SHX 大字体在它内部被处理成普通符号集汉字经常直接丢字形。LibreCAD 更适合做轻量看图、量尺寸不适合做字体级验证。DWG TrueView 是 Autodesk 官方免费工具它的强项是批量把高版本 DWG 转成低版本比如 2024 转 2010转换过程中也会做一次字体解析和替换对 tssd 之类缺字体的处理效果远好于 LibreCAD。但它毕竟不是编辑软件转换后只能看个大概想要确认替换是否精准最终还是要回到正版 CAD 里打开图纸用打印预览验证。手机端“CAD 快速看图”类 App 同样不解析 SHX它把一切字体都按系统字体渲染所以手机上显示正常不代表电脑上正常反过来也一样——这个差异经常让协作双方互相“甩锅”最好开工前就约定统一的验证工具。6. 验证字体替换是否成功一页样本和一次 DXF 遍历就够了替换完字体别急着发出去先做一次最低成本的验证。我的习惯是建一个包含各种典型字符的验证 DWG 文件一行中文“建筑给排水施工图”一行西文“A1/01-Rev.B”一行特殊符号%%c直径、%%p正负、%%d度再放几个带钢筋符号的标注。用这个文件在同环境的多台电脑上打开对比显示效果基本能覆盖 90% 的字体坑。再干净一点的验证方式是把处理后的图纸转一份 DXF用 python 遍历所有文字对象检查 DWG 里是否还有残留的缺失字体引用import ezdxf doc ezdxf.readfile(check.dxf) for entity in doc.modelspace(): if entity.dxftype() in (TEXT, MTEXT): content entity.dxf.text if content.count(?) 3: print(f疑似乱码实体: {entity.dxftype()}, {content})这段脚本的原理很简单正常图纸里一连串?几乎只会出现在缺失字体场景连续三个以上基本就是中文字符被替换成了问号。它不能 100% 定位所有问题但能快速筛查出哪些实体需要人工复核。字体这件事做得越细后续配合越顺。以前我接过一套外院图纸三百多个文字样式花了一晚上替换、映射、转 PDF 反复对比最后发现真正的问题就出在一行 fmp 映射少了分号。从那以后我给自己立了个规矩任何外来 DWG先开STYLE看样式列表再查acad.fmp最后出一页 PDF 才算验收完成。也希望这套流程能帮你少走几次弯路省下的时间拿去对图更有价值。本文还有配套的精品资源点击获取
RELATED

相关推荐

Atlas 300V Pro 24G上YOLO模型部署实战:从ONNX转换到推理调优

Atlas 300V Pro 24G上YOLO模型部署实战:从ONNX转换到推理调优

1. Atlas 300V Pro 24G 到底是一张什么卡先说结论:Atlas 300V Pro 24G 是一张运算加速卡,但它是专门干推理活的加速卡,不是拿来训模型的。很多人一听到“加速卡”就往训练卡上想,其实这是个很常见的误区。我手头这张卡已经跑了大半…

📅 2026/9/25 6:26:17
ROS2 Humble与Gazebo Harmonic仿真环境搭建:gz_ros2_control兼容性实战指南

ROS2 Humble与Gazebo Harmonic仿真环境搭建:gz_ros2_control兼容性实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/25 6:26:17
4路CAN FD+免安装+LTE云调试:汽车电子逆向工程工具选型与实操

4路CAN FD+免安装+LTE云调试:汽车电子逆向工程工具选型与实操

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/25 6:26:17
MORE NEWS

更多资讯

📰

Office 2016授权重置:slmgr.vbs四步精准激活指南

1. 项目概述:这不是“换密钥”,而是Office 2016授权状态的精准重置你点开这篇内容,大概率是因为——刚重装系统,或者换了电脑,又或者突然发现Word右下角弹出“产品已过期”“需要激活”的红色提示框;也可能…

📰

猫抓资源嗅探扩展:3 步捕获网页媒体并批量下载的实践指南

猫抓资源嗅探扩展:3 步捕获网页媒体并批量下载的实践指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓(cat-catch&a…

📰

Clawith安全检查清单:上线开源AI智能体平台前必须完成的6件事

Clawith安全检查清单:上线开源AI智能体平台前必须完成的6件事 【免费下载链接】Clawith Your First AI Agents Company 项目地址: https://gitcode.com/gh_mirrors/cl/Clawith Clawith 是一个开源的多智能体协作平台(AI Agent Platform&#xff0…

📰

CRM系统落地全流程拆解:从需求调研到数据迁移的实践指南

1. 项目拆解:DeskcommCRM 到底解决什么问题我第一次听到“DeskcommCRM”这个名字时,第一反应是它把两个关键词拼在了一起:Desk 和 comm。Desk 不只是“桌面”,在业务语境里它更接近“工位”“坐席”“办公场景”;comm …

📰

1024不止是程序员节:从二进制到内存分配的性能优化指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

机器学习预测股票涨跌:代码每次结果不同的原因与避坑指南

简介:2024年课程设计用机器学习股票预测算法源码项目,面向金融数据分析、人工智能、通信工程、自动化等相关专业的高校学生、教师和科研工作者,可作毕业设计、课程设计或项目初期演示的完整参考。压缩包共26个文件,整体仅2.57MB&a…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬