戏说CAD开发 DWG文件格式浅析

原创 2005年03月02日 00:54:00

     可恶的AutoDESK用自己的操作方式和格式一同天下,据统计世界上有70%的图纸是dwg格式的。所以大家都不得不去琢磨这个dwg,如果那个公司说要推出自己的格式抗衡dwg,你就全当他在说梦话吧。毕竟林子很大吗。。:)

    OpenDesign一直在破解dwg格式,做的是最成功的一个了。应该说是唯一的一个。这个组织三番两次的邀请AutoDESK加入他们,结果人家理都不理。

     当然,我们用OpenDWG来解析dwg是最好不过了。OpenDWG早期的版本有ODT和ODV,新的好像是DWG Drict,好多人直接用ODV就可以显示出DWG了。 但是这种需求毕竟不多。 我要查询属性啊? 我要测量距离噢? 我要简单的编辑啊,,我要毕竟复杂的编辑,,别说了。 ODV当然不中..。.所以我要表一下ODT,ODT全名OpenDWG Tool Kit.。它提供的函数可以解析2002以前版本的dwg。

         有的公司自以为买了OPENDWG就万事大吉,其实不然。 ODT可以帮你解析DWG文件,但是解出来的东东放在什么地方啊? 你有MLINE,有POLYLINE,有MTEXT,有HATCH,有XDATA,有DIMSTYLE。。。吗?
德国有个POWERCAD的最新版还没有支持到SPLINE呢?

       DWG中包含了模型空间和图纸空间,不要说你不知道这两个空间。
      然后,记录了几个样式链表,字体样式链表,文字样式链表,尺寸样式链表,VIEW链表,VIEWPORT链表,冻结链表,块链表,剖面线链表,线型链表,MLINE样式链表等;
      下来是一些要保存到图纸中的系统变量,烦如牛毛,
       下来是就是真正模型空间中的实体了。。。

       字体和文字样式不同,以后我们可以专门的讨论这个。
       所谓字体是.shp.shx字体。每个文字样式都可能用到shx字体,也有可能是ttf字体。Text创建和画的时候要检查自己的文字样式,文字样式再找相关的shx字体。

       尺寸样式中有六七十个选项来控制,这些选项在实际对尺寸的影响中有不仅相同,因为尺寸保存了一个块,为了画的时候快一点。恶心吧? 所以一定要一个重建机制来伺候这些家伙。

     view链表是用来记录显示位置的。

     VIEWPORT链表主要是图纸空间中用来调整打印效果的。

     冻结链表呢? 在dwg中,有一些图层是隐藏的,并且这些隐藏的图层很少用到,结果就被人家冻结了。为了提高速度哦,不用去读它。

        块链表里面包含了块的信息,每个块都有自己的entity链表。 有些内部块要注意。比如“*d”开头的是尺寸块。还有模型空间和图纸空间也用块机制来管理。 我发现AutoCAD很喜欢用块来简化一些操作,这一点应该借鉴。

   剖面线和线型链表记录了他们各自的形状定义。 奇怪了吧? 剖面线型和线型的定义竟然保存在文件中。对,这样的好处是我这个dwg文件可以在其它任何acad上打开,我有自己的线型定义,不要你系统的线型。如果对于用户自己定义的线型和剖面线更是省事多多了。。另外,线型和剖面线的形状定义也不会占太多的空间,几行text文本而已啦。

      ....

       如果你有兴趣,又有时间,建议你看看Intellicad的源码。 他们用来ODT,同时他们也仿照dwg建立模型。       

 

戏说CAD开发 DWG文件格式浅析

可恶的AutoDESK用自己的操作方式和格式一同天下,据统计世界上有70%的图纸是dwg格式的。所以大家都不得不去琢磨这个dwg,如果那个公司说要推出自己的格式抗衡dwg,你就全当他在说梦话吧。毕竟林...

Teigha .dwg文件开发——数据库结构

数据库是各种图形和非图形对象的存储库。从程序上讲,数据库是一个拥有很多对象的容器,同时又有很多容器组成。每个容器包含和操作特定的对象。数据库提供两种机制来存储与操作容器里面的对象。     ...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

使用CadLib实现CAD(dxf、dwg格式)文件的读取和显示

使用CadLib实现CAD(dxf、dwg格式)文件的读取和显示
  • zjzytnn
  • zjzytnn
  • 2016年12月17日 16:38
  • 2168

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

OpenGL中gl,glu,glut的区别

 OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库, gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台工具库,gl中包含了最基本的3D函数,而glu似乎...
  • ldkcumt
  • ldkcumt
  • 2014年11月17日 17:57
  • 511

Teigha .dwg文件开发——数据库结构

数据库是各种图形和非图形对象的存储库。从程序上讲,数据库是一个拥有很多对象的容器,同时又有很多容器组成。每个容器包含和操作特定的对象。数据库提供两种机制来存储与操作容器里面的对象。     ...

autocad dwg 文件格式

  • 2008年10月18日 00:23
  • 969KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:戏说CAD开发 DWG文件格式浅析
举报原因:
原因补充:

(最多只允许输入30个字)