Autodesk CAD帮助文档总结 DXF 高效使用

由于Autodesk CAD帮助文档里面资料比较多,在实际简单使用中,没必要查看所有资料,因而整理高效有用的资料如下

 

 

关于 DXF 文件的基本结构 (DXF)

DXF 文件本质上由代码及关联值对组成。代码(通常称为组码)表明其后的值的类型。使用这些组码和值对,可以将 DXF 文件组织到由记录组成的区域中,这些记录由组码和数据项目组成。在 DXF 文件中,每个组码和值都各占一行。

每段都以一个后跟字符串 SECTION 的组码 0 开始,其后是组码 2 和表示该段名称的字符串(例如,HEADER)。每段都由定义其元素的组码和值组成。每段都以一个后跟字符串 ENDSEC 的组码 0 结束。

从小图形中生成 DXF 文件,打印出来并在阅读本文时参考,可能会有助于用户理解本文的内容。

DXF 文件完整的结构如下:

  • HEADER 段。包含图形的基本信息。它由 AutoCAD 数据库版本号和一些系统变量组成。每个参数都包含一个变量名称及其关联的值。
  • CLASSES 段。包含应用程序定义的类的信息,这些类的实例出现在数据库的 BLOCKS、ENTITIES 和 OBJECTS 段中。类定义在类的层次结构中是固定不变的。
  • TABLES 段。包含以下符号表的定义:

APPID(应用程序标识表)

BLOCK_RECORD(块参照表)

DIMSTYLE(标注样式表)

LAYER(图层表)

LTYPE(线型表)

STYLE(文字样式表)

UCS(用户坐标系表)

VIEW(视图表)

VPORT(视口配置表)

  • BLOCKS 段。包含构成图形中每个块参照的块定义和图形图元。
  • ENTITIES 段。包含图形中的图形对象(图元),其中包括块参照(插入图元)。
  • OBJECTS 段。包含图形中的非图形对象。除图元、符号表记录以及符号表以外的所有对象都存储在此段。OBJECTS 段中的条目样例是包含多线样式和组的词典。
  • THUMBNAILIMAGE 段。包含图形的预览图像数据。此段为可选。

如果使用 SAVE 或 SAVEAS 命令的“选择对象”选项,那么所得到的 DXF 文件的 ENTITIES 区域将只包含选择的图元。

相关参考

 

 

 

 

 

 

 

 

 

 

 

 

 

组码值类型参考 (DXF)

根据下面的组码范围表,组码将相关值的类型定义为整数、浮点数或字符串。

组码值类型

代码范围

组值类型

0-9

字符串(随着从 AutoCAD 2000 起引入了扩展符号名称,字数限制已由 255 个字符扩大到 2049 个单字节字符,不包括行末的换行符)

10-39

双精度三维点值

40-59

双精度浮点值

60-79

16 位整数值

90-99

32 位整数值

100

字符串(最多 255 个字符;对于 Unicode 字符串,字符数要少一些)

102

字符串(最多 255 个字符;对于 Unicode 字符串,字符数要少一些)

105

表示 16 进制 (hex) 句柄值的字符串

110-119

双精度浮点值

120-129

双精度浮点值

130-139

双精度浮点值

140-149

双精度标量浮点值

160-169

64 位整数值

170-179

16 位整数值

210-239

双精度浮点值

270-279

16 位整数值

280-289

16 位整数值

290-299

布尔标志值

300-309

任意字符串

310-319

表示二进制数据块的十六进制值的字符串

320-329

表示 16 进制句柄值的字符串

330-369

表示十六进制对象 ID 的字符串

370-379

16 位整数值

380-389

16 位整数值

390-399

表示 16 进制句柄值的字符串

400-409

16 位整数值

410-419

字符串

420-429

32 位整数值

430-439

字符串

440-449

32 位整数值

450-459

长整数

460-469

双精度浮点值

470-479

字符串

480-481

表示 16 进制句柄值的字符串

