|
|
发表于 2007-9-30 10:52:49
|
显示全部楼层
来自: 中国广东广州
请查“帮助”9 N9 w2 }6 T/ s; T( j& W" N
自定义手册# ?! e; W, L1 |& |/ e- @
自定义线型8 v- i' ?- {) i& y
自定义线型中的形
" ^/ M! B7 k; b
& \( E1 @+ U8 L" V0 B" p& j
2 u) u* r v' `% k
7 |' x$ l6 T2 s/ Q7 F5 T复杂线型可以包含嵌入的形(保存在形文件中)。复杂线型可以表示实用程序、边界和轮廓等等。
: ^$ D% i5 L9 O) T' Q$ n6 L- s. w; m% F# T) |( ^
与简单线型一样,指定端点后可以动态地绘制复杂线型。直线中嵌入的形和文字对象总是完整显示,从来不会被截断。 % }9 Z& ?- J- Q% z
' z3 ~& c7 w+ E) x复杂线型的语法与简单线型的语法类似,都是一列以逗号分隔的图案描述符。除了点划线描述符之外,形和文字对象也可作为复杂线型的图案描述符。
3 O' b$ O1 X$ j6 W2 K, e, U" `! O- L0 H
线型说明中的形对象描述符的语法如下所示:
+ {6 W, M/ W7 p5 B! z$ q: G6 p' |0 C3 g7 F0 }% k
[shapename,shxfilename] 或 [shapename,shxfilename,transform]
) {$ s0 u" @: d' V8 s其中,transform 是可选的,可以是下列等式的任意序列(每个等式前都带有逗号): 9 {) U$ Q6 ~$ B( c0 f: |
" U: C/ r$ J/ T: @( A
R=## 相对旋转
! }/ R! E7 i2 e/ F+ u& N! C. `% B+ _) }6 d- o& ^! M, p
A=## 绝对旋转+ [ l. V2 M- R/ t5 T \8 U @
2 }1 R8 `0 I, `3 b; D. k0 w! US=## 比例7 g1 g) j8 H+ @' G3 ^
6 |# y9 v6 b/ {# s- Q2 K' Q; bX=## X 偏移
6 s' V' l6 |8 e8 B9 I+ U. l5 u0 g0 n. o. G' ]0 J
Y=## Y 偏移# k, X' G7 J( [& A2 H
- T8 K0 }) W+ [
在此语法中,## 表示带符号的十进制数(如 1、-17、0.01 等),旋转单位为度,其他选项的单位都是线型比例的图形单位。上述 transform 字母,使用时后面必须跟上等号和数值。
8 E$ U+ O$ D7 o$ K7 W* O1 P4 t6 [. }% L1 Y" U
以下线型定义用于定义名为 CON1LINE 的线型,该线型由一条直线段、一个空格和来自“ep.shx”文件的嵌入形 CON1 这一重复图案构成。(请注意,必须将“ep.shx”文件放在支持路径中才能使以下样例正常运行。)
; H. L* g; h! `( X& y: m# L; ]8 q7 c# V1 j1 I9 u$ s
*CON1LINE, --- [CON1] --- [CON1] --- [CON1]
+ H G( R/ W4 E) i1 ?3 g2 N- G. N$ `A,1.0,-0.25,[CON1,ep.shx],-1.0
! {. }& [$ P7 V/ W- K除了方括号中的代码以外,所有内容都与简单线型的定义一致。 . n5 s; u7 x/ V+ \, s) h
. P% ?! \9 A, u+ ?: V如上所述,总共有六个字段可用于将形定义为线型的一部分。前两个是必须的,位置固定;后四个是可选的,次序可变。以下两个样例展示了形定义字段中的不同条目。
8 O! _8 }+ I/ } m, a# f; P4 F2 X$ [0 N0 i$ V' }
[CAP,ep.shx,S=2,R=10,X=0.5]
- x. a) F! B" U; _8 P5 ? D上述代码对形文件 ep.shx 中定义的形 CAP 进行变换。在变换生效之前,将该形放大两倍,沿逆时针方向切向旋转 10 度,并沿 X 方向平移 0.5 个图形单位。
' X4 H, C$ F+ g6 j! Q
: P1 N' Y. Y2 Q9 h6 u, s- J1 B[DIP8,pd.shx,X=0.5,Y=1,R=0,S=1] 8 b2 y0 L1 \# X& j: ?
上述代码对形文件 pd.shx 中定义的形 DIP8 进行变换。在变换生效之前,将该形沿 X 方向平移 0.5 个图形单位,沿 Y 方向上移一个图形单位,不作旋转,并且保持与原形大小相等。
+ B) g8 s' l0 A6 h% l! P3 |# a8 ^" a4 g" P0 M. ~/ e& T. C- |
下面的语法把形定义为复杂线型的一部分:
4 {4 {2 s- r3 I/ F6 K3 n
0 T' l: P+ s3 K' E! ]$ ?% u[shapename,shapefilename,scale,rotate,xoffset,yoffset] + O9 y9 n- n, k/ s l
语法中字段的定义如下所示。
1 y" U5 @9 A2 b# n9 }* u) O0 u. G: Z( c2 v
shapename " J% I! q3 i. ~2 B
要绘制的形的名称。必须包含此字段。如果省略,则线型定义失败。如果指定的形文件中没有 shapename,则继续绘制线型,但不包括嵌入的形。
8 N n# B! o" c; e! @+ w( \, u% a a* C+ ]
shapefilename
3 e1 L& H' X6 S: k编译后的形定义文件 (SHX) 的名称。如果省略,则线型定义失败。如果 shapefilename 未指定路径,则从库路径中搜索此文件。如果 shapefilename 包括完整的路径,但在该位置未找到该文件,则截去前缀,并从库路径中搜索此文件。如果未找到,则继续绘制线型,但不包括嵌入的形。 4 B1 |( x& b- G# t1 f
; J& c; b/ s# ~7 h) Oscale- ~ n \2 ~/ K2 G% W
S=value。形的比例用作比例因子,与形内部定义的比例相乘。如果内部定义的形比例为 0(零),则 S=value 单独用作比例。 ) j+ l3 C5 O& \* |
! V$ x* h/ }" C; `) d+ ]; K/ t7 C
rotate0 S" g, v4 E2 O0 s. m/ i
R=value 或 A=value。R= 指定相对于直线的相对或切向旋转。A= 指定形相对于原点的绝对旋转。所有的形都作相同的旋转,而跟其与直线的相对位置无关。可以在值后附加 d 表示度(如果省略,度为默认值),附加 r 表示弧度,或者附加 g 表示百分度。如果省略旋转,则相对旋转为 0。. S8 O- v- H+ y; F. ]
4 J( v& c( W! Hxoffset9 ^8 Q+ n5 d4 j5 f
X=value。形相对于线型定义顶点末端在 X 轴方向上所作的移动。如果省略 xoffset 或者将其设置为 0,则形不作偏移。如果要得到用形构成的连续直线,请使用此字段。该值不会按照 S= 定义的缩放比例进行缩放。( ?0 d3 j" x7 e" [) E# K
/ D( O0 k% F6 j, q! {* w
yoffset4 g0 T5 X2 | C; h9 }
Y=value。形相对于线型定义顶点末端在 Y 轴方向上所作的移动。如果省略 yoffset 或者将其设置为 0,则形不作偏移。该值不会按照 S= 定义的缩放比例进行缩放。: V& ^6 y! V7 `; h8 |
( Q: \" m; Q. l7 I9 J+ r
参见 |
|