|
|
发表于 2007-9-30 10:52:49
|
显示全部楼层
来自: 中国广东广州
请查“帮助”
. M3 i1 x$ i$ ^# A& q自定义手册
" H" l0 C8 S4 c' T. \" X6 C! J& ~自定义线型$ |' R1 ]/ @/ ^' `% }
自定义线型中的形/ D; @; c) E/ L, j2 q6 m8 @
# x7 i/ d0 s+ i7 @ x) L- ?
3 F1 h$ X& l* d & O' j! j j+ x Z3 ~
复杂线型可以包含嵌入的形(保存在形文件中)。复杂线型可以表示实用程序、边界和轮廓等等。
- ^+ X; @7 Y3 }: ]8 V/ T! T* a+ C+ @$ f9 p6 P
与简单线型一样,指定端点后可以动态地绘制复杂线型。直线中嵌入的形和文字对象总是完整显示,从来不会被截断。 6 q0 ?9 M" n( i/ \3 J2 a: x; b& e
4 X7 ~; |0 G1 }1 \复杂线型的语法与简单线型的语法类似,都是一列以逗号分隔的图案描述符。除了点划线描述符之外,形和文字对象也可作为复杂线型的图案描述符。 / k" I8 q: F( ]1 ?1 a: b
) h: m8 W( G4 x& s8 u- O' Y: t! [线型说明中的形对象描述符的语法如下所示: , u# R8 C! u+ e. v9 m* b
$ V+ g7 v2 Y0 @: s% K T[shapename,shxfilename] 或 [shapename,shxfilename,transform]
/ m9 k" K3 p% A) i- u& i% j其中,transform 是可选的,可以是下列等式的任意序列(每个等式前都带有逗号):
; @! e4 d& k- c1 R! d4 b$ d$ w9 p
. R: }5 v/ E' z! JR=## 相对旋转
* L9 V9 Z* X# j8 }- a/ d% A6 r0 S2 ]6 g2 [
A=## 绝对旋转
* Y" L& X/ W1 A7 y- H* r, z0 A1 n
4 [: T# ?- T3 tS=## 比例
& a% W. n X" _& Q" g' Q/ x
% z% U) Q" s, v4 @X=## X 偏移 # i0 x7 v+ l+ V6 H9 J3 x% n0 K# H! y- P( ^
4 p1 {3 y: d! t0 iY=## Y 偏移
) O: Y3 X( ^) ]: {9 J
2 C7 [$ y- r& B, J+ {8 @: _在此语法中,## 表示带符号的十进制数(如 1、-17、0.01 等),旋转单位为度,其他选项的单位都是线型比例的图形单位。上述 transform 字母,使用时后面必须跟上等号和数值。
7 N' b) ]/ Q7 A/ H$ N4 F# }
# H- d" [5 K7 Z. b以下线型定义用于定义名为 CON1LINE 的线型,该线型由一条直线段、一个空格和来自“ep.shx”文件的嵌入形 CON1 这一重复图案构成。(请注意,必须将“ep.shx”文件放在支持路径中才能使以下样例正常运行。)
& U5 ?" h* r1 ^' l3 |7 K1 e, y! b3 S' X1 W- c
*CON1LINE, --- [CON1] --- [CON1] --- [CON1]; ?+ n. ?: E# L h* J
A,1.0,-0.25,[CON1,ep.shx],-1.0. |6 T- h- f$ L
除了方括号中的代码以外,所有内容都与简单线型的定义一致。 * ^7 h1 {3 r% \% Z
3 R( L; V* G2 P如上所述,总共有六个字段可用于将形定义为线型的一部分。前两个是必须的,位置固定;后四个是可选的,次序可变。以下两个样例展示了形定义字段中的不同条目。 Q+ X& n3 a3 | ]
3 v; B5 _6 B0 P, l; u1 L[CAP,ep.shx,S=2,R=10,X=0.5]
! S0 ^/ n; f" a2 r上述代码对形文件 ep.shx 中定义的形 CAP 进行变换。在变换生效之前,将该形放大两倍,沿逆时针方向切向旋转 10 度,并沿 X 方向平移 0.5 个图形单位。
3 C7 o2 W! b/ ]3 A2 R; ?1 x- P, n8 G! E D0 p. |
[DIP8,pd.shx,X=0.5,Y=1,R=0,S=1]
) T; Q7 q% ~: [7 j2 s1 \上述代码对形文件 pd.shx 中定义的形 DIP8 进行变换。在变换生效之前,将该形沿 X 方向平移 0.5 个图形单位,沿 Y 方向上移一个图形单位,不作旋转,并且保持与原形大小相等。
9 n) g: Q0 K" h7 x$ v! y- D6 @" {; h6 |% q; Y
下面的语法把形定义为复杂线型的一部分: 8 O/ W0 K/ L- O' K7 J; G( F0 M
' [4 O4 ?) m4 Q[shapename,shapefilename,scale,rotate,xoffset,yoffset]
% F7 J9 y% c A- o4 o语法中字段的定义如下所示。
5 Y% x5 e1 y+ Y: `/ B; M& o5 _, V/ }
, x2 N6 n: r9 }/ P9 V( c @shapename
3 n6 R) r( h- D+ w要绘制的形的名称。必须包含此字段。如果省略,则线型定义失败。如果指定的形文件中没有 shapename,则继续绘制线型,但不包括嵌入的形。
. P2 p6 T' n1 T( k3 H0 D. O0 u; E% ?+ \ D) O' l
shapefilename
+ e8 H; S7 h; b+ b- g' ]编译后的形定义文件 (SHX) 的名称。如果省略,则线型定义失败。如果 shapefilename 未指定路径,则从库路径中搜索此文件。如果 shapefilename 包括完整的路径,但在该位置未找到该文件,则截去前缀,并从库路径中搜索此文件。如果未找到,则继续绘制线型,但不包括嵌入的形。
0 G2 @* X% z- [/ h/ X H, ]7 j
2 T' m1 x( m( fscale6 E' @% ~0 h& [) ?" T
S=value。形的比例用作比例因子,与形内部定义的比例相乘。如果内部定义的形比例为 0(零),则 S=value 单独用作比例。
1 V5 S( h$ |' Z( I* u; O
7 d+ g. B( ?# X- N% Yrotate
2 h6 ~- a- s3 R0 dR=value 或 A=value。R= 指定相对于直线的相对或切向旋转。A= 指定形相对于原点的绝对旋转。所有的形都作相同的旋转,而跟其与直线的相对位置无关。可以在值后附加 d 表示度(如果省略,度为默认值),附加 r 表示弧度,或者附加 g 表示百分度。如果省略旋转,则相对旋转为 0。, X1 f" P5 k U9 l9 o5 A. t
' P q7 E4 Q9 g$ S. ~; h
xoffset
7 r9 H0 }. r, xX=value。形相对于线型定义顶点末端在 X 轴方向上所作的移动。如果省略 xoffset 或者将其设置为 0,则形不作偏移。如果要得到用形构成的连续直线,请使用此字段。该值不会按照 S= 定义的缩放比例进行缩放。
) K; m4 ]: x. o2 d* V p
6 `4 c3 n- r3 q6 @9 C4 o2 pyoffset# Q( x! Q0 v2 w& P
Y=value。形相对于线型定义顶点末端在 Y 轴方向上所作的移动。如果省略 yoffset 或者将其设置为 0,则形不作偏移。该值不会按照 S= 定义的缩放比例进行缩放。' v+ g1 M! |! Q+ s: ]3 s
% l" @9 R7 b) B参见 |
|