999

注释(字符串)

1000-1009

字符串(与 0-9 代码范围的限制相同)

1010-1059

双精度浮点值

1060-1070

16 位整数值

1071

32 位整数值

相关概念

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

按数字次序排列的 DXF 组码参考

下表列出了组码或组码范围以及组码值的解释。在此表中,“固定”表明组码始终具有相同的用途。如果组码不固定,则其用途取决于上下文。

按数字次序排列的组码

组码

说明

-5

APP:永久反应器链

-4

APP:条件运算符(与 ssget 一起使用)

-3

APP:扩展数据 (XDATA) 标记(固定)

-2

APP:图元名参照(固定)

-1

APP:图元名。每次打开图形时,图元名都会发生变化,从不保存(固定)

0

表示图元类型的字符串(固定)

1

图元的主文字值

2

名称(属性标记、块名等)

3-4

其他文字或名称值

5

图元句柄;最多 16 个十六进制数字的字符串(固定)

6

线型名(固定)

7

文字样式名(固定)

8

图层名(固定)

9

DXF:变量名称标识符(仅在 DXF 文件的 HEADER 段中使用)

10

主要点;直线或文字图元的起点、圆的圆心,等等

DXF:主要点的 X 值(后跟 Y 和 Z 值代码 20 和 30)

APP:三维点(三个实数的列表)

11-18

其他点

DXF:其他点的 X 值(后跟 Y 值代码 21-28 和 Z 值代码 31-38)

APP:三维点(三个实数的列表)

20, 30

DXF:主要点的 Y 值和 Z 值

21-28, 31-37

DXF:其他点的 Y 值和 Z 值

38

DXF:如果非零,则为图元的标高

39

如果非零,则为图元的厚度(固定)

40-48

双精度浮点值(文字高度、缩放比例等)

48

线型比例;双精度浮点标量值;默认值适用于所有图元类型

49

重复的双精度浮点值。一个图元的可变长度表(例如,LTYPE 表中的虚线长度)中可能会出现多个 49 组。7x 组始终出现在第一个 49 组之前,用以指定表的长度

50-58

角度(在 DXF 文件中以度为单位,在 AutoLISP 和 ObjectARX 应用程序中以弧度为单位)

60

图元可见性;整数值;未赋值或值为 0 时表示可见;值为 1 时表示不可见

62

颜色号(固定)

66

“后跟图元”标志(固定)

67

空间 — 模型空间或图纸空间(固定)

68

APP:指示视口是处于打开状态但在屏幕上完全不可见,还是未激活或处于关闭状态

69

APP:视口标识号

70-78

整数值,例如重复计数、标志位或模式

90-99

32 位整数值

100

子类数据标记(将派生类名作为字符串)从其他具体类派生的所有对象和图元类必须具有此标记。子类数据标记用于分离由同一对象的继承链中的不同类定义的数据。

对于从 ObjectARX 派生的每个不同的具体类的 DXF 名称来说,这是必须满足的额外要求(参见“子类标记”)

102

控制字符串,后跟“{<任意名称>”或“}”。与扩展数据 1002 组码类似,不同之处在于当字符串以“{”开始时,其后可跟任意字符串,字符串的解释取决于应用程序。唯一允许的另外一个控制字符串是作为组结束符的“}”。除了执行图形核查操作期间外,AutoCAD 不会解释这些字符串。它们供应用程序使用

105

DIMVAR 符号表条目的对象句柄

110

UCS 原点(仅当将代码 72 设定为 1 时才显示)

DXF:X 值;APP:三维点

111

UCS X 轴(仅当将代码 72 设定为 1 时才显示)

DXF:X 值;APP:三维矢量

112

UCS Y 轴(仅当将代码 72 设定为 1 时才显示)

DXF:X 值;APP:三维矢量

120-122

DXF:UCS 原点的 Y 值,UCS X 轴和 UCS Y 轴

130-132

DXF:UCS 原点的 Z 值,UCS X 轴和 UCS Y 轴

