简介:面向建筑、机械、测绘、电力等行业制图人员的AutoCAD SHX字体合集,集中整理中文简体、繁体及工程符号类字体,可解决图纸打开时提示缺少字体、文字显示为问号或乱码的常见问题。压缩包共360个文件,以351个shx字体文件为主体,辅以font.rsc、internat.rsc等字符映射与本地化资源,以及少量txt、xml、sys等配置与说明文档,整体约83MB,兼容AutoCAD 2007至2024多版本。字体覆盖仿宋、楷体、黑体、宋体等常见中文样式,也收入多款风格化字形及工程符号字体,可用于标注直径、公差、箭头等要素,适合在文字样式(STYLE)中直接调用。目前已有2394人学习下载;拿到后可直接复制至CAD字体目录即可生效,省去逐个查找与替换字体的麻烦,对日常出图、图纸修改及旧图乱码修复都较实用。适合设计院、施工单位及图纸审核人员按需取用。
1. 图纸里的问号与乱码,为什么一套SHX字体合集是CAD的刚需
A同学发来一张施工图,我打开后满屏问号,中文字全变成一排排“???”,连图名都认不出来。这几乎是每个接触过CAD图纸的人都会遇到的场景:不是图纸坏了,而是本机缺少图纸里文字样式所引用的SHX字体文件。SHX是CAD专用的一种编译型矢量字体,不依赖操作系统的字体库,而是以独立文件的形式存放在CAD的字体目录中。本文要聊的就是一套同时覆盖中文简体、中文繁体以及工程符号的SHX字体合集:它能解决什么、怎么安装配置、简繁体与符号的选型边界在哪、有哪些坑,以及如何验证自己装没装对。适合人群很明确:经常接收外部图纸、需要出施工图和机械图、被字体问题反复折腾的CAD使用者。
2. SHX与TTF的本质差异:编译型矢量、大字体机制与合集的文件构成
2.1 为什么CAD偏爱SHX:编译型矢量字体的三个优势
CAD软件里的字体主要分两类:一类是操作系统的TrueType字体,另一类就是SHX字体。SHX的全称是Compiled Shape File,翻译过来是“编译后的形文件”。它不像TTF那样保存轮廓曲线和渲染指令,而是用CAD自己的绘图指令来定义每个字形,比如这一笔画从哪到哪、圆弧半径多大、下一笔怎么连接。因为这个特性,SHX字体的字形与图纸里的其他图元是同一种语言,缩放、打印、编辑都不会产生渲染偏差。
第一个优势是性能。SHX字体文件体积小,单个文件往往只有几十到几百KB,加载速度快,在模型空间里大范围缩放平移不会卡顿。第二个优势是打印表现。SHX字形本质上是线弧指令,出图时走矢量路径,小字号也不会糊掉,这一点在施工图里尤为重要。第三个优势是独立性。它不依赖操作系统字体库,只要把文件放进CAD的字体目录或支持文件搜索路径,就能被识别,图纸交换时只需要带上字体文件即可。
下面这张表能更直观地看出两者差异:
| 对比维度 | SHX字体 | TTF字体 |
|---|---|---|
| 字形定义 | 线段加弧指令 | 曲线轮廓加系统渲染 |
| 运行依赖 | 只依赖CAD字体目录 | 依赖操作系统字体库 |
| 文件体积 | 小,几十KB级 | 大,数MB级 |
| 中文支持 | 通过大字体机制对接编码 | 依赖系统字体与Unicode |
| 打印表现 | 矢量输出稳定 | 小字号易模糊 |
| 图纸交换 | 缺字体即乱码 | 缺字体时系统自动替换 |
我一般建议:图纸正文、标注、说明文字优先用SHX;TTF用在标题栏、封面这类需要阅读感的场景。纯SHX环境出图更可控,TTF混排多了之后,打印时常常会冒出字体嵌入、替换之类的问题。
2.2 大字体机制:小字体处理西文,大字体处理中文
SHX体系里有一个容易把人绕晕的概念——大字体。CAD早期发展时,西文字符单字节就能表达,但中文双字节编码无法塞进一个普通的小字体文件里,于是软件引入了一个机制:一个文字样式同时挂两个字体槽位,一个叫小字体,负责ASCII字符;另一个叫大字体,负责中文等多字节字符。这也就是为什么在文字样式对话框里,选完SHX小字体后,还要勾选“使用大字体”再选一个中文文件。
常见做法是这么配组合:小字体用simplex.shx或romans.shx,大字体用gbcbig.shx或hztxt.shx。ASCII字符全部走小字体,中文部分走大字体。如果样式里只挂了小字体,或者大字体文件缺失,中文就会显示成问号,西文却一切正常。很多新手只盯着“字体名”下拉框,忽略了下面那个大字体下拉框,这是中文乱码最常见的根源。
一套完整的SHX字体合集,通常就是围绕这个机制组织的:
| 小字体文件 | 大字体文件 | 适用场景 |
|---|---|---|
| simplex.shx | gbcbig.shx | 通用施工图、机械图 |
| romans.shx | hztxt.shx | 西文占比高的技术文档 |
| isocp.shx | tssdchn.shx | ISO风格导向的图纸 |
| tssdeng.shx | tssdchn.shx | 结构图、工程符号较多的图 |
需要特别说明的是,有些字体文件在不同资料里被归类不同。比如hztxt.shx,很多老资料把它当小字体用,但更准确的说法是,某些版本的hztxt.shx自带西文字形,某些则只含汉字。所以拿到字体包后,不要凭文件名猜角色,要在CAD里实际配一次看效果。
2.3 同名字体内容不同:版本混乱是最大的“黑匣子”
SHX是编译后的文件,用记事本打开看到的是一堆无法阅读理解的数据,不像SHP源码那样能直接修改。这就带来一个麻烦:同一个文件名,比如hztxt.shx,在不同渠道下载的内容可能完全不同。有的版本自带一套西文字母,有的只有汉字,还有的塞了工程符号。用过A版本的人,和用过B版本的人,打开同一张图纸,字形表现会不一样。
我处理过不少这样的现象:同一个项目组,两个同事机器上都装了hztxt.shx,但一个显示正常,一个钢筋符号丢失。对比文件字节数后才发现,两人装的根本不是同一个东西。所以使用字体合集时,要遵循“成套使用”的原则,不要混用不同来源的同名字体。
验证当前文件是哪一版的方法很简单:新建一个文字样式,挂上这个字体名,用单行文字输入一串包含数字、字母、中文、%%转义码的字符,看渲染结果。数字字母正常且中文正常,说明这个SHX自带了完整的西文字形;中文异常则说明它可能只是纯汉字大字体。这个测试花不了两分钟,但能省下一整天的排查时间。
3. 把SHX字体合集装进CAD:目录、STYLE命令与批量替换的三步操作
3.1 安装检查:字体文件该放哪,以及如何验证被识别
SHX字体不需要像TTF那样注册到系统字体库,不需要双击安装,也不需要在控制面板里做任何操作。它只认CAD自己的字体目录,或者支持文件搜索路径。最常见的做法是把文件直接复制进CAD安装目录下的Fonts文件夹。
先做一次目录检查。确认你手头字体包的目录结构,有没有子文件夹,文件是不是统一以.shx结尾。然后批量复制:
@echo off set FONT_SRC=D:\fontpack set FONT_DST=D:\CAD_ROOT\Fonts xcopy "%FONT_SRC%\*.shx" "%FONT_DST%\" /Y dir /b "%FONT_DST%\*.shx"这段批处理的意思是:把FONT_SRC目录下所有.shx文件复制到FONT_DST目录,/Y参数表示覆盖同名文件时不逐个询问。复制完成后用dir列出目标目录下的所有SHX文件,确认文件名没有乱码、没有缺后缀。需要注意,FONT_SRC要改成你字体包实际解压的位置,FONT_DST要改成你电脑上CAD安装目录的实际路径。如果你不想动安装目录,也可以在“选项-文件-支持文件搜索路径”里新增一条路径指向字体包目录,效果是一样的。
提示:CAD通常会在启动时缓存字体列表,向Fonts目录放入新字体后,先完全退出软件再重新打开,字体列表才会刷新。不要开着软件复制文件后马上找字体,找不到很正常。
3.2 用STYLE建立一套最小可用的文字样式
装好字体文件后,还要在图纸里建立文字样式,否则文件只是躺在目录里,不会自动生效。操作分四步:
- 在命令行输入STYLE,回车,进入文字样式对话框。
- 点“新建”,给样式起名,比如HZ-1,不要直接改默认的Standard样式。
- 在“字体名”下拉框里选择simplex.shx,然后勾选“使用大字体”,大字体下拉框会自动激活。
- 在大字体列表里选择gbcbig.shx,设置高度和宽度因子,点“应用”。
这里有几个参数需要理解,直接决定后续出图效果:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 样式名 | HZ-1 | 建议用项目缩写加序号,避免多人共用Standard造成配置冲突 |
| 字体名 | simplex.shx | 西文小字体,线条简洁,适合标注 |
| 使用大字体 | 勾选 | 只有选择了SHX字体后这个选项才可用 |
| 大字体 | gbcbig.shx | 中文简体,国标字符集 |
| 高度 | 0 | 表示不固定字高,随当前文字命令或标注样式设置 |
| 宽度因子 | 1.0 | 中文标准比例,如需窄体可调成0.8 |
| 倾斜角度 | 0 | 常规图纸保持0,需要斜体标注时可设15 |
高度设为0有一个实际好处:在模型空间和布局里可以分别控制字高。比如模型空间按1:1画图,字高设为350;布局里通过视口比例,同样一行字在图上显示大小随之缩放。如果把高度固定为350,布局里就无法再调整。这个“高度=0”的习惯我一直保留,出图时反而更灵活。
3.3 批量替换已有图纸里的字体:FONTALT与字体映射文件
施工图一个项目动辄上百张,每张图都手动指定样式不现实。批量替换主要靠两条路:系统变量FONTALT和字体映射文件。
FONTALT是全局兜底字体。命令行输入FONTALT,回车,输入一个字体文件名,比如txt.shx,之后所有找不到的字体都会用它替代。它的作用是应急,不是根治。因为它只替代“去向不明的字体”,并不会把已经找到但配置错误的大字体修好。如果图纸缺的是gbcbig.shx这种大字体,而FONTALT设成txt.shx,中文照样乱码。
更可控的方式是写字体映射文件。CAD在启动时会读取映射文件,把缺失字体定向到指定文件:
; fontmap example ; missing font;replacement font tssdchn.shx;gbcbig.shx tssdeng.shx;gbcbig.shx hztxt.shx;gbcbig.shx这个文件的格式是分号前写缺失字体文件名,分号后写替代字体文件,每行一组。用文本编辑器写好后存为fontmap.fmp,再到命令行输入FONTMAP,把完整路径指过去,重启软件生效。需要提醒的是,这种映射是有损的,因为替代字体不一定包含原字体的全部字形。比如tssdchn.shx里可能有钢筋符号,换成gbcbig.shx后符号位就空了。它适合快速打开图纸核对内容,不适合作为长期交付配置。
4. 简体、繁体与工程符号的字体选型:大字体、编码与转义码边界
4.1 简体场景:gbcbig为主力,tssdchn为扩展
中文简体在CAD里的主流选择是gbcbig.shx。它对应国标字符集,覆盖了绝大多数施工图和机械图会用到的汉字,和simplex.shx搭配时字形风格统一,出图规范。我在大部分项目里都用这个组合,省心。
如果图纸里经常出现结构说明、构造做法这些带有大量专业词汇和特殊字形的场景,可以考虑把大字体换成tssdchn.shx。它比gbcbig多了一些结构图常用字和少量扩展字形。但要注意,tssdchn不一定是CAD默认自带的,需要字体合集提供,而且不同来源的tssdchn版本在对特殊字符的支持上有差异。选用前同样做一遍字符测试。
一个常见误用是把hztxt.shx当成纯中文大字体,却不管它的具体版本。有些hztxt版本自带西文字形,挂到样式里后,小字体和大字体会同时处理ASCII字符,出现重复加载和字符错位。选择逻辑其实很简单:大多数图纸用simplex加gbcbig;结构符号密集的图纸用tssdeng加tssdchn;涉外项目按对方要求选ISO字体。不要所有场景都用一套组合。
4.2 繁体场景:为什么“换个大字体文件名”解决不了问题
繁体图纸的处理比简体复杂,因为涉及编码体系。简体中文大字体按GB2312或GBK编码组织字形,繁体中文按BIG5编码组织。即使是GBK里的繁体字字形,和BIG5体系也不是一一对应。把gbcbig.shx复制一份改名成所谓“繁体字体”,CAD不认文件名,认的是文件内部的编码表。改了名的gbcbig在繁体文本下照样丢字,这是典型的“改文件名翻车”。
实际处理时有三条路:
- 纯繁体环境:使用支持BIG5编码的专用SHX大字体,比如chineset.shx系列,搭配西文小字体使用。这套方案字形风格统一,但只适用于纯繁体项目,简体文本反而会乱。
- 简繁混排:更推荐用TTF。文字样式里直接选系统字体,不勾选大字体,让操作系统负责字形渲染。代价是打印性能略低、图纸文件体积变大,但简繁都能正确显示。
- 少量繁体字:在MTEXT里选中繁体字符,单独指定TTF字体,不让整张图换字体。
如果一个字体合集声称“含繁体”,先确认它的内部编码是BIG5还是GBK扩展。判断方法很直接:把输入法切到繁体模式,输入一段BIG5编码的繁体文本,看字形是否完整。不要只靠文件名里有没有“trad”字样。这也是我常说的:字体文件是个黑匣子,测试比猜重要。
4.3 工程符号:%%转义码与钢筋符号的字形映射
工程符号是施工图里最头疼的一块。CAD有一套通用的转义码,用来在单行文字里输入特殊符号:
| 转义码 | 输出符号 | 说明 |
|---|---|---|
| %%d | ° | 角度符号 |
| %%p | ± | 正负号 |
| %%c | Ø | 直径符号 |
| %%u | 下划线 | 开启下划线 |
| %%o | 上划线 | 开启上划线 |
| %%% | % | 百分号 |
这些转义码是CAD命令层面支持的,但最终能不能显示成正确字形,取决于当前字体是否包含这个字符。字体里没有该字形,输出就是空白或问号。比如simplex.shx不一定带%%所有的符号,而tssdeng.shx这类工程字体通常会更完整。
钢筋符号的约定更要谨慎。在结构施工图里,一至四级钢筋符号通常用%%130到%%133这样的码位实现,但这不是CAD的硬性标准,而是各个工程字体内部自行定义的。有的字体放在128到132,有的放在130到133,有的甚至完全没有。所以拿到一套新字体,不要直接套图纸模板,先实测一遍:用DTEXT输入%%128到%%135,逐个对照渲染结果,记录哪个码位对应哪个钢筋级别。
还要提醒一点:SHX单行文字本身不支持上下标堆叠。做面积、配筋率这类带上下标的文字,正确做法是在MTEXT编辑框里选中需要堆叠的内容,再使用堆叠功能。这个操作和字体无关,靠换字体解决不了。
5. 排查与避坑:问号乱码、字体失踪与打印翻车的四类现场
5.1 图纸全是问号:先分清是缺字体还是缺编码
现象:打开图纸,中文全是问号,西文正常。原因有两种:一是样式里指定的大字体文件缺失,CAD找不到字形;二是文字内容与大字体内部的编码表不匹配,最常见的场景是把繁体文本放在简体字体下。
解决:先看打开图纸时弹出的提示框,它通常会点名缺哪个文件,找到后补装对应大字体。如果没有提示框,用STYLE打开样式列表,检查每个样式的“字体名”和“大字体”两个槽位,把缺失的大字体补上。如果文件都在但依然乱码,那就是编码不匹配。紧急处理时可以把缺失大字体映射到gbcbig.shx,但特殊符号会丢,这个损失要在拿到正确的字体文件后补齐。
5.2 刚放进去的字体,样式里却找不到
现象:字体包已经复制到Fonts目录,重新打开STYLE,下拉列表里看不到新文件。原因通常是三种:放错了目录,比如复制到了操作系统的字体文件夹而不是CAD的字体目录;CAD还没完全重启,字体列表仍然走缓存;文件放在Fonts下的子目录里,而支持文件搜索路径没有覆盖到子层。
解决:先打开“选项-文件-支持文件搜索路径”,确认目标目录在列表里。然后删除字体缓存目录里的缓存文件,或者干脆重启一次软件。操作顺序我一般固定为:退出CAD,复制字体,启动CAD,再检查STYLE。这样能排除掉缓存干扰。如果文件被安全软件拦截了复制,也要留意,用文件管理器确认目标目录下确实存在该文件,而不是只看复制过程的提示。
5.3 打印翻车:屏幕正常,输出PDF后中文变方块
现象:模型空间里一切正常,打印预览也没问题,但输出成PDF或纸质图纸后,中文全变成方框。原因多数出在打印配置上:打印样式表或输出驱动里勾选了字体替换;某些虚拟打印驱动对SHX字形支持不完整,按位图方式渲染时失败。
解决:打开打印对话框,检查“打印选项”里是否勾选了“替换字体”,如果有,取消它并改为“使用已加载字体”。转PDF时,在输出配置里勾选嵌入全部字体。如果这两个位置都找过了仍然翻车,就把文字样式临时切成TTF字体打印,先保证图纸能交付,再回头排查SHX的问题。这类问题有很强的环境相关性,换一台打印机或换一台电脑验证,能快速确认是驱动问题还是字体问题。
5.4 合并图纸时字体被静默替换
现象:把A项目的图块复制到B项目后,钢筋符号消失,部分繁体字变成问号。原因:两个文件的同名文字样式配置不同,合并时目标图纸里的样式定义会覆盖来源图样式定义,字体名的两个槽位都被悄悄替换。
解决:合并前先对比两个文件的文字样式,看“字体名加大字体”的组合是否一致。不一致时,先把来源图的样式改成与目标图一致,再执行合并。合并完成后,打开STYLE检查一遍被覆盖的样式。更治本的做法是把字体合集放到共享网络路径,让所有项目成员通过支持文件搜索路径加载同一套字体,从源头消除“你装了我没装”的差异。
6. 验证SHX字体是否装对:打印预览与团队共享的收尾技巧
装完字体不代表万事大吉,一定要验证。我常用的流程是:新建一张空白图纸,把配置好的文字样式置为当前,用单行文字输入“中文简体测试”;再输入一行繁体文字“繁體工程圖”;接着输入%%d、%%c、%%130这样的转义序列;然后用多行文字写一句包含上述字符的完整说明。最后打开打印预览,放大到200%检查字形轮廓,再输出一份PDF,用PDF阅读器放大检查。六步全过,这套字体环境才算真正健康。
验证过程中如果发现某个码位显示异常,不要急着删字体,先记下异常码位,回到STYLE里换一个候选字体重新测试。很多时候不是字体坏了,而是当前样式挂错了文件。这个排查思路比反复卸载重装高效得多。
还有一个值得投入的进阶做法:如果团队有共享服务器,把字体包放到服务器目录,在每台电脑的“选项-文件-支持文件搜索路径”里加一条指向该目录的路径。这样图纸里的字体引用在每台机器上都指向同一套文件,缺字体和版本不一致的问题在团队层面被直接消除。要注意共享目录的读取权限和只读属性,防止有人误删或多版本覆盖。
我在某个项目交付前碰到过整套蓝图钢筋符号在同事机器上变成问号的情况,原因就是那位同事机器上缺文件,又开了一个错误的映射。那以后我把字体检查和样式校准列入了项目初始化的事项清单——每次接手新图纸,先跑一遍上面的验证输入,确认字体环境没问题再开始干活。希望帮到你。
本文还有配套的精品资源,点击获取