admin管理员组

文章数量:1531955

2023年12月23日发(作者:)

AUTOCAD-DXF文档详解

DXF的基本惯例

DXF格式是特定版本AutoCAD图形文件中所包含的全部信息的标记数据的一种表示方法。

标记数据的意思是指在每个数据元素前都带一个称为组码的整数。组码的值表明了其后数据元素的类型,也指出了数据元素对于给定对象(或记录)类型的含意。实际上,图形文件中所有用户指定的信息都能够以DXF文件格式表示。在AutoLISP和ARX应用程序中使用的DXF格式与上述格式基本相同,只是在某些数据组上存在着细微的差别。

如不作特殊说明,本节中所出现的组码都可以应用于DXF文件、AutoLISP应用程序和ARX应用程序。当组码说明对于应用程序和DXF文件有所不同时(或只适用于其中之一),在组码的说明前有如下提示符:

APP只用于应用程序的说明

DXF只用于DXF文件的说明

如果组码说明对DXF文件和应用程序都适用,那么没有提示符;否则将显示适当的提示符。

组码范围

组码将与组码关联的值(组值)定义为整型、浮点数型或字符串型。具体说明如下表:

组码范围 组码范围组值类型

0-9 字符串(最多255个字符,对于UNICODE字符串则更少)

10-59 双精度三维点

60-79 16位整数值

90-99 32位整数值

100 字符串(最多255个字符,对于UNICODE字符串则更少)

102 字符串(最多255个字符,对于UNICODE字符串则更少)

105 表示十六进制句柄值的字符串

140-147 双精度标量浮点值

170-175 16位整数值

280-289 8位整数值

300-309 任意文字字符串

310-319 表示二进制数据组的十六进制值的字符串

320-329 表示十六进制句柄值的字符串

330-369 表示十六进制对象标识符的字符串

999 注释(字符串)

1000-1009 字符串(最多255个字符;对于UNICODE字符串则更少)

1010-1059 浮点值

1060-1070 16位整数值

1071 32位整数值

按数字次序排列的组码

下表给出了组码(或组码范围)及其说明。在表中,“固定”表示该组码的用途固定不变,非固定组码的用途将随上下文变化。

按数字次序排列的图元组码

组码说明

-5APP:persistentreactor链表

-4APP:条件运算符(仅用于ssget)

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

-2APP:图元名引用(固定)

-1APP:图元名。每次打开图形时它都改变,且不被保存。(固定)

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

1 图元的主要文字值

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

3-4 其他的文字值或名称值

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

线型名(固定)

文字样式名(固定)

图层名(固定)

DXF:变量名标识符(仅用于DXF文件的HEADER区域)。

主要点。此点为直线或文字图元的起点,圆的圆心等等。

DXF:主要点的X值(其后为Y和Z值的组码20和30)

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

11-18 其他点。

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

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

20,30 DXF:主要点的Y和Z值

21-28,

31-37 DXF:其他点的Y和Z值

38 DXF:如果非零,则为图元的标高。只在R11以前的AutoCAD输出的DXF文件中存在

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

40-48 浮点值(文字高度、比例因子等)

48 线型比例。浮点标量值。缺省值适用于所有图元类型。

49 可重复的浮点值。一个图元中的可变长度表(例如LTYPE表中的虚线长度)中可出现多个组码49。组码7x总是在第一个组码49前出现,用于指定表的长度。

50-58 角度(在DXF文件中单位为度,在AutoLISP和ARX应用程序中单位为弧度)。

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

62 颜色代码(固定)

66 “图元跟随”标志(固定)

67 空间,即模型空间或图纸空间(固定)

68 APP:表示视口打开但不可见、未激活或者关闭。

69 APP:视口标识数字。

70-78 整数值,如重复部分的计数器、标志位或模式等。

90-99 32位整数值