140-149

双精度浮点值(例如点、标高和 DIMSTYLE 设置)

170-179

16 位整数值,例如表示 DIMSTYLE 设置的标志位

210

拉伸方向(固定)

DXF:拉伸方向的 X 值

APP:三维拉伸方向矢量

220, 230

DXF:拉伸方向的 Y 值和 Z 值

270-279

16 位整数值

280-289

16 位整数值

290-299

布尔标志值

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 操作期间进行转换

370-379

线宽枚举值 (AcDb::LineWeight)。作为 16 位整数存储和移动。自定义非图元对象可以使用整个范围内的组码,但图元类只能在其表示中使用 371-379 DXF 组码,因为 AutoCAD 和 AutoLISP 都始终假定 370 组码是图元的线宽。这使 370 组码与其他“通用”图元字段具有相同的行为

380-389

PlotStyleName 类型枚举 (AcDb::PlotStyleNameType)。作为 16 位整数存储和移动。自定义非图元对象可以使用整个范围内的组码,但图元类只能在其表示中使用 381-389 DXF 组码,原因与上述线宽范围相同

390-399

表示 PlotStyleName 对象的句柄值的字符串,本质上是硬指针,但范围不同,更容易处理向后兼容。作为对象 ID(在 DXF 文件中为句柄)和 AutoLISP 中的特殊类型存储和移动。自定义非图元对象可以使用整个范围内的组码,但图元类只能在其表示中使用 391-399 DXF 组码,原因与上述线宽范围相同

400-409

16 位整数

410-419

字符串

420-427

32 位整数值。与真彩色一同使用时,表示 24 位颜色值的 32 位整数。高阶字节(8 位)为 0;低阶字节为包含“蓝色”值 (0-255)、然后是“绿色”值的无符号字符;次高阶字节是“红色”值。将此整数值转换为十六进制值将得到以下位掩码:0x00RRGGBB。例如,红色==200、绿色==100 和蓝色==50 的真彩色为 0x00C86432,而在 DXF 中以十进制表示则为 13132850

430-437

字符串;用于真彩色时,则为表示颜色名称的字符串

440-447

32 位整数值。用于真彩色时,表示透明度值

450-459

长整数

460-469

双精度浮点值

470-479

字符串

480-481

硬指针句柄;指向同一个 DXF 文件或图形中的其他对象的任意硬指针。在 INSERT 和 XREF 操作期间进行转换

999

DXF:999 组码指示后面的行是注释字符串。SAVEAS 不会在 DXF 输出文件中包含这样的组,但 OPEN 则包括这些组并忽略注释。可以使用 999 组在您已编辑的 DXF 文件中包含注释

1000

扩展数据中的 ASCII 字符串(最多可以包含 255 个字节)

1001

扩展数据的注册应用程序名(最多可以包含 31 个字节的 ASCII 字符串)

1002

扩展数据控制字符串(“{”或“}”)

1003

扩展数据图层名

1004

扩展数据中的字节数据块(最多可以包含 127 个字节)

1005

扩展数据中的图元句柄;最多可以包含 16 个十六进制数字的字符串

1010

扩展数据中的点

DXF:X 值(后跟 1020 和 1030 组)

APP:三维点

1020, 1030

DXF:点的 Y 值和 Z 值

1011

扩展数据中的三维世界空间位置

DXF:X 值(后跟 1021 和 1031 组)

APP:三维点

1021, 1031

DXF:世界空间位置的 Y 值和 Z 值

1012

扩展数据中的三维世界空间位移

DXF:X 值(后跟 1022 和 1032 组)

APP:三维矢量

1022, 1032

DXF:世界空间位移的 Y 值和 Z 值

1013

扩展数据中的三维空间方向

DXF:X 值(后跟 1022 和 1032 组)

APP:三维矢量

1023, 1033

DXF:世界空间方向的 Y 和 Z 值

1040

扩展数据双精度浮点值

