|
|
发表于 2007-9-30 10:52:49
|
显示全部楼层
来自: 中国广东广州
请查“帮助”2 S) b0 {/ E5 P2 J) F2 ]% U
自定义手册 G/ \# ~8 P) G3 i, A: j+ l" I# m$ A
自定义线型
, {4 H' R- d0 }2 Y自定义线型中的形! C v4 B( s7 f5 R
* S( O# g% b* f* M: w4 r5 ~
4 V1 l/ J/ M) W/ W ! }6 p3 r( P$ J. a) n; a
复杂线型可以包含嵌入的形(保存在形文件中)。复杂线型可以表示实用程序、边界和轮廓等等。
/ z" M) {& }( o+ h- c& C0 {+ i* S* O4 B- }, v4 i4 P! r
与简单线型一样,指定端点后可以动态地绘制复杂线型。直线中嵌入的形和文字对象总是完整显示,从来不会被截断。
" ^* @" u# v8 V f3 V" m) {
9 T, a2 j: `8 N/ z! a: o6 Y+ H9 E复杂线型的语法与简单线型的语法类似,都是一列以逗号分隔的图案描述符。除了点划线描述符之外,形和文字对象也可作为复杂线型的图案描述符。 ' |& o: l' B' e$ s! z2 D! R
" P- l1 a; H' w
线型说明中的形对象描述符的语法如下所示:
6 m! A% {" R- G# _; p1 A2 ^, w4 F& {7 P+ i0 C9 B2 P1 [
[shapename,shxfilename] 或 [shapename,shxfilename,transform] , Y: @" o6 B+ o1 I" ^6 E5 ?
其中,transform 是可选的,可以是下列等式的任意序列(每个等式前都带有逗号):
4 f! w3 S) _7 I2 E
( Z0 p' m$ G9 ?. g) b3 TR=## 相对旋转
9 W9 V) S- @) @7 D
' a: U* T! E5 k/ z kA=## 绝对旋转
4 O% k* [: o3 ]. Y1 G. S9 h4 C! d
* s1 W8 G- o, cS=## 比例
8 I9 H+ Y; x& J& J' B/ `* r' h" j; v1 H4 T- P0 V) r4 z
X=## X 偏移 ( H. Z0 W/ b) Z# i
' m3 q" A0 z* g k
Y=## Y 偏移
" e" I7 v% {: Z! y3 [: w
' q- X( s v' J; @$ h在此语法中,## 表示带符号的十进制数(如 1、-17、0.01 等),旋转单位为度,其他选项的单位都是线型比例的图形单位。上述 transform 字母,使用时后面必须跟上等号和数值。
2 M6 @$ X! @9 q8 S; i8 m$ U5 i$ h# ^8 \; \! R: n
以下线型定义用于定义名为 CON1LINE 的线型,该线型由一条直线段、一个空格和来自“ep.shx”文件的嵌入形 CON1 这一重复图案构成。(请注意,必须将“ep.shx”文件放在支持路径中才能使以下样例正常运行。)
, o* r, t7 ~) b
4 |: a6 `& d( ^3 M*CON1LINE, --- [CON1] --- [CON1] --- [CON1]8 O" V5 n3 y' n9 e( e3 f
A,1.0,-0.25,[CON1,ep.shx],-1.0
5 h9 q" _$ G- a+ x4 s; B6 p6 ^除了方括号中的代码以外,所有内容都与简单线型的定义一致。
+ G/ s( E# G5 O( v/ d3 L: A! g1 Y' y$ }2 S8 e& X) t: X
如上所述,总共有六个字段可用于将形定义为线型的一部分。前两个是必须的,位置固定;后四个是可选的,次序可变。以下两个样例展示了形定义字段中的不同条目。% g6 H6 ?' k5 f% s( a' \
; j: X, `4 @- u. b' S1 z) L* |
[CAP,ep.shx,S=2,R=10,X=0.5]
6 c; U% r2 `( p. U% x6 p上述代码对形文件 ep.shx 中定义的形 CAP 进行变换。在变换生效之前,将该形放大两倍,沿逆时针方向切向旋转 10 度,并沿 X 方向平移 0.5 个图形单位。 8 b+ X6 q& E& H6 J9 X
; Z4 _: `" U! r h
[DIP8,pd.shx,X=0.5,Y=1,R=0,S=1] , T" v' r1 @" b5 ] j x
上述代码对形文件 pd.shx 中定义的形 DIP8 进行变换。在变换生效之前,将该形沿 X 方向平移 0.5 个图形单位,沿 Y 方向上移一个图形单位,不作旋转,并且保持与原形大小相等。
; Z( D W e# Q1 a4 n6 u% J+ I6 i4 @5 l& }9 G
下面的语法把形定义为复杂线型的一部分: # l7 `: u7 Y( C
- S, |9 i8 C; J[shapename,shapefilename,scale,rotate,xoffset,yoffset] # t" _. ]" H9 R
语法中字段的定义如下所示。/ J- M2 X# Z% ~2 A3 y8 C
- A- J' J' p+ @3 N, nshapename
$ q- a# b% s- T4 Z3 }+ Y% ]/ A要绘制的形的名称。必须包含此字段。如果省略,则线型定义失败。如果指定的形文件中没有 shapename,则继续绘制线型,但不包括嵌入的形。
; `' b4 d5 M- u% b- ?; n; u; T" @4 h$ Y
shapefilename
$ Q2 q0 I$ A* e X5 D$ p7 m编译后的形定义文件 (SHX) 的名称。如果省略,则线型定义失败。如果 shapefilename 未指定路径,则从库路径中搜索此文件。如果 shapefilename 包括完整的路径,但在该位置未找到该文件,则截去前缀,并从库路径中搜索此文件。如果未找到,则继续绘制线型,但不包括嵌入的形。
/ A7 s0 \2 C( H, Q F1 \! n6 [# i
! _9 `+ Q+ l: \5 i( Ascale
0 @, O" B- q& c* U# jS=value。形的比例用作比例因子,与形内部定义的比例相乘。如果内部定义的形比例为 0(零),则 S=value 单独用作比例。
6 ]3 b( ?3 v3 D$ S$ B( l9 k t' \( ?
rotate
- R Q( }* I m* F+ A- gR=value 或 A=value。R= 指定相对于直线的相对或切向旋转。A= 指定形相对于原点的绝对旋转。所有的形都作相同的旋转,而跟其与直线的相对位置无关。可以在值后附加 d 表示度(如果省略,度为默认值),附加 r 表示弧度,或者附加 g 表示百分度。如果省略旋转,则相对旋转为 0。' H( x6 d7 V7 \* ^% _
* O1 t; m0 x- x
xoffset9 t/ [1 f5 a; k' g& }7 W2 m
X=value。形相对于线型定义顶点末端在 X 轴方向上所作的移动。如果省略 xoffset 或者将其设置为 0,则形不作偏移。如果要得到用形构成的连续直线,请使用此字段。该值不会按照 S= 定义的缩放比例进行缩放。2 D2 X' t" Y2 L S, K/ z" Y
1 Q0 i1 b; k1 X% c1 n
yoffset
" ?" G$ o* j9 U6 Y$ [/ {, YY=value。形相对于线型定义顶点末端在 Y 轴方向上所作的移动。如果省略 yoffset 或者将其设置为 0,则形不作偏移。该值不会按照 S= 定义的缩放比例进行缩放。
+ x+ [/ h0 U. h$ Y) v* i1 R( b# Y6 `, w+ }! c0 P$ [2 x1 j
参见 |
|