DWG 是 AutoCAD 的原生文件格式——二进制、私有,且 Autodesk 并未公开其规范。DXF 则是 Autodesk 公开发布的交换格式,好让别的程序也能读到同样的图纸。几何内容相同,装它的容器不同;而这两者之中,只有一个是为了把文件交给你自己软件之外的人而设计的。
最后这一点就是全部的实际差别,也正是它决定了你该开口要哪一种。
一句话对照
| DXF | DWG | |
|---|---|---|
| 全称 | Drawing Exchange Format | Drawing |
| 公开规范 | 有,由 Autodesk 发布 | 没有 |
| 编码 | 文本(也有二进制变体) | 二进制 |
| 用途 | 在程序之间搬运图纸 | AutoCAD 自己的工作格式 |
| 文件体积 | 较大 | 较小 |
| 其他软件的读取 | 非常广泛 | 参差不齐,靠逆向工程的库 |
| 承载 AutoCAD 的全部能力 | 否——一个有文档的子集 | 是 |
为什么会有两种格式
Autodesk 1982 年推出 AutoCAD,工作格式就是 DWG。它是为一个程序自身的便利而造的:紧凑、二进制,AutoCAD 需要时随时可以改。
这也让它并不适合发给别人。于是 Autodesk 另外公开了 DXF——同一张图纸,写成有文档、可读的形式,任何开发者都能照着实现。用文本编辑器打开一个 .dxf,你会看到清清楚楚的 ASCII 组码和段名。
两者是同步版本化的。每个 AutoCAD 版本都会带来一次 DWG 修订和与之对应的 DXF 修订;你有时在文件头里看到的 AC1032 标记,指的就是 AutoCAD 2018 这一代。
所以 DXF 并不是更旧或更低一等的格式。它就是同一张图纸,只是被刻意做成了可读的样子。
实际使用中真正的差别
**开放性。**Autodesk 公开 DXF 的文档,不公开 DWG 的。能读 DWG 的程序不少,但它们依赖的是通过逆向工程还原格式而写成的库。这样做效果不错,也完全正当,但意味着 DWG 支持总是滞后于新版本,且各家软件参差不齐;而 DXF 的支持任何人都能照着规范直接实现。
**体积。**同一张图纸,二进制 DWG 通常比 ASCII 的 DXF 小得多。做大项目时这有意义;就一个零件则无所谓。
**保真度。**DWG 装得下 AutoCAD 能表达的一切,包括别的程序压根没有对应概念的对象类型。DXF 覆盖的是一个有文档的子集。对普通的二维制图而言——直线、圆弧、圆、多段线、文字、标注、图层——这个子集已经够用。若模型大量依赖 AutoCAD 的专有对象,导出成 DXF 就会丢掉一部分。
**支持面。**几乎所有 CAD、CAM 和矢量工具都能读 DXF。能读 DWG 的要少一些,而且往往支持得不够完整。
你到底需要哪一个?
**别人发来一个文件,你打不开。**先看真实的后缀名。大多数人把两者都叫“DWG”,而有一半的情况,你下载文件夹里那个其实是 .dxf,本来就能打开。参见不用 AutoCAD 打开 DXF。
**你要发给激光切割、CNC 车间或加工厂。**基本上一律用 DXF。机器软件和切割服务都是围绕它建立的,二维切割几何也舒舒服服地落在有文档的子集之内。参见为激光切割准备 DXF。
**你要发给用 AutoCAD 的建筑师或工程师。**问一下。很多人偏好 DWG,因为他们的流程就是这么预期的;如果不是,他们打开 DXF 也毫无问题。
**你要长期存档。**用 DXF。一个有文档的文本格式,二十年后只要有人手里有规范和一个文本编辑器,就仍然读得出来。交换格式存在的意义正在于此。
**别人只是想看一眼。**两个都不用——发 PDF。参见把 DXF 转成 PDF。
拿到 DWG 时怎么换到 DXF
可靠的办法是开口要。发文件给你的人在自己的 CAD 程序里打开,然后另存为或导出 → DXF。前后大约十秒,任何桌面 CAD 软件都能做到,而且文件是从当初创建它的软件里出来的,而不是第三方对它的猜测。
如果没法开口问,转换器是有的。有两点要掂量:转换正是保真度流失的地方,而且你是把别人的图纸上传到一个你无法掌控的服务上。做个人项目没问题;接客户的活,还是问一句。
真要索取时,最好指明版本。DXF R12 最稳妥——它非常老、支持无处不在,而且只要图纸是朴素的二维几何,就不会丢掉任何要紧的东西。尤其是老一些的机器软件,跟它相处融洽得多。
两个常见的误解
**“DXF 会丢数据。”**只是在“它不携带 AutoCAD 专有对象类型”这个意义上成立。直线、圆弧、圆、多段线、文字、标注和图层都会完整保留。对二维制图工作来说,损失通常为零。
**“DXF 是老格式。”**它从 1982 年起就与 DWG 并行版本化,至今仍是。这个误会源于 R12 被当作兼容目标用得太广,以致于让人以为 DXF 停在了那里。
这个工具处在什么位置
KulmanLab 只读 DXF,不读 DWG——这一点值得说明缘由,而不是当成疏漏:DXF 有文档,实现只要照着规范就能做对。DWG 则意味着要在浏览器里依赖一个逆向工程得来的库,去应对一个按 Autodesk 自己的节奏变动的格式。
如果你手上是 .dwg,它打不开。如果是 .dxf,你可以在浏览器标签页里打开,什么都不用装:app.kulmanlab.com。
它写回去的是整张图——直线、圆、圆弧、椭圆、多段线、样条曲线、带格式的文字、标注、引线和填充,连同图层和线型。在这里打开再导出的文件,会带着标注一起出去,而不是被剥回纯几何。
相关:Import 说明 KulmanLab 究竟能从 DXF 中读到什么,Export Manager 说明各导出格式分别包含什么。