1041

扩展数据距离值

1042

扩展数据缩放比例

1070

扩展数据 16 位有符号整数

1071

扩展数据 32 位有符号长整数

相关参考

相关概念

 

 

 

DXF 文件中的图元组码 (DXF)

以下是 DXF 文件 ENTITIES 段的样例:

0

SECTION

2

ENTITIES

ENTITIES 段的开始

0

<图元类型>

5

<句柄>

330

<指向所有者的指针>

100

AcDbEntity

8

<图层>

100

AcDb<类名>

.

. <数据>

.

每个图元定义一个条目

0

ENDSEC

ENTITIES 段的结束

相关参考

 

 

 

 

 

 

POINT (DXF)

以下组码适用于点图元。

POINT 组码

组码

说明

100

子类标记 (AcDbPoint)

10

点位置(在 WCS 中)

DXF:X 值;APP:三维点

20, 30

DXF:点位置的 Y 值和 Z 值(在 WCS 中)

39

厚度(可选;默认值 = 0)

210

拉伸方向(可选;默认值 = 0, 0, 1)

DXF:X 值;APP:三维矢量

220, 230

DXF:拉伸方向的 Y 值和 Z 值(可选)

50

绘制点时所使用的 UCS 的 X 轴的角度(可选;默认值 = 0);当 PDMODE 非零时使用

相关参考

相关概念

 

 

 

 

 

 

 

 

 

 

LINE (DXF)

以下组码适用于直线图元。

LINE 组码

组码

说明

100

子类标记 (AcDbLine)

39

厚度(可选;默认值 = 0)

10

起点(在 WCS 中)

DXF:X 值;APP:三维点

20, 30

DXF:起点的 Y 值和 Z 值(在 WCS 中)

11

端点(在 WCS 中)

DXF:X 值;APP:三维点

21, 31

DXF:端点的 Y 值和 Z 值(在 WCS 中)

210

拉伸方向(可选;默认值 = 0, 0, 1)

DXF:X 值;APP:三维矢量

220, 230

DXF:拉伸方向的 Y 值和 Z 值(可选)

相关参考

相关概念

 

 

 

 

 

 

 

 

LWPOLYLINE (DXF)

以下组码适用于优化多段线图元。

LWPOLYLINE 组码

组码

说明

100

子类标记 (AcDbPolyline)

90

顶点数

70

多段线标志(按位编码);默认值为 0:

1 = 关闭;128 = Plinegen

43

固定宽度(可选;默认值 = 0)。如果设定为可变宽度(代码 40 和/或 41),则不使用

38

标高(可选;默认值 = 0)

39

厚度(可选;默认值 = 0)

10

顶点坐标(在 OCS 中),多个条目;每个顶点一个条目

DXF:X 值;APP:二维点

20

DXF:顶点坐标的 Y 值(在 OCS 中),多个条目;每个顶点一个条目

91

顶点标识符

40

起点宽度(多个条目;每个顶点一个条目)(可选;默认值 = 0;多个条目)。如果设定为固定宽度(代码 43),则不使用

41

端点宽度(多个条目;每个顶点一个条目)(可选;默认值 = 0;多个条目)。如果设定为固定宽度(代码 43),则不使用

42

凸度(多个条目;每个顶点一个条目)(可选;默认值 = 0)

210

拉伸方向(可选;默认值 = 0, 0, 1)

DXF:X 值;APP:三维矢量

220, 230

DXF:拉伸方向的 Y 值和 Z 值(可选)

相关参考

相关概念

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

POLYLINE (DXF)

以下组码适用于多段线图元。

POLYLINE 组码

组码

说明

100

子类标记(AcDb2dPolyline 或 AcDb3dPolyline)

66

已废弃;以前是“后跟图元标志”(可选;如果存在则忽略)

10

DXF:始终为 0

APP:“虚拟”点;X 值和 Y 值始终为 0,Z 值是多段线的标高(二维时在 OCS 中,三维时在 WCS 中)

