|
|
发表于 2007-9-30 10:52:49
|
显示全部楼层
来自: 中国广东广州
请查“帮助”# F2 v6 D+ b; _ M: q8 d/ }, O
自定义手册) n5 V( C* E: |8 V
自定义线型
. f' O1 g, ~# M自定义线型中的形
: L4 \' ?7 _' u" |) K ) s0 q; L- @' m0 f7 c/ @
* T" \8 I( C* r
8 Q" v; W) B9 G, b! n2 q8 b
复杂线型可以包含嵌入的形(保存在形文件中)。复杂线型可以表示实用程序、边界和轮廓等等。 9 p0 ^' w x7 ^: z% v
- p }6 I: ]; @% X4 g' f- P) Z5 I与简单线型一样,指定端点后可以动态地绘制复杂线型。直线中嵌入的形和文字对象总是完整显示,从来不会被截断。 $ k/ `2 x; ^1 v% ?5 e" s. v
. m+ M1 W! e+ b* o* N* f" [复杂线型的语法与简单线型的语法类似,都是一列以逗号分隔的图案描述符。除了点划线描述符之外,形和文字对象也可作为复杂线型的图案描述符。
& N8 w! i4 P$ `/ D" U8 @0 o( T$ \$ z x" x% X' u" n
线型说明中的形对象描述符的语法如下所示: ( Y7 I( s+ v& a; |7 ]5 c
7 Y& w# n" A% I. \[shapename,shxfilename] 或 [shapename,shxfilename,transform] 8 W% O9 O8 ]+ [2 g5 @4 n
其中,transform 是可选的,可以是下列等式的任意序列(每个等式前都带有逗号):
# N0 V. K) z$ k# i1 j9 S5 f( ?( g- ?6 r# P+ w& S
R=## 相对旋转$ I. W) u4 \: z( ]1 k- a' a
# [1 M! D T, j/ _5 zA=## 绝对旋转; T* m7 k: ~5 e9 `
9 N+ Q! B. w+ O) h2 }5 xS=## 比例7 _5 j' o( T$ p" F6 ~# v% O
& i ], ?8 O! J1 {X=## X 偏移
( T# ^/ B% F- I/ }5 g
! S. _8 A g/ G4 ?) ?/ t3 n0 @Y=## Y 偏移
, t0 M+ X1 r) {8 o2 O3 N2 f/ e0 Y# k% K }5 i6 d
在此语法中,## 表示带符号的十进制数(如 1、-17、0.01 等),旋转单位为度,其他选项的单位都是线型比例的图形单位。上述 transform 字母,使用时后面必须跟上等号和数值。2 _. z/ X/ G2 b c( {
' X% e& p0 z) M% A C. A: }' X
以下线型定义用于定义名为 CON1LINE 的线型,该线型由一条直线段、一个空格和来自“ep.shx”文件的嵌入形 CON1 这一重复图案构成。(请注意,必须将“ep.shx”文件放在支持路径中才能使以下样例正常运行。) 2 Y" y0 }) ~( e3 e" t: K
% c Y z) N$ s5 o* i. Q9 S7 {*CON1LINE, --- [CON1] --- [CON1] --- [CON1]
$ z) l. n# ]# \) x eA,1.0,-0.25,[CON1,ep.shx],-1.0
5 o% ]$ k% s! p6 P除了方括号中的代码以外,所有内容都与简单线型的定义一致。
9 v: b5 i5 a2 a I( B4 P6 s! b4 \' s _) g7 B
如上所述,总共有六个字段可用于将形定义为线型的一部分。前两个是必须的,位置固定;后四个是可选的,次序可变。以下两个样例展示了形定义字段中的不同条目。9 d4 F( c1 x6 k4 c
4 T% M9 k2 F7 M% P[CAP,ep.shx,S=2,R=10,X=0.5] % f& Q$ ]- |3 |& s5 V
上述代码对形文件 ep.shx 中定义的形 CAP 进行变换。在变换生效之前,将该形放大两倍,沿逆时针方向切向旋转 10 度,并沿 X 方向平移 0.5 个图形单位。 6 W2 V' [- B1 n: `/ U4 W5 w
9 ~* f' N& d& k) W0 Q- u: _7 r[DIP8,pd.shx,X=0.5,Y=1,R=0,S=1] 9 m( `& X; u. g4 M+ g! }. w+ b8 d
上述代码对形文件 pd.shx 中定义的形 DIP8 进行变换。在变换生效之前,将该形沿 X 方向平移 0.5 个图形单位,沿 Y 方向上移一个图形单位,不作旋转,并且保持与原形大小相等。 6 z" G1 `( Q$ d; I/ |% U3 A
% z/ d. `8 k t w3 v$ A7 y下面的语法把形定义为复杂线型的一部分: & R7 Z: D! I. ~+ i; }) q/ a
; H6 s$ W7 G. E" k l4 H+ e/ r2 {[shapename,shapefilename,scale,rotate,xoffset,yoffset] 6 G' a4 S& B9 L
语法中字段的定义如下所示。) V0 H1 m! P; k* Y6 D5 H9 {; @
4 N) Y& [* T* rshapename
/ `; j" f. O/ {% J* S要绘制的形的名称。必须包含此字段。如果省略,则线型定义失败。如果指定的形文件中没有 shapename,则继续绘制线型,但不包括嵌入的形。 ( }4 V6 e& e2 m
: k- M$ m, Y9 h1 \' n# q
shapefilename! K& w' ]! t8 R* X3 b
编译后的形定义文件 (SHX) 的名称。如果省略,则线型定义失败。如果 shapefilename 未指定路径,则从库路径中搜索此文件。如果 shapefilename 包括完整的路径,但在该位置未找到该文件,则截去前缀,并从库路径中搜索此文件。如果未找到,则继续绘制线型,但不包括嵌入的形。
; }' g% Y Z2 N! I0 p7 Y
& B4 d4 T9 V4 S, Tscale
$ Z3 f0 w, W. ?1 T. ?! |& RS=value。形的比例用作比例因子,与形内部定义的比例相乘。如果内部定义的形比例为 0(零),则 S=value 单独用作比例。
8 X% c. i! e& H
; _. s* `9 I& R% x3 arotate) H+ j" R6 l) M& `- p2 v9 R' g
R=value 或 A=value。R= 指定相对于直线的相对或切向旋转。A= 指定形相对于原点的绝对旋转。所有的形都作相同的旋转,而跟其与直线的相对位置无关。可以在值后附加 d 表示度(如果省略,度为默认值),附加 r 表示弧度,或者附加 g 表示百分度。如果省略旋转,则相对旋转为 0。 _0 p8 j: ]: p) q, f
: `9 r5 S, B% s
xoffset2 N4 G! t, r' `
X=value。形相对于线型定义顶点末端在 X 轴方向上所作的移动。如果省略 xoffset 或者将其设置为 0,则形不作偏移。如果要得到用形构成的连续直线,请使用此字段。该值不会按照 S= 定义的缩放比例进行缩放。. _1 Z) o, l/ o6 I! l, t
& Z+ c$ y, j8 ~6 N& G1 F# ^1 ^5 n9 D
yoffset
* @$ @9 c. n+ C2 T6 H0 |Y=value。形相对于线型定义顶点末端在 Y 轴方向上所作的移动。如果省略 yoffset 或者将其设置为 0,则形不作偏移。该值不会按照 S= 定义的缩放比例进行缩放。
, ^ ]' Z7 O5 @0 Y
6 Y, c- q* i) u! k8 s参见 |
|