DWG的时间奇点
AutoCAD(Auto Computer Aided Design)是美国Autodesk公司首次于1982年生产的自动计算机辅助设计软件,用于二维绘图、详细绘 制、设计文档和基本三维设计。现已经成为国际上广为流行的绘图工具。CAD技术不是AutoDesk公司的专利, 同样CAD在计算机上的应用, 也不是AutoDesk公司开的先河. 在AutoCAD出现之前, 已经有了一家叫做VersaCAD的公司制作的同名软件出现在市场上. 由于VersaCAD很强 大也很贵, 所以AutoDesk在一开始选择了一条聪明的道路, 免费及开放, 这使得AutoCAD得以迅速传播和升级. 借助于AutoCAD的东风, DWG 文件格式成为事实上的二维设计绘图的标准格式, 这是其一. 前期的开放也为后来发生的事情埋下了引线, 这是其二.
但是历史在小局部偶尔也会开一下倒车. 在AutoCAD发展的过程中, 它逐步的转向了收费, 并且DWG文件成为了一个封闭的标准! 直到今 天, 互联网上依然无法得到一份完整的, 关于某个DWG文件格式版本的技术文档. AutoDesk利用AutoCAD的影响力给自己构建了一个帝国, 在赚取大把美钞的同时, 也关闭了DWG格式标准与其他软件系统互通的大门. 我们现在仅仅直到一点点朦胧的东西, 比如: DWG格式的组织 形式基于二进制编码; DWG格式具有自关联的压缩技术; DWG文件能够自验证等. 但也是仅仅如此而已, 没有任何细节可言.
同时, 基于AutoCAD这个庞大平台的二次开发也从未停止过. AutoLisp和ADS成为早期的主力. 后来AutoCAD发布了基于C++语言的二次开 发包-ObjectARX. 至此, 基于AutoCAD的二次开发行为第一次被明确定义了(至少笔者是这么认为). 这一开发行为的流程图大概看起来如左 : ObjectARX作为类库提供相关功能, 开发人员可以在任何编辑器中编辑二次开发代码; 通过C++编译器编译和链接; 最终生成动态链接库 载入到AutoCAD中实现功能扩展. 即使后来出现了ObjectARX面向其他语言比如C#语言的版本, 这一基本方式还是在本质上得到了保留. 互 操作成为部分可能, 虽然不是直接实现. 工程人员在AutoCAD软件内打开对应的DWG文件后, 可以通过二次开发的功能扩展, 使DWG格式内容 转化为可被其他系统认可的数据.
"AutoCAD在地上划了一个圈, 逼迫所有人把东西放到这个圈子里."
反抗者的步伐
中国有句话, 叫"哪里有压迫, 哪里就有反抗." 在AutoCAD的压迫下, 第一个揭竿而起的不是某个谁, 而是一个组织. 这个组织的名字 叫做"Open Design Alliance", 简称ODA. ODA是在一个月黑风高的晚上带着武器来的, 这个武器就是著名的OpenDWG文档和DWGDirect开放 类库. 前文说到AutoDesk初期的开放策略给自己埋下了隐患,这个隐患现在被ODA利用了. ODA在最初的DWG版本基础上, 通过类似于破解的 方式, 获取了DWG格式的大部分技术细节. ODA收取少量的注册费用以维持运营, 并且以开放的姿态发布了DWGDirect - 面向C++语言, DWGDirectX - 面向ActiveX控件, DWGDirect.NET - 面向.NET. ODA承诺, 面对AutoCAD的版本升级, 将以最快的速度更新这些类库. 实际 上它做到了: 现在, DWGDirect类库已经声称支持DWG/DXF/BDXF等格式最新的2010版本的读写. ODA的行为从根本上动摇了AutoDesk的根基. 2006 年11月22日 Autodesk 对 Open Design Alliance 提出了诉讼. 下面这一段是AutoDesk公司对于诉讼的官方声明:
"The ODA software libraries contain technology that falsely identifies customer data files their software creates as Autodesk-created files. We have the right to control the use of our trademark and we depend on that right in informing customers of the source of the files they are introducing in their CAD environments. The ODA interfered with our ability to do that. The ODA failed to respond to our reasonable request to stop violating our rights. As a result Autodesk is suing the ODA in order to defend its ability, through TrustedDWG, to assure our customers of the source of customer data files and make sure the origin of the files is not falsely attributed. The ODA’s latest software libraries mimic TrustedDWG and defeat the very purpose of the program. We are relying on trademark laws to protect our ability to inform customers of the source of customer data files."
诉讼还在继续, 走向也不得而知, 我们能确定的是, AutoDesk和ODA到现在都活得很好. 不过作为系统开发人员, 我们似乎更应该关注 OpenDWG文档和DWGDirect潜在的风险:
OpenDWG文档是以一种近似于破解的方式获取了DWG格式的细节. 这将会给使用DWGDirect的开发人员带来法律上的风险.
OpenDWG文档不是一个对DWG所有版本的完整描述. 它仅仅支持到2004, 并且部分支持2007.
甚至于在某一特定版本内部, OpenDWG文档至今还未破解部分字节的含义.