20

DXF:始终为 0

30

DXF:多段线的标高(二维时在 OCS 中,三维时在 WCS 中)

39

厚度(可选;默认值 = 0)

70

多段线标志(按位编码;默认值 = 0):

1 = 这是一个闭合多段线(或按 M 方向闭合的多边形网格)

2 = 已添加曲线拟合顶点

4 = 已添加样条曲线拟合顶点

8 = 这是一条三维多段线

16 = 这是一个三维多边形网格

32 = 多边形网格以 N 方向闭合

64 = 多段线是一个多面网格

128 = 线型图案在该多段线顶点的周围连续生成

40

默认起点宽度(可选;默认值 = 0)

41

默认端点宽度(可选;默认值 = 0)

71

多边形网格 M 顶点计数(可选;默认值 = 0)

72

多边形网格 N 顶点计数(可选;默认值 = 0)

73

平滑曲面 M 密度(可选;默认值 = 0)

74

平滑曲面 N 密度(可选;默认值 = 0)

75

曲线和平滑曲面类型(可选;默认值 = 0);整数代码,非按位编码:

0 = 不拟合平滑曲面

5 = 二次 B 样条曲面

6 = 三次 B 样条曲面

8 = Bezier 曲面

210

拉伸方向(可选;默认值 = 0, 0, 1)

DXF:X 值;APP:三维矢量

220, 230

DXF:拉伸方向的 Y 值和 Z 值(可选)

多段线图元后面将跟随应用程序 ID 为“AUTOCAD_POSTSCRIPT_FIGURE”的扩展数据。它包含与 PostScript 图像和 PostScript 填充信息相关的信息。

相关参考

相关概念

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CIRCLE (DXF)

以下组码适用于圆图元。

CIRCLE 组码

组码

说明

100

子类标记 (AcDbCircle)

39

厚度(可选;默认值 = 0)

10

中心点(在 OCS 中)

DXF:X 值;APP:三维点

20, 30

DXF:中心点的 Y 值和 Z 值(在 OCS 中)

40

半径

210

拉伸方向(可选;默认值 = 0, 0, 1)

DXF:X 值;APP:三维矢量

220, 230

DXF:拉伸方向的 Y 值和 Z 值(可选)

相关参考

相关概念

 

 

 

 

 

 

 

 

 

 

 

 

ARC (DXF)

以下组码适用于圆弧图元。

ARC 组码

组码

说明

100

子类标记 (AcDbCircle)

39

厚度(可选;默认值 = 0)

10

中心点(在 OCS 中)

DXF:X 值;APP:三维点

20, 30

DXF:中心点的 Y 值和 Z 值(在 OCS 中)

40

半径

100

子类标记 (AcDbArc)

50

起点角度

51

端点角度

210

拉伸方向(可选;默认值 = 0, 0, 1)

DXF:X 值;APP:三维矢量

220, 230

DXF:拉伸方向的 Y 值和 Z 值(可选)

相关参考

相关概念

 

 

 

 

 

 

ELLIPSE (DXF)

以下组码适用于椭圆图元。

ELLIPSE 组码

组码

说明

100

子类标记 (AcDbEllipse)

10

中心点(在 WCS 中)

DXF:X 值;APP:三维点

20, 30

DXF:中心点的 Y 值和 Z 值(在 WCS 中)

11

相对于中心的长轴端点(在 WCS 中)

DXF:X 值;APP:三维点

21, 31

DXF:相对于中心的长轴端点的 Y 值和 Z 值(在 WCS 中)

210

拉伸方向(可选;默认值 = 0, 0, 1)

DXF:X 值;APP:三维矢量

220, 230

DXF:拉伸方向的 Y 值和 Z 值(可选)

40

短轴与长轴的比例

41

起点参数 (对于闭合椭圆,该值为 0.0)

42

端点参数 (对于闭合椭圆,该值为 2pi)

相关参考

相关概念

 

 

 

 

 

