
在 SolidWorks 出图、外发加工或与客户协同时经常遇到一个非常头疼的问题SolidWorks 工程图转成 DWG 后用 AutoCAD 打开中文注释全部变成“问号”或“方块”图层名变成乱码中心线、虚线全部变成实线尺寸标注也错位。更麻烦的是这种问题往往不是个例而是整个工程图批量出现。网上搜到的解决办法大多是“把字体改成宋体”或者“重新安装字体”改完还是时好时坏根本没有解决根因。这篇文章我会从根上讲清楚 SolidWorks 转 DWG 乱码的原因重点讲解映射文件的配置方法通过字体映射、图层映射、线型映射三个方面把 SolidWorks 输出的图纸完美转成 AutoCAD 可正常使用、可编辑的 CAD 图纸。如果你遇到的是“临时导出一下能用就行”的情况那本文稍微有点超纲但如果你需要长期、稳定、批量地把 SolidWorks 工程图转成 DWG 给下游使用这篇文章非常建议完整看一遍。1. 为什么 SolidWorks 转 DWG 会乱码先说结论SolidWorks 转 DWG 之后产生的乱码绝大多数不是文件损坏也不是软件问题而是两个软件的“语言体系”不同中间缺少翻译规则。1.1 SolidWorks 和 AutoCAD 的图纸数据模型不一样SolidWorks 工程图是一个“三维模型关联的二维表达”它的文字、尺寸、图层、线型都保存在 SolidWorks 自己的数据模型里而 AutoCAD 的 DWG 文件则是一套基于图元实体的独立格式。SolidWorks 在导出 DWG 时需要把自身的文字对象转换为 AutoCAD 的文字对象把自身图层转换为 AutoCAD 图层把自身线型转换为 AutoCAD 线型。在这个转换过程中需要一张“翻译对照表”告诉 SolidWorks你用的这个字体在 AutoCAD 里应该替换成什么字体你用的这个图层名在 AutoCAD 里应该叫什么你用的这个线型在 AutoCAD 里应该对应哪种线型。这张表就是 SolidWorks 里的映射文件。1.2 乱码的本质是字体和编码不匹配乱码最常见的情况是中文注释变成“???”或者变成一排方框。这是因为 SolidWorks 工程图中的文字用的是 Windows 字体比如宋体、仿宋但 AutoCAD 打开 DWG 时如果字体文件缺失AutoCAD 会用默认字体一般是simplex.shx代替而simplex.shx不支持中文就会显示为问号或乱码。还有一种情况是SolidWorks 导出的 DWG 文字本身就是 Unicode 编码而 AutoCAD 使用的 SHX 字体编码不匹配导致文字对应关系错乱。所以只改工程图里的字体并不一定能完全解决问题因为导出时还涉及字体映射规则。1.3 图层乱码和线型丢失是另一类高频问题除了文字图层的乱码同样常见。比如 SolidWorks 工程图里的图层名是“中心线层”“标注层”导出后 AutoCAD 里显示为“”或者变成__开头的系统图层导致下游无法通过图层批量管理图纸。线型丢失则是因为 SolidWorks 的线型名称比如Dashed、Center、Phantom和 AutoCAD 的线型名称比如DASHED、CENTER、PHANTOM不完全一致映射不上时就自动落回Continuous实线。这就是为什么很多人导出后中心线、虚线全变成实线的原因。2. 认识映射文件解决乱码的关键2.1 映射文件是什么SolidWorks 的映射文件Mapping File是一个纯文本文件通常位于 SolidWorks 安装目录的data文件夹下文件名是solidworks2d.dxf或类似名称。它的作用就是在 SolidWorks 导出 DXF/DWG 时控制实体、图层、线型、字体等属性的对应关系。映射文件可以简单理解为一张“翻译对照表”里面记录了映射类别意义$INSUNITS导出单位映射$LAYERSSolidWorks 图层与 AutoCAD 图层的对应关系$LINETYPESSolidWorks 线型与 AutoCAD 线型的对应关系$FONTSSolidWorks 字体与 AutoCAD 字体的对应关系$COLORS颜色映射规则$DIMENSIONS尺寸对象、注释对象的输出规则2.2 为什么要手动配置映射文件SolidWorks 安装时自带的默认映射文件基本能满足“图形能打开”的需求但对中文字体、中文图层名、自定义线型的支持非常有限默认映射通常不会自动将中文字体替换为 AutoCAD 可识别的字体。所以实际工程中我们需要手动编辑映射文件明确告诉 SolidWorks中文用什么字体图层叫什么名字线型对应什么类型。配置一次之后后续每次导出都会沿用这套规则团队里所有人共享一个映射文件输出效果也能保持一致。2.3 映射文件、工程图模板、导出设置三者配合这里需要澄清一个概念映射文件不是唯一的配置项它需要和 SolidWorks 工程图模板配合工作。工程图模板控制的是设计阶段的字体、图层命名、线型、标注样式映射文件控制的是导出阶段把 SolidWorks 的字体/图层/线型对应到 AutoCAD 的哪一个对象导出设置控制的是导出 DXF/DWG 版本、是否激活映射文件、是否输出 3D 数据等。三者配合才能保证“设计时用着顺手导出后下游用着也顺手”。如果你只在 SolidWorks 里把字体改成宋体但映射文件里没有做字体替换规则某些情况下依然可能乱码。3. 环境准备与导出前的工程图检查3.1 软件环境说明本文以 Windows 环境 SolidWorks 工程图模块 AutoCAD 查看验证为例。SolidWorks 的版本从 2016 到 2024 之间映射文件的位置和编辑方式基本一致但不同版本可能在导出选项界面布局上略有差异操作时以你本机安装的版本为准。AutoCAD 建议至少使用 2010 以上版本打开验证早期版本对 TTF 字体的兼容性稍差容易误判“还是乱码”。3.2 导出前检查工程图字体在配置映射文件之前先检查一下 SolidWorks 工程图本身的字体设置。如果工程图里的字体本身就很乱比如标题栏用了很多种中文字体、西文字体混杂那么即使映射文件配置得再好也无法保证百分之百不乱码。建议打开 SolidWorks 工程图进入工具 - 选项 - 文档属性检查“注释”“尺寸”“表格”等选项下的字体设置。常见做法是中文文字字体统一使用“仿宋”或“宋体”西文和数字字体统一使用“Arial”或“Times New Roman”标题栏标准文字使用“仿宋”尺寸标注文字使用“仿宋”或“宋体”不要使用 SolidWorks 特有的艺术字体或特殊符号字体。这样做的原因很简单仿宋、宋体、黑体、Arial 这些都是 Windows 系统自带字体也是 AutoCAD 环境里最容易找到的字体字体映射时不容易丢字。3.3 检查图层命名SolidWorks 工程图里的图层名建议在创建时就使用英文字母、数字、下划线不要直接用中文。例如不建议中心线层建议CENTER_LINE或CENTER不建议标注层建议DIM或DIMENSION虽然映射文件可以把中文图层名映射成英文字段但图层名本身是设计阶段就存在的能主动规避就用主动规避的方式少做一层翻译就少一层出错概率。4. 映射文件配置实战下面进入核心内容如何编辑映射文件将 SolidWorks 导出的 DWG 完美转成 AutoCAD 可用图纸。4.1 找到映射文件位置不同的安装路径可能不一样常见位置如下C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\data\solidworks2d.dxf或者C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\data\solidworks2d.dxf.txt如果你不知道自己的映射文件在哪里可以用以下方式找在 SolidWorks 中执行一次“另存为 DWG”操作在弹窗中点击“选项”在弹出的导出选项对话框中会显示当前激活的映射文件路径点击“浏览”可以查看文件所在的目录。找到映射文件后先复制一份备份例如改成solidworks2d_backup.dxf再开始编辑。备份很重要因为映射文件一旦误改后续所有导出都会受牵连。4.2 备份并打开映射文件用系统自带的“记事本”或者“Notepad”打开映射文件。不建议用 Word 编辑因为 Word 会更改文件编码和换行符可能导致 SolidWorks 无法识别。打开后你会看到一份以!开头注释行的文本。部分段落如下! ! SolidWorks - AutoCAD 映射文件 ! 注释行以 ! 开头 ! 4.3 修改字体映射解决中文乱码字体映射是解决乱码最核心的段落。不同版本的映射文件里字体映射段的写法可能略有差异但思路一致把 SolidWorks 里的字体名映射成 AutoCAD 里存在的字体名。下面是一个简化示例展示字体映射的思路$FONTS 仿宋, gbcbig.shx 宋体, simsun.ttf 黑体, simhei.ttf Arial, arial.ttf注意gbcbig.shx是 AutoCAD 的中文大字体通常搭配gbeitc.shx或gbenor.shx使用适合在 AutoCAD 中显示中文和西文。simsun.ttf是宋体 TrueType 字体Windows 系统自带AutoCAD 也能正常引用。如果 AutoCAD 打开后仍然乱码可能是 AutoCAD 侧的字体映射问题此时可以检查 AutoCAD 的FONTALT系统变量。在 AutoCAD 命令行输入FONTALT把这个值设置为simfang.ttf或simsun.ttf这样当字体缺失时AutoCAD 会自动用中文字体替代而不是用不支持中文的simplex.shx。4.4 配置图层映射避免图层名乱码图层映射段负责把 SolidWorks 的图层名映射为 AutoCAD 的图层名。如果你在 SolidWorks 里用了中文图层名可以在映射文件里这样配置示例$LAYERS 0, 7, CONTINUOUS 中心线层, 1, CENTER 标注层, 2, CONTINUOUS这段含义是SolidWorks 图层中心线层导出为 AutoCAD 中颜色号1红色、线型CENTER的图层SolidWorks 图层标注层导出为 AutoCAD 中颜色号2黄色、线型CONTINUOUS的图层。如果 SolidWorks 里的图层名是英文比如DIM那可以直接映射为$LAYERS DIM, 2, CONTINUOUS最关键的一点不要让 SolidWorks 图层直接暴露到 AutoCAD 中变成系统随机图层名。所有需要在 AutoCAD 中管理的图层都应该在映射文件里有一条显式规则避免生成__开头的临时图层。4.5 配置线型映射解决虚线变实线线型映射段负责把 SolidWorks 的线型名映到 AutoCAD 的线型名。常见的线型映射如下$LINETYPES Continuous, CONTINUOUS Dashed, DASHED Center, CENTER Phantom, PHANTOM注意AutoCAD 中线型名称通常是大写字母而 SolidWorks 中线型名可能是首字母大写。映射文件里两侧的名称需要准确匹配否则线型识别不到时会自动变成Continuous。如果你在 SolidWorks 工程图中自定义了线型比如“中心线粗”导出后也希望能对应到 AutoCAD 的CENTER同样需要添加一行映射规则。4.6 保存映射文件修改完成后保存文件注意保持原来的编码格式一般是 ANSI 或 UTF-8不用刻意改。如果使用“记事本”保存建议在“另存为”时选择“ANSI”编码避免部分 SolidWorks 版本对 UTF-8 带 BOM 文件解析出错。保存后不要直接关掉先到 SolidWorks 里验证一次导出确认乱码是否解决。5. 在 SolidWorks 中激活映射文件并导出 DWG映射文件改好了接下来要告诉 SolidWorks 使用这份文件。5.1 单次导出时激活映射文件在 SolidWorks 中打开工程图点击文件 - 另存为在“保存类型”中选择DWG点击“选项”按钮。此时会弹出 DWG/DXF 导出选项对话框找到“激活映射文件”选项选择你修改好的映射文件。界面上的选项大致如下导出所有工程图为 DWG/DXF 文件激活映射文件选中后可以浏览选择映射文件路径自定义 SolidWorks 到 AutoCAD 的映射针对 AutoCAD 版本进行导出设置。选择映射文件后建议把 AutoCAD 版本设置为和你目标环境匹配的版本。比如下游统一用 AutoCAD 2018就可以在下拉框中选择AutoCAD 2018。如果拿不准选择AutoCAD 2013或AutoCAD 2010这类中间版本兼容性一般更好。5.2 设置默认导出选项如果你不希望每次导出都手动切换映射文件可以在 SolidWorks 中设置默认导出配置工具 - 选项 - 系统选项 - 导出在 DXF/DWG 相关选项中选择默认使用的映射文件。这样后续每次另存为 DWG 时SolidWorks 会自动加载这份映射文件不用反复手动选择。5.3 导出后验证导出完成后用 AutoCAD 打开 DWG重点检查以下几项中文注释是否正常显示图层名是否正常、是否按映射规则创建中心线、虚线、点画线是否保持对应线型尺寸标注文字是否完整标题栏文字是否缺失或错位。如果仍有问题回到映射文件中继续微调通常两三次迭代后就能稳定。6. 常见问题与排查思路映射文件配置并不是一次就能成功的尤其是不同版本的 SolidWorks、不同字体环境、不同 AutoCAD 版本组合可能出现各种状况。下面整理了一些高频问题。问题现象常见原因解决思路中文注释变成问号或方块映射文件字体缺失或 AutoCAD 缺少对应字体在映射文件中添加中文字体映射建议统一映射到gbcbig.shx或simsun.ttf图层名显示为乱码SolidWorks 图层名为中文且映射文件未配置对应的图层映射将映射文件中增加该图层的显式映射规则尽量映射为英文字段图层名中心线、虚线全部变成实线线型映射缺失或线型名称不匹配在$LINETYPES段中补充线型映射并在 AutoCAD 中确认线型已加载尺寸文字偏移或变成???尺寸标注使用的字体与映射目标字体度量不同统一尺寸文字字体映射到相同 TTF 字体避免使用 SHX 大字体时度量差异特殊符号直径、角度显示异常字体不支持Ø、°、±等特殊符号将相关文字映射到simsun.ttf或simfang.ttf这类 TTF 字体对特殊符号支持更好导出后标注关联性丢失SolidWorks 尺寸导出为普通文字而非 CAD 标注对象在导出选项中取消“导出注释为文字”类选项或在映射文件中配置尺寸对象输出规则如果遇到上述问题仍然无法解决可以按下面步骤排查用 AutoCAD 打开 DWG执行FONTALT命令把替代字体设置为simfang.ttf执行STYLE命令检查文字样式的“大字体”选项是否启用如果图层乱码先检查 AutoCAD 的图层列表确认是图层名本身乱码还是显示乱码在 SolidWorks 中导出一张最简单的工程图只包含一行中文注释用最小化方式定位问题出在字体、图层还是线型每修改一次映射文件都重新导出并验证一次不要一次性改多处。7. 最佳实践与工程建议映射文件配置好只是第一步要让整个团队的 SolidWorks 转 DWG 稳定不乱码还需要在规范和管理层面做一些工作。7.1 统一工程图模板强烈建议在 SolidWorks 工程图模板中统一字体和图层命名规则。模板里的字体、图层、线型越规范导出时越不容易出错。比如图层名统一英文DIM、CENTER、HIDDEN、TITLE注释字体统一为“仿宋”尺寸字体统一为“仿宋”线型统一使用标准线型库中的名称。7.2 维护共享映射文件映射文件不要放在个人电脑的临时目录建议放在团队共享目录或代码仓库中统一管理。新入职的同事只需要拿到这一份映射文件放到自己电脑上并在 SolidWorks 中激活即可省去重复踩坑的时间。7.3 建立导出验证清单养成每次导出前检查的习惯可以大幅度减少外发图纸出错。下面是一个简单的验证清单[ ] 工程图中没有使用特殊字体、艺术字体[ ] 图层名全部是英文或已在映射文件中配置[ ] 映射文件已选择不是默认的空白映射[ ] AutoCAD 版本选择与下游一致或向下兼容[ ] 导出后用 AutoCAD 打开中文、图层、线型都正常。7.4 关注版本兼容性SolidWorks 不同版本自带的默认映射文件格式可能略有不同升级 SolidWorks 后建议重新检查一遍映射文件是否仍生效。如果团队中有人使用旧版本映射文件激活到新版本 SolidWorks遇到导出异常时优先怀疑映射文件字段兼容性。7.5 特殊符号和标题栏处理如果工程图里有大量直径符号Ø、角度符号°、公差符号±建议把这些文字统一使用 TTF 字体宋体、仿宋因为 TTF 字体对 Unicode 符号支持较好。SHX 大字体虽然能解决中文显示但特殊符号支持不一定完整。标题栏部分也可以单独测试先在 SolidWorks 中导出一张只包含标题栏的工程图确认标题栏文字和边框在 AutoCAD 中正常再导出完整图纸。8. 总结SolidWorks 输出 DWG 之后乱码本质上不是文件坏了而是 SolidWorks 到 AutoCAD 之间缺少一套完善的“翻译规则”。通过配置映射文件把字体、图层、线型逐项映射到 AutoCAD 可识别的对象就能从根本上解决中文乱码、图层乱码、线型丢失等问题。这篇文章的重点实操内容可以简单归纳为三步找到 SolidWorks 安装目录下的映射文件备份后编辑在映射文件中配置字体映射、图层映射、线型映射在 SolidWorks 导出 DWG 时激活这份映射文件并根据 AutoCAD 环境微调。配置完成后建议把映射文件纳入团队共享管理后续所有导出都使用同一套规则。这样不仅自己省事下游拿到图纸后也能直接用于加工、设计与归档。