|
|
发表于 2007-9-30 10:52:49
|
显示全部楼层
来自: 中国广东广州
请查“帮助”
6 m' ~/ w# m+ J自定义手册
) K7 X; Z# m1 q" L1 m6 \自定义线型! ]8 k7 e, ]( G: |7 W
自定义线型中的形
- m' S( V6 ]7 u( {9 Y( K
5 B7 S6 u O) ^$ ?) p& L ( a& ]; k8 T+ D# w* U1 L4 Q
/ `7 b" n+ b: k1 F1 f4 n) }. L复杂线型可以包含嵌入的形(保存在形文件中)。复杂线型可以表示实用程序、边界和轮廓等等。
- y! k n" R& x! k. e% ~- u
) G$ [" ]5 W9 v1 I2 r8 {/ m* w与简单线型一样,指定端点后可以动态地绘制复杂线型。直线中嵌入的形和文字对象总是完整显示,从来不会被截断。
5 x% L. p, C. g/ t% Z8 d) W" X( j1 F+ w: h4 w6 W
复杂线型的语法与简单线型的语法类似,都是一列以逗号分隔的图案描述符。除了点划线描述符之外,形和文字对象也可作为复杂线型的图案描述符。
( z& F5 G8 y3 W& Q3 Q
: d9 \, Y) a5 ?' B( }; f线型说明中的形对象描述符的语法如下所示: * Y& i- R/ Z9 e% R1 N3 p! y: L
8 L+ Q9 ^' F4 j" ^' [[shapename,shxfilename] 或 [shapename,shxfilename,transform]
2 b- U& S0 j4 ~/ s6 y" p' |6 a其中,transform 是可选的,可以是下列等式的任意序列(每个等式前都带有逗号):
4 p8 `6 q6 B9 O
6 A) e/ @( _1 k7 R/ nR=## 相对旋转7 i- p& r4 [) U9 j3 t8 u2 Z: W
2 B& u; X* a- o' Y% dA=## 绝对旋转
, G; h* W. c+ c1 W9 A$ {
5 V3 z7 V9 Q k1 V( VS=## 比例
0 W$ W/ d- `& R; T3 e4 B5 Q/ a0 B6 U C5 j# ?. K6 P+ l
X=## X 偏移
; L( {2 o# Z9 U8 D. t' g# w" I$ }9 ]0 ^8 d5 h1 b& X
Y=## Y 偏移* I# f; O, w+ U3 T$ f
' g7 X- T$ S6 X; T& ^/ p
在此语法中,## 表示带符号的十进制数(如 1、-17、0.01 等),旋转单位为度,其他选项的单位都是线型比例的图形单位。上述 transform 字母,使用时后面必须跟上等号和数值。
/ B5 u J' J; | j$ W m% p1 w- \. C4 Z2 @
以下线型定义用于定义名为 CON1LINE 的线型,该线型由一条直线段、一个空格和来自“ep.shx”文件的嵌入形 CON1 这一重复图案构成。(请注意,必须将“ep.shx”文件放在支持路径中才能使以下样例正常运行。)
* Q1 H# N! f. x$ T s4 S3 \6 T0 C# W7 N
*CON1LINE, --- [CON1] --- [CON1] --- [CON1]9 n, ^( S( i# Q4 E9 x
A,1.0,-0.25,[CON1,ep.shx],-1.0
3 n* s2 x% b8 \. w( f* u% g% m除了方括号中的代码以外,所有内容都与简单线型的定义一致。
* ?- B& O7 N2 s7 `, I. P0 A Y- z, p! ]/ Z5 S& Z
如上所述,总共有六个字段可用于将形定义为线型的一部分。前两个是必须的,位置固定;后四个是可选的,次序可变。以下两个样例展示了形定义字段中的不同条目。
9 J0 ^0 m* B2 J6 U- t. }+ O" n) O4 g& p$ m0 S
[CAP,ep.shx,S=2,R=10,X=0.5] . C7 K+ V8 Y4 h4 ~0 A4 ^0 g% Z
上述代码对形文件 ep.shx 中定义的形 CAP 进行变换。在变换生效之前,将该形放大两倍,沿逆时针方向切向旋转 10 度,并沿 X 方向平移 0.5 个图形单位。
7 L. K- D3 ^/ G, {3 j' O9 j: \) e/ t* }7 o
[DIP8,pd.shx,X=0.5,Y=1,R=0,S=1] ) M! R# Z* ]/ `
上述代码对形文件 pd.shx 中定义的形 DIP8 进行变换。在变换生效之前,将该形沿 X 方向平移 0.5 个图形单位,沿 Y 方向上移一个图形单位,不作旋转,并且保持与原形大小相等。 , i: E# E$ W* i+ }4 ?, T! n* T
! f6 ]9 [5 u& X7 l; U; u# W# `下面的语法把形定义为复杂线型的一部分:
" Y( o2 q' y* R; c) i) B/ N$ `& ~
5 T3 U. A }5 P[shapename,shapefilename,scale,rotate,xoffset,yoffset]
# l- ~ N* d9 l; v语法中字段的定义如下所示。
6 V1 W( S) |6 z" c# D) S( G8 g0 K& S% N# R U5 d& e1 G! D) E
shapename / j% d X& |- d0 A
要绘制的形的名称。必须包含此字段。如果省略,则线型定义失败。如果指定的形文件中没有 shapename,则继续绘制线型,但不包括嵌入的形。
+ h) y* o9 [+ v H3 N# F) |
\: y) r) Z x6 l. F. Z4 \shapefilename
* P: F- S8 H9 W9 R+ F编译后的形定义文件 (SHX) 的名称。如果省略,则线型定义失败。如果 shapefilename 未指定路径,则从库路径中搜索此文件。如果 shapefilename 包括完整的路径,但在该位置未找到该文件,则截去前缀,并从库路径中搜索此文件。如果未找到,则继续绘制线型,但不包括嵌入的形。 6 O4 m( S: P. ~
# G! a1 T- Z" {8 l- w( {% v- r% l: P4 a
scale/ i' {, r3 \0 M! ~6 [
S=value。形的比例用作比例因子,与形内部定义的比例相乘。如果内部定义的形比例为 0(零),则 S=value 单独用作比例。
* r/ k! w; i5 f7 a# {& e! t9 v
# X% [. Q# N& A9 s6 ]7 yrotate
$ Q0 c! ~: @1 _1 T) k7 o5 ZR=value 或 A=value。R= 指定相对于直线的相对或切向旋转。A= 指定形相对于原点的绝对旋转。所有的形都作相同的旋转,而跟其与直线的相对位置无关。可以在值后附加 d 表示度(如果省略,度为默认值),附加 r 表示弧度,或者附加 g 表示百分度。如果省略旋转,则相对旋转为 0。1 F; c: d* S. K$ ]8 I3 j" h- w
# ]$ ~+ f' n$ N1 j& h2 T
xoffset
+ T6 s0 T d8 { a! z9 q. zX=value。形相对于线型定义顶点末端在 X 轴方向上所作的移动。如果省略 xoffset 或者将其设置为 0,则形不作偏移。如果要得到用形构成的连续直线,请使用此字段。该值不会按照 S= 定义的缩放比例进行缩放。. d! X# f$ j- U
% Q4 F1 M4 n) a# P7 u! A8 K- P
yoffset
" \* `" F! N$ h0 pY=value。形相对于线型定义顶点末端在 Y 轴方向上所作的移动。如果省略 yoffset 或者将其设置为 0,则形不作偏移。该值不会按照 S= 定义的缩放比例进行缩放。. y4 L2 k' q# m; y! {! ~$ w
/ ?! K0 \' f' m# [& I" b0 z8 f参见 |
|