QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 4690|回复: 1
收起左侧

[分享] DXF中文开发文档详解

[复制链接]
发表于 2008-11-2 09:00:55 | 显示全部楼层 |阅读模式 来自: 中国山东烟台

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
DXF 的基本惯例
1 @  b. N& K) z6 |$ ]7 x. w6 r' yDXF 格式是特定版本 AutoCAD 2 S! m6 k6 @" k* `7 D
图形文件中所包含的全部信息的标记数据的一种表示方法。标记数据的意思是指在每个数据元素前都带一个称为组码的整数。组码的值表明了其后数据元素的类型,也指出了数据元素对于给定对象(或记录)类型的含意。实际上,图形文件中所有用户指定的信息都能够以
7 U/ ~; `  U+ D7 F/ ]3 fDXF 文件格式表示。在 AutoLISP 和 ARX 应用程序中使用的 DXF 格式与上述格式基本相同,只是在某些数据组上存在着细微的差别。 $ F; D4 p0 ~: d
如不作特殊说明,本节中所出现的组码都可以应用于 DXF 文件、AutoLISP 应用程序和 ARX 应用程序。当组码说明对于应用程序和 DXF 6 f0 [+ L* m2 ]$ b0 C; l( v
文件有所不同时(或只适用于其中之一),在组码的说明前有如下提示符: 1 i* }; A9 h* c7 Z
APP 只用于应用程序的说明 7 Q% R5 i& i4 |! A  J2 m( ~# ?
DXF 只用于 DXF 文件的说明
! X, u) J: G* m3 r如果组码说明对 DXF 文件和应用程序都适用,那么没有提示符;否则将显示适当的提示符。 % K1 D; I8 x& ^6 A  E% m
组码范围 ' g& ]- e8 d+ F# f: l
组码将与组码关联的值(组值)定义为整型、浮点数型或字符串型。具体说明如下表: + z7 V0 u$ e8 T. t7 o  @
组码范围 . P! D$ `3 J8 ~& S  z' ?
组码范围组值类型 : a. B3 N1 L+ T  K) j( K
0-9字符串(最多 255 个字符,对于 UNICODE 字符串则更少) : o6 R$ c4 `2 R; K0 d, q" W( |
10-59双精度三维点
. T) s8 O7 f2 @- E60-7916 位整数值 0 c. k: g) ?+ u+ \7 E( _2 ~/ |2 A
90-9932 位整数值
1 h# |3 K9 I- Z* [7 G2 _100字符串(最多 255 个字符,对于 UNICODE 字符串则更少) ( Q1 G. ^% O$ ]: @  {6 b& A
102字符串(最多 255 个字符,对于 UNICODE 字符串则更少) $ B1 ^/ C, `  m
105表示十六进制句柄值的字符串 % e0 r; K; ]$ S
140-147双精度标量浮点值
- v  [6 d7 d3 R$ m1 m; @170-17516 位整数值 2 \9 h5 C6 \* B1 A3 @
280-2898 位整数值
8 r2 o6 h& M: S: `9 w300-309任意文字字符串 ) K. h! y' V7 ~, G6 u( u
310-319表示二进制数据组的十六进制值的字符串
; }! x: C) v( C$ F( Y320-329表示十六进制句柄值的字符串 4 J2 }8 h! D! d9 [+ A! u# q3 z5 p
330-369表示十六进制对象标识符的字符串 5 s8 t/ Y9 j0 _" v
999注释(字符串)
6 t# S: d5 v9 j+ y1000-1009字符串(最多 255 个字符;对于 UNICODE 字符串则更少) 5 f. H/ B: ?! M% p
1010-1059浮点值
/ N5 C. }6 V* g2 t1060-107016 位整数值 3 H! `0 d! D8 P5 d: u: J' x2 l) N
107132 位整数值
) G& u& \0 t% J  z 
  }2 F+ X# B3 @. H: k# D- n+ R2 A  ! G& B/ O, t; L' z; y! T$ a
