|
|
发表于 2007-9-30 10:52:49
|
显示全部楼层
来自: 中国广东广州
请查“帮助”
# h& D6 Q2 L' z6 i: n7 |. G+ J( R自定义手册
- j4 Z U3 I& h' D自定义线型0 v" Z! W6 a+ X5 x' o1 z
自定义线型中的形6 p- a/ S9 ~1 Y& d) F! K
8 m& I) [! j) r8 u
' ?5 E+ g y- y: T$ V
, c9 Q; c: f0 e& W3 w( ~复杂线型可以包含嵌入的形(保存在形文件中)。复杂线型可以表示实用程序、边界和轮廓等等。
2 M# q, @! S6 |4 l% u( {. I" ] @5 q" S
与简单线型一样,指定端点后可以动态地绘制复杂线型。直线中嵌入的形和文字对象总是完整显示,从来不会被截断。
# O7 @6 \, G& `" k2 ?0 j% @
* o" P# A+ F# k* z# H复杂线型的语法与简单线型的语法类似,都是一列以逗号分隔的图案描述符。除了点划线描述符之外,形和文字对象也可作为复杂线型的图案描述符。 # S" A- L, T; w1 J# h3 m! o
! e4 @" Q0 [2 f( P
线型说明中的形对象描述符的语法如下所示:
4 c6 ?7 n1 ?6 s2 @# v& y7 b- _# m3 X6 W
[shapename,shxfilename] 或 [shapename,shxfilename,transform] . y+ T* n' \, H
其中,transform 是可选的,可以是下列等式的任意序列(每个等式前都带有逗号):
! |- c1 y2 I! p: ~& ]
) v8 ]5 N* W3 X6 S5 l# ]) J5 _R=## 相对旋转; }: z4 F, h5 z1 h' ]5 r; H
, A) R- ]6 W* J0 P9 z5 I3 h# v
A=## 绝对旋转
8 I8 U) z$ z7 _/ R7 b7 B& A: u4 r$ C4 g- ?2 v
S=## 比例: X. @" |/ y2 o8 l& {
/ [1 r7 t; ]+ A; w; i- M
X=## X 偏移
8 O% e$ g, n" C& `, q0 ?9 a, A% O) h
Y=## Y 偏移
, r$ C$ e) Z5 Y8 f
$ u' u+ H l6 t! \3 A0 Z3 f: _# f. v在此语法中,## 表示带符号的十进制数(如 1、-17、0.01 等),旋转单位为度,其他选项的单位都是线型比例的图形单位。上述 transform 字母,使用时后面必须跟上等号和数值。
" y% G3 Y$ a% y& M( W% Q* Z9 B" b
以下线型定义用于定义名为 CON1LINE 的线型,该线型由一条直线段、一个空格和来自“ep.shx”文件的嵌入形 CON1 这一重复图案构成。(请注意,必须将“ep.shx”文件放在支持路径中才能使以下样例正常运行。)
- R/ j$ |- v% m3 ]2 l2 a( R
( k0 _# ~" e N' d*CON1LINE, --- [CON1] --- [CON1] --- [CON1]
) N; R6 e4 B! u+ H( YA,1.0,-0.25,[CON1,ep.shx],-1.02 f( @ P5 a1 [: Z- k7 e( F- H
除了方括号中的代码以外,所有内容都与简单线型的定义一致。 ' v9 S- P, h3 k* f
$ A m! K" D4 [% m! Q% H7 M
如上所述,总共有六个字段可用于将形定义为线型的一部分。前两个是必须的,位置固定;后四个是可选的,次序可变。以下两个样例展示了形定义字段中的不同条目。+ ]: v1 l6 Z. |! h$ b2 ]
5 }, T6 X+ r* K# T; O' U( Q2 F1 a
[CAP,ep.shx,S=2,R=10,X=0.5] 0 X/ H4 G+ \" L
上述代码对形文件 ep.shx 中定义的形 CAP 进行变换。在变换生效之前,将该形放大两倍,沿逆时针方向切向旋转 10 度,并沿 X 方向平移 0.5 个图形单位。
; Q7 g4 c5 e2 ~. ~9 R7 A
. ^3 B$ d! n8 u! J[DIP8,pd.shx,X=0.5,Y=1,R=0,S=1] , |: t( ^. K# x( Q
上述代码对形文件 pd.shx 中定义的形 DIP8 进行变换。在变换生效之前,将该形沿 X 方向平移 0.5 个图形单位,沿 Y 方向上移一个图形单位,不作旋转,并且保持与原形大小相等。 : K4 R; w8 ?7 B+ q
J( `1 m* b( K; f; G% d4 k' e下面的语法把形定义为复杂线型的一部分:
$ ], B- K- e$ S/ E9 |" z" \9 \* C( c/ h3 K
[shapename,shapefilename,scale,rotate,xoffset,yoffset]
6 C' G( z* _. g& x语法中字段的定义如下所示。
$ {' a, u8 I: D1 g; W) d
8 {$ h8 r, v, M- x0 P4 yshapename
# F, P' c' Z& ^, b/ x$ F. N8 e4 ~' u要绘制的形的名称。必须包含此字段。如果省略,则线型定义失败。如果指定的形文件中没有 shapename,则继续绘制线型,但不包括嵌入的形。 ) S: a+ k1 j. U+ S& H7 q
, H& ]5 S& u. P# `' Y* L3 d& bshapefilename. k0 x, A6 P8 F* Y) j
编译后的形定义文件 (SHX) 的名称。如果省略,则线型定义失败。如果 shapefilename 未指定路径,则从库路径中搜索此文件。如果 shapefilename 包括完整的路径,但在该位置未找到该文件,则截去前缀,并从库路径中搜索此文件。如果未找到,则继续绘制线型,但不包括嵌入的形。 # \3 y: ?5 E* C) W1 M# q
: H, A- A8 R0 S5 R$ N$ ?* Z' _8 cscale( T$ t" r5 P k2 S# ?$ T
S=value。形的比例用作比例因子,与形内部定义的比例相乘。如果内部定义的形比例为 0(零),则 S=value 单独用作比例。 % D: U$ n6 O8 ?6 v4 g
8 J) j5 b5 S. O; i. \" o* W& t& l! ]rotate8 X) c3 S$ i8 {4 g6 @
R=value 或 A=value。R= 指定相对于直线的相对或切向旋转。A= 指定形相对于原点的绝对旋转。所有的形都作相同的旋转,而跟其与直线的相对位置无关。可以在值后附加 d 表示度(如果省略,度为默认值),附加 r 表示弧度,或者附加 g 表示百分度。如果省略旋转,则相对旋转为 0。
; w( Q9 C( M5 p9 ]9 S, g
( _; ?3 M5 R0 ~& H/ D( [xoffset2 i2 h3 U0 }9 z8 \# K) O
X=value。形相对于线型定义顶点末端在 X 轴方向上所作的移动。如果省略 xoffset 或者将其设置为 0,则形不作偏移。如果要得到用形构成的连续直线,请使用此字段。该值不会按照 S= 定义的缩放比例进行缩放。
) y4 d4 Y; Y4 I9 f! O J7 y% ? e- c; U* r8 i4 v
yoffset
' X6 o% A, G: g( o) a% u2 EY=value。形相对于线型定义顶点末端在 Y 轴方向上所作的移动。如果省略 yoffset 或者将其设置为 0,则形不作偏移。该值不会按照 S= 定义的缩放比例进行缩放。$ m( T8 Z5 I# G
; O/ r; i8 e5 |# @* r参见 |
|