|
|
发表于 2007-9-30 10:52:49
|
显示全部楼层
来自: 中国广东广州
请查“帮助”
( r5 D; b6 i, F( N. x% j% v自定义手册3 l4 ^% s- \, L2 i5 @1 P
自定义线型
: ^7 v4 t y: d5 R! m自定义线型中的形
& Q% y! F) a1 W+ |4 F* m / i5 S( ^+ X1 @) q: u
3 ?( v% y3 O9 g7 V" t ! t* m* W, A- k6 q5 A& z0 s6 O
复杂线型可以包含嵌入的形(保存在形文件中)。复杂线型可以表示实用程序、边界和轮廓等等。 # [- y( Y) m; Q! @2 n8 s
4 O- S8 S$ G$ s8 e与简单线型一样,指定端点后可以动态地绘制复杂线型。直线中嵌入的形和文字对象总是完整显示,从来不会被截断。 - P, T2 D! G) C5 p% m* ]& e1 @
- E( k& l) c. r7 V& z5 R' a. w复杂线型的语法与简单线型的语法类似,都是一列以逗号分隔的图案描述符。除了点划线描述符之外,形和文字对象也可作为复杂线型的图案描述符。 : a, T& [$ D/ c0 [7 w" @4 A
9 W N8 s. Q, h, ]7 i6 g+ j$ W线型说明中的形对象描述符的语法如下所示: 5 S) E: C( B( ~: t' v
) n" T. W2 c8 q! s$ h
[shapename,shxfilename] 或 [shapename,shxfilename,transform] " ~* d+ R, u$ w' [
其中,transform 是可选的,可以是下列等式的任意序列(每个等式前都带有逗号): , s$ z, }" ~, F1 m* |2 z
6 v. I6 j& _0 v1 z3 {& o( P% M
R=## 相对旋转
9 s, Q5 S5 G3 J6 ^5 P
# B0 I4 j" G9 E. j/ X `A=## 绝对旋转1 o6 \3 B& o0 y) N
( C! j: U2 l3 C& @) AS=## 比例
. R9 F6 @1 n! b! y$ E6 W# w X5 u3 ^9 g* Q4 q2 @ C
X=## X 偏移
) y5 o4 n6 V2 G7 A5 C2 N0 ~( K$ s% I3 N: ]4 E* f) r
Y=## Y 偏移) V, U m* `! V7 p- D* W7 J
: u+ }5 x3 F- p7 {! `: |
在此语法中,## 表示带符号的十进制数(如 1、-17、0.01 等),旋转单位为度,其他选项的单位都是线型比例的图形单位。上述 transform 字母,使用时后面必须跟上等号和数值。# a+ X6 h+ b1 ^
0 L0 M' q# F$ m; o: @- ]# T以下线型定义用于定义名为 CON1LINE 的线型,该线型由一条直线段、一个空格和来自“ep.shx”文件的嵌入形 CON1 这一重复图案构成。(请注意,必须将“ep.shx”文件放在支持路径中才能使以下样例正常运行。) $ z q- r y3 F( E2 z
; V- W" U; E# h+ ?6 @6 X
*CON1LINE, --- [CON1] --- [CON1] --- [CON1]
0 v8 t/ A0 Z+ Z- A! T4 }, D, zA,1.0,-0.25,[CON1,ep.shx],-1.0
( U8 H* z6 b X- y" k: n除了方括号中的代码以外,所有内容都与简单线型的定义一致。
* |& _# a: N3 S/ R2 v* i0 T* u2 F+ ]% D% B" k
如上所述,总共有六个字段可用于将形定义为线型的一部分。前两个是必须的,位置固定;后四个是可选的,次序可变。以下两个样例展示了形定义字段中的不同条目。
/ T2 E8 x+ S/ o2 Y
5 O: C9 r# F, _/ c[CAP,ep.shx,S=2,R=10,X=0.5]
0 D, N/ u* N5 r" _- b上述代码对形文件 ep.shx 中定义的形 CAP 进行变换。在变换生效之前,将该形放大两倍,沿逆时针方向切向旋转 10 度,并沿 X 方向平移 0.5 个图形单位。
9 ^5 n. j" {8 G( u8 V4 W/ j3 j4 f! b
[DIP8,pd.shx,X=0.5,Y=1,R=0,S=1]
+ h2 ^/ p/ d- n" h( p+ \4 q, O% o$ x2 ]上述代码对形文件 pd.shx 中定义的形 DIP8 进行变换。在变换生效之前,将该形沿 X 方向平移 0.5 个图形单位,沿 Y 方向上移一个图形单位,不作旋转,并且保持与原形大小相等。 5 r9 v: _! A. @6 a9 k+ I9 ~0 ?
. y$ k7 Q2 p: B# ~' ~2 a" |6 Z9 I1 U
下面的语法把形定义为复杂线型的一部分:
0 g; l* z6 W; |" `/ W" g* p# z0 g& l( P' _
[shapename,shapefilename,scale,rotate,xoffset,yoffset]
3 a( m- K! A+ F% h! x! u, y语法中字段的定义如下所示。$ F5 r8 P/ x9 }! }
6 s ~% u( q2 t: u7 t8 r5 R- |
shapename
% e- u, e6 X- O9 m# V9 v d要绘制的形的名称。必须包含此字段。如果省略,则线型定义失败。如果指定的形文件中没有 shapename,则继续绘制线型,但不包括嵌入的形。
5 B& N {; l' i4 w& v# T5 C' }9 p; u0 P8 L) o, d- t
shapefilename* {4 W% s1 A2 ~
编译后的形定义文件 (SHX) 的名称。如果省略,则线型定义失败。如果 shapefilename 未指定路径,则从库路径中搜索此文件。如果 shapefilename 包括完整的路径,但在该位置未找到该文件,则截去前缀,并从库路径中搜索此文件。如果未找到,则继续绘制线型,但不包括嵌入的形。
( l3 j& x) u% e$ G# R9 y
0 I5 c5 c% T1 s2 i) P) x# cscale) I6 ]. t0 {1 r1 ~# S+ |" b
S=value。形的比例用作比例因子,与形内部定义的比例相乘。如果内部定义的形比例为 0(零),则 S=value 单独用作比例。
; P9 }! S6 Z) o# O- |
* B- M d: o, V& h. urotate9 u [, ^; }8 v1 |) H! y
R=value 或 A=value。R= 指定相对于直线的相对或切向旋转。A= 指定形相对于原点的绝对旋转。所有的形都作相同的旋转,而跟其与直线的相对位置无关。可以在值后附加 d 表示度(如果省略,度为默认值),附加 r 表示弧度,或者附加 g 表示百分度。如果省略旋转,则相对旋转为 0。9 ]7 m6 p3 \3 t* m; |7 {3 B! i% `
: O4 W. ^8 {4 `) V+ lxoffset
! j' X/ q6 ? w+ W4 SX=value。形相对于线型定义顶点末端在 X 轴方向上所作的移动。如果省略 xoffset 或者将其设置为 0,则形不作偏移。如果要得到用形构成的连续直线,请使用此字段。该值不会按照 S= 定义的缩放比例进行缩放。5 l F' r! L% Q& F5 s
& C) E9 f7 r8 h& J8 J& q! ~9 @yoffset5 E: O4 _, h" Q3 G9 W
Y=value。形相对于线型定义顶点末端在 Y 轴方向上所作的移动。如果省略 yoffset 或者将其设置为 0,则形不作偏移。该值不会按照 S= 定义的缩放比例进行缩放。$ d. w2 _! `* m. z
3 f7 B. U" t; m ]7 v& y- ?# t
参见 |
|