|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
DXF 的基本惯例 ( q, Q& k I' C( i
DXF 格式是特定版本 AutoCAD 4 `; Y% E4 _5 m5 v& p
图形文件中所包含的全部信息的标记数据的一种表示方法。标记数据的意思是指在每个数据元素前都带一个称为组码的整数。组码的值表明了其后数据元素的类型,也指出了数据元素对于给定对象(或记录)类型的含意。实际上,图形文件中所有用户指定的信息都能够以 - E9 r5 p$ ?6 `7 G+ S, H
DXF 文件格式表示。在 AutoLISP 和 ARX 应用程序中使用的 DXF 格式与上述格式基本相同,只是在某些数据组上存在着细微的差别。 3 D3 L0 a0 g: F% G
如不作特殊说明,本节中所出现的组码都可以应用于 DXF 文件、AutoLISP 应用程序和 ARX 应用程序。当组码说明对于应用程序和 DXF 7 w, L2 g2 a0 g- N1 k" `4 x* _- o
文件有所不同时(或只适用于其中之一),在组码的说明前有如下提示符:
# Q) o8 `1 {! GAPP 只用于应用程序的说明 6 Q5 k& G! Q8 S$ W& G4 @5 J* {
DXF 只用于 DXF 文件的说明
1 G! ]0 B; `2 r7 e: R! Y5 t如果组码说明对 DXF 文件和应用程序都适用,那么没有提示符;否则将显示适当的提示符。
: ^" A1 Z. q* S3 P组码范围
* ?/ a" v& {3 J) |组码将与组码关联的值(组值)定义为整型、浮点数型或字符串型。具体说明如下表:
% A. p+ p0 R2 f* n# c) w2 U组码范围 9 N6 r; R% Y& a
组码范围组值类型
0 M R6 @+ W6 D( h0-9字符串(最多 255 个字符,对于 UNICODE 字符串则更少)
1 T" h4 v, o2 M+ E3 j$ l10-59双精度三维点
$ G! y. S y6 Q% y& C7 M60-7916 位整数值
9 R" P$ Z8 O; D; r9 m0 E% l90-9932 位整数值 ' I9 o! K8 l$ J5 I, [+ A: s
100字符串(最多 255 个字符,对于 UNICODE 字符串则更少)
/ f: _) ^" ?2 K% G: [& \102字符串(最多 255 个字符,对于 UNICODE 字符串则更少) 2 E1 {! f/ Y2 p' Q* y
105表示十六进制句柄值的字符串 , J' {' }; ~% R% j$ ?' Y/ ?# @# s' D
140-147双精度标量浮点值 ) p5 _( g h6 {/ a. i
170-17516 位整数值 6 y) N6 I& [$ n& Q
280-2898 位整数值 ; }3 n! D8 F8 F
300-309任意文字字符串 9 n" o7 H( n0 U; t( e" w- |
310-319表示二进制数据组的十六进制值的字符串 8 }7 Q( H( G0 R4 z2 T! ~
320-329表示十六进制句柄值的字符串
# c# s Q6 k @330-369表示十六进制对象标识符的字符串
; W: c0 d& F6 ?' i+ A# \9 e0 y999注释(字符串)
4 q7 x1 z& y' Y4 k' n, f" A$ r1000-1009字符串(最多 255 个字符;对于 UNICODE 字符串则更少) " P& T* k+ ?5 D" H* ~0 h
1010-1059浮点值 7 m- C7 s. D4 Z0 ]; j9 W2 m y' _
1060-107016 位整数值 ( h2 a3 p, X* h' H' m% T
107132 位整数值
3 [: I0 ?7 R0 t+ A, Y. n8 N
( w1 ^8 u2 {. k y! c8 @
( [" p4 Z, i0 h按数字次序排列的组码 B* F% W8 @# r1 j& y
下表给出了组码(或组码范围)及其说明。在表中,“固定”表示该组码的用途固定不变,非固定组码的用途将随上下文变化。 ( W- z) j. ~6 v6 i+ v7 p
按数字次序排列的图元组码
& e5 R2 q! ? `' y8 E) f% c. g组码说明 # }, u: t; K5 A
-5APP:persistent reactor 链表
0 f( a0 ^6 a$ T: q4 w- Q4 `-4APP:条件运算符(仅用于 ssget)
1 Z( P# Z0 G+ x- I-3APP:扩展数据 (XDATA) 标记(固定)
0 b0 U" p$ H3 m9 @, D2 F5 c! \-2APP:图元名引用 (固定)
. ^, T8 V4 o. |3 Z# {-1APP:图元名。每次打开图形时它都改变,且不被保存。(固定) 7 v7 B& A- N3 ]# t$ I" h. }
0表示图元类型的文字字符串(固定) 9 L: p* X8 d+ `3 l3 i
1图元的主要文字值
: K0 B$ |$ M8 }3 c5 H& q2名称(属性标记、块名称等)
# c+ J0 ]; i" W0 I2 ~ L3-4其他的文字值或名称值
* F; X7 | `+ O( `! q9 ~5图元句柄。最多 16 位十六进制数字的文字字符串(固定)
3 `0 |3 K: x2 O* ^" s3 l6线型名(固定)
/ P6 J* h" K, {7文字样式名(固定)
& m; N: D# j: J6 y- J8图层名(固定)
2 s- N' c; n+ s9DXF:变量名标识符(仅用于 DXF 文件的 HEADER 区域)。
) |: E( o; V- U10主要点。此点为直线或文字图元的起点,圆的圆心等等。 ' n: v" q& y; M( F, r
DXF:主要点的 X 值(其后为 Y 和 Z 值的组码 20 和 30)
1 [- x2 h4 W8 g% A6 @APP:三维点(三个实数构成的表) 9 Z3 V ^- }6 {9 ~6 B
11-18其他点。
7 ?$ Y6 X' F( oDXF:其他点的 X 值(其后为 Y 和 Z 值的组码 21-28 和 31-38) ( |4 b( Q7 M F& e2 t/ r- o
APP:三维点(三个实数构成的表)
$ X; _/ b5 w0 r/ Z20, 30DXF:主要点的 Y 和 Z 值
V( w" D" B. G" u' Y K, b21-28, 31-37DXF:其他点的 Y 和 Z 值
4 b9 z/ u0 \' Q- R* R2 E) @6 p38DXF:如果非零,则为图元的标高。只在 R11 以前的 AutoCAD 输出的 DXF 文件中存在 & ]1 G7 I! z O' H+ |
39如果非零,则为图元的厚度(固定) , [4 G: f# y) L( X; E
40-48浮点值(文字高度、比例因子等) # f! S4 Y7 N& |- \7 l' `' P3 ^2 N
48线型比例。浮点标量值。缺省值适用于所有图元类型。
6 n, e8 M* [3 X# v6 @49可重复的浮点值。一个图元中的可变长度表(例如 LTYPE 表中的虚线长度)中可出现多个组码 49。组码 7x 总是在第一个组码 49 , b( F# H- \' d) ]
前出现,用于指定表的长度。
( E, s' Y2 P- G; j6 u50-58角度(在 DXF 文件中单位为度,在 AutoLISP 和 ARX 应用程序中单位为弧度)。 6 ?4 @1 P! A% C/ Y4 o+ t- X- {
60表示图元可见性的整数值。不赋值或值为 0 时表示可见;为 1 时表示不可见。 5 |+ ^5 M) ]* H( Y" ^
62颜色代码(固定)
' V7 u) Z1 Z# f; x8 n+ {66“图元跟随”标志(固定)
1 c* p! N! {" v$ u* H9 d2 w& m67空间,即模型空间或图纸空间(固定)
/ H# l! G4 d6 _7 E- Y: _9 m) s s) C: L68APP:表示视口打开但不可见、未激活或者关闭。
9 G3 p1 P6 a( n5 h: i0 M# @+ O* K, ]69APP:视口标识数字。
" H* A7 B r2 t" d3 J70-78整数值,如重复部分的计数器、标志位或模式等。
) p0 J; ^# ]% o0 ^- \! S90-9932 位整数值 # x: Q/ \, F& b ]( b+ G
100子类数据标记(把继承下来的类名当作字符串)。由具体类继承下来的所有对象和图元类都必须有此项。此标记用于分离某个对象中由不同的类定义的数据。它也满足从
( }5 Q1 n* O" v" s0 `+ p; AARX 继承下来的每个独立的具体类的 DXF 命名需要(请参见子类标记!AL(`XREF_11832_al_u05_c,1))。
+ V5 ~/ P% M, D2 U& Q3 N! n102控制字符串,其后为“{”或 }。除了字符串必须以 { 开始外,它与外部数据组码 1002 * y: f0 o" u+ _; s- H
类似。其后可跟任意字符串,且此字符串的解释取决于应用程序。另一个可用的控制字符串为 },它标识组的结束。如上所述,除了在执行图形核查操作期间外
9 b- g! ~2 q% a/ S6 AAutoCAD 一般不解释这些字符串;它们仅用于应用程序。 9 j& a3 ^# b; T- A1 e2 ^' Y; m: j+ u" o
105DIMVAR 符号表条目对象句柄。 ) X. y6 m5 j, |2 E
210拉伸方向(固定)。 # a/ F u9 u+ Q4 S( }% h
DXF:拉伸方向的 X 值
+ _* k) m- e7 rAPP:三维拉伸方向矢量
! o, I2 A5 h- H& s220, 230DXF:拉伸方向的 Y 和 Z 值
/ {0 p T( i5 h8 {1 n8 }280-2898 位整数值
+ f3 h* @8 O! m+ \/ {; V300-309任意的文字字符串
# V# |" f7 H* I8 A- ^9 x3 k) @3 _. _310-319任意二进制数据组,与组码 1004 具有相同表示法和限制:最长为 254 个字符的十六进制字符串表示最长为 127 & Q) g, e# D6 x8 `: Y7 J8 g, P
个字节的数据数据组。
: [4 ?8 S8 R j1 f320-329任意对象句柄。句柄值保留原样,在执行 INSERT 和 XREF 操作时它们不被转化。
5 V, c5 j+ N! m p U" g2 T330-339软键指针句柄。任意指向同一 DXF 文件或图形中的其他对象的软键指针,在执行 INSERT 和 XREF 操作时被转化。 1 g$ g) Y0 m+ X+ x0 j9 G R
340-349硬键指针句柄。任意指向同一 DXF 文件或图形中的其他对象的硬键指针,在执行 INSERT 和 XREF 操作时被转化。 6 z. F1 R$ o4 C' T7 v! P3 c, u) x2 Q9 L
350-359软键从属句柄。链接到同一 DXF 文件或图形中其他对象的任意软键从属链接,在执行 INSERT 和 XREF 操作时被转化。
' W; G8 s% } W) x360-369硬键从属句柄。链接到同一 DXF 文件或图形中其他对象的任意硬键从属链接,在执行 INSERT 和 XREF 操作时被转化。 . r* J% j3 l( X% i9 D8 W0 `; @
999DXF:999 组码表示其后为注释字符串行。DXFOUT 不在 DXF 输出文件中包括此组;DXFIN 能识别词组码,但忽略其后的注释。通过 2 A' ?$ q5 r! v* u) L1 E
999 组码,用户可以在所编辑的 DXF 文件中包括注释。 ) m3 `% y& W3 c E; H
1000扩展数据中的 ASCII 字符串(最长 255 个字节)。
Q+ S R0 @; T' {* q1001扩展数据的已注册应用程序名(ASCII 字符串,最长 31 个字节)。 . D+ f5 D* A4 i1 j" {, [( `
1002扩展数据控制字符串({ 或 })。
- z' S) s% {0 Q8 L, f8 h: a( \1003扩展数据图层名。 5 }$ R" Z3 U% H; ~ g
1004扩展数据中的字节数据组(最长 127 字节)。
3 r+ s! X5 C, [: L. I1005扩展数据中的图元句柄。文字字符串,最多 16 位十六进制数字。
# S& y V- J: B% Z: E/ L1010扩展数据中的点 7 P6 ]+ Y& {' y1 y8 D
DXF:X 值(其后跟组码 1020 和 1030)
\$ F1 z2 b) m, iAPP:三维点
. { D$ q( R) A5 C/ L$ g1020, 1030DXF:点的 Y 和 Z 值
) x: L6 e0 Y) P( U1011扩展数据中的三维世界空间位置:X 值(其后跟组码 1021 和 1031):三维点
! \ t) t' t9 K0 e: v# g* x+ y& n1021, 1031DXF:世界空间位置的 Y 和 Z 值。 ' G7 O9 U8 v9 r. A, y" w; G
1012扩展数据中的三维世界空间位移:X 值(其后跟组码 1022 和 1032):三维矢量
8 M6 V9 ]! G4 ^, S3 X1022, 1032DXF:世界空间位移的 Y 和 Z 值 " _0 F+ m3 K W& M- J. ^5 [
1013扩展数据中的三维世界空间方向 0 {* x# w/ S: m1 \2 S$ Q
DXF:X 值(其后跟组码 1022 和 1032)
/ h7 N/ Q. Q6 V3 f3 ?, XAPP:三维矢量
7 V+ Q% z# P! f+ t" ~1023, 1033DXF:世界空间方向的 Y 和 Z 值 6 z2 d5 c Z! v$ {+ N! A
1040扩展数据浮点值。 * z# X- _: B6 j: O
1041扩展数据距离值。
1 z( g# m+ R: n* b1042扩展数据比例因子。 " W; G1 {% H, b. v& s
1070扩展数据 16 位符号整数。 6 J) S- k2 O5 t: R1 L1 \
1071扩展数据 32 位符号整数。 * v$ H/ F5 j1 ~$ t/ t
* f. z1 _8 X. c5 F8 U
5 U, Q9 Y& J3 | s
9 R6 q3 r6 k9 g1 {! \
对象和图元的组码 & |& n9 t8 b/ W* @& J4 p K9 y) i
在 DXF 格式中,对象的定义与图元的定义不同:图元有图形表示,而对象则没有图形表示。例如,词典是对象而不是图元。对象通常作为非图形对象来使用,图元则作为图形对象来使用。 # t4 P0 \+ ?9 ~! Z& m i9 b, z' x
在 DXF 文件中,图元可以出现在 BLOCK 和 ENTITIESE 区域中。两个区域中图元的用法一样。
3 d2 Z: ?! [5 K5 x某些定义图元的组码始终会出现,而其他的组码仅在它们的值与缺省值不同时才出现。 5 }; P% _ I, Z
读取 DXF 文件的程序不应该假定说明图元的组码是按照给定次序出现的。与说明图元的组码相连的 0 组码表示此图元已结束。0 组码将开始新图元或表示此区域已结束。 8 T* S0 k e2 |% I$ Y5 y1 V- v/ o3 h
注意 如果用户以表驱动方式(即忽略未定义的组码,且对图元中的组码次序不做任何假定)编写 DXF 处理程序,那么该程序将比较容易针对 AutoCAD / ?1 F% b& _( q3 ` e" E" ^
的后续版本做调整。因为 AutoCAD 的性能将不断得到增强,所以图元中将添加一些新的组码以提供更多的功能。 |
|