HELIX (DXF)

以下组码适用于螺旋图元。

HELIX 组码

组码

说明

 

样条曲线数据

100

子类标记 (AcDbHelix)

90

主版本号

91

维护版本号

10, 20, 30

轴基点

11, 21, 31

起点

12, 22, 32

轴矢量

40

半径

41

圈数

42

圈高

290

左右手习惯;0 = 左手,1 = 右手

280

约束类型

0 = 约束圈高

1 = 约束圈数

2 = 约束高度

相关参考

相关概念

 

SPLINE (DXF)

以下组码适用于样条曲线图元。

SPLINE 组码

组码

说明

100

子类标记 (AcDbSpline)

210

法向矢量(如果样条曲线为非平面型,则省略)

DXF:X 值;APP:三维矢量

220, 230

DXF:法向矢量的 Y 值和 Z 值(可选)

70

样条曲线标志(按位编码):

1 = 闭合样条曲线

2 = 周期性样条曲线

4 = 有理样条曲线

8 = 平面

16 = 线性(同时还设置平面位)

71

样条曲线的阶数

72

节点数

73

控制点数

74

拟合点数(如果有)

42

节点公差(默认值 = 0.0000001)

43

控制点公差(默认值 = 0.0000001)

44

拟合公差(默认值 = 0.0000000001)

12

起点切向 — 可以省略(在 WCS 中)

DXF:X 值;APP:三维点

22, 32

DXF:起点切向的 Y 值和 Z 值 — 可以省略(在 WCS 中)

13

端点切向 — 可以省略(在 WCS 中)

DXF:X 值;APP:三维点

23, 33

DXF:端点切向的 Y 值和 Z 值 — 可以省略(在 WCS 中)

40

节点值(每个节点一个条目)

41

权值(如果不为 1);对于多组对,如果均不为 1,则出现。

10

控制点(在 WCS 中);每个控制点一个条目

DXF:X 值;APP:三维点

20, 30

DXF:控制点的 Y 值和 Z 值(在 WCS 中);每个控制点一个条目

11

拟合点(在 WCS 中);每个拟合点一个条目

DXF:X 值;APP:三维点

21, 31

DXF:拟合点的 Y 值和 Z 值(在 WCS 中);每个拟合点一个条目

相关参考

相关概念

 

DXF文件中,我们最关心的是如何得到模型上各个点的坐标,并且用这些点连成许多个三用形,构成面,进而绘制出整个模型。在DXF文件的结构中,我们已经看到,DXF文件先叙述实体上各个点的坐标,然后叙述实体上有多少个面,每个面由哪些点构成。这样,我们至少需要2个数组来存储一个实体的信息,一个用于存储点的坐标,一个用于存储点序,我们可以把这2个数组放到一个结构中,如果模型中实体的数目不止一个是,我们就用这个结构来定义一个数组。在本文中,我们使用      Visual C++ 6.0 来写一个读取DXF文件的小程序。     在实际应用中,模型中实体的数目以及实体中点和面的数目都是不定的,为了有效地利用内存,我们选择MFC类库中的聚合类CobArray类所创建的对象vertex,      sequence来存储和管理实体的点坐标和点序。     CObArray类是一个用来存放数组类的聚合类,它能根据要存进来的数组(或结构)多少自动进行自身大小的高速,而且这个类本身具有的成员函数使得我们对它的对象的操作更加方便、快捷,用它编的程序也易于读懂。     三维实体模型的模型信息中的一部分信息可以在标题段中读出,通过读取变量名为$UCSORG的三个变量,可以得到三维实体在世界坐标系中自身所定义的用户坐标系原点的三维坐标。通过读取$EXTMAX,$EXTMIN可以获知三维实体在世界坐标系中的范围,而其它部分的信息只有读完了全部DXF文件后才可以通过计算确定。对于三维实体模型的全部点坐标、点序,可以在实体段中按照前面介绍的DXF文件基本结构读出。现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值