|
|
发表于 2007-9-30 10:52:49
|
显示全部楼层
来自: 中国广东广州
请查“帮助”
3 ~( h8 a) g2 q1 G" @: u3 R自定义手册# x- r! O3 V, @
自定义线型
1 {, D6 j% ]' W5 M5 J! h自定义线型中的形( v2 j! G8 |: x6 t _1 m& z+ e
" {1 {1 D# @: W% m9 y; @ w1 ]
6 `) I/ j/ c0 n) L* ]/ I# m ; }. C- @( K" ^' c3 r
复杂线型可以包含嵌入的形(保存在形文件中)。复杂线型可以表示实用程序、边界和轮廓等等。 : T9 C! v9 {2 C
. P6 x1 s7 T/ t6 A8 S+ @ E, ` ?* N( _
与简单线型一样,指定端点后可以动态地绘制复杂线型。直线中嵌入的形和文字对象总是完整显示,从来不会被截断。 8 I& e) X( h2 _5 V0 A1 t+ x
5 Y1 u* \. z) J. o. U' f7 |" [% C复杂线型的语法与简单线型的语法类似,都是一列以逗号分隔的图案描述符。除了点划线描述符之外,形和文字对象也可作为复杂线型的图案描述符。
# D, h" w3 }+ N1 _# Z) _
7 \) J! _+ m! i, I- N线型说明中的形对象描述符的语法如下所示: $ L4 @: G( k. ]/ E# D- d8 b5 z% g
1 Q$ [ X/ I3 o4 b! b6 O
[shapename,shxfilename] 或 [shapename,shxfilename,transform] + E6 P$ a% |& N/ P, I/ J( F+ E
其中,transform 是可选的,可以是下列等式的任意序列(每个等式前都带有逗号):
2 n, s6 N8 Y; p$ U
7 e* s7 f; K9 j( ~R=## 相对旋转
L1 y5 _9 o' z" ]( y4 `1 @* S0 ^1 V# H) i9 x6 U3 |! v ]0 c% [
A=## 绝对旋转4 r) q" [! v8 x! C8 Y+ x$ s
7 n2 @6 |+ M1 J8 Z; S; l
S=## 比例9 }3 y- M' d$ f4 d! ^' w
- C; {# m6 \2 Z) r- G1 A
X=## X 偏移
' c* p& r p# m( @# |: u* R, D% Y0 S/ Q9 P
Y=## Y 偏移
* p) x. B7 U3 \% S* @/ q: E7 u6 D" z3 ~/ Q
在此语法中,## 表示带符号的十进制数(如 1、-17、0.01 等),旋转单位为度,其他选项的单位都是线型比例的图形单位。上述 transform 字母,使用时后面必须跟上等号和数值。8 e) ]! G; i, z3 \3 p0 p) r
1 K9 F; r( p! U$ c/ p% w以下线型定义用于定义名为 CON1LINE 的线型,该线型由一条直线段、一个空格和来自“ep.shx”文件的嵌入形 CON1 这一重复图案构成。(请注意,必须将“ep.shx”文件放在支持路径中才能使以下样例正常运行。) , X a% a# x9 @
4 \1 m+ a9 j5 ^0 Y( s2 \: s*CON1LINE, --- [CON1] --- [CON1] --- [CON1], l9 l3 A) |5 u
A,1.0,-0.25,[CON1,ep.shx],-1.0
' [( f6 K K/ o0 ?1 h( r- @% S除了方括号中的代码以外,所有内容都与简单线型的定义一致。 9 c' ~% X0 p* W1 S5 t
/ d `# n0 h8 d% u. y: z0 o7 E
如上所述,总共有六个字段可用于将形定义为线型的一部分。前两个是必须的,位置固定;后四个是可选的,次序可变。以下两个样例展示了形定义字段中的不同条目。4 d6 X% @, W6 r' Z3 y
4 P3 s( B% i7 g
[CAP,ep.shx,S=2,R=10,X=0.5]
8 u7 Y! s( G; t: R4 p上述代码对形文件 ep.shx 中定义的形 CAP 进行变换。在变换生效之前,将该形放大两倍,沿逆时针方向切向旋转 10 度,并沿 X 方向平移 0.5 个图形单位。
8 Q! x$ a! R7 e, @" [, j
1 O; [, X2 G/ q5 N[DIP8,pd.shx,X=0.5,Y=1,R=0,S=1]
) t# q% ^# n1 S' Q# a: {( b# `上述代码对形文件 pd.shx 中定义的形 DIP8 进行变换。在变换生效之前,将该形沿 X 方向平移 0.5 个图形单位,沿 Y 方向上移一个图形单位,不作旋转,并且保持与原形大小相等。 ! w/ d& T$ T4 n, Y1 d
2 L/ ~# x$ L( u6 D
下面的语法把形定义为复杂线型的一部分:
; P% ~$ o+ Z5 e) b/ X0 c- v2 t V3 s$ E6 e8 L8 K$ U4 N
[shapename,shapefilename,scale,rotate,xoffset,yoffset] ( z* T' ^$ D- w6 s6 E
语法中字段的定义如下所示。 \1 Z3 `# w: v# F2 W+ `
3 r" a: b+ P1 z: Wshapename
) R% z5 W0 M1 t要绘制的形的名称。必须包含此字段。如果省略,则线型定义失败。如果指定的形文件中没有 shapename,则继续绘制线型,但不包括嵌入的形。 / a' O! S7 d, v! ]
) R) q! y0 g" E+ \4 Vshapefilename4 V9 A; i8 t2 l7 B! D* P- D
编译后的形定义文件 (SHX) 的名称。如果省略,则线型定义失败。如果 shapefilename 未指定路径,则从库路径中搜索此文件。如果 shapefilename 包括完整的路径,但在该位置未找到该文件,则截去前缀,并从库路径中搜索此文件。如果未找到,则继续绘制线型,但不包括嵌入的形。
$ S, E% h U; Q+ [$ p8 Q# L6 L8 R6 ^5 c0 T; d* a2 I' d9 k7 Z
scale/ O* B: _8 C3 @
S=value。形的比例用作比例因子,与形内部定义的比例相乘。如果内部定义的形比例为 0(零),则 S=value 单独用作比例。
' N" ]* F! v4 a8 O5 s' l0 e0 s$ a% f' ~/ D* A2 b
rotate
8 M0 J0 ] b* ]6 @R=value 或 A=value。R= 指定相对于直线的相对或切向旋转。A= 指定形相对于原点的绝对旋转。所有的形都作相同的旋转,而跟其与直线的相对位置无关。可以在值后附加 d 表示度(如果省略,度为默认值),附加 r 表示弧度,或者附加 g 表示百分度。如果省略旋转,则相对旋转为 0。" D4 h2 z' h) P" } c& {
9 e2 s: }0 v7 f% F1 b! Bxoffset- }+ I7 B1 Q$ ]
X=value。形相对于线型定义顶点末端在 X 轴方向上所作的移动。如果省略 xoffset 或者将其设置为 0,则形不作偏移。如果要得到用形构成的连续直线,请使用此字段。该值不会按照 S= 定义的缩放比例进行缩放。
; a/ G' F/ B/ i4 I# ]7 {- d
, G: ]2 E/ y% I7 j. w1 M) ^! W$ Cyoffset
5 X; q2 C# M) B6 B* wY=value。形相对于线型定义顶点末端在 Y 轴方向上所作的移动。如果省略 yoffset 或者将其设置为 0,则形不作偏移。该值不会按照 S= 定义的缩放比例进行缩放。6 R4 M" i' u& e. V. c" F, m5 x
3 l+ g; {& e) x& j, m/ z
参见 |
|