|
|
发表于 2007-9-30 10:52:49
|
显示全部楼层
来自: 中国广东广州
请查“帮助”
2 V/ T/ _0 B7 ]0 A+ w4 F7 p自定义手册9 Y& J2 }' ?& I: f$ v% O% q
自定义线型
0 p6 @7 Z& S( p- b5 l自定义线型中的形
+ B* B9 R6 _8 k- S; p/ H% e
- s7 c4 u) v2 \- ]
1 R# i6 h. V' r; a* P5 Q) Q. O# H- k! S " E5 ~; H8 L% x: c6 w
复杂线型可以包含嵌入的形(保存在形文件中)。复杂线型可以表示实用程序、边界和轮廓等等。 1 t! H2 t0 j& P; l6 M6 q
6 W; Q. e) d" |/ L0 E* ]与简单线型一样,指定端点后可以动态地绘制复杂线型。直线中嵌入的形和文字对象总是完整显示,从来不会被截断。
) _, _- ~- c+ E$ S
+ @( L7 V( a' c# \$ N复杂线型的语法与简单线型的语法类似,都是一列以逗号分隔的图案描述符。除了点划线描述符之外,形和文字对象也可作为复杂线型的图案描述符。
& x1 c& a, Z0 R9 r% [6 b( B
& [3 S: p! s! J x/ o! ^线型说明中的形对象描述符的语法如下所示:
$ X3 m/ p3 u5 y1 X& ~9 u
, j% D. @6 O! E) \6 A( v* R$ A! B[shapename,shxfilename] 或 [shapename,shxfilename,transform] ( M1 |1 I6 M* u' U
其中,transform 是可选的,可以是下列等式的任意序列(每个等式前都带有逗号): X- G/ d# d' ^# t. E
* i' R/ ] H2 Z- ?/ d2 |7 q# e$ mR=## 相对旋转: C4 i* T+ p; Y$ N9 q j8 e
3 {. L! w. O# \$ K7 ]: v0 G
A=## 绝对旋转; q, A+ |' \. j9 `
. {- p @ J, y1 `S=## 比例6 B# w( X0 ^( @( C f4 t
' ?3 u) w8 S7 ?) a, N7 UX=## X 偏移
' d& T$ ]: O' k) I; s8 U( ~: u
, e1 z2 k+ U* H8 P$ \' k7 B- E" DY=## Y 偏移
( ~& Y( P( M: V6 ?0 n! W' @
+ \5 d0 Q+ ~* I. ^9 l+ G在此语法中,## 表示带符号的十进制数(如 1、-17、0.01 等),旋转单位为度,其他选项的单位都是线型比例的图形单位。上述 transform 字母,使用时后面必须跟上等号和数值。; W. Z+ @1 I4 w. q
; V& _, C' e& [1 @$ n以下线型定义用于定义名为 CON1LINE 的线型,该线型由一条直线段、一个空格和来自“ep.shx”文件的嵌入形 CON1 这一重复图案构成。(请注意,必须将“ep.shx”文件放在支持路径中才能使以下样例正常运行。) ! h7 L! A6 F: O# w
! F' ^# Z2 l. _# z' h3 e2 E6 N
*CON1LINE, --- [CON1] --- [CON1] --- [CON1]8 u i4 p% z" {8 ^% k3 r
A,1.0,-0.25,[CON1,ep.shx],-1.0
! ~1 Y( e8 f' u3 M# c* }. }除了方括号中的代码以外,所有内容都与简单线型的定义一致。 6 o: g+ N, K7 K, z' [
8 q1 l% ]. W# r1 h# w6 C' Z
如上所述,总共有六个字段可用于将形定义为线型的一部分。前两个是必须的,位置固定;后四个是可选的,次序可变。以下两个样例展示了形定义字段中的不同条目。
- e" \$ V3 \3 }1 g. e
' p+ t/ D- d# n6 w. l% J[CAP,ep.shx,S=2,R=10,X=0.5]
/ p4 v# c5 b0 t* c上述代码对形文件 ep.shx 中定义的形 CAP 进行变换。在变换生效之前,将该形放大两倍,沿逆时针方向切向旋转 10 度,并沿 X 方向平移 0.5 个图形单位。 * g3 c1 h2 s1 G/ l0 i: Q0 J; D
, t' w( t8 d4 [) C1 a
[DIP8,pd.shx,X=0.5,Y=1,R=0,S=1]
0 l1 k7 ?: l7 ~& G8 s上述代码对形文件 pd.shx 中定义的形 DIP8 进行变换。在变换生效之前,将该形沿 X 方向平移 0.5 个图形单位,沿 Y 方向上移一个图形单位,不作旋转,并且保持与原形大小相等。 ' g1 }1 P8 |. B9 X
+ i `: V. U$ A# I0 q, L下面的语法把形定义为复杂线型的一部分: " z x! V) G7 X+ U( ?
: N# a) _. |' c" |8 [[shapename,shapefilename,scale,rotate,xoffset,yoffset]
$ G+ I4 o* t" `- U语法中字段的定义如下所示。
0 H$ ^* @0 {+ Z) i1 }: |( D- j- r. E- v" u
shapename 7 ]) X+ t" e! P n1 z
要绘制的形的名称。必须包含此字段。如果省略,则线型定义失败。如果指定的形文件中没有 shapename,则继续绘制线型,但不包括嵌入的形。 ) ^: P; d4 `* N% I
G: H+ j, m: e* ]8 X# U3 q& z
shapefilename# \2 ^% q9 p2 [. Z- F6 o( Q* p
编译后的形定义文件 (SHX) 的名称。如果省略,则线型定义失败。如果 shapefilename 未指定路径,则从库路径中搜索此文件。如果 shapefilename 包括完整的路径,但在该位置未找到该文件,则截去前缀,并从库路径中搜索此文件。如果未找到,则继续绘制线型,但不包括嵌入的形。
! M7 J) s. H s, ^1 W3 D; |# N8 O( p9 Q: f
scale
5 {0 k3 Z# C5 l0 F3 G8 |& N. FS=value。形的比例用作比例因子,与形内部定义的比例相乘。如果内部定义的形比例为 0(零),则 S=value 单独用作比例。 4 \5 d: O; \, H1 |
% P$ }) d- H4 D1 l- z) P, c8 s
rotate0 {: {" c0 m7 {' M& R
R=value 或 A=value。R= 指定相对于直线的相对或切向旋转。A= 指定形相对于原点的绝对旋转。所有的形都作相同的旋转,而跟其与直线的相对位置无关。可以在值后附加 d 表示度(如果省略,度为默认值),附加 r 表示弧度,或者附加 g 表示百分度。如果省略旋转,则相对旋转为 0。
& `% W' P! Z/ o' a- l) V
* {3 h+ C5 V, ~# j# ~ E: Kxoffset5 ]: d; g# [% q5 j
X=value。形相对于线型定义顶点末端在 X 轴方向上所作的移动。如果省略 xoffset 或者将其设置为 0,则形不作偏移。如果要得到用形构成的连续直线,请使用此字段。该值不会按照 S= 定义的缩放比例进行缩放。3 e# m" w/ R. i2 H
+ N E6 T* Z! m5 F; z! {
yoffset( j7 z' W" n6 c: ^, N) ?: ]4 U
Y=value。形相对于线型定义顶点末端在 Y 轴方向上所作的移动。如果省略 yoffset 或者将其设置为 0,则形不作偏移。该值不会按照 S= 定义的缩放比例进行缩放。 \2 @, |) p" R7 `
/ ?6 k8 T( x$ u1 }) D2 h& j) o
参见 |
|