100 子类数据标记(把继承下来的类名当作字符串)。由具体类继承下来的所有对象和图元类都必须有此项。此标记用于分离某个对象中由不同的类定义的数据。它也满足从ARX继承下来的每个独立的具体类的DXF命名需要(请参见子类标记!AL(`XREF_11832_al_u05_c',1))。

102 控制字符串,其后为“{<任意名称>”或"}"。除了字符串必须以"{"开始外,它与外部数据组码1002类似。其后可跟任意字符串,且此字符串的解释取决于应用程序。另一个可用的控制字符串为"}",它标识组的结束。如上所述,除了在执行图形核查操作期间外AutoCAD一般不解释这些字符串;它们仅用于应用程序。

105 DIMVAR符号表条目对象句柄。

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

5

6

7

8

9

10

和XREF操作时被转化。

999 DXF: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,1030 DXF:点的Y和Z值

1011 扩展数据中的三维世界空间位置:X值(其后跟组码1021和1031):三维点

1021,1031 DXF:世界空间位置的Y和Z值。

1012 扩展数据中的三维世界空间位移:X值(其后跟组码1022和1032):三维矢量

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文件中,图元可以出现在BLOCK和ENTITIESE区域中。两个区域中图元的用法一样。某些定义图元的组码始终会出现,而其他的组码仅在它们的值与缺省值不同时才出现。

读取DXF文件的程序不应该假定说明图元的组码是按照给定次序出现的。与说明图元的组码相连的0组码表示此图元已结束。0组码将开始新图元或表示此区域已结束。

注意如果用户以表驱动方式(即忽略未定义的组码,且对图元中的组码次序不做任何假定)编写DXF处理程序,那么该程序将比较容易针对AutoCAD的后续版本做调整。因为AutoCAD的性能将不断得到增强,所以图元中将添加一些新的组码以提供更多的功能。

读取DXF格式文件

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)

这一段含有实体,包括任何块的调用。

ILE(文件结束)

下面是对DXF的基本结构举一实例进行说明:

0 0后接SECTION SECTION表明这是一个段的开始

2 2后接的是段名 HEADER说明该段是HEADER段(标题段)

9

$ACADVER文件是由AUTOCAD产生的

1

AC1008

9 9后接$UCSORG $UCSORG用户坐标系原点在世界坐标系中的坐标

10 10对应X 0.0X的值

20 20对应Y 0.0Y的值

30 30对应Z 0.0Z的值

9 $UCSXDIR这是一段不太相关的部分,略去

10

1.0

.......

9 9后接$EXTMIN $EXTMIN说明三维实体模型在世界坐标系中的最小值

10 10对应X -163.925293X的值

20 20对应Y -18.5415860.0Y的值

30 30对应Z 78.350945Z的值

9 9后接$EXTMAN $EXTMAX说明三维实体模型在世界坐标系中的最大值

10 10对应X 202.492279X的值

20对应Y 112.634300Y的值

30对应Z 169.945602Z的值

0后接ENDSEC ENDSEC说明这一段结束了

0后接SECTION SECTION表明这是一个段的开始

2后接的是段名 TABLES说明该段是TABLES段(表段)

............该段对我们不太相关,此处略去不进行说明

0 0后接ENDSEC ENDSEC说明这一段结束了

0 0后接SECTION SECTION表明这是一个段的开始

2 2后接的是段名 ENTITIES说明该段是ENTITIES段(实体段)这是我们要详细说明的段,该段包含了所有实体的POLYLINE点的坐标和组成面的点序。

0后接POLYLINE

8 表明以下数据是对于一个新的实体;

OBJECT018后接的字符串是这个实体的名称

66

1

70从66 1到70 64

64说明该实体是由许多小平面组成的

71

38 71 38说明该实体共有38个点

72

72 72 72说明该实体由72个三角形构成

00VERTEX

VERTEX表明后面紧跟着的是实体的数据

8

OBJECT01

10对应X坐标 -163.925293X的值

20对应Y坐标 -17.772665Y的值

30对应Z坐标 128.929947Z的值

70 70 192

192表明上面的数据信息是点的坐标

0每一个从0VERTEX到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

20

30

0

0

2

OBJECT01

0

POLYLINE0后接POLYLINE表明以下又是一个新的实体

............

0

ENDSEC0后接ENDSEC表明这是该段的结尾

0

EOF0后接EOF表明这个DXF文件结束了

在DXF文件中,我们最关心的是如何得到模型上各个点的坐标,并且用这些点连成许多个三用形,构成面,进而绘制出整个模型。在DXF文件的结构中,我们已经看到,DXF文件先叙述实体上各个点的坐标,然后叙述实体上有多少个面,每个面由哪些点构成。这样,我们至少需要2个数组来存储一个实体的信息,一个用于存储点的坐标,一个用于存储点序,我们可以把这2个数组放到一个结构中,如果模型中实体的数目不止一个是,我们就用这个结构来定义一个数组。在本文中,我们使用

VisualC++6.0来写一个读取DXF文件的小程序。

在实际应用中,模型中实体的数目以及实体中点和面的数目都是不定的,为了有效地利用内存,我们选择MFC类库中的聚合类CobArray类所创建的对象vertex,

sequence来存储和管理实体的点坐标和点序。

CObArray类是一个用来存放数组类的聚合类,它能根据要存进来的数组(或结构)多少自动进行自身大小的高速,而且这个类本身具有的成员函数使得我们对它的对象的操作更加方便、快捷,用它编的程序也易于读懂。

三维实体模型的模型信息中的一部分信息可以在标题段中读出,通过读取变量名为$UCSORG的三个变量,可以得到三维实体在世界坐标系中自身所定义的用户坐标系原点的三维坐标。通过读取$EXTMAX,$EXTMIN可以获知三维实体在世界坐标系中的范围,而其它部分的信息只有读完了全部DXF文件后才可以通过计算确定。对于三维实体模型的全部点坐标、点序,可以在实体段中按照前面介绍的DXF文件基本结构读出。现在我们开始写这个程序。

先建立一个头文件HEAD.H定义如下的结构:VERTEX,SEQUENCE和类CVertex,Csequence。

typedefstruct{

floatx,y,z;

}VERTEX;

//结构VERTEX用来存储点的坐标

typedefstruct{

inta,b,c;

}SEQUENCE;

//结构SEQUENCE用来存储实体的面的组成

typedefstruct{

charobName[20];

/*定义结构myVertex来存储实体的名字,点的坐标以及面的组成,CObArrayVertex;其中,点的坐标和面的组成是由聚合类CObArray定义的对象来CObArraySequence;在存储的,我们可以把VERTEX结构和SEQUENCE结构加入到这两个对象中保存*/

}myVertex;

classCVertex:publicCObject

{因为CObArray类的对象中只能加入由CObject派生的对象,所以protected:我们还需要建立一个由CObject类派生的CVertex类。在CVertex类CVertex();中有一个VERTEX结构的变量:m_vertex,信息实际上是存储在这DECLARE_DYNCREATE(CVertex)个变量中的。

virtual~CVertex();

//Attributes

public:我们还需要建立一个由CObject类派生的CVertex类。在CVertex类CVertex(VERTEX&ver);中有一个VERTEX结构的变量:m_vertex,信息实际上是存储在这个变量中的,函数CVertex(VERTEX&ver)把VERTEX结构的变量VERTEXm_vertex;存入CObArray对象中。

};

classCSequence:publicCObject{这也是一个由CObject类派生的类,作用和刚才CVertex类一样,protected:只不过Csequence类是用来存储实体中面的组成(点序)的。

CSequence();

DECLARE_DYNCREATE(CSequence)

virtual~CSequence();

public:CSequence(SEQUENCE&sequ);

SEQUENCEm_sequence;

};

声明好结构与类后,我们还需要建立一个.CPP文件,来定义几个函数。

IMPLEMENT_DYNCREATE(CVertex,CObject)

CVertex::CVertex()

{

}

CVertex::~CVertex()构造函数和销毁函数都是空的

{

}

CVertex::CVertex(VERTEX&ver)

{这个函数的作用是:把一个VERTEX结构的数据存入变量m_vertex中m_vertex=ver;它是这个类中最重要的一环。

}

IMPLEMENT_DYNCREATE(CSequence,CObject)

CSequence::CSequence()

{

}Csequence类的定义与CVertex类的定义差不多,只是其中的参数m_sequence的类型和CVertex类中的参数my_vertex的类型不一样

CSequence::~CSequence()

{

}

CSequence::CSequence(SEQUENCE&sequ)

{

m_sequence=sequ;

}

然后用结构myVertex(如前所定义)定义一个指针*myData,目的在于根据模型中实体的多少来给指针分配合适的内存,使之成为结构数组。

定义一个函数,用于确定模型中有多少个实体,函数的返回值就是实体的个数。

intCJupiterView::getObjectNumber()

{

charstr1[10],str2[10];

charname[]="theFirst";

intnum;

num=0;

FILE*fp;

fp=fopen("","r");打开DXF文件,

while(!feof(fp)&&!ferror(fp))这个函数是根据实体的名字来判断实体的个数的

{所以函数只读取实体的名字,一旦出现新的实体名字,fscanf(fp,"%sn",str1);实体数就加一。

if(strcmp(str1,"VERTEX")==0)

{

fscanf(fp,"%sn",str2);打开DXF文件,

fscanf(fp,"%sn",str2);这个函数是根据实体的名字来判断实体的个数的

if(strcmp(name,str2)!=0)所以函数只读取实体的名字,一旦出现新的实体名字,{实体数就加一。

strcpy(name,str2);

num++;

}

}

}

fclose(fp);

returnnum;

}

以下是读取实体点的坐标以及点序的程序代码,在这个程序中,读取了模型中点的坐标的最大值与最小值、实体的名字、点的坐标,以及点序。

voidCJupiterView::OnFileInput()

{

//TODO:Addyourcommandhandlercodehere

FILE*fp,*fp2;

inti,k,j;

floattempX,tempY,tempZ;

floatxMin,yMin,zMin,xMax,yMax,zMax,Max;

intlab;

charstr1[20],str2[20],str[20],HT;

charmyName[20];

intmyNumber;

VERTEXtempVertex;

SEQUENCEtempSequence;

typedefstruct{

floatx,y,z,max;

}MAX;

MAXmax;

HT=9;

objectNumber=getObjectNumber();

myData=newmyVertex[objectNumber];

fp=fopen(FileName,"r");

i=0;

j=0;

k=0;

myNumber=-1;

strcpy(myName,"ObjectName");

while(!feof(fp)&&!ferror(fp))

{

fscanf(fp,"%sn",str);

if(strcmp(str,"$EXTMIN")==0)

{

fscanf(fp,"%sn",str1);

fscanf(fp,"%fn",&xMin);

fscanf(fp,"%sn",str1);

fscanf(fp,"%fn",&yMin);

fscanf(fp,"%sn",str1);

fscanf(fp,"%fn",&zMin);

}

if(strcmp(str,"$EXTMAX")==0)

{

fscanf(fp,"%sn",str1);

fscanf(fp,"%fn",&xMax);

fscanf(fp,"%sn",str1);

fscanf(fp,"%fn",&yMax);

fscanf(fp,"%sn",str1);

fscanf(fp,"%fn",&zMax);

max.x=max(abs(xMax),abs(xMin));

max.y=max(abs(yMax),abs(yMin));

max.z=max(abs(zMax),abs(zMin));

=max(max.x,max.y);

=max(,max.z);

}

if(strcmp(str,"VERTEX")==0)

{

fscanf(fp,"%sn",str1);

fscanf(fp,"%sn",str1);

if(strcmp(myName,str1)!=0)

{

myNumber++;

strcpy(myName,str1);

strcpy((myData+myNumber)->obName,myName);

}

fscanf(fp,"%sn",str2);

fscanf(fp,"%fn",&tempX);

fscanf(fp,"%sn",str2);

fscanf(fp,"%fn",&tempY);

fscanf(fp,"%sn",str2);

fscanf(fp,"%fn",&tempZ);

fscanf(fp,"%dn",&lab);

fscanf(fp,"%dn",&lab);

if(lab==192)

{

tempVertex.x=tempX/;

tempVertex.y=tempY/;

tempVertex.z=tempZ/;

(myData+myNumber)->(newCVertex(tempVertex));

}

if(lab==128)

{

fscanf(fp,"%sn",str1);

fscanf(fp,"%fn",&tempX);

fscanf(fp,"%sn",str1);

fscanf(fp,"%fn",&tempY);

fscanf(fp,"%sn",str1);

fscanf(fp,"%fn",&tempZ);

tempSequence.a=abs(tempX);

tempSequence.b=abs(tempY);

tempSequence.c=abs(tempZ);

(myData+myNumber)->(newCSequence(tempSequence));

}

}

}

fclose(fp);

}

HEADER区域

本节中描述的组码仅适用于DXF文件。

DXF文件的HEADER区域包括与图形相关联的变量的设置。其中的每一个变量都通过组码9给出变量名,并由其后的组码提供变量值。注意:AutoCAD命令参考中的附录B“系统变量”中的一些变量不出现在DXF文件中。

通过执行函数getvar,应用程序可以检索这些变量的值。

下面是DXF文件的HEADER区域的样例:

0 SECTION

2 HEADER区域的开始

9 $

对每个表头变量重复

0 HEADER区域的结束

======================================================================

下表列出了保存在DXF文件中的变量。

======================================================================

DXF系统变量 变量组码说明

$ACADVER 1

AutoCAD图形数据库版本号: AC1006=R10,AC1009=R11和R12,

AC1012=R13,AC1014=R14,AC1018=?

$ACADMAINTVER 70 76

$ANGBASE 500 角度的方向

$ANGDIR 70 1=角为顺时针方向,0=逆时针方向

$ATTDIA 70 属性条目对话框:1=开,0=关

$ATTMODE 70 属性可见性:0=无,1=普通,2=全部

$ATTREQ 70 INSERT期间的属性提示:1=开,0=关

$AUNITS 70 角的单位格式

$AUPREC 70 角的单位精度

$BLIPMODE 70 如果非零,则“点标记”模式打开

$CECOLOR 62 当前图元颜色代码:0=BYBLOCK,256=BYLAYER

$CELTSCALE 40 当前图元线型比例

$CELTYPE 6 图元线型名称,也可为BYBLOCK或BYLAYER

$CHAMFERA 40 第一个倒角距离

$CHAMFERB 40 第二个倒角距离

$CHAMFERC 40 倒角长度

$CHAMFERD 40 倒角角度

$CLAYER 8 当前图层名

$CMLJUST 70 当前多线对正模式:0=顶端,1=中间,2=底端

$CMLSCALE 40 当前多线比例

$CMLSTYLE 2 当前多线样式名

$COORDS 70 坐标显示方式:0=静态的,1=持续更新,2="d

$DELOBJ 70 控制是否删除对象:0=删除,1=保留

$DIMALT 70 如果非零,则标注中执行换算单位

$DIMALTD 70 换算单位小数位数

$DIMALTF 40 换算单位比例因子

$DIMALTTD 70 换算单位标注的公差值的十进制小数位数

$DIMALTTZ 70 控制替换公差值的消零: 0=清除零英尺并精确到零英寸

1=包括零英尺并精确到零英寸

2=包括零英尺并清除零英寸

3=包括零英寸并清除零英尺

$DIMALTU 70 所有标注样式族成员(不包括角度)换算单位的单位格式:

1=科学;2=十进制;3=工程;4=建筑(堆叠);5=分数(堆叠);6=建筑;7=分数

$DIMALTZ 70 控制换算单位标注值的消零: 0=清除零英尺并精确到零英寸

1=包括零英尺并精确到零英寸

2=包括零英尺并清除零英寸

3=包括零英寸并清除零英尺

$DIMAPOST 1

$DIMASO 70

$DIMASZ 40

$DIMAUNIT 70

$DIMBLK 1

$DIMBLK 11

$DIMBLK 21

$DIMCEN 40

$DIMCLRD 70

$DIMCLRE 70

$DIMCLRT 70

$DIMDEC 70

$DIMDLE 40

$DIMDLI 40

$DIMEXE 40

$DIMEXO 40

$DIMFIT 70

$DIMGAP 40

$DIMJUST 70

替换标注后缀

1=创建关联标注,0=绘制独立图元

标注箭头的尺寸

角度标注的单位格式:0=十进制度数;1=度/分/秒;2=百分度;3=弧度;4=勘测

箭头块名

第一箭头块名

第二箭头块名

中心标记/中心线的尺寸

尺寸线颜色:范围为0=BYBLOCK,256=BYLAYER

尺寸界线颜色:范围为0=BYBLOCK,256=BYLAYER

标注文字颜色:范围为0=BYBLOCK,256=BYLAYER

主单位标注公差值的小数位数

尺寸线范围

尺寸线增量

尺寸界线范围

尺寸界线偏移

文本和箭头的放置;可能值:0到3

尺寸线的间距

水平标注文字位置: 0=在尺寸线上方且与尺寸界线间中心对正;

1=在尺寸线上方且与第一尺寸界线相邻;

2=在尺寸线上方且与第二尺寸界线相邻;

3=在第一尺寸界线上方且与之中心对正;

4=在第二尺寸界线上方且与之中心对正;

$DIMLFAC 40 线型测量比例因子

$DIMLIM 70 如果非零,则生成标注图形界限

$DIMPOST 1 基本标注后缀

$DIMRND 40 标注距离的舍入值

$DIMSAH 70 如果非零,则使用单独的箭头块

$DIMSCALE 40 全局标注比例因子

$DIMSD 170 控制是否清除第一尺寸线:0=不清除;1=清除

$DIMSD 270 控制是否清除第二尺寸线:0=不清除;1=清除

$DIMSE 170 如果非零,则清除第一尺寸界线

$DIMSE 270 如果非零,则清除第二尺寸界线

$DIMSHO 70 1=拖动后重新计算标注;0=拖动原图像

$DIMSOXD 70 如果非零,则清除外部尺寸尺寸线

$DIMSTYLE 2 标注样式名称

$DIMTAD 70 如果非零,则文字在尺寸线上方

$DIMTDEC 70 公差值的十进制数位数

$DIMTFAC 40 标注公差显示比例因子

$DIMTIH 70 如果非零,则文字在水平方向内

$DIMTIX 70 如果非零,则强制文字在尺寸线之间

$DIMTM 40 负公差

$DIMTOFL 70 如果非零,则当文字在范围外时,强制直线范围在尺寸界线之间

$DIMTOH 70 如果非零,则文字在水平方向之外

$DIMTOL 70 如果非零,则生成标注公差

$DIMTOLJ 70 公差值的垂直对正模式:0=顶端;1=中间;2=底端

$DIMTP 40 正公差

$DIMTSZ 40 标注标记尺寸:0=无标记

$DIMTVP 40 文字垂直位置

$DIMTXSTY 7 标注文字样式

$DIMTXT 40 标注文字高度

$DIMTZIN 70 控制公差值的消零: 0=清除零英尺并精确到零英寸

1=包括零英尺并精确到零英寸

2=包括零英尺并清除零英寸

3=包括零英寸并清除零英尺

$DIMUNIT 70 所有的标注样式族成员(角度除外)的单位格式:

1=科学;2=十进制;3=工程;

4=建筑(堆叠);5=分数(堆叠);

6=建筑;7=分数

$DIMUPT 70 用户放置文字的光标功能:0=只控制尺寸线位置:1=同时控制尺寸线和文字位置

$DIMZIN 70 控制主单位值的消零: 0=清除零英尺并精确到零英寸

1=包括零英尺并精确到零英寸

2=包括零英尺并清除零英寸

3=包括零英寸并清除零英尺

$DISPSILH 70 控制线框图模式中体对象轮廓曲线的显示:0=关;1=开

$DRAGMODE 70 0=关;1=开;2=自动

$DWGCODEPAGE 3图形代码页;

当新图形创建时,设置为系统代码页,但AutoCAD不作另外的维护。

$ELEVATION 40 命令ELEV设置的当前标高

$EXTMIN 10,20,30图形的X、Y和Z延伸到左下角(在WCS中)

$EXTMAX 10,20,30图形的X、Y和Z延伸到右上角(在WCS中)

$FILLETRAD 40 圆角半径

$FILLMODE 70 如果非零,则“填充”模式打开

$HANDLING 70 下一个可用句柄

$HANDSEED 5 下一个可用句柄

$INSBASE 10,20,30命令BASE设置的插入基点(在WCS中)

$LIMCHECK 70当检查图形界限时非零

$LIMMAX 10,20XY图形界限延伸至右上角(在WCS中)

$LIMMIN 10,20XY图形界限延伸至左下角(在WCS中)

$LTSCALE 40全局线型比例

$LUNITS 70坐标和距离的单位格式

$LUPREC 70坐标和距离的单位精度

$MAXACTVP 70设置要生成的视口数目的最大值

$MEASUREMENT 70设置图形单位:0=英制;1=公制

$MENU 1菜单文件名

$MIRRTEXT 70如果非零,则镜像文字

$ORTHOMODE 70如果非零,则打开“正交”模式

$OSMODE 70运行对象捕捉模式

$PDMODE 70点显示模式

$PDSIZE 40点显示尺寸

$PELEVATION 40当前图纸空间标高

$PEXTMAX 10,20,30图纸空间的X、Y和Z延伸的最大值

$PEXTMIN 10,20,30图纸空间的X、Y和Z延伸的最小值

$PICKSTYLE 70控制编组选择集和关联填充选择集:

0=无编组选择集和关联填充选择集;

1=有编组选择集;

2=有关联填充选择集;

3=有编组选择集和关联填充选择集

$PINSBASE 10,20,30图纸空间插入基点

$PLIMCHECK 70如果非零,则在图纸空间中检查图形界限

$PLIMMAX 10,20图纸空间中最大的X和Y图形界限

$PLIMMIN 10,20图纸空间中最小的X和Y图形界限

$PLINEGEN 70管理二维多段线顶点周围的线型图案的生成:

0=在多段线周围以连续图案生成线型;

1=每段多段线都以虚线开始和结束

$PLINEWID 40缺省的多段线宽度

$PROXYGRAPHICS 70控制代理对象图像的保存

$PSLTSCALE 70控制图纸空间线型比例:

0=无指定的线型比例;

1=由视口比例控制线型比例

$PUCSNAME 2当前图纸空间的UCS名

$PUCSORG 10,20,30当前图纸空间的UCS原点

$PUCSXDIR 10,20,30当前图纸空间的UCSX轴

$PUCSYDIR 10,20,30当前图纸空间的UCSY轴

$QTEXTMODE 70如果非零,则打开快速文字模式

$REGENMODE 70如果非零,则打开REGENAUTO模式

$SHADEDGE 700=面着色,边不突出显示;

1=面着色,边以黑色突出显示;

2=面不填充,边为图元颜色;

3=面为图元颜色,边为黑色

$SHADEDIF 70 环境/漫射光百分数,取值范围为1-100,缺省值为70

$SKETCHINC 40 徒手画记录增量

$SKPOLY 70 0=徒手画线条;1=徒手画多段线

$SPLFRAME 70 样条曲线控制多边形显示:1=开;0=关

$SPLINESEGS 70 每个样条曲线片的线段数

$SPLINETYPE 70 PEDIT样条曲线的曲线类型

$SURFTAB 170 在第一方向上的网格列表数目

$SURFTAB 270 在第二方向上的网格列表数目

$SURFTYPE 70 PEDIT平滑着色的表面类型

$SURFU 70 在M方向上的(PEDIT平滑着色的)表面密度

$SURFV 70 在N方向上的(PEDIT平滑着色的)表面密度

$TDCREATE 40 图形创建的日期/时间

$TDINDWG 40 图形的累计编辑时间

$TDUPDATE 40 图形最近一次更新的日期/时间

$TDUSRTIMER 40 用户流逝计时器

$TEXTSIZE 40 缺省文本高度

$TEXTSTYLE 7 当前文字样式名

$THICKNESS 40 命令ELEV设置的当前厚度

$TILEMODE 70 1与早期版本兼容;0不兼容

$TRACEWID 40 缺省宽线宽度

$TREEDEPTH 70 指定空间索引的最大深度

$UCSNAME 2 当前UCS名

$UCSORG 10,20,30当前UCS原点(在WCS中)

$UCSXDIR 10,20,30当前UCSX轴的方向(在WCS中)

$UCSYDIR 10,20,30当前UCSY轴的方向(在WCS中)

$UNITMODE 70低位设置=显示分数、英尺和英寸,以及输入格式中的检测角

$USERI 1-570供第三方开发者使用的五个整型变量

$USERR 1-540供第三方开发者使用的五个实型变量

$USRTIMER 700=计时器关;1=计时器开

$VISRETAIN 700=不保留外部参照依赖可见性设置;

1=保留外部参照依赖可见性设置;

$WORLDVIEW 701=在DVIEW/VPOINT期间设置UCS为WCS;

0=不修改UCS

下列表头变量出现在R11前的AutoCAD中,但现在对每个活动的视口都有单独的设置。当DXFIN从DXF文件中读取这些变量时,能识别它们。但如果带有*ACTIVE条目的VPORT符号表存在(任何由R11

或更高版本的AutoCAD生成的DXF文件中都存在),VPORT符号表条目中的值将替代这些表头变量。

修正的VPORT表头变量

变量组码说明

$FASTZOOM 70如果非零,则启用快速缩放

$GRIDMODE 70如果非零,则打开“栅格”模式

$GRIDUNIT 10,20栅格的X和Y间距

$SNAPANG 50捕捉栅格旋转角

$SNAPBASE 10,20捕捉/栅格基点(在UCS中)

$SNAPISOPAIR 70等轴测平面:0=左边,1=上端,2=右边

$SNAPMODE 70如果非零,则打开“捕捉”模式

$SNAPSTYLE 70捕捉样式:0=标准;1=等轴测

$SNAPUNIT 10,20捕捉栅格的X和Y间距

$VIEWCTR 10,20屏幕上当前视图的XY中心

$VIEWDIR 10,20,30视图方向(来自WCS中目标的方向)

$VIEWSIZE 40视图高度

日期/时间变量($TDCREATE和$TDUPDATE)以如下实数格式输出:

.

流逝计时器变量($TDINDWG和$TDUSRTIMER)具有相似的格式:

.

TABLES区域

本节描述的组码既出现在DXF文件中又被应用程序使用。TABLES区域中包括多个表,每个表中条目数目可变。AutoLISP和ARX应用程序在图元定义表中也使用这些组码。

如不作特殊说明,本节中所出现的组码都可以应用于DXF文件、AutoLISP应用程序和ARX应用程序。当组码说明对于应用程序和DXF文件有所不同时(或只适用于其中之一),在组码的说明前会有如下提示符:

APP用于应用程序的说明

DXF用于DXF文件的说明

如果组码说明对DXF文件和应用程序都适用,那么没有提示符;否则将显示适当的提示符。

DXF文件中的符号表

表的次序可以改变,但LTYPE表一般放在LAYER之前。每个表都由带有标签TABLE的组码0引入。其后是标识具体表(APPID、DIMSTYLE、LAYER、LTYPE、STYLE、UCS、VIEW、VPORT或BLOCK_RECORD)的组码2、组码5(句柄)、组码100(AcDbSymbolTable子类标记)和组码70(此组码用于指定其后表的最大条目数)。表名以大写字符形式输出。DIMSTYLE句柄使用组码105而不是组码5。

图形中的表可以包含已删除的条目,但这些条目不写入DXF文件,因此表头后的表条目数可能少于组码70所指定的数目。所以不要用组码70中的数字作为读取表的索引。读取DXF文件的程序会根据组码70中的数字分配一个足够大的数组来存储其后所有的表条目。

在每个表的表头后跟随着表条目。每个表条目包括指定条目类型的组码0(与表名称相同,如LTYPE或LAYER)、给出表条目名称的组码2、指定与表条目相关的标志的组码70和其他给出表条目值的组码组成。每个表条目的结尾都由带有组值ENDTAB的组码0标记。

下面是一个DXF文件中的TABLES区域的样例:

0 SECTION

2 TABLES 区域的开始

0 TABLE

2

5

70 相同的表组码,

对每一个条目重复

0

5

.

..表条目数据,对每一个表记录重复

0 表结束

0 TABLES区域的结束

符号表记录和符号表都是数据库对象。至少,在AutoCAD的所有主要用法中,这意味着符号表记录对象和符号表对象的组码2后都存在一个句柄。

DIMSTYLE表是系统中唯一使用句柄组码105的记录类型(以前它也使用组码5)。除非在DIMSTYLE表区域中,程序员一般不必留心此例外情况,因为只有在DIMSTYLE表区域中才会发生此例外情况。

符号表组码

下表列出了适用于所有符号表的组码:

适用于所有符号表的组码 组码说明

-1 APP:图元名(每次打开图形时改变)

0 对象类型(TABLE)

2 表名称

5 句柄

100 子类标记(AcDbSymbolTable)

70 表中的最大条目数。

符号表条目的公用组码

下表显示了适用于所有符号表的组码,可选的组码以灰色显示。当用户通过图元类型引用组码表时,应注意表中不仅包括与特定图元关联的组码,也会包括下表列出的组码。

适用于所有符号表条目的组码 组码说明

-1 APP:图元名(每次打开图形时改变)

0 图元类型(表名称)

5 句柄(除DIMSTYLE外的所有表)

105 句柄(只用于DIMSTYLE表)

102 应用程序定义的组码的开始"{application_name"。

例如,"{ACAD_REACTORS" //表示AutoCADPersistentreactors组的开始

//application-defined codes组102中的组码和组值由

//应用程序定义

//102组结束

"}"

100子类标记(AcDbSymbolTableRecord)

下表列出了当Persistentreactors被附着到对象上时输出的组码:

ACAD_REACTORS记录 组码说明

102 "{ACAD_REACTORS"表示AutoCADPersistentreactors组的开始

330 指向所有者词典的软键指针标识符/句柄

102 组结束"}"

下表列出了当扩展词典被附着到对象上时输出的组码:

ACAD_XDICTIONARY记录 组码说明

102 "{ACAD_XDICTIONARY"表示扩展词典组码的开始

360 指向所有者词典的硬键指针标识符/句柄

102 组结束"}"

公用组码70标志-位编码值的说明如下表。其他适用于LAYER、STYLE和VIEW表条目的组码70值则在另外的相关表中说明。

适用于所有表条目的组码70的位编码值

位编码值说明

16如果设置该位,表示表条目依赖于外部参照

32如果此位和位16都被设置,则表示所依赖的外部参照已被成功融入。

64如果设置该位,表示在上一次图形编辑时图形中至少有一个图元引用了该表条目。(此标志一般用于AutoCAD命令。大部分读取DXF

文件的程序将其忽略,对于写DXF文件的程序也无须设置它。)

APPID

下列组码适用于APPID符号表条目:

APPID组码 组码说明

100 子类标记(AcDbRegAppTableRecord)

2 用户提供的应用程序名(用于扩展数据)。此表条目维护所有已注册的应用程序名。

70 标准标志值(请参见符号表条目的公用组码!AL(`XREF_30203_al_u05_c',1)。):

1=如果设置,在执行SAVEASR12时不写入APPID所关联的外部数据。

注意因为在R13和R14的AutoCAD中ASE数据格式相同,

所以ASE应用程序名(ACADASER13)也相同。

BLOCK_RECORD

下列组码适用于BLOCK_RECORD符号表条目。

BLOCK_RECORD组码 组码说明

100 子类标记(AcDbBlockTableRecord)

2 块名称

DIMSTYLE

下列组码适用于DIMSTYLE符号表条目。关于DIMSTYLE符号表条目的详细信息,请参见AutoCAD命令参考中的附录B“系统变量”。

DIMSTYLE组码

组码说明

100子类标记(AcDbDimStyleTableRecord)

2标注样式名

70标准标志值(请参见符号表条目的公用组码!AL(`XREF_30203_al_u05_c',1)。)

3DIMPOST

4DIMAPOST

5DIMBLK

6DIMBLK1

7DIMBLK2

40DIMSCALE

41DIMASZ

42DIMEXO

43DIMDLI

44DIMEXE

45DIMRND

46DIMDLE

47DIMTP

48DIMTM

140DIMTXT

141DIMCEN

142DIMTSZ

143DIMALTF

144DIMLFAC

145DIMTVP

146DIMTFAC

147DIMGAP

71DIMTOL

72DIMLIM

73DIMTIH

74DIMTOH

75DIMSE1

76DIMSE2

77DIMTAD

78DIMZIN

170DIMALT

171DIMALTD

172DIMTOFL

173DIMSAH

174DIMTIX

175DIMSOXD

176DIMDLRD

177DIMCLRE

178DIMCLRT

270DIMUNIT

271DIMDEC

272DIMTDEC

273DIMALTU

274DIMALTTD

340被引用的STYLE对象的句柄(用于代替储存DIMTXSTY值)

275DIMAUNIT

280DIMJUST

281DIMSD1

282DIMSD2

283DIMTOLJ

284DIMTZIN

285DIMALTZ

286DIMALTTZ

287DIMFIT

288DIMUPT

LAYER

下列组码适用于LAYER符号表条目。

LAYER组码 组码说明

100 子类标记(AcDbSymbolTableRecord)

2 图层名

70 标准标志。(清参见符号表条目的公用组码!AL(`XREF_30203_al_u05_c',1)。)

除标准标志外,以下(位编码)值也适用于图层:

1=冻结图层,否则图层解冻;

2=在新视口中缺省设置为冻结图层;

4=锁定图层;

62 颜色数(如果为负则图层被关闭)

6 线型名

在执行DXFOUT时输出依赖于外部参照的图层。对于这些图层,DXF文件中的相关线型名始终为CONTINUOUS。

LTYPE

下列组码适用于LTYPE符号表条目。

LTYPE组码 组码说明

100 子类标记(AcDbLinetypeTableRecord)

2 线型名称。

70 标准标志(位编码值)。(请参见符号表条目的公用组码!AL(`XREF_30203_al_u05_c',1)。)

3 线型的描述文字。

72 对齐方式码;始终为65(A的ASCII码)。

73 线型元素数目。

40 图案总长度。

49 虚线、点或空间的长度(每个元素一个条目)。

74 复杂线型元素类型(每个元素一个条目):0=简单的;2=内嵌文字字符串;4=内嵌形;

75 复杂形的组码(如果组码74>0,每个元素一个条目)如果组码74=2,则值为1。

340 STYLE对象指针(如果组码74>0,每个元素一个条目)。

46 S=比例值(可选),可存在多个这样的条目。

50 R=旋转值(可选),可存在多个这样的条目。

44 X=x偏移值(可选),可存在多个这样的条目。

45 Y=y偏移值(可选),可存在多个这样的条目。

9 文字字符串(如果组码74=2,每个元素一个条目)。

执行函数tblsearch或tblnext时,并不返回组码74、75、340、46、50、44、45和9的值,因此用户需要使用函数tblobjname来获取这些组码的值。

STYLE

下列组码适用于STYLE符号表条目。

STYLE组码 组码说明

100 子类标记(AcDbTextStyleTableRecord)

2 样式名称

70

40

41

50

71

42

3

4

STYLE表条目也可用于记录命令LOAD所需要的形文件。此时组码70的第一位(1)被设置且只有组码3(形文件名)有意义(但仍输出所有其他组码)。

UCS

下列组码适用于UCS符号表条目。

UCS组码

组码说明

100子类标记(AcDbUCSTableRecord)

2UCS名称

70标准标志值

10原点(用WCS表示)。DXF:X值;APP:三维点

20,30DXF:原点坐标的Y和Z值(用WCS表示)

11X轴方向(用WCS表示)。DXF:X值;APP:三维矢量

21,31DXF:X轴方向的Y和Z值(用WCS表示)

12Y轴方向(用WCS表示)。DXF:Y值;APP:三维矢量

22,32DXF:Y轴方向的Y和Z值(用WCS表示)

VIEW

下列组码适用于VIEW符号表条目。

VIEW组码

组码说明

100子类标记(AcDbViewTableRecord)

2视图名

70标准标志值(位编码值)

1=如果设置,则为图纸空间视图。

40视图高度(用DCS表示)

10视图中点(用DCS表示)。DXF:X值;APP:二维点

20DXF:视图中点的Y值(用DCS表示)

41视图宽度(用DCS表示)

11以目标为起点的视图方向(用WCS表示):X值;APP:三维矢量

21,31DXF:以目标为起点的视图方向的Y和Z值(用WCS表示)

12目标点(用WCS表示)。DXF:X值;APP:三维点

22,32DXF:目标点坐标的Y和Z值(用WCS表示)

42镜头长度

43前剪裁平面(与目标点的偏移)

44后剪裁平面(与目标点的偏移)

50扭曲角

71视图模式(请参见VIEWMODE系统变量)

VPORT

下列组码适用于VPORT符号表条目。

标准标志值(请参见符号表条目的公用组码!AL(`XREF_30203_al_u05_c',1)。):

1=如果设置,此条目描述一个形;4=垂直文本;

固定文字高度;如果高度不固定则值为0。

宽度因子

倾斜角

文字生成标志:2=文字反向(X轴方向镜像)4=文字倒置(Y轴方向镜像)

最后使用的高度

主字体文件名

大字体文件名;如果没有则为空

VPORT组码

组码说明

100子类标记(AcDbViewportTableRecord)

2视口名

70标准标记值(请参见符号表条目的公用组码!AL(`XREF_30203_al_u05_c',1)。)

10视口左下角点。:X值;APP:二维点

20DXF:视口左下角点坐标的Y值

11视口右上角点。:X值;APP:二维点

21DXF:视口右上角点坐标的Y值

12视图中点(用DCS表示)。DXF:X值;APP:二维点

22DXF:视图中点坐标的Y值(用DCS表示)

13捕捉基点。DXF:X值;APP:二维点

23DXF:捕捉基点坐标的Y值

14捕捉间距的X和Y值。DXF:X值;APP:二维点

24DXF:捕捉间距X和Y值中的Y值。

15栅格间距的X和Y值。DXF:X值;APP:二维点

25DXF:栅格间距X和Y值中的Y值

16以目标点为起点的视图方向(用WCS表示):X值;APP:三维点

26,36DXF:以目标点为起点的视图方向的Y和Z值(用WCS表示)

17视图目标点(用WCS表示)。DXF:X值;APP:三维点

27,37DXF:视图目标点坐标的Y和Z值(用WCS表示)

40视图高度

41视口宽高比

42镜头长度

43前剪裁平面(与目标点的偏移)

44后剪裁平面(与目标点的偏移)

50捕捉旋转角

51视图扭曲角

68APP:状态字段(不保存在DXF中)

69APP:ID(不保存在DXF中)

71视图模式(请参见VIEWMODE系统变量)

72圆缩放百分比

73快速缩放设置

74UCSICON设置

75捕捉状态:开/关

76栅格状态:开/关

77捕捉样式

78捕捉ISOPAIR

VPORT表和其他表不同的是,它可以包含多个同名条目(表示一个多视口配置)。所有对应于活动视口配置的条目都具有*ACTIVE名称,其中第一个描述了当前视口。

CLASSES区域

本节描述的组码只出现在DXF文件中。

CLASSES区域存储了应用程序定义的类的信息,这些类的实例将会出现在数据库的BLOCKS、ENTITIES和OBJECTS

区域中。假定类定义在类的层次结构中是固定不变的。区域中的所有字段都是必需的。

下面是一个DXF文件中CLASSES区域的样例:

0 SECTION

2 CLASSES区域的开始

0

1

2

3

90

对每个条目重复

0CLASSES区域的结束

下表列出了CLASSES区域中每个条目所包含的组码:

CLASSES区域组码

组码说明

0DXF记录类名。此名称必须唯一。指明BLOCKS、ENTITIES和OBJECTS区域的开始,如果两个对象类型声明了同名的DXF

类名,AutoCAD会给它们加上不同的数字后缀,以使图形中的DXF类名唯一。

1C++类名。用于绑定定义对象类行为的软件,此名称唯一。值得注意的是,同一个C++类在不同的图形中的DXF名可能稍有不同。

2应用程序名。如果当前未加载本区域中列出的类定义,则此名称将显示在“警告”框中。

90类版本号。设置为最后一次存储该类实例时所加载类的版本号。

280“是代理”标志。如果此DXF文件创建时没有加载类,设置为1;否则设置为0。

281“是图元”标志。如果此类是从AcDbEntity类继承下来的且其实例可出现在BLOCKS或ENTITIES区域中,它设置为

1;如果为0,则其实例只能出现在OBJECTS区域中。

BLOCKS区域

本节描述的组码既出现在DXF文件中又被应用程序使用。对图形中每个块引用,在块区域中都有一个条目与之对应。

如不作特殊说明,本节中所出现的组码都可以同时应用于DXF文件、AutoLISP应用程序和ARX应用程序。当应用程序中的组码描述与DXF

文件中的组码描述不同(或只适用于其中之一)时,则在说明前有如下提示:

APP应用程序特定说明

DXF文件特定说明

如果组码描述对DXF文件和应用程序都适用,那么没有提示;否则将存在适当的提示。可选的组码以灰色显示。

DXF文件中的块

DXF文件中的BLOCKS区域包括所有的块定义,其中包含组成(图形中使用的)块(包括命令HATCH和关联标注生成的无名块)的图元。BLOCKS

区域中的图元格式与ENTITIES区域中的一样,且此区域中的所有图元都出现在BLOCK和ENDBLK图元之间。BLOCK和ENDBLK

图元只出现在BLOCKS区域中。虽然块定义可以包含插入图元,但块定义不允许被嵌套(即BLOCK和ENDBLK图元之间不允许出现另一对BLOCK和

ENDBLK图元)。

通常外部参照将作为块定义写入DXF文件中,除非文件中已经包含了指定该外部参照的路径和文件名的字符串(组码1)。

在每个块定义中,紧接着BLOCK记录出现的是块句柄和其他外部数据及persistentreactors,此句柄包含了该BLOCK

记录所储存的特定信息。因此每个块定义有如下记录次序:

下面是一个DXF文件中的BLOCKS区域的例子:

0

2BLOCKS区域的开始

0

5

8

2

70

10

20

30

3

1

开始每个块条目

(一个块图元定义)

0

...块中每个图元定义均对应一个条目

0

5

每个块条目的结束

(ENDBLK图元定义)

0BLOCKS区域的结束

BLOCK

下列组码适用于块图元。

Block组码

组码说明

0图元类型(BLOCK)

5句柄

102应用程序定义的组的开始"{application_name",

例如,"{ACAD_REACTORS"表示AutoCADPersistentreactors组的开始application-definedcodes组102中的组码和组值由应用程序定义102组结束"}"

100子类标记(AcDbEntity)

8图层名

100子类标记(AcDbBlockBegin)

2块名称

70“块类型”标志(位编码值,可被组合):

1=这是一个由图案填充、关联标注、其他内部操作或应用程序生成的无名块;

2=此块具有属性定义;

4=此块是一个外部参照(xref);

8=此块是一个外部参照覆盖;

16=此块依赖于外部参照;

32=是一个融入的外部参照或依赖于外部参照(输入时忽略之);

64=此定义被外部参照引用(输入时忽略之);

10基点。DXF:X值;APP:三维点

20,30DXF:基点坐标的Y和Z值

3块名称

1外部参照路径名(可选,只有在块是一个外部参照时存在)

创建块定义后,原先有效的UCS变为适合于块定义中所有图元的WCS。将移动这些图元的新原点以匹配块定义的基点,也将平移所有图元数据以适合新的WCS。

*MODEL_SPACE和*PAPER_SPACE块定义

现在,在BLOCKS区域中始终有两个额外的空定义,它们的标题分别为*MODEL_SPACE和*PAPER_SPACE。这样实际上是将模型空间和图纸空间视为内部块定义。考虑到兼容性,这些定义包含的图元也会出现在ENTITIES区域中。

模型空间和图纸空间图元分离

由于改进了内部组织机构,模型空间和图纸空间之间的交错将不再发生,而是先输出图纸空间图元,再输出模型空间图元。区分这些图元的标志为组码67。

ENDBLK

下列组码适用于ENDBLK对象

Endblk组码

组码说明

0图元类型(ENDBLK)

5句柄

102应用程序定义的组的开始"{application_name"。

例如,"{ACAD_REACTORS"表示AutoCADPersistentreactors组的开始

application-definedcodes组102中的组码和组值由应用程序定义

102组结束,"}"

100子类标记(AcDbBlockEnd)

OBJECTS区域

此节中的组码适用于非图形对象。这些出现在DXF文件的OBJECTS区域中的组码被图元定义表中的AutoLISP和ARX应用程序使用。

如不作特殊说明,本节中所出现的组码都可以应用于DXF文件、AutoLISP应用程序和ARX应用程序。当应用程序中的组码描述与DXF

文件中的组码描述不同(或只适用于其中之一)时,则在说明前有如下提示:

APP应用程序特定说明

DXFDXF文件特定说明

如果DXF文件中的组码描述与应用程序中的相同,那么没有提示,否则将存在适当的提示。可选的组码以灰色显示。

除了没有图形的或几何的意义外,对象与图元基本类似。所有那些非图元的,符号表记录的或符号表的对象都存储在此区域中。此区域通过所有关系描绘了一个具有对象的拓扑次序的同类堆,根据此关系,所有者始终出现在它们的所有对象的前面。

对象所有关系

出现在OBJECTS

区域中的大多数对象的根所有者被称为对象词典,所以始终只有第一对象出现在此区域中。不被对象词典所有的对象归其他图元、对象或符号表条目所有。此区域中的对象可以被

AutoCAD或被有权使用ARXAPI的应用对象定义。应用程序定义对象类型的DXF名称始终与一个DXF文件的CLASS

区域中的类名称联合在一起,否则对象记录不能被加进将要解释它的应用程序中。

当使用其他词典时,命名对象词典记录由条目名称对和参照关联对象的硬键所有关系指针独立组成。

为避免对象间的名称冲突,开发者应始终使用已注册的这些图元的开发前缀。

DXF文件中的对象组码

下面是DXF文件的对象区域的例子:

0

2OBJECTS区域的开始

0

5

命名对象词典的开始(根词典对象)

3

为每个条目重复

0

.

.

.对象数据组

0OBJECTS区域的结束

公用对象组码

下表显示的组码适用于所有实际的非图形图元(对象)。当用户通过图元类型引用组码表时,应注意表中不仅列出与特定图元关联的组码,也会列出下表所显示的组码。只当图元具有特性的非缺省值时,一些公用对象组码才被包括到图元中。当组码被忽略时,它的缺省值将出现在输入文件(当使用

DXFIN时)的第三列上,如果组码值等于缺省值,在输出(使用DXFOUT)时它将被忽略。

公用对象组码

组码说明

0对象类型

5句柄

102应用程序定义组码的开始"{application_name"。例如,"{ACAD_REACTORS"表示AutoCAD

Persistentreactors组的开始

application-definedcodes应用程序定义的组102中的组码和组值

102组的结束,"}"

如果persistentreactors已被附着到对象上,则下表显示的组码将被输出。

ACAD_REACTORS记录

组码说明

102"{ACAD_REACTORS"表示AutoCADPpersistentreactors组的开始

330所有着词典的软键指针标识符/句柄

102组的结束,"}"

如果扩展词典已被附着到对象上,则下表显示的组码将被输出。

ACAD_XDICTIONARY记录

组码说明

102"{ACAD_XDICTIONARY"表示扩展词典组的开始

360所有着词典的硬键指针标识符/句柄

102组的结束,"}"

ACAD_PROXY_OBJECT

下列组码适用于ACAD_PROXY_OBJECT对象。

Acad_proxy_object组码

组码说明

100DXF:子类标记(AcDbProxyObject)

90DXF:代理对象类ID(始终为499)

91DXF:应用程序对象类ID。类ID由CLASSES区域中的类的次序决定。第一个类的ID为500,下一个为501,依此类推。

93DXF:以位表示的对象数据的大小

310DXF:二进制对象数据(可在多个条目中出现)

330or340or350or360DXF:对象ID(可在多个条目中出现)

94DXF:0(表示对象ID区域的结束)

字段92不用于AcDbProxyObject。此类的对象没有图形。

DICTIONARY

下列组码由词典对象使用。

词典组码

组码说明

100子类标记(AcDbDictionary)

3条目名称(适用于每个条目)

350条目对象的句柄(适用于每个条目)

在词典中AutoCAD将诸如多线样式和组定义之类的条目作为对象来维护。下节描述在词典中被维护的AutoCAD

对象组码。但如果合适,其他应用程序可自由地创建和使用它们自己的词典。注意:在AutoCAD应用程序使用时,应保留前缀"ACAD_"。

DICTIONARYVAR

下列组码由DICTIONARYVAR对象使用。

DICTIONARYVAR组码

组码说明

0对象名称(DICTIONARYVAR)

5句柄

102persistentreactors组的开始;始终为"{ACAD_REACTORS"

330所有者词典的软键指针标识符/句柄(ACDBVARIABLEDICTIONARY)。

102persistentreactors组的结束;始终为"}"

100子类标记(词典变量)

280对象概要数(通常设置为0)

1变量值

在不需要向DXFHEADER区域中添加条目时,DICTIONARYVAR对象被AutoCAD用来作为在数据库中存储命名值的方法以达到

setvar/getvar的目的。通常作为DICTIONARYVAR

对象存储的系统变量有:DIMADEC、DIMDSEP、INDEXCTL、PROJECTNAME和XCLIPFRAME。

GROUP

下列组码由GROUP对象使用。

GROUP组码

组码说明

0对象名称(GROUP)

5句柄

102persistentreactors组的开始,始终为"{ACAD_REACTORS"(persistentreactors

组出现在除主词典之外的所有词典中)

330所有者词典的软键指针标识符/句柄。对于GROUP对象,此码始终是命名对象词典的ACAD_GROUP条目。

102persistentreactors组的结束,始终为"}"。

100子类标记(AcDbGroup)

300(对象)组说明

70“未命名”标志:1=未命名的;0=命名的;

71可选择性标志:1=可选择的;0=不可选择;

340(对象)组中图元的句柄(适用于每个对象的条目)

IDBUFFER

下列组码由IDBUFFER对象使用。

IDBUFFER组码

组码说明

0对象名称(IDBUFFER)

5句柄

102persistentreactors组的开始,始终为"{ACAD_REACTORS"。

330所有者词典的软键指针标识符/句柄。

102persistentreactors组的结束,始终为"}"。

100子类标记(AcDbIdBuffer)

330参照图元的软键指针(可以存在多条目)。

IDBUFFER对象是对象参照的表的使用使用工具对象。

IMAGEDEF

下列组码有IMAGEDEF对象使用。

IMAGEDEF组码

组码说明

0对象名称(IMAGEDEF)

5句柄

102persistentreactors组的开始,始终为"{ACAD_REACTORS"。

330ACAD_IMAGE_DICT词典的软键指针的标识符/句柄。

330IMAGEDEF_REACTOR对象的软键指针的标识符/句柄(多条目;适合于每个实例的条目)。

102persistentreactors组的结束,始终为"}"。

100子类标记(AcDbRasterImageDef)

90类版本。0=R14版本

1图像的文件名称

10以像素点表示的图像大小。DXF:U值;APP:二维点(U和V值)

20DXF:以像素点表示的图像大小的V值

11AutoCAD中一个像素的缺省大小。:U值;APP:二维点(U和V值)。

12DXF:像素大小的V值。

280“图像被加载”标志:0=为加载的;1=加载的;

281分辨率单位:0=无单位;2=厘米;5=英寸;

IMAGEDEF_REACTOR

下列组码由IMAGEDEF_REACTOR对象使用。

IMAGEDEF_REACTOR组码

组码说明

0对象名称(IMAGEDEF_REACTOR)

5句柄

100子类标记(AcDbRasterImageDefReactor)

90类版本号。2=R14版本

330适于关联图像对象的对象ID。

LAYER_INDEX

下列组码由LAYER_INDEX对象使用。

LAYER_INDEX组码

组码说明

0对象名称(LAYER_INDEX)

5句柄

102persistentreactors组的开始,始终为"{ACAD_REACTORS"。

330所有者词典的软键指针的标识符/句柄。

102persistentreactors组的结束,始终为"}"。

100子类标记(AcDbIndex)

40时间标志(Julian日期)

100子类标记(AcDbLayerIndex)

8图层名称(可以存在多条目)。

360IDBUFFER的硬键从属参照(可以存在多条目)

90在IDBUFFER中的条目数(可以存在多条目)

MLINESTYLE

下列组码由MLINESTYLE对象使用。

MLINESTYLE组码

组码说明

0对象名称(MLINESTYLE)

5句柄

102persistentreactors组的开始,始终为"{ACAD_REACTORS"(persistentreactors

组出现在除主词典以外的所有词典中)

330所有者词典的软键指针的标识符/句柄。对于MLINESTYLE对象,此组码始终为命名对象词典中的ACAD_MLINESTYLE条目。

102persistentreactors组的结束,始终为"}"。

100子类标记(AcDbMlineStyle)

2多线样式名称

70标志(位编码):

1=打开填充;

2=显示斜接;

16=开始矩形结束(直线)封口;

32=开始内弧封口;

64=开始圆(外弧)封口;

256=结束矩形(直线)封口;

512=结束内弧封口;

1024=结束圆(外弧)封口;

3样式说明(字符串,最大值为255字符)

62填充颜色(整型,缺省值=256)。可以存在多条目,适于每个元素的一个条目。

51起始角度(实型,缺省值为90度)

52结束角度(实型,缺省值为90度)

71元素的数目

49元素偏移(实型,无缺省值)。可以存在多条目,且为适于每个元素的一个条目。

62元素颜色(整型,缺省值=0)。可以存在多条目,且为适于每个元素的一个条目。

6元素线型(字符串,缺省值=BYLAYER)。可以存在多条目,且为适于每个元素的一个条目。

多线图元和多线样式对象中的组码2是多余的字段。虽然可以安全的读取这些组码及其关联值,但这些组码在任何情况下都不能被修改。这些字段修改如下:

多线

在相同对象中的组码340用于指定严格意义上的MLINESTYLE对象。

多线样式

MLINESTYLE词典中的组码3位于具有当前MLINESTYLE的图元名或句柄的组码350之前。

OBJECT_PTR

下列组码由OBJECT_PTR对象使用。

OBJECT_PTR组码

组码说明

0对象名称(OBJECT_PTR)

5句柄

102persistentreactors组的开始,始终为"{ACAD_REACTORS"。

330所有者词典的软键指针的标识符/句柄。

102persistentreactors组的结束,始终为"}"。

1001开始ASE外部数据(ACADASER13)

RASTERVARIABLES

下列组码由RASTERVARIABLES对象使用。

RASTERVARIABLES组码

组码说明

0对象名称(RASTERVARIABLES)

5句柄

102persistentreactors组的开始,始终为"{ACAD_REACTORS"。

330所有者词典的软键指针标识符/句柄。对于RASTERVARIABLES对象,此组码始终为命名对象词典中的ACAD_IMAGE_VARS

条目。

102persistentreactors组的结束,始终为"}"。

100子类标记(AcDbRasterVariables)

90类版本。0=R14

70“显示图像边框”标志:0=无边框;1=显示边框;

71图像显示质量(只用于屏幕):0=草图;1=高分辨率;

72插入图像的AutoCAD单位。此AutoCAD单位适用于关联到分辨率的插入和缩放图像操作:

0=无;1=毫米;2=厘米;3=米;4=公里;

5=英寸;6=英尺;7=码;8=英里;

SPATIAL_INDEX

下列组码由SPATIAL_INDEX使用。

SPATIAL_INDEX组码

组码说明

0对象名称(SPATIAL_INDEX)

5句柄

102persistentreactors组的开始,始终为"{ACAD_REACTORS"。

330所有者词典的软键指针标识符/句柄。

102persistentreactors组的结束,始终为"}"。

100子类标记(AcDbIndex)

40时间标志(Julian日期)

100子类标记(AcDbSpatialIndex)

在写入DXF文件时,SPATIAL_INDEX始终为空,所以此对象可被忽略。

SPATIAL_FILTER

下列组码由SPATIAL_FILTER对象使用。

SPATIAL_FILTER组码

组码说明

0对象名称(SPATIAL_FILTER)

5句柄

102persistentreactors组的开始,始终为"{ACAD_REACTORS"。

330所有者词典的软键指针标识符/句柄(SPATIAL)。

102persistentreactors组的结束,始终为"}"。

100子类标记(AcDbFilter)

100子类标记(AcDbSpatialFilter)

70剪裁边界上的点数。2=矩形剪裁边界(左下角和右上角)

大于2=多线剪裁边界

10剪裁边界定义点(在OCS中)(始终为2个或更多),由1的外部参照比例决定。DXF:X值;APP:二维点;

20DXF:剪裁边界定义点的Y值(始终为2个或更多)。

210包含剪裁边界的平面的法向:DXF:X值;APP:三维矢量。

220,230DXF:拉伸方向的Y和Z值。

11用于定义剪裁边界的局部坐标系统的原点。:X值;APP:三维点;

21,31DXF:用于定义剪裁边界的局部坐标系统的原点的Y和Z值。

71启用剪裁边界显示标志:0=禁用的;1=启用的;

72前剪裁平面标志:0=无;1=有;

40前剪裁平面距离(如果组码72=1)

73后剪裁平面标志:0=无;1=有;

41后剪裁平面距离(如果组码73=1)

40以主列次序写出的4x3变换矩阵。此矩阵是初始块引用(插入图元)变换的转置。当块引用重生成时,初始块引用变换适用于块中的所有图元(始终为12

个条目)。

40以主列次序写出的4x3变换矩阵将点转换成剪裁边界的坐标系统(始终为12个条目)。

SORTENTSTABLE

下列组码由SORTENTSTABLE对象使用。

SORTENTSTABLE组码

组码说明

0对象名称(SORTENTSTABLE)

5句柄

102persistentreactors组的开始,始终为"{ACAD_REACTORS"。

330所有者词典的软键指针标识符/句柄(ACAD_SORTENTS)。

102persistentreactors组的结束,始终为"}"。

100子类标记(AcDbSortentsTable)

330所有者的软键指针标识符/句柄(通常只是*MODEL_SPACE或*PAPER_SPACE块)

331图元的软键指针标识符/句柄(可以存在零个或更多的条目)。

5排序句柄(可以存在零个或更多的条目)。

如果设置SORTENTS重生成标志(位编码值16),AutoCAD将以上升句柄次序重生成图元。当使用命令DRAWORDER时,一个

SORTENTSTABLE对象将以ACAD_SORTENTS的名称被附着到*MODEL_SPACE或*PAPER_SPACE

块的扩展词典中。此词典涉及的SORTENTSTABLE对象通过各自的图元关联一个不同的句柄,这个句柄重新定义了图元的重生成次序。

XRECORD

下列组码是所有外部记录公用的组码。

外部记录组码

组码说明

100子类标记(AcDbXrecord)

1-369(except5and105)这些值可以被应用程序以任何方式使用。

外部记录可以用来存储和处理任意的数据。它们由具有“普通对象”组(即“非外部数据”组码)的DXF组码组成,支持范围从1到

369。此对象的概念与外部数据的有些相似,但没有大小或次序的限制。

原则上从版本R13c0到R13c3的AutoCAD都能使用为外部数据设计的工作方式,但如果从R13c4版本前的AutoCAD

文件中读取外部记录对象,此对象会消失。

ENTITIES区域

此节介绍的组码适用于图形对象。这些组码既出现在DXF文件的ENTITIES区域中,又在图元定义表中被AutoLISP和ARX

应用程序使用。

如不作特殊说明,本节中所出现的组码都可以应用于DXF文件、AutoLISP应用程序和ARX应用程序。当应用程序中的组码描述与DXF

文件中的组码描述不同(或只适用于其中之一)时,则在说明前有如下提示:

APP用于应用程序的说明

DXF用于DXF文件的说明

如果组码描述对DXF文件和应用程序都适用,那么没有提示,否则将存在适当的提示。可选的组码以灰色显示。

图形对象的公用组码

下表列出的组码适用于所有图形对象。其中某些组码只有在其对应属性不是缺省值的图元中出现。当用户通过图元类型引用组码表时,应注意表中不仅包括与特定图元相关的组码,还会包括下表所列的组码。

如果忽略了某组码,在(使用DXFIN)输入DXF文件时将使用(出现在第三列的)它的缺省值;如果某组码的值为缺省值,则在(使用

DXFOUT)输出时将忽略它。

适用于所有图形对象的组码

组码说明如果被忽略,

则缺省值为...

-1APP:图元名(在每次打开图形时改变)不能忽略

0图元类型不能忽略

5句柄不能忽略

102应用程序定义的组的开始"{application_name"。

例如,"{ACAD_REACTORS"表示AutoCADPersistentreactors组的开始无缺省值

application-definedcodes组102中的组码和组值由应用程序定义无缺省值

102组结束,"}"无缺省值

100子类标记(AcDbEntity)不被忽略

67不赋值或值为0时表示图元在模型空间;

1表示图元在图纸空间(可选)0

8图层名不能忽略

6线型名(如果不为BYLAYER则存在)

如果为BYBLOCK表示某不定线型

(可选)BYLAYER

62颜色代码(如果不为BYLAYER则存在)

表示BYBLOCK(不定)颜色;

表示BYLAYER;

如果为负表示图层被关闭(可选);BYLAYER

48线型比例(可选)1.0

60对象可见性(可选):

0=可见;1=不可见。0

如果Persistentreactors被附着到对象上,将输出下表所列的组码。

ACAD_REACTORS记录

组码说明

102"{ACAD_REACTORS"表示AutoCADPersistentreactors组的开始

330指向所有者词典的软键指针标识符/句柄

102组结束,"}"

如果扩展词典被附着到对象上,将输出下表所列的组码。

ACAD_XDICTIONARY记录

组码说明

102"{ACAD_XDICTIONARY"表示扩展词典组码的开始

360指向所有者词典的硬键指针标识符/句柄

102组码的结束,"}"

注意尽管组码通常按照这些DXF组码表所列的顺序出现,但请不要使编写的程序依赖于这种顺序,因为在某些条件下或在后续版本的AutoCAD

中,可能会改变这种顺序。可以利用分支或表机制来处理控制图元的组码,这样即使组码次序不定,也能正确地处理每组组码。

3DFACE

下列组码适用于三维面图元。

三维面组码

组码说明

100子类标记(AcDbFace)

10第一角点(用WCS表示)。DXF:X值;APP:三维点

20,30DXF:第一角点坐标的Y和Z值(用WCS表示)

11第二角点(用WCS表示)。DXF:X值;APP:三维点

21,31DXF:第二角点坐标的Y和Z值(用WCS表示)

12第三角点(用WCS表示)。DXF:X值;APP:三维点

22,32DXF:第三角点坐标的Y和Z值(用WCS表示)

13第四角点(用WCS表示)。如果只输入三个角点值,则第四角点与第三角点相同。:X值;APP:三维点

23,33DXF:第四角点坐标的Y和Z值(用WCS表示)

70不可见边标志(可选,缺省=0):

1=第一边不可见;

2=第二边不可见;

4=第三边不可见;

8=第四边不可见;

3DSOLID

下列组码适用于三维实体图元。

三维实体组码

组码说明

100子类标记(AcDbModelerGeometry)

70建模格式版本号(当前值=1)

1私有数据(可有多行,每行少于255个字符)

3私有数据的附加行(如果前面组码1的字符串有多于255个字符)

ACAD_PROXY_ENTITY

下面的组码适用于代理图元。

Acad_proxy_entity组码

组码说明

100DXF:AcDbProxyEntity

90DXF:代理图元类ID

91DXF:应用程序图元类ID。类ID由CLASSES区域中类的次序决定。第一个类的ID为500,第二个类的ID为

501,依此类推。

92DXF:字节图形数据的大小

310DXF:二进制图形数据(可出现多个条目)

93DXF:位图元数据的大小

310DXF:二进制图元数据(可出现多个条目)

330or340or350or360DXF:一个对象ID(可出现多个条目)

94DXF:0(表示对象ID类结束)

ARC

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

圆弧组码

组码说明

100子类标记(AcDbCircle)

39厚度(可选,缺省值=0)

10圆心(用OCS表示)。DXF:X值;APP:三维点

20,30DXF:圆心坐标的Y和Z值(用OCS表示)

40半径

100子类标记(AcDbArc)

50起始角

51终止角

210延伸方向(可选,缺省值=0,0,1)

DXF:X值;APP:三维矢量

220,230DXF:延伸方向的Y和Z值

ATTDEF

下列组码适用于属性定义图元。

属性定义组码

组码说明

100子类标记(AcDbText)

39厚度(可选,缺省值=0)

10第一对齐点(用OCS表示)。:X值;APP:三维点

20,30DXF:文本开始点坐标的Y和Z值(用OCS表示)

40文字高度

1缺省值(字符串)

100子类标记(AcDbAttributeDefinition)

50文字旋转(可选,缺省值=0)

41关于X的比例因子(宽度)(可选,缺省值=1)

当文本使用“布满”类型时,将会调整此值

51倾斜角(可选,缺省值=0)

7文字样式名(可选,缺省值=STANDARD)

71文字生成标志(可选,缺省值=0)请参见TEXT

72水平文字对正类型(可选,缺省值=0)请参见TEXT

11第二对齐点(用OCS表示):X值;APP:三维点

只在组码72或74的值非零时才有意义

21,31DXF:第二对齐点坐标的Y和Z值(用OCS表示)

210延伸方向(可选,缺省值=0,0,1):X值;APP:三维矢量

220,230DXF:延伸方向的Y和Z值

100子类标记(AcDbAttributeDefinition)

3提示字符串

2标签字符串

70属性标志:

1=属性不可见(不出现);

2=这是一个常数属性;

4=在输出此属性时需要验证;

8=属性预置(插入时无提示);

73字段长度(可选,缺省值=0)(当前未使用)

74垂直文字对正类型(可选,缺省值=0)请参见TEXT中的组码73

如果组码72和(或)74的值非零,则将忽略第一对齐点的值,AutoCAD

根据第二对齐点和文字字符串的长度和高度(在使用了文本样式之后)计算新值;如果没有组码72和74的值或其值为零,则第二对齐点无意义。

ATTRIB

下列组码适用于属性图元。

属性组码

组码说明

100子类标记(AcDbText)

39厚度(可选,缺省值=0)

10文字起点(用OCS表示)。DXF:X值;APP:三维点

20,30DXF:文本起点坐标的Y和Z值(用OCS表示)

40文字高度

1缺省值(字符串)

100子类标记(AcDbAttribute)

2属性标记(字符串)

70属性标志:

1=属性不可见(不出现);

2=这是一个常数属性;

4=在输出此属性时需要验证;

8=属性预置(插入时无提示);

73字段长度(可选,缺省值=0)(当前未使用)

50文字旋转(可选,缺省值=0)

41关于X比例因子(宽度)(可选,缺省值=1)

当文字使用“布满”类型时,将会调整此值

51倾斜角(可选,缺省值=0)

7文字样式名(可选,缺省值=STANDARD)

71文字生成标志(可选,缺省值=0)请参见TEXT

72水平文字对正类型(可选,缺省值=0)请参见TEXT.

74垂直文字对正类型(可选,缺省值=0)请参见TEXT中的组码73

11对齐点(用OCS表示)DXF:X值;APP:三维点

只在组码72或74存在且非零时存在

21,31DXF:对齐点坐标的Y和Z值(用OCS表示)

210拉伸方向。只在图元的延伸方向不平行于WCS的Z轴时存在(可选,缺省值=0,0,1)

DXF:X值;APP:三维矢量

220,230DXF:拉伸方向的Y和Z值

如果组码72和(或)74的值非零,将忽略文本插入点的值,AutoCAD

根据文本对齐点和文字字符串长度(在应用了文本样式之后)计算新值;如果没有组码72和74的值或其值为零,则忽略文字对齐点,AutoCAD

根据文字插入点和文字字符串的长度(在申请了文本样式之后)重新计算新值。

BODY

下列组码适用于体图元。

体组码

组码说明

100子类标记(AcDbModelerGeometry)

70建模格式版本号(当前值=1)

1私有数据(可有多行,每行少于255个字符)

3私有数据的附加行(如果前面组码1的字符串多于255个字符)

CIRCLE

下列组码适用于圆图元。

圆组码

组码说明

100子类标记(AcDbCircle)

39厚度(可选,缺省值=0)

10圆心(用OCS表示)。DXF:X值;APP:三维点

20,30DXF:圆心坐标的Y和Z值(用OCS表示)

40半径

210拉伸方向(可选,缺省值=0,0,1)

DXF:X值;APP:三维矢量

220,230DXF:拉伸方向的Y和Z值

DIMENSION

标注图元定义数据包括适用于所有标注类型的组码,以及该类标注所特有的组码。

公用标注组码

下列组码适用于所有标注类型。

公用标注组码

组码说明

100子类标记(AcDbDimension)

2包含组成标注的图元的块名称

10标注点(用WCS表示)。DXF:X值;APP:三维点。

20,30DXF:标注点坐标的Y和Z值(用WCS表示)

11标注文本的中点(用OCS表示)。DXF:X值;APP:三维点。

21,31标注文本的中点坐标的Y和Z值(用OCS表示)

70标注类型:

整数值0-6表示标注类型。

位值32、64和128则添加到整数值后(在R13和更高版本中设置值32)。

0=转角标注、水平标注或垂直标注;1=对齐标注;

2=角度标注;3=直径标注;4=半径标注;

5=角度三点标注;6=坐标标注;

32=表示块引用(组码2)只被此标注引用;

64=坐标标注类型,此位值(位7)只与类型6一起使用,如果设置,坐标类型为X型,否则为Y型;

128=如果标注文本位于用户指定的位置而不是缺省位置,此位值(位7)将添加到其他的组码70的值中。

1用户明确地输入了标注文字(可选,缺省值为测量结果)

如果为空或"<>",以文字方式标注测量结果;

如果为""(一个空格),禁止输出文字,其他情况下将作为文字绘制到图形中。

53组码53可选,表示标注文字方向与其缺省方向之间的旋转角度(尺寸线的方向)。

51所有标注类型都有可选组码

51,此组码为标注图元表示了水平方向。它为水平标注、垂直标注及转角线性标注指定了标注文本和尺寸线的方向。组码值为OCSX轴与

UCSX轴间的角度的负值(始终在OCS的XY面中度量该角度)。

210拉伸方向(可选,缺省值=0,0,1):X值;APP:3D矢量

220,230DXF:拉伸方向的Y和Z值

3标注样式名

属于应用程序ID"ACAD"

的扩展数据可以跟随在标注图元之后。这说明任何标注都能替代已被图元使用的标注。请参见标注样式替代!AL(`XREF_62386_al_u05_c',1)。

对于所有的标注类型,下列组码表示三维WCS点:(10,20,30)、(13,23,33)、(14,24,34)和(15,25,

35)。对于所有的标注类型,下列组码表示三维WCS点:(11,21,31)、(12,22,32)和(16,26,36)。

对齐、线性和转角标注组码

下列组码适用于对齐、线性和转角标注。

对齐、线性和转角标注组码

组码说明

100子类标记(AcDbAlignedDimension)

12标注复制的插入点-基线和连续标注(在OCS中)。

DXF:X值;APP:三维点

22,32DXF:标注复制的插入点-基线和连续标注的Y和Z值(在OCS中)。

13线性标注和转角标注的定义点(在WCS中)。:X值;APP:三维点

23,33DXF:线性标注和转角标注的定义点的Y和Z值(在WCS中)。

14线性标注和转角标注的定义点(在WCS中)。:X值;APP:三维点。

24,34DXF:线性标注和转角标注的定义点的Y和Z值(在WCS中)。

点(13,23,33)指定第一尺寸界线的起点,点(14,24,34)指定第二尺寸界线的起点,点(10,20,30)指定尺寸线位置,点

(11,21,31)指定标注文字的中点。

线性标注和转角标注组码

下列组码适用于线性和转角标注。

线性和转角标注组码

组码说明

50转角、水平和垂直标注的角度。

52具有倾斜角度的线性标注类型有可选组码52。当增加线性标注的旋转角(组码50)时,组码52给出延长线的角度。

100子类标记(AcDbRotatedDimension)

径标注和直径标注组码

下列组码适用于半径和直径标注。

半径和直径标注组码

组码说明

100子类标记(AcDbRadialDimension或AcDbDiametricDimension)。

15直径、半径和转角标注的定义点(在WCS中)。:X值;APP:三维点

25,35DXF:直径、半径和转角标注的定义点的Y和Z值(在WCS中)。

40半径和直径标注的引线长度。

点(15,25,35)指定圆/圆弧上的尺寸线的第一点,点(10,20,30)指定尺寸线的第二点,点(11,21,31)指定标注文字的中点。

点(15,25,35)指定圆/圆弧上的尺寸线的第一点,点(10,20,30)指定圆/圆弧的圆心,点(11,21,31)指定标注文字的中点。

度标注组码

下列组码适用于角度标注。

角度标注组码

组码说明

100子类标记(AcDb3PointAngularDimension)

13线性和角度标注的定义点(在WCS中)。DXF:X值;APP:三维点。

23,33DXF:线性和角度标注的定义点的Y和Z值(在WCS值)。

14线性和角度标注的定义点(在WCS中)。DXF:X值;APP:三维点。

24,34DXF:线性和角度标注的定义点的Y和Z值(在WCS值)。

15直径、半径和角度标注的定义点(在WCS中)。:X值;APP:三维点

25,35DXF:直径、半径和角度标注的定义点的Y和Z值(在WCS中)。

16角度标注的标注弧的定义点(在OCS中)。DXF:X值;APP:3D点。

26,36DXF:角度标注的标注弧的定义点的Y和Z值(在OCS中)。

点(13,23,33)和点(14,24,34)指定第一尺寸界线的端点,点(10,20,30)和点(15,25,35)

指定第二尺寸界线的端点,点(16,26,36)指定标注弧线的位置,点(11,21,31)指定标注文字的中点.

点(15,25,35)指定角的顶点,点(13,23,33)和点(14,24,34)指定尺寸界线的端点,点(10,20,30)指定标注弧线的位置,点(11,21,31)指定标注文字的中点。

标标注组码

下列组码适用于坐标标注。

坐标标注组码

组码说明

100子类标记(AcDbOrdinateDimension)

13线性和角度标注的定义点(在WCS中)。DXF:X值;APP:三维点。

23,33DXF:线性和角度标注的定义点的Y和Z值(在WCS中)。

14线性和角度标注的定义点(在WCS中)。DXF:X值;APP:三维点。

24,34DXF:线性和角度标注的定义点的Y和Z值(在WCS中)。

点(13,23,33)指定特征位置,点(14,24,34)指定引线和点,点(11,21,31)指定标注文字的中点,当创建标注时,点

(10,20,30)放置于当前UCS的原点。

注样式替代

标注样式替代可应用于标注、引线和公差图元。任何用于这些图元的替代都以扩展数据的形式存储在图元中。组码1002中的控制字符串包含了被替代标注的变量组码和关联值。下面的例子显示了标注图元的扩展数据中的被替代的变量DIMTOL和DIMCLRE。

(setqdiment(car(entsel)));选择标注图元

(setqelst(entgetdiment'("ACAD")));得到图元定义表

(assoc-3elst);只获得外部数据

代码返回如下:

(-3("ACAD"扩展数据的ACADAPPID部分开始

(1000."DSTYLE")(1002."{")标注样式子部分的开始

(1070.177)(1070.3)DIMCLRE(组码177)替代及关联值(3)

(1070.71)(1070.1)DIMTOL(组码71)替代及关联值(1)

(1002."}")))标注样式子部分和ACAD部分结束

LLIPSE

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

椭圆组码

组码说明

100子类标记(AcDbEllipse)

10圆心(在WCS中)。DXF:X值;APP:三维点

20,30DXF:圆心的Y和Z值(在WCS中)

11长轴的端点(相对于圆心的相对值)。DXF:X值;APP:三维点。

21,31DXF:长轴的端点的Y和Z值,它们是相对于圆心的相对值。

210拉伸方向(可选,缺省值=0,0,1)

DXF:X值;APP:三维点

220,230DXF:拉伸方向的Y和Z值

40长轴与短轴的比例

41起始参数(对于完整椭圆此值为0.0)

42结束参数(对于完整椭圆此值为2pi)

组码41和42为下面等式中的u的起始和结束值。组码11,21,31矢量的大小等于长轴值的1/2,即下面等式中的a值。点

10,20,30是下面等式中的c值。知道了上述数值,即可计算出所需的b值,这样,下列方程式就完整了。

ELLIPSE命令中“参数”选项的说明

ELLIPSE命令中“参数”选项使用下面的方程式来定义一个椭圆弧。

p(u)=c+a*cos(u)+b*sin(u)

当用户为第一轴选定端点且为第二轴选定距离后,变量a、b和c值即被决定。a的值为长轴长度1/2的负值,b的值为短轴长度1/2的负值,c为椭圆的圆心(2-D)。

因为此方程式是一个矢量方程且变量c具有X和Y值,所以它应该写成如下形式:

p(u)=(Cx+a*cos(u))*i+(Cy+a*sin(u))*j

此处

Cx是点c的X值

Cy是点c的Y值

a为-(长轴长度的1/2)

b为-(短轴长度的1/2)

i和j表示X和Y方向上的单位矢量

在AutoCAD中,一旦确定了轴的端点和椭圆弧的起点及终点,那么椭圆也就确定了。

当用户选定了“参数”选项中的起始参数和结束参数后,这些参数值将被带入方程式来求得椭圆的实际的起点和终点。椭圆的其他部分将从起点到终点以逆时针方向绘制。输入的

u值被转换成度数以求得cos(u)和sin(u)。

例如:

轴端点1=0,1

轴端点2=4,1

另一个轴距=2,0

起始参数=270

结束参数=0

将生成起点位于(2,2),终点位于(0,1),以逆时针方向填充的椭圆。

HATCH

下列组码适用于图元填充。

填充组码

组码说明

100子类标记(AcDbHatch)

10标高点(在OCS中)。DXF:X值=0;APP:三维点(X和Y值始终为0,Z表示标高)

20,30DXF:标高点的Y和Z值(在OCS中)。

Y值=0,Z表示标高。

210拉伸方向(可选,缺省值=0,0,1)。

DXF:X值;APP:三维矢量

220,230DXF:拉伸方向的Y和Z值

2填充图案名称

70实体填充标志(实体填充=1;图案填充=0)

71关联填充标志(关联的=1;不关联的=0)

91边界路径(环)的数目

varies边界路径数据。组码91指定重复次数。

75填充样式:

0=填充“奇数”区域(“普通”样式);

1=只填充最外面的区域(“外部”样式);

2=填充整个区域(“忽略”样式);

76填充图案类型

0=用户定义;

1=预定义;

2=自定义

52填充图案角度(只用于图案填充)

41填充图案比例或间距(只用于图案填充)

77填充图案加倍标志(加倍=1,不加倍=0)(只用于图案填充)。

78图案定义线的数目。

varies图案线数据。由组码78指定重复次数。请参见图案数据!AL(`XREF_15719_al_u05_c',1)。

47像素尺寸(可选)

98种子点数目。

10种子点(在OCS中)。DXF:X值;APP:二维点。(多图元)

20DXF:种子点的Y值(在OCS中)。(多图元)

边界路径数据

每个填充对象的边界由路径(或环)定义,该路径由一个或多个线段组成。路径段数据因组成路径的图元的类型而异。每个路径段由它自己的组码集定义。

填充边界路径数据组码

组码说明

92边界路径类型标志(位码)

0=缺省设置;

1=外部的;

2=多段线;

4=导出的

8=文本框;

16=最外部的

varies多段线边界类型数据(只当边界是多段线时)

请参见下面的多段线边界数据表。

93边界路径中的边数(只当边界不是多段线时)

72边类型(只当边界不是多段线时):

1=直线;

2=圆弧;

3=椭圆弧;

4=样条曲线;

varies边类型数据(只当边界不是多段线时)。请参见下面的边界数据表。

97源边界对象的数目。

330源边界对象引用(多图元)。

多段线边界数据组码

组码说明

72有一个凸度标志

73是关闭的标志

93多段线顶点的数目

10顶点位置(在OCS中)。DXF:X值;APP:二维点(多图元)

20DXF:顶点位置的Y值(在OCS中)。(多图元)

42凸度(可选,缺省值=0)

直线边数据组码

组码说明

10起点(在OCS中)。DXF:X值;APP:二维点。

20DXF:起点的Y值(在OCS中)。

11终点(在OCS中)。DXF:X值;APP:二维点。

21DXF:终点的Y值(在OCS中)。

圆弧边数剧组码

组码说明

10圆心(在OCS中)。DXF:X值;APP:二维点

20DXF:圆心的Y值(在OCS中)。

40半径

50起始角度

51结束角度

73是反时针方向标志

椭圆边数据组码

组码说明

10圆心(在OCS中)。DXF:X值;APP:二维点。

20DXF:圆心的Y值(在OCS中)。

11相对于圆心坐标的长轴的端点(在OCS中)。:X值;APP:二维点。

21DXF:长轴端点的Y值(在OCS中)。

40短轴的长度(以长轴长度的百分数表示)。

50起始角度

51结束角度

73是反时针方向标志

样条曲线边数据组码

组码说明

94度数

73有理

74周期性

95结点数

96控制点数

40结点值(多图元)

10中心点(在OCS中)。DXF:X值;APP:二维点

20DXF:中心点的Y值(在OCS中)。

42权值(可选,缺省值=1)

案数据

下列图案数据组码在每个图案定义线是重复的。

填充图案数据组码

组码说明

53图案线角度

43图案线基点,X分量

44图案线基点,Y分量

45图案线偏移,X分量

46图案线偏移,Y分量

79点划长度项目数

49点划长度(多图元)

MAGE

下列组码适用于图像图元。

图像组码

组码说明

100子类标记(AcDbRasterImage)

90类版本

10插入点(在OCS中)。DXF:X值;APP:三维点

20,30DXF:插入点的Y和Z值(在OCS中)。

11单一像素的U-矢量(从插入点开始的沿着图像的视图底边的点)

(在OCS中)。DXF:X值;APP:三维点

21,31DXF:U-矢量的Y和Z值(在OCS中)

12单一像素的V-矢量(从插入点开始的沿着图像的视图左边的点)

(在OCS中)。DXF:X值;APP:三维点

22,32DXF:V-矢量的Y和Z值(在OCS中)

13以像素点表示的图像尺寸。DXF:U值;APP:二维点(U和V值)

23DXF:以像素点表示的图像尺寸的V值

340图像定义对象的固定引用。

70图像显示特性

1=显示图像;

2=显示非正交图像;

4=显示剪贴图像;

8=打开透明状态;

280剪裁状态:0=关;1=开

281亮度值(0-100;缺省值=50)

282对比度值(0-100;缺省值=50)

283褪色值(0-100;缺省值=0)

360Imagedef_reactor对象的固定引用

71剪裁边界类型:1=矩形的;2=多边形的

91剪裁边界的顶点数

14剪裁边界顶点(在OCS中)。DXF:X值;APP:二维点(多图元)

注意:对于矩形剪裁边界类型,必须指定两个对角点。缺省值为(-0.5,-0.5),(图像尺寸的x-0.5,图像尺寸的

y-0.5)。对于多边形剪裁边界类型,必须指定三个或三个以上的顶点。必须依次列出顶点。

24DXF:剪裁边界顶点的Y值(在OCS中)(多图元)

INSERT

下列组码适用于插入(块引用)图元。

插入组码

组码说明

100子类标记(AcDbBlockReference)

66可变的“跟随属性”标志(可选,缺省值=0)。如果跟随属性标志的值为1,其后需要插入一连串的属性图元,到seqend图元终止。

2块名称

10插入点(在OCS中)。DXF:X值;APP:三维点

20,30DXF:插入点的Y和Z值(在OCS中)

41X比例因子(可选,缺省值=1)

42Y比例因子(可选,缺省值=1)

43Z比例因子(可选,缺省值=1)

50旋转角度(可选,缺省值=0)

70列数(可选,缺省值=1)

71行数(可选,缺省值=1)

44列间距(可选,缺省值=0)

45行间距(可选,缺省值=0)

210拉伸方向(可选,缺省值=0,0,1)

DXF:X值;APP:三维矢量

220,230DXF:拉伸方向的Y和Z值

LEADER

下列组码适用于引线图元。

引线组码

组码说明

100子类标记(AcDbLeader)

3标注样式名称

71箭头标志:0=禁用;1=可用

72引线路径类型:0=直线段;1=样条曲线

73引线创建标志(缺省值=3):

0=与文本注释一起创建引线;

1=与公差注释一起创建引线;

2=与块引用注释一起创建引线;

3=创建引线,没有任何注释;

74钩线方向标志:

0=钩线(或样条引线的切线结束)方向与水平矢量方向相反;

1=钩线(或样条引线的切线结束)方向与水平矢量方向相同(请参见组码75);

75钩线标志:0=无钩线;1=有钩线

40文字注释高度

41文字注释宽度

76引线中的顶点数(DXFIN时被忽略)

10顶点坐标(适用于每个顶点的条目)DXF:X值;APP:三维点

20,30DXF:顶点坐标的Y和Z值

77当引线的DIMCLRD=BYBLOCK时使用的颜色

340关联注释的固定引用(多行文字,公差或插入图元)

210法线矢量。DXF:X值;APP:三维矢量

220,230DXF:法线矢量的Y和Z值

211引线的“水平”方向。DXF:X值;APP:三维矢量。

221,231DXF:引线的“水平”方向的Y和Z值

212块引用插入点距最终引线顶点的偏移。:X值;APP:三维矢量

222,232DXF:块引用插入点距最终引线顶点的偏移的Y和Z值。

213注释位置点距最终引线顶点的偏移。DXF:X值;APP:三维矢量

223,233DXF:注释位置点距最终引线顶点的偏移的Y和Z值。

属于应用程序ID"ACAD"

的扩展数据可以跟随在引线图元之后,这描述了已应用于图元任何标注替代。请参见标注样式替代!AL(`XREF_62386_al_u05_c',1)。

LINE

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

直线组码

组码说明

100子类标记(AcDbLine)

39厚度(可选,缺省值=0)

10起点(在WCS中)。DXF:X值;APP:三维点

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

11终点(在WCS中)。DXF:X值;APP:三维点

21,31DXF:终点的Y和Z值(在WCS中)

210拉伸方向(可选,缺省值=0,0,1)。

DXF:X值;APP:三维矢量

220,230DXF:拉伸方向的Y和Z值

LWPOLYLINE

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

优化多段线组码

组码说明

100子类标记(AcDbPolyline)

90顶点数

70多段线标志(位码);缺省值为0:

1=关闭的;

128=多段线生成

43常量宽度(可选,缺省值=0);当设置了变化的宽度(组码40和/或41)时,不使用该组码

38标高(可选,缺省值=0)

39厚度(可选,缺省值=0)

10顶点坐标(在WCS中)(多图元),每个顶点都有该条目。:X值;APP:二维点

20DXF:顶点坐标的Y值(在WCS中)(多图元);每个顶点都有该条目。

40起始宽度(多图元,每个顶点都有该条目)(可选,缺省值=0,多条目)。如果设置了常量宽度(组码43),则不使用该组码。

41结束宽度(多图元,每个顶点都有该条目)(可选,缺省值=0,多条目)。如果设置了常量宽度(组码43),则不使用该组码。

42凸度(多图元,每个顶点都有该条目)(可选,缺省值=0)。

210拉伸方向(可选,缺省值=0,0,1)。

DXF:X值;APP:三维矢量

220,230DXF:拉伸方向的Y和Z值

MLINE

下列组码适用于多线图元。

多线组码

组码说明

100子类标记(AcDbMline)

2字符串最长为32个字符,它是多线的样式名称。在MLINESTYLE词典中必须存在该样式的条目。

注意:不要修改该字段。

340MLINESTYLE词典的指针句柄/ID

40比例因子

70对正:0=上;1=零;2=下

71开放/闭合标记:1=开放;3=闭合

72顶点数

73MLINESTYLE词典中的元素数

10起点(在WCS中)。DXF:X值;APP:三维点

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

210拉伸方向(可选,缺省值=0,0,1)

DXF:X值;APP:三维矢量

220,230DXF:拉伸方向的Y和Z值

11顶点坐标(多条目;每个顶点都有该条目)。

DXF:X值;APP:三维点

21,31DXF:顶点坐标的Y和Z值

12该顶点线段开始方向矢量(多条目;每个顶点都有该条目)。:X值;APP:三维矢量

22,32DXF:该顶点线段开始方向矢量的Y和Z值

13该顶点的斜接方向矢量(多条目;每个顶点都有该条目)。DXF:X值;APP:三维矢量

23,33DXF:斜接方向矢量的Y和Z值

74该元素的参数数目(线段中的每个元素都重复该组码)

41元素参数(由前面的组码74决定重复次数)

75该元素的区域填充参数的数目(线段中的每个元素都重复该组码)

42区域填充参数(由前面的组码75决定重复次数)

参数化组码41是一个实数列表,每个组码41对应一个实数,此列表可以包含零个或更多项。第一个组码41

的组值是从线段顶点到直线元素路径与斜接矢量交点的距离(沿斜接矢量方向),第二个组码41的组值是从第一个组码41

定义的点到直线元素实际起点的距离(沿直线元素路径方向),第三个组码41的组值是从直线元素起点到直线元素中第一个断点的距离。后续的组码41

的组值依次列出了该多线的线段中的起点和终点。线型不影响组码41列表。

参数化组码42也是一个实数列表。与参数化组码41类似,它描述了此多线填充区域的参数化法。它们的组值与组码41

参数的解释相同,且在将所有多线中的直线元素当作一个整体时,它们定义了多线填充区域的边界。

一个使用组码42机制的普通例子是,当未被填充的多线与已填充的多线相交时,使用mledit

使被填充的多线在相交区域显现出来,这将导致相互影响的多段线中每个直线元素的两个组码42发生变化,一个是填充开始的,一个是填充结束的。

在多线图元和多线样式对象中组码2是多余的,尽管可以安全的读取和使用它们的关联值,但这些组码在任何情况下都不能被修改。可以修改的正确字段如下:

多线

在相同对象中的组码340,它指定了正确的MLINESTYLE对象。

多线样式

MLINESTYLE词典中的组码3(位于组码350之前)的值有当前MLINESTYLE的图元名或句柄。

MTEXT

下列组码适用于多行文字图元。

多行文字组码

组码说明

100子类标记(AcDbMText)

10插入点。DXF:X值;APP:三维点

20,30DXF:插入点的Y和Z值

40缺省文字高度

41参考矩形宽度

71附着点:

1=左上;2=中上;3=右上;

4=左中;5=中间;6=右中;

7=左下;8=中下;9=右下;

72绘图方向:

1=由左至右;2=由右至左;

3=由上至下;4=由下至上;

1文字字符串。如果文字字符串少于250个字符,所有的字符存放于组码1中;如果字符串多于250个字符,字符串被分为250

个字符的数据块,这些数据块存放在一个或多个组码3中。如果使用组码3,最后的组码是组码1,其中的数据组少于250个字符。

3附加文字(总是存放于250个字符的数据块中)

7文字样式名称(如果未提供则为STANDARD)

210拉伸方向(可选,缺省值=0,0,1)

DXF:X值;APP:三维矢量

220,230DXF:拉伸方向的Y和Z值

11X轴方向矢量(在WCS中)

DXF:X值;APP:三维矢量

注意:当组码50(弧度表示的转角)作为DXF的输入被传递时,它将被转化为等价的方向矢量(如果组码50和组码11、21、31

都被传递,方向由最后一个决定)。提供此组码是为了方便从文字对象向多行文字对象的转化。

21,31DXF:X轴方向矢量的Y和Z值(在WCS中)

42组成多行文字的字符的水平宽度。(此值始终小于或等于组码41的值)。

43组成多行文字的字符的垂直高度。

50弧度表示的旋转角度。

OLEFRAME

下列组码适用于OLE边框图元。

OLE边框组码

组码说明

100子类标记(AcDbOleFrame)

70OLE版本号

90二进制数据长度

310二进制数据(多直线)

1Ole数据的结尾(字符串"OLE")

OLE2FRAME

下列组码适用于OLE2边框图元,该信息是只读的。在DXFIN时,这些值被忽略,因为它们是OLE

二进制数据的一部分,且可通过访问函数来获得。

OLE2边框组码

组码说明

100子类标记(AcDbOle2Frame)

70OLE版本号

3二进制数据的长度

10左上角(在WCS中)。DXF:X值;APP:三维点

20,30DXF:左上角的Y和Z值(在WCS中)。

11右下角(在WCS中)。DXF:X值;APP:三维点

21,31DXF:右下角的Y和Z值(在WCS中)

71OLE对象类型:1=链接;2=内嵌;3=静态

72平铺模式描述:

0=对象在一个平铺的模型空间视口中;

1=对象在非平铺的空间视口中(图纸空间或浮动模型空间);

90二进制数据长度

310二进制数据(多直线)

1OLE数据的结尾(字符串"OLE")

DXF输出例子:

OLE2FRAME

5

2D

100

AcDbEntity

67

1

8

0

100

AcDbOle2Frame

70

2

3

PaintbrushPicture

10

4.43116

20

5.665992

30

0.0

11

6.4188

21

4.244939

31

0.0

71

2

72

1

90

23680

3100155764BD60082B91140114B08C8F9A9DC0D0D9AC

310

1940114B08C8F9A9DC0D0D9AC194002303E5CD1FA

310

1BD60082B9114002303E5CD1FA1000

...

...

AutoLISP函数entnext输出的样例:

命令:(setqe(entgete3))

((-1.<图元名:7d50428>)(0."OLE2FRAME")(5."2D")

(100."AcDbEntity")(67.1)(8."0")(100."AcDbOle2Frame")

(70.2)(3"PaintbrushPicture")(104.431165.665990.0)

(116.41884.244940.0)(71.2)(72.1))

POINT

下列组码适用于点图元。

点组码

组码说明

100子类标记(AcDbPoint)

10点位置(在WCS中)。DXF:X值;APP:三维点

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

39厚度(可选,缺省值=0)

210拉伸方向(可选,缺省值=0,0,1)

DXF:X值;APP:三维矢量

220,230DXF:拉伸方向的Y和Z值

50当绘制点时,X轴与起作用的UCS之间的角度(可选,缺省值=0)(当PDMODE非零时使用该组码)

POLYLINE

下列组码适用于多段线。

多段线组码

组码说明

100子类标记(AcDb2dPolyline或AcDb3dPolyline)

10DXF:始终为0;:一个“伪”点,X和Y值始终为零,Z值为多段线的标高(二维时在OCS中,三维时在WCS中)

20DXF:始终为零

30DXF:多段线的标高(二维时在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,230DXF:拉伸方向的Y和Z值

具有"AUTOCAD_POSTSCRIPT_FIGURE"应用程序ID的扩展数据可以跟随在多段线图元后。其中包含的信息与

PostScript图像和PostScript填充的信息有关。

多面网格

在DXF中多面网格是多段线的一个变种。存在多面网格位标识(组码70中的64位)的多段线被识

别为多面网格。组码71

指定网格中的顶点数,组码72指定面数。尽管这些数字对于所有由命令PFACE

创建的网格来说都是正确的,但应用程序不必将正确的值放入此字段中。多段线表头后是一个顶点图元序列,用于指定顶点坐标,其后是组成网格的面。

AutoCAD

图元结构为所给出的面图元指定的顶点数强加一个限制。用户可以通过将多边形分解成三角形楔体来表现更复杂的多边形,这些楔体的边应该是不可见的,这样可以防止拆分单元的可见人造边被绘制出来。命令

PFACE可以自动执行拆分,但当应用程序直接生成多面网格时,必须由应用程序亲自执行拆分。在拆分过成中,每个面的顶点数是关键参数。系统变量

PFACEVMAX提供了一个每个面具有顶点数的申请,该变量是只读的,其值为4。

命令PFACE创建多面网格时首先生成所有顶点坐标的图元,然后生成面定义图元。这种次序是根据AutoCAD

中处理多面网格的组码的要求决定的。虽然从DXF中读取多面网格的程序允许顶点和面的次序不固定,但在DXF

中生成多面网格的程序仍应该首先生成所有顶点,再生成所有的面。

RAY

下列组码适用于射线图元。

射线组码

组码说明

100子类标记(AcDbRay)

10起点(在WCS)。DXF:X值;APP:三维点

20,30DXF:起点的Y和Z值(在WCS)

11单位方向矢量(在WCS)。DXF:X值;APP:三维点

21,31DXF:单位方向矢量的Y和Z值(在WCS中)

REGION

下列组码适用于面域图元。

面域组码

组码说明

100子类标记(AcDbModelerGeometry)

70建模格式版本号(当前值=1)

1私有数据(有多行,每个少于255个字符)

3私有数据的附加行(如果前面的组码1字符串多于255个字符)

SEQEND

下列组码适用于seqend图元。

Seqend组码

组码说明

-2APP:序列的开始图元名。此图元标记了多段线的顶点(顶点类型名称)的结束,或插入图元的属性图元(显示属性类型名称)的结束(该插入图元具有由组码

66(存在且非零)指定的属性)。:文件中不保存此组码。

SHAPE

下列组码适用于形图元。

形组码

组码说明

100子类标记(AcDbShape)

39厚度(可选,缺省值=0)

10插入点(在WCS中)。DXF:X值;APP:三维点

20,30DXF:插入点的Y和Z值(在WCS中)

40尺寸

2形名称

50旋转角度(可选,缺省值=0)

41相对X比例因子(可选,缺省值=1)

51倾斜角(可选,缺省值=0)

210拉伸方向(可选,缺省值=0,0,1)。

DXF:X值;APP:三维矢量

220,230DXF:拉伸方向的Y和Z值

SOLID

下列组码适用于实体图元。

实体组码

组码说明

100子类标记(AcDbTrace)

10第一角点。DXF:X值;APP:三维点

20,30DXF:第一角点的Y和Z值

11第二角点。DXF:X值;APP:三维点

21,31DXF:第二角点的Y和Z值

12第三角点。DXF:X值;APP:三维点

22,32DXF:第三角点的Y和Z值

13第四角点。如果只输入三个角点来定义实体,则第四角点的坐标与第三角点相同。DXF:X值;APP:三维点

23,33DXF:第四角点的Y和Z值

39厚度(可选,缺省值=0)

210拉伸方向(可选,缺省值=0,0,1)

DXF:X值;APP:三维点

220,230DXF:拉伸方向的Y和Z值

SPLINE

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

样条曲线组码

组码说明

100子类标记(AcDbSpline)

210法线矢量(如果样条曲线不是平面图元,则会被忽略):X值;APP:三维点

220,230DXF:法线矢量的Y和Z值

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

1=闭合的样条曲线;

2=周期性样条曲线;

4=有理样条曲线;

8=平面;

16=线性(平面位也被设置)

71样条曲线的阶

72结点数目

73控制点数目

74拟合点数目(如果存在)

42结点公差(缺省值=0.0000001)

43控制点公差(缺省值=0.0000001)

44拟合公差(缺省值=0.)

12起始正切方向(在WCS中)-可被忽略。:X值;APP:三维点。

22,32DXF:起始正切方向(可被忽略)的Y和Z值(在WCS中)。

13结束正切方向(在WCS中)-可被忽略。:X值;APP:三维点

23,33DXF:结束正切方向(可被忽略)的 Y 和 Z 值(在WCS中)

40结点值(每个结点都有一个该条目)

本文标签: 组码对象标注数据