dxf详解B

对象和图元的组码
在 DXF 格式中,对象的定义与图元的定义不同:图元有图形表示,而对象则没有图形表示。例如,词典是对象而不是图元。对象通常作为非图形对象来使用,图元则作为图形对象来使用。
在 DXF 文件中,图元可以出现在 BLOCK 和 ENTITIESE 区域中。两个区域中图元的用法一样。
某些定义图元的组码始终会出现,而其他的组码仅在它们的值与缺省值不同时才出现。
读取 DXF 文件的程序不应该假定说明图元的组码是按照给定次序出现的。与说明图元的组码相连的 0 组码表示此图元已结束。0 组码将开始新图元或表示此区域已结束。
注意 如果用户以表驱动方式(即忽略未定义的组码,且对图元中的组码次序不做任何假定)编写 DXF 处理程序,那么该程序将比较容易针对 AutoCAD
的后续版本做调整。因为 AutoCAD 的性能将不断得到增强,所以图元中将添加一些新的组码以提供更多的功能。
OpenGL是美国SGI公司最新推出的一套开放式的三维图形软件接口,适用于广泛的计算机环境,从个人计算机到工作站,OpenGL都能实现高性能的三维图形功能。OpenGL本身不仅提供对简单图元的操作和控制,还提供了许多函数用于复杂物体的建模。但是,我们通常喜欢使用AutoCAD和3DS及 3Dmax等工具来建立模型,并且我们已经有了很多这样的模型,那么我们如何才能资源共享,避免重复劳动呢?利用CAD图形标准数据交换格式—DXF格式,我们就能很容易地实现资源共享,而不需要重复建模。

       DXF文件的结构很清楚,具体如下:
       1. 标题段(HEADER )
       有关图形的一般信息都可以DXF 文件的这一节找到,每一个参数具有一个变量名和一个相关值。
       2. 表段
       这一段包含的指定项的定义,它包括:
       a、
       线形表(LTYPE)
       b、
       层表(LYER)
       c、
       字体表(STYLE)
       d、
       视图表(VIEW)
       e、
       用户坐标系统表(UCS)
       f、
       视窗配置表(VPORT)
       g、
       标注字体表(DIMSTYLE)
       h、
       申请符号表(APPID)
       3. 块段(BLOCKS)
       这一段含有块定义实体,这些实体描述了图形种组成每个块的实体。
       4. 实体段(ENTITIES )
       这一段含有实体,包括任何块的调用。
       5. END OF FILE(文件结束)

       下面是对DXF的基本结构举一实例进行说明:
       0 0 后接SECTION
       SECTION 表明这是一个段的开始
       2 2 后接的是段名
       HEADER 说明该段是HEADER 段(标题段)
       9
       $ACADVER 文件是由AUTOCAD 产生的
       1
       AC1008
       9 9 后接 $UCSORG
       $UCSORG 用户坐标系原点在世界坐标系中的坐标
       10 10 对应 X
       0.0 X 的值
       20 20 对应 Y
       0.0 Y 的值
       30 30 对应 Z
       0.0 Z 的值
       9
       $UCSXDIR 这是一段不太相关的部分,略去
       10
       1.0
       ... ....
       9 9 后接 $EXTMIN
       $EXTMIN 说明三维实体模型在世界坐标系中的最小值
       10 10 对应 X
       -163.925293 X 的值
       20 20 对应 Y
       -18.5415860.0 Y 的值
       30 30 对应 Z
       78.350945 Z 的值
       9 9 后接 $EXTMAN
       $EXTMAX 说明三维实体模型在世界坐标系中的最大值
       10 10 对应 X
       202.492279 X 的值
       20 20 对应 Y
       112.634300 Y 的值
       30 30 对应 Z
       169.945602 Z 的值
       0 0 后接 ENDSEC
       ENDSEC 说明这一段结束了
       0 0 后接SECTION
       SECTION 表明这是一个段的开始
       2 2 后接的是段名
       TABLES 说明该段是TABLES 段(表段)
       ... ... ... ... 该段对我们不太相关,此处略去不进行说明
       0 0 后接 ENDSEC
       ENDSEC 说明这一段结束了
       0 0 后接SECTION
       SECTION 表明这是一个段的开始
       2 2 后接的是段名
       ENTITIES 说明该段是ENTITIES 段(实体段)这是我
       0 们要详细说明的段,该段包含了所有实体的
       POLYLINE 点的坐标和组成面的点序。0后接POLYLINE
       8 表明以下数据是对于一个新的实体;
       OBJECT01 8后接的字符串是这个实体的名称
       66
       1
       70 从66 1 到70 64
       64 说明该实体是由许多小平面组成的
       71
       38 71 38说明该实体共有38 个点
       72
       72 72 72 说明该实体由72 个三角形构成
       0 0 VERTEX
       VERTEX 表明后面紧跟着的是实体的数据
       8
       OBJECT01
       10 对应X 坐标
       -163.925293 X 的值
       20 对应Y 坐标
       -17.772665 Y 的值
       30 对应Z 坐标
       128.929947 Z 的值
       70 70 192
       192 表明上面的数据信息是点的坐标
       0 每一个从0 VERTEX 到70 192 之间
       VERTEX 的一小段是点的坐标
       ... ... ...
       70
       192
       0
       VERTEX
       8
       OBJECT01
       10
       0
       20
       0
       30
       0 当70 后跟128 时,表明该实体的每个点的坐标数据已经记录
       70 完了,下面紧跟着的是记录这些点是以什么样的方式组合成各
       128 个三角形。
       71 71、72、73 后面跟着的值表明某一个三角形是第二个、第
       2 一个、第四个点构成的,点的顺序是按照记入DXF 文件的顺
       72 序。当某一值为负数时,则表明该点到下一点的线不要画出,
       1 如果要画三维实体的线型图,就必须使用这一特性,否则线条
       73 将会出现紊乱。
       -4
       0
       VERTEX
       ... ... ... ...
       0 0 后接SEQEND 表明该实体的数据已经全部记录完了
       SEQEND
       8
       OBJECT01
       0
       POLYLINE 0 后接POLYLINE 表明以下又是一个新的实体
       ... ... ... ...
       0
       ENDSEC 0 后接ENDSEC 表明这是该段的结尾
       0
       EOF 0后接EOF 表明这个DXF 文件结束了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值