|
|
发表于 2007-9-30 10:52:49
|
显示全部楼层
来自: 中国广东广州
请查“帮助”
7 H6 |7 a6 @0 U- A7 m3 z& I v" J; k自定义手册3 G6 H4 O3 x5 A
自定义线型) ]; [" h, {5 ]- r$ _" j* j) B
自定义线型中的形
+ l7 n O; o& b% f , V! t6 y) |7 g" }# a& d4 X
# _ q# x+ h" O
' w; G# B0 X( z
复杂线型可以包含嵌入的形(保存在形文件中)。复杂线型可以表示实用程序、边界和轮廓等等。
! Z- Q! R w3 n0 ] _
1 b/ ]! _: e8 a9 F与简单线型一样,指定端点后可以动态地绘制复杂线型。直线中嵌入的形和文字对象总是完整显示,从来不会被截断。 3 ]7 m+ v$ d! ^4 Y& W/ M6 S
: f }- R7 P8 X) B# f2 C" ]
复杂线型的语法与简单线型的语法类似,都是一列以逗号分隔的图案描述符。除了点划线描述符之外,形和文字对象也可作为复杂线型的图案描述符。 " m2 Z1 T$ L% Y* S' T
! \; D* q& Q* n2 ?5 v' s! j
线型说明中的形对象描述符的语法如下所示:
- r6 d0 y! q- h$ I/ k4 U+ Y) f; @/ K# n
[shapename,shxfilename] 或 [shapename,shxfilename,transform] # c8 w5 I: c* h$ B: Q( R1 n5 H# r! N
其中,transform 是可选的,可以是下列等式的任意序列(每个等式前都带有逗号): ) c" O* J6 Y+ I. {& E! K5 H( z! k" v
3 ?3 z- O! ~3 nR=## 相对旋转
% U6 _+ }) P" U; j
1 T6 h9 q; e. R/ M( ~7 jA=## 绝对旋转
& z: a1 l& D! h% A% K+ F0 D1 W8 D( l% H4 c; G
S=## 比例
\0 x$ [% g- `1 }% ?9 j2 p7 p6 g) Y3 N
X=## X 偏移 $ q5 J/ z$ V0 i; m8 \
; M W* [: K! s( c8 _& z5 W
Y=## Y 偏移
% Z% L' Q& Z# ^7 N% e
/ ]9 I1 e3 C2 ]) X( S% S在此语法中,## 表示带符号的十进制数(如 1、-17、0.01 等),旋转单位为度,其他选项的单位都是线型比例的图形单位。上述 transform 字母,使用时后面必须跟上等号和数值。
9 l- j+ h- g2 o
3 m- @0 M! |* b9 U以下线型定义用于定义名为 CON1LINE 的线型,该线型由一条直线段、一个空格和来自“ep.shx”文件的嵌入形 CON1 这一重复图案构成。(请注意,必须将“ep.shx”文件放在支持路径中才能使以下样例正常运行。) F6 [& r. {' _' r" ~+ d( \
0 m& s6 @: z- c$ M5 B2 A*CON1LINE, --- [CON1] --- [CON1] --- [CON1]$ F! p4 q% Y1 i- i$ z
A,1.0,-0.25,[CON1,ep.shx],-1.0
. |% t3 p7 a( O) E$ ]/ ]除了方括号中的代码以外,所有内容都与简单线型的定义一致。 % ?8 U: ?, d4 x! [0 k
, O- _! A# V. o( k( S% C {; `6 H
如上所述,总共有六个字段可用于将形定义为线型的一部分。前两个是必须的,位置固定;后四个是可选的,次序可变。以下两个样例展示了形定义字段中的不同条目。
; ^) p( Y" z2 }4 _0 t, I& M9 n3 w: D
[CAP,ep.shx,S=2,R=10,X=0.5] 3 O7 w0 V0 `$ u$ k1 C
上述代码对形文件 ep.shx 中定义的形 CAP 进行变换。在变换生效之前,将该形放大两倍,沿逆时针方向切向旋转 10 度,并沿 X 方向平移 0.5 个图形单位。 7 h' s) ?1 {: `
0 G5 N4 l# U0 s" ~2 E# \[DIP8,pd.shx,X=0.5,Y=1,R=0,S=1] - y, |" L8 a2 J Y# s; x
上述代码对形文件 pd.shx 中定义的形 DIP8 进行变换。在变换生效之前,将该形沿 X 方向平移 0.5 个图形单位,沿 Y 方向上移一个图形单位,不作旋转,并且保持与原形大小相等。
9 f1 B4 Y9 L$ e5 z& R
3 A {, r6 j$ F下面的语法把形定义为复杂线型的一部分:
7 l1 P* [# W5 h( w3 }# M+ E( E5 f
0 H/ G' d9 ]; f' h9 Z: {. ?4 C[shapename,shapefilename,scale,rotate,xoffset,yoffset]
$ j4 K! O( w/ w语法中字段的定义如下所示。 s0 N0 ^3 ~6 [' ^$ y0 E% X
9 H& V/ f; E' o. a* l- |2 R2 T7 P
shapename / `( t0 H- `4 Q" b9 q
要绘制的形的名称。必须包含此字段。如果省略,则线型定义失败。如果指定的形文件中没有 shapename,则继续绘制线型,但不包括嵌入的形。
* K( a5 a ^. ^1 J3 [3 c6 |, ?! a" ^0 p: t+ H# L1 n
shapefilename' t! C8 l7 r2 n ]
编译后的形定义文件 (SHX) 的名称。如果省略,则线型定义失败。如果 shapefilename 未指定路径,则从库路径中搜索此文件。如果 shapefilename 包括完整的路径,但在该位置未找到该文件,则截去前缀,并从库路径中搜索此文件。如果未找到,则继续绘制线型,但不包括嵌入的形。
( t3 u- r& \% I+ p M
) p! ^- u* F) o- Z) r7 _) tscale
% l) s1 X! k" b6 H, u+ K+ ~S=value。形的比例用作比例因子,与形内部定义的比例相乘。如果内部定义的形比例为 0(零),则 S=value 单独用作比例。
8 b- I. Q+ A4 C- c" }( w3 E/ v, }' z# J+ ` j5 I5 @* H5 A
rotate# l: K+ i4 m1 I. ~. E
R=value 或 A=value。R= 指定相对于直线的相对或切向旋转。A= 指定形相对于原点的绝对旋转。所有的形都作相同的旋转,而跟其与直线的相对位置无关。可以在值后附加 d 表示度(如果省略,度为默认值),附加 r 表示弧度,或者附加 g 表示百分度。如果省略旋转,则相对旋转为 0。' \& W' o) X) D+ N$ R
4 h& `0 E: Y+ Z1 e, W3 p/ G# R# Oxoffset
5 b9 S8 @2 v0 ?2 sX=value。形相对于线型定义顶点末端在 X 轴方向上所作的移动。如果省略 xoffset 或者将其设置为 0,则形不作偏移。如果要得到用形构成的连续直线,请使用此字段。该值不会按照 S= 定义的缩放比例进行缩放。( Z) ?2 o+ F8 X8 a0 o: t
; `7 X9 f% v, S. e: M _yoffset( y7 L! t8 e% @
Y=value。形相对于线型定义顶点末端在 Y 轴方向上所作的移动。如果省略 yoffset 或者将其设置为 0,则形不作偏移。该值不会按照 S= 定义的缩放比例进行缩放。
$ z3 y: H$ I5 G* {' h
' }. b- E) M- ~参见 |
|