|
|
发表于 2007-9-30 10:52:49
|
显示全部楼层
来自: 中国广东广州
请查“帮助”1 `8 b! _: ?: v& F
自定义手册" h& Y# J* ?# @8 A; y8 m" v- V
自定义线型
( w: S) U. K+ E% H6 d# O+ Y. }自定义线型中的形1 ^. h+ W8 | q; ^1 D
) Q$ n/ m& p+ v
$ B" ]3 j3 S8 i. y- `" @
) s4 g" l/ |. i% g/ J复杂线型可以包含嵌入的形(保存在形文件中)。复杂线型可以表示实用程序、边界和轮廓等等。
% T1 I! x9 n" ~( `8 j& v! p! Y+ P7 c |
与简单线型一样,指定端点后可以动态地绘制复杂线型。直线中嵌入的形和文字对象总是完整显示,从来不会被截断。
# _8 X7 G8 ^1 b% d9 I
6 I4 f$ E0 R" {, A复杂线型的语法与简单线型的语法类似,都是一列以逗号分隔的图案描述符。除了点划线描述符之外,形和文字对象也可作为复杂线型的图案描述符。
1 p P& b8 X f5 f" C3 T4 T e: l
线型说明中的形对象描述符的语法如下所示: 7 _+ `! \7 N, i, R9 `
- A6 w/ a0 N- _; h5 E+ V e0 ^
[shapename,shxfilename] 或 [shapename,shxfilename,transform] 8 C; i: q) V: { m* f( @% S, C
其中,transform 是可选的,可以是下列等式的任意序列(每个等式前都带有逗号): 2 V3 {0 h5 ^6 D
, P2 z+ l7 H5 t6 ~+ Y( p
R=## 相对旋转7 U- S) V- B# K) R6 _! z
6 p5 c: z& I( U, U( k* {
A=## 绝对旋转: [3 ? `/ M! z( J, Z! v
# U9 _! H, F# T. d1 d' \1 JS=## 比例% O. c5 {5 K% M! A. I
. ]" Z7 P3 v3 L# f/ A
X=## X 偏移 7 t: \8 H( O6 h! ?, w7 F
/ f' G* H* c- h9 L
Y=## Y 偏移
. y, ?3 W7 C- s |, w! Z; R$ s3 J! P7 B9 R- P: T
在此语法中,## 表示带符号的十进制数(如 1、-17、0.01 等),旋转单位为度,其他选项的单位都是线型比例的图形单位。上述 transform 字母,使用时后面必须跟上等号和数值。: S0 Y. D6 q+ N/ F. h3 H: i
: i. A9 m9 b) }) t# a以下线型定义用于定义名为 CON1LINE 的线型,该线型由一条直线段、一个空格和来自“ep.shx”文件的嵌入形 CON1 这一重复图案构成。(请注意,必须将“ep.shx”文件放在支持路径中才能使以下样例正常运行。)
6 k( }8 r* D) A* d$ R
z% r3 }* r$ E. \*CON1LINE, --- [CON1] --- [CON1] --- [CON1]
# N9 [3 f1 [* ]6 i: NA,1.0,-0.25,[CON1,ep.shx],-1.0# I u& y: Y# w% r ?
除了方括号中的代码以外,所有内容都与简单线型的定义一致。
1 n1 L# h9 M) ~, T L+ D
/ Y5 [; c( M# Y8 g0 \$ l如上所述,总共有六个字段可用于将形定义为线型的一部分。前两个是必须的,位置固定;后四个是可选的,次序可变。以下两个样例展示了形定义字段中的不同条目。5 B( [' R5 L& e2 _: E \( ^; r
9 i$ K" H+ W3 z* q& y% \+ U[CAP,ep.shx,S=2,R=10,X=0.5] 9 e6 I) l3 t7 i8 r0 a( g
上述代码对形文件 ep.shx 中定义的形 CAP 进行变换。在变换生效之前,将该形放大两倍,沿逆时针方向切向旋转 10 度,并沿 X 方向平移 0.5 个图形单位。
2 s' v' v- R7 J7 j5 k5 m, g/ d- c/ v, d5 w
[DIP8,pd.shx,X=0.5,Y=1,R=0,S=1] ) U; O: s6 _( f' a- O
上述代码对形文件 pd.shx 中定义的形 DIP8 进行变换。在变换生效之前,将该形沿 X 方向平移 0.5 个图形单位,沿 Y 方向上移一个图形单位,不作旋转,并且保持与原形大小相等。
/ H) w; V0 k( N4 P: Y6 x, q
, z2 x! m) Y% B: N9 z下面的语法把形定义为复杂线型的一部分:
) }. T' F1 `0 g: m" a
/ \' _. {# G2 r[shapename,shapefilename,scale,rotate,xoffset,yoffset]
& j( E$ U8 N, x1 [) ]语法中字段的定义如下所示。
+ E& x* K! q8 v; u H3 @$ C. @# q- X
shapename 8 N8 I$ W7 O! Y( Z2 K
要绘制的形的名称。必须包含此字段。如果省略,则线型定义失败。如果指定的形文件中没有 shapename,则继续绘制线型,但不包括嵌入的形。 $ {4 R" h/ r( E ?6 L `
" L) [. z5 g: |
shapefilename8 t" C d" [9 ]
编译后的形定义文件 (SHX) 的名称。如果省略,则线型定义失败。如果 shapefilename 未指定路径,则从库路径中搜索此文件。如果 shapefilename 包括完整的路径,但在该位置未找到该文件,则截去前缀,并从库路径中搜索此文件。如果未找到,则继续绘制线型,但不包括嵌入的形。 # Y( ~ P }7 ]$ y
/ k/ h& a# P: l- e0 L
scale4 v6 ^! p( j( D* g/ r
S=value。形的比例用作比例因子,与形内部定义的比例相乘。如果内部定义的形比例为 0(零),则 S=value 单独用作比例。 ) U1 E4 }0 M, k* B- f* i* @& [
( e7 j6 j2 A" @0 krotate
6 ^! J5 C" F h, d9 v) }/ qR=value 或 A=value。R= 指定相对于直线的相对或切向旋转。A= 指定形相对于原点的绝对旋转。所有的形都作相同的旋转,而跟其与直线的相对位置无关。可以在值后附加 d 表示度(如果省略,度为默认值),附加 r 表示弧度,或者附加 g 表示百分度。如果省略旋转,则相对旋转为 0。
% w% j/ x& m5 Z1 ]( @* ^
* ~! u1 K) p/ @) c3 a* h% ^( H& [5 Exoffset+ j! j" J! }2 Q' I# {4 o S: M- Z
X=value。形相对于线型定义顶点末端在 X 轴方向上所作的移动。如果省略 xoffset 或者将其设置为 0,则形不作偏移。如果要得到用形构成的连续直线,请使用此字段。该值不会按照 S= 定义的缩放比例进行缩放。. [# c: ^' z, t, e" ?2 T( B$ ?
" G S |8 B: c2 I) f; uyoffset9 ?# Y) x( o- x* D6 f3 s4 m+ F+ @, {
Y=value。形相对于线型定义顶点末端在 Y 轴方向上所作的移动。如果省略 yoffset 或者将其设置为 0,则形不作偏移。该值不会按照 S= 定义的缩放比例进行缩放。4 k4 N5 G/ f0 l
8 Q' `! O3 Z5 {5 h
参见 |
|