资源预览内容
第1页 / 共59页
第2页 / 共59页
第3页 / 共59页
第4页 / 共59页
第5页 / 共59页
第6页 / 共59页
第7页 / 共59页
第8页 / 共59页
第9页 / 共59页
第10页 / 共59页
亲,该文档总共59页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
DXFDXF 文档详解文档详解 DXF 的基本惯例DXF 格式是特定版本 AutoCAD 图形文件中所包含的全部信息的标记数据的一种表示方法。 标记数据的意思是指在每个数据元素前都带一个称为组码的整数。组码的值表明了其后数据元素的 类型,也指出了数据元素对于给定对象(或记录)类型的含意。实际上,图形文件中所有用户指定的信 息都能够以 DXF 文件格式表示。在 AutoLISP 和 ARX 应用程序中使用的 DXF 格式与上述格式基本相同, 只是在某些数据组上存在着细微的差别。 如不作特殊说明,本节中所出现的组码都可以应用于 DXF 文件、AutoLISP 应用程序和 ARX 应用程 序。当组码说明对于应用程序和 DXF 文件有所不同时(或只适用于其中之一) ,在组码的说明前有如下 提示符: APP 只用于应用程序的说明 DXF 只用于 DXF 文件的说明 如果组码说明对 DXF 文件和应用程序都适用,那么没有提示符;否则将显示适当的提示符。组码范围 组码将与组码关联的值(组值)定义为整型、浮点数型或字符串型。具体说明如下表: 组码范围组码范围组值类型 0-9字符串(最多 255 个字符,对于 UNICODE 字符串则更少) 10-59双精度三维点 60-7916 位整数值 90-9932 位整数值 100字符串(最多 255 个字符,对于 UNICODE 字符串则更少) 102字符串(最多 255 个字符,对于 UNICODE 字符串则更少) 105表示十六进制句柄值的字符串 140-147双精度标量浮点值 170-17516 位整数值 280-2898 位整数值 300-309任意文字字符串 310-319表示二进制数据组的十六进制值的字符串 320-329表示十六进制句柄值的字符串 330-369表示十六进制对象标识符的字符串 999注释(字符串) 1000-1009字符串(最多 255 个字符;对于 UNICODE 字符串则更少) 1010-1059浮点值 1060-107016 位整数值 107132 位整数值按数字次序排列的组码 下表给出了组码(或组码范围)及其说明。在表中, “固定”表示该组码的用途固定不变,非固定组码 的用途将随上下文变化。 按数字次序排列的图元组码 组码说明 -5APP:persistentreactor 链表 -4APP:条件运算符(仅用于 ssget) -3APP:扩展数据(XDATA)标记(固定) -2APP:图元名引用(固定) -1APP:图元名。每次打开图形时它都改变,且不被保存。 (固定)0表示图元类型的文字字符串(固定) 1图元的主要文字值 2名称(属性标记、块名称等) 3-4 其他的文字值或名称值5图元句柄。最多 16 位十六进制数字的文字字符串(固定) 6线型名(固定) 7文字样式名(固定) 8图层名(固定) 9DXF:变量名标识符(仅用于 DXF 文件的 HEADER 区域) 。 10主要点。此点为直线或文字图元的起点,圆的圆心等等。 DXF:主要点的 X 值(其后为 Y 和 Z 值的组码 20 和 30) APP:三维点(三个实数构成的表) 11-18其他点。 DXF:其他点的 X 值(其后为 Y 和 Z 值的组码 21-28 和 31-38) APP:三维点(三个实数构成的表) 20,30DXF:主要点的 Y 和 Z 值 21-28, 31-37DXF:其他点的 Y 和 Z 值 38DXF:如果非零,则为图元的标高。只在 R11 以前的 AutoCAD 输出的 DXF 文件中存在 39如果非零,则为图元的厚度(固定) 40-48浮点值(文字高度、比例因子等) 48线型比例。浮点标量值。缺省值适用于所有图元类型。 49可重复的浮点值。一个图元中的可变长度表(例如 LTYPE 表中的虚线长度)中可出现多个 组码 49。组码 7x 总是在第一个组码 49 前出现,用于指定表的长度。 50-58角度(在 DXF 文件中单位为度,在 AutoLISP 和 ARX 应用程序中单位为弧度) 。 60表示图元可见性的整数值。不赋值或值为 0 时表示可见;为 1 时表示不可见。 62颜色代码(固定) 66“图元跟随”标志(固定) 67空间,即模型空间或图纸空间(固定) 68APP:表示视口打开但不可见、未激活或者关闭。 69APP:视口标识数字。 70-78整数值,如重复部分的计数器、标志位或模式等。 90-9932 位整数值 100子类数据标记(把继承下来的类名当作字符串) 。由具体类继承下来的所有对象和图元类都 必须有此项。此标记用于分离某个对象中由不同的类定义的数据。它也满足从 ARX 继承下来的每个独立 的具体类的 DXF 命名需要(请参见子类标记!AL(XREF_11832_al_u05_c,1)) 。 102控制字符串,其后为“”或“。除了字符串必须以“开始外,它与外部数据组 码 1002 类似。其后可跟任意字符串,且此字符串的解释取决于应用程序。另一个可用的控制字符串为“ “,它标识组的结束。如上所述,除了在执行图形核查操作期间外 AutoCAD 一般不解释这些字符串;它 们仅用于应用程序。 105DIMVAR 符号表条目对象句柄。 210拉伸方向(固定) 。 DXF:拉伸方向的 X 值 APP:三维拉伸方向矢量 220,230 DXF:拉伸方向的 Y 和 Z 值 280-289 8 位整数值 300-309 任意的文字字符串 310-319 任意二进制数据组,与组码 1004 具有相同表示法和限制:最长为 254 个字符的十六进制字 符串表示最长为 127 个字节的数据数据组。 320-329 任意对象句柄。句柄值保留原样,在执行 INSERT 和 XREF 操作时它们不被转化。 330-339 软键指针句柄。任意指向同一 DXF 文件或图形中的其他对象的软键指针,在执行 INSERT 和 XREF 操作时被转化。 340-349 硬键指针句柄。任意指向同一 DXF 文件或图形中的其他对象的硬键指针,在执行 INSERT 和 XREF 操作时被转化。 350-359 软键从属句柄。链接到同一 DXF 文件或图形中其他对象的任意软键从属链接,在执行 INSERT 和 XREF 操作时被转化。 360-369 硬键从属句柄。链接到同一 DXF 文件或图形中其他对象的任意硬键从属链接,在执行INSERT 和 XREF 操作时被转化。 999DXF:999 组码表示其后为注释字符串行。DXFOUT 不在 DXF 输出文件中包括此组; DXFIN 能识别词组码,但忽略其后的注释。通过 999 组码,用户可以在所编辑的 DXF 文件中包括注释。 1000扩展数据中的 ASCII 字符串(最长 255 个字节) 。 1001扩展数据的已注册应用程序名(ASCII 字符串,最长 31 个字节) 。 1002扩展数据控制字符串(“或“) 。 1003扩展数据图层名。 1004扩展数据中的字节数据组(最长 127 字节) 。 1005扩展数据中的图元句柄。文字字符串,最多 16 位十六进制数字。 1010扩展数据中的点 DXF:X 值(其后跟组码 1020 和 1030) APP:三维点 1020,1030DXF:点的 Y 和 Z 值 1011扩展数据中的三维世界空间位置:X 值(其后跟组码 1021 和 1031):三维点 1021,1031DXF:世界空间位置的 Y 和 Z 值。 1012扩展数据中的三维世界空间位移:X 值(其后跟组码 1022 和 1032):三维矢量 1022,1032DXF:世界空间位移的 Y 和 Z 值 1013扩展数据中的三维世界空间方向 DXF:X 值(其后跟组码 1022 和 1032) APP:三维矢量 1023,1033DXF:世界空间方向的 Y 和 Z 值 1040扩展数据浮点值。 1041扩展数据距离值。 1042扩展数据比例因子。 1070扩展数据 16 位符号整数。 1071扩展数据 32 位符号整数。对象和图元的组码 在 DXF 格式中,对象的定义与图元的定义不同:图元有图形表示,而对象则没有图形表示。例如, 词典是对象而不是图元。对象通常作为非图形对象来使用,图元则作为图形对象来使用。 在 DXF 文件中,图元可以出现在 BLOCK 和 ENTITIESE 区域中。两个区域中图元的用法一样。某些 定义图元的组码始终会出现,而其他的组码仅在它们的值与缺省值不同时才出现。 读取 DXF 文件的程序不应该假定说明图元的组码是按照给定次序出现的。与说明图元的组码相连的 0 组码表示此图元已结束。0 组码将开始新图元或表示此区域已结束。 注意如果用户以表驱动方式(即忽略未定义的组码,且对图元中的组码次序不做任何假定)编写 DXF 处理程序,那么该程序将比较容易针对 AutoCAD 的后续版本做调整。因为 AutoCAD 的性能将不断 得到增强,所以图元中将添加一些新的组码以提供更多的功能。读取读取 DXFDXF 格式文件格式文件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.ENDOFFILE(文件结束)下面是对 DXF 的基本结构举一实例进行说明: 00 后接 SECTION SECTION 表明这是一个段的开始 22 后接的是段名HEADER 说明该段是 HEADER 段(标题段) 9 $ACADVER 文件是由 AUTOCAD 产生的 1 AC1008 99 后接$UCSORG $UCSORG 用户坐标系原点在世界坐标系中的坐标 1010 对应 X0.0X 的值 2020 对应 Y0.0Y 的值 3030 对应 Z0.0Z 的值9$UCSXDIR 这是一段不太相关的部分,略去 10 1.0 . 99 后接$EXTMIN$EXTMIN 说明三维实体模型在世界坐标系中的最小值 1010 对应 X-163.925293X 的值 2020 对应 Y-18.5415860.0Y 的值 3030 对应 Z78.350945Z 的值 99 后接$EXTMAN $EXTMAX 说明三维实体模型在世界坐标系中的最大值1010 对应 X202.492279X 的值 2020 对应 Y112.634300Y 的值 3030 对应 Z169.945602Z 的值 00 后接 ENDSECENDSEC 说明这一段结束了 00 后接 SECTION SECTION 表明这是一个段的开始 22 后接的是段名TABLES 说明该段是 TABLES 段(表段) 该段对我们不太相关,此处略去不进行说明 00 后接 ENDSECENDSEC 说明这一段结束了 00 后接 SECTION SECTION 表明这是一个
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号