按数字次序排列的组码
2 G, [8 o0 F, ]% B9 E2 q: E, c下表给出了组码(或组码范围)及其说明。在表中,“固定”表示该组码的用途固定不变,非固定组码的用途将随上下文变化。 9 X$ ^9 r4 a1 i( B( x
按数字次序排列的图元组码
) [( g# j" \. N' w) f! s组码说明
; ^" Z7 F+ w, g0 t-5APP:persistent reactor 链表
5 r4 A3 f3 ?/ n: k% _( J" l-4APP:条件运算符(仅用于 ssget)
2 s2 _/ k% x: \3 s/ e5 N8 s- g-3APP:扩展数据 (XDATA) 标记(固定)
9 J$ X9 V/ \/ Y) ]: e; b: A-2APP:图元名引用 (固定)
4 l# n2 j8 c: C0 _1 ?-1APP:图元名。每次打开图形时它都改变,且不被保存。(固定) ! V1 x/ o1 A2 }: P
0表示图元类型的文字字符串(固定) 4 k6 H* h, x9 J8 K" R
1图元的主要文字值
- s/ A0 s0 N& k) p  I* J2名称(属性标记、块名称等)
" X8 ~* L! M6 T' V8 u" J3-4其他的文字值或名称值
3 V$ V0 u* v) d1 e) C; }, e2 x( \0 n4 J5图元句柄。最多 16 位十六进制数字的文字字符串(固定)   z1 \$ h: `6 a% t2 p
6线型名(固定) ; `- {% c3 ~) U- a$ j
7文字样式名(固定) ( X& D! h5 d- J; N; s4 H. q
8图层名(固定) 6 p* d' m$ y+ E" S
9DXF:变量名标识符(仅用于 DXF 文件的 HEADER 区域)。
2 ]  e* `7 N1 z0 E: p* Q10主要点。此点为直线或文字图元的起点,圆的圆心等等。
8 P8 o  ?- F9 I9 MDXF:主要点的 X 值(其后为 Y 和 Z 值的组码 20 和 30)
4 D, }3 T9 V7 }, X1 z! y( iAPP:三维点(三个实数构成的表) 3 `# j. {! x( t' J, M
11-18其他点。 ' z% `# n$ n/ M) S
DXF:其他点的 X 值(其后为 Y 和 Z 值的组码 21-28 和 31-38)
8 V8 G% ^6 ^2 S+ M3 ZAPP:三维点(三个实数构成的表) 5 s' u' Y- R1 g# z9 J+ O% s5 _
20, 30DXF:主要点的 Y 和 Z 值 * \; R+ Q# E# z3 o' J* m
21-28, 31-37DXF:其他点的 Y 和 Z 值 " u: [% e  g' S% B# n* O
38DXF:如果非零,则为图元的标高。只在 R11 以前的 AutoCAD 输出的 DXF 文件中存在
% u% j, Y) F4 M% u' \* ?. y39如果非零,则为图元的厚度(固定) 6 T* _! Z* c# m3 {. ]1 V& q
40-48浮点值(文字高度、比例因子等) % {6 f6 n* b7 I- N1 m& E5 n
48线型比例。浮点标量值。缺省值适用于所有图元类型。 8 K1 m( m2 _: [, S6 [" [
49可重复的浮点值。一个图元中的可变长度表(例如 LTYPE 表中的虚线长度)中可出现多个组码 49。组码 7x 总是在第一个组码 49
9 I5 p9 k; e1 u7 P! [9 K1 a. K前出现,用于指定表的长度。 ; D8 x$ n- M% ]* b0 Q
50-58角度(在 DXF 文件中单位为度,在 AutoLISP 和 ARX 应用程序中单位为弧度)。
- ?3 V& m" M4 y% |( n" Z* A& O60表示图元可见性的整数值。不赋值或值为 0 时表示可见;为 1 时表示不可见。 , \0 q& y$ G9 C3 g9 J
62颜色代码(固定) : p8 x# _8 e& w" U
66“图元跟随”标志(固定) % e( O+ n7 O& d1 h
67空间,即模型空间或图纸空间(固定)
) T0 u( @5 K! q/ t68APP:表示视口打开但不可见、未激活或者关闭。 - I2 u& z' a7 O$ u/ `
69APP:视口标识数字。 # m# Y4 M; k8 l3 w
70-78整数值,如重复部分的计数器、标志位或模式等。 / g3 x6 j% j; w3 n# o
90-9932 位整数值
. w, F( l) }8 L100子类数据标记(把继承下来的类名当作字符串)。由具体类继承下来的所有对象和图元类都必须有此项。此标记用于分离某个对象中由不同的类定义的数据。它也满足从 0 w" T) B6 W0 l' G7 O& B5 X) x0 x
ARX 继承下来的每个独立的具体类的 DXF 命名需要(请参见子类标记!AL(`XREF_11832_al_u05_c,1))。 : L$ T) m  _& c! e! M( ~% H# K
102控制字符串,其后为“{”或 }。除了字符串必须以 { 开始外,它与外部数据组码 1002 / K/ |& D* G  k: \1 g9 U* n/ d
类似。其后可跟任意字符串,且此字符串的解释取决于应用程序。另一个可用的控制字符串为 },它标识组的结束。如上所述,除了在执行图形核查操作期间外 : Z  S) m) T' N. x7 d7 o
AutoCAD 一般不解释这些字符串;它们仅用于应用程序。
) y* s4 o/ {; G& Z  V4 i- l( Z105DIMVAR 符号表条目对象句柄。 3 F( T' g# b5 T
210拉伸方向(固定)。
9 {0 N# m  t4 ]7 YDXF:拉伸方向的 X 值 1 F& q9 ^* }- j8 `. N
APP:三维拉伸方向矢量 ( L8 B5 q, D* w/ K% X1 L: u
220, 230DXF:拉伸方向的 Y 和 Z 值
2 [' Y2 [) E; @# u) x5 l8 u280-2898 位整数值 ; O; i  l- H1 x- g
300-309任意的文字字符串
/ I5 R  k# Z6 b7 [310-319任意二进制数据组,与组码 1004 具有相同表示法和限制:最长为 254 个字符的十六进制字符串表示最长为 127 / r  f1 B; ?8 I
个字节的数据数据组。
. _, {9 S8 W5 y4 D) S+ k, h320-329任意对象句柄。句柄值保留原样,在执行 INSERT 和 XREF 操作时它们不被转化。
3 P6 T4 R8 a5 }' ^- a330-339软键指针句柄。任意指向同一 DXF 文件或图形中的其他对象的软键指针,在执行 INSERT 和 XREF 操作时被转化。 9 M- ~2 s9 b+ {8 G
340-349硬键指针句柄。任意指向同一 DXF 文件或图形中的其他对象的硬键指针,在执行 INSERT 和 XREF 操作时被转化。
) x, _. f7 V' P. \, o, o350-359软键从属句柄。链接到同一 DXF 文件或图形中其他对象的任意软键从属链接,在执行 INSERT 和 XREF 操作时被转化。 & W! n- k5 I4 \0 G$ S4 f9 @. B
360-369硬键从属句柄。链接到同一 DXF 文件或图形中其他对象的任意硬键从属链接,在执行 INSERT 和 XREF 操作时被转化。 . W7 l" g* u1 A; C1 p1 Z5 F
999DXF:999 组码表示其后为注释字符串行。DXFOUT 不在 DXF 输出文件中包括此组;DXFIN 能识别词组码,但忽略其后的注释。通过
/ L) |; ]( c7 c/ A: z5 b8 P* E1 G999 组码,用户可以在所编辑的 DXF 文件中包括注释。
4 w- q6 b& x- R! t2 Y6 o& |1000扩展数据中的 ASCII 字符串(最长 255 个字节)。 # N8 v' D9 h& C8 j
1001扩展数据的已注册应用程序名(ASCII 字符串,最长 31 个字节)。
: Z4 ~1 K4 S, A2 e4 J1002扩展数据控制字符串({ 或 })。 * B; H9 |' {! M  d1 ]2 ~  C
1003扩展数据图层名。 9 X; _0 a- \, x8 t( {! L
1004扩展数据中的字节数据组(最长 127 字节)。
4 ?* I& U/ {, J# `2 |6 Y1005扩展数据中的图元句柄。文字字符串,最多 16 位十六进制数字。 ; u/ F, V) Y+ Z& b
1010扩展数据中的点
3 y9 ~; r- g+ o9 B2 f2 F) N; PDXF:X 值(其后跟组码 1020 和 1030) 2 p% Z9 }0 G' P8 c! v/ l; b
APP:三维点
: ~' Z9 e1 S/ L+ f) s/ o) @1020, 1030DXF:点的 Y 和 Z 值
2 T8 I9 j3 C) r- Q& D/ L1011扩展数据中的三维世界空间位置:X 值(其后跟组码 1021 和 1031):三维点   m( p  L+ Y9 A7 m. `
1021, 1031DXF:世界空间位置的 Y 和 Z 值。
" w4 t5 }- k- T! H, G1 A1012扩展数据中的三维世界空间位移:X 值(其后跟组码 1022 和 1032):三维矢量 ) I; M; }5 V" ?0 a
1022, 1032DXF:世界空间位移的 Y 和 Z 值
: A& _. Z# Z: H- d/ e$ T1013扩展数据中的三维世界空间方向
2 `0 o' @" k1 K5 G& D# \DXF:X 值(其后跟组码 1022 和 1032)
( f6 Y5 D$ V: n4 wAPP:三维矢量 # X/ a( Q* Z( q2 I7 R+ I8 a
1023, 1033DXF:世界空间方向的 Y 和 Z 值 " D9 s  _+ S" U1 d& ]
1040扩展数据浮点值。 - @9 ^3 t+ D" S
1041扩展数据距离值。
1 \! o  M6 R. ^; i& W1042扩展数据比例因子。
4 }' p1 L8 v9 }: W0 V9 w. w1070扩展数据 16 位符号整数。
. p& r) L$ u" I3 X1071扩展数据 32 位符号整数。
" I- x2 T# n. I  ( V( T; x1 j1 K& T" `0 n% Z
 
, o; W- p; n& {; x/ g 
( y* G/ [5 Q$ F对象和图元的组码 : e) H9 j9 @# g. F
在 DXF 格式中,对象的定义与图元的定义不同:图元有图形表示,而对象则没有图形表示。例如,词典是对象而不是图元。对象通常作为非图形对象来使用,图元则作为图形对象来使用。 5 `" Z% S7 }& A8 k" n
在 DXF 文件中,图元可以出现在 BLOCK 和 ENTITIESE 区域中。两个区域中图元的用法一样。
* U8 [' L# v6 r0 D某些定义图元的组码始终会出现,而其他的组码仅在它们的值与缺省值不同时才出现。
# p! b; z0 D; o读取 DXF 文件的程序不应该假定说明图元的组码是按照给定次序出现的。与说明图元的组码相连的 0 组码表示此图元已结束。0 组码将开始新图元或表示此区域已结束。 . l' I  ^2 S# @; T* l
注意 如果用户以表驱动方式(即忽略未定义的组码,且对图元中的组码次序不做任何假定)编写 DXF 处理程序,那么该程序将比较容易针对 AutoCAD
$ q* e/ E9 H6 s5 a, \的后续版本做调整。因为 AutoCAD 的性能将不断得到增强,所以图元中将添加一些新的组码以提供更多的功能。
发表于 2009-10-24 12:16:20 | 显示全部楼层 来自: 中国广西桂林
好详细的枝术教程,学学
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表