三、字体文件的扩充方法
字形文件的编制是一项工作量大、枯燥乏味的工作,如果所需字形全部独立编制,则是费力不讨好。AutoCAD系统已提供了很多标准字库,根据工程设计的实际情况,一般在标准字库的基础上增加需要的字形(或功能)即可。本文拟在txt.shx基础上进行扩充。
为满足实际需要,对不同的情况采用不同的处理方法。
1、 标准字库的处理
大家知道,SHX文件为二进制格式,采用一般的字处理软件无法对其进行编辑和扩充。对标准字库首先要得到SHP源文件,才能进行处理。
1.1、文本格式SHP的获取
在正常安装的情况下,AutoCAD R14.0及以上的版本不提供SHP文件,而仅提供SHX文件。要得到SHP文件可通过三个途径:
a、AutoCAD R12.0以前的版本在正常安装时,其Fonts子目录下同时含有SHP和SHX文件。找到低版本的AutoCAD后,从中Copy一份。
B、某些AutoCAD汉化软件,如隆迪ACE软件的子目录Bonus下含有Txt.shp文件。
c、如无法从上述两种方法得到,那就只能通过编程实现SHX与SHP文件格式的转换。SHX文件的格式见第二章第三节。既然SHX文件是二进制的SHP文件,而SHP又是ASCII格式,两者的转换不存在加、解密,根据上述格式可以很方便的设计出所需的程序。限于篇幅,其源程序在此不再列出。事实上,由于中文字库从不提供SHP文件,如需改造中文字库,必须采用SHX2SHP程序。
在本人的工作中,不仅需要英文字母,而且经常要用到一些希腊字符,如α、β、γ、δ、λ等,通过上述方法一并得到希腊字库文件Greeks.SHP。
2、标准字库的处理
在txt.shp中除英文字母外,还定义了三个特殊符号℃、±、Φ,其形状号分别为127、128、129,为保持兼容,该三个符号予以保留。另外为避免文件覆盖,将txt.shp更名为Cjf.shp。
2.1、将Greeks.shp中需要的字型加入到Cjf.shp,其形状号为134∽171(可以根据需要增减形状数量)。
2.2、按照习惯,英文文字的高度应比中文文字矮,这样排出的文字较美观。但中文字体的字模高度并不统一,同时不同的字体文件外观也不同,为取得较好的视觉效果,必须根据使用的中文字型调整两者的高度比例。本人取修改后的字形高度为原高度的0.8,修改方法,在原形状描述前增加“3,10,4,8”,在结束处加上“3,8,4,10”,同时不要忘记将定义字节数做相应的修改(在原来基础上加8)。
通过修改和引入已有的SHP文件,达到扩充字库的目的。
3、特殊符号的建立
工程设计中所用到的特殊符号包括两类:特殊形体和单位上标。
3.1、特殊形体
各个专业均有自己专业的一些特殊符号,如电子专业需用电子、电气符号,土建专业需用到型钢和一级钢筋、二级钢筋符号。对于经常在文字中出现的特殊符号有必要作为字体形进行定义。
对于本人从事的工作,经常要用到型钢符号。这些型钢包括角钢、扁钢、槽钢、工字钢等。按照上述的形的编写规则和工程符号表示要求,将这四个符号编入Cjf.shp中,其形状号编为130~133。
3.2、单位上标
工程文件中经常要表示单位,如12.3m2、45.34m3等,用过Microsoft Word的同志都知道,在Word中选择【格式】菜单中【字体】命令后,出现一个弹出菜单,选择上标选项即可将所选字符设为上标,非常方便。在工程设计文件中,经常要用到单位的表示,但AutoCAD本身并不提供该功能。考虑到该项功能使用频率较高,在字库文件中专门定义了上标2~9,其形状号为11~18。
3.3、控制符号的建立
在Word中,文本文件的排版功能主要是通过【格式】菜单实现。而工程文本文件主要用于输出,对于显示、色彩方面的要求不高(AutoCAD可用Color命令改变实体颜色),其他排版功能如文字行间距、上划线、下划线可通过AutoCAD相关命令方便地实现,对于阴文、阳文如字体文件支持,也可通过填充命令实现。因此,对AutoCAD的排版而言,主要是要实现任意文字的上、下标标注。
由于上、下标符号不能在文件中直接显示,故将其称做控制符号。
设置上、下标,其基本思路是要解决两点:
a、文字的起始点。对上标文字,其文字基点在正常文字高度的2/3处;对下标文字,其文字基点应略低于正常文字的基点,本人将其设于与正常文字的基点相平。
B、文字的高度:上、下标文字的高度为正常文字高度的1/2。
为使后续文字能正常标注,必须在上、下标文字标注结束后恢复到正常的参数。因此,对文字上、下标分别标注的情况下,必须各设置两个控制符号(参数改变和参数恢复),即需增加4个控制符号,形状名称分别命名为upshift,uprestore,downshift,downrestore。
形的编码用抬笔(2)、位移(8)、矢量长度相除(3)实现参数的改变,参数恢复则由矢量长度相乘(4)代替矢量长度相除(3)实现。
在公式编写时,往往出现上、下标同时标注的情况,而Word对这种情况的处理是上、下标分别标注,这与习惯是不相符的,必须增加公式编写器模块才能使标注符合习惯写法。通过增加控制符号,AutoCAD可以非常方便地实现该功能。
四、字体文件的使用
AutoCAD中形或字体必须以SHX格式存在,才能被使用。当用字处理软件编写SHP文件完成后,需将. SHP文件编译成.SHX文件。要将.SHP文件编译成.SHX文件,在AutoCAD中键入:
命令:Compile
从“选择形文件”对话框中选择要编译的形文件Cjf.shp,如果文件中有错误, AutoCAD将会发出错误报告,否则,出现如下的提示:
编译形/字体描述文件。
编译成功。输出文件 路径\Cjf.shx包含6369字节。
Cjf.shx中增加的形状号见附表2。为方便使用,增加一Cread.com文件作为帮助文件,可使使用者不须记忆形状号
要使用字形文件,必须先用Style命令生成需要的字型。一个字型可以包含一个ASCII字形和一个big-fonts,并加上高度、宽度及旋转角度等参数组成。
在输入时,对英文字母可直接输入,对形状号大于127的形,可通过%%nnn的方式输入,其中nnn即为需要的形状号。
下面是Cjf.shx和大字形文件Hztxt.shx的一个例子。
附表1 文本字体的ASCII码
代码
|
字符
|
代码
|
字符
|
代码
|
字符
|
32
|
SPACE
|
64
|
@
|
96
|
‘(左撇号)
|
33
|
!
|
65
|
A
|
97
|
a
|
34
|
"(双引号)
|
66
|
B
|
98
|
b
|
35
|
#
|
67
|
C
|
99
|
c
|
36
|
$
|
68
|
D
|
100
|
D
|
37
|
%
|
69
|
E
|
101
|
e
|
38
|
&
|
70
|
F
|
102
|
f
|
39
|
’(撇号)
|
71
|
G
|
103
|
g
|
40
|
(
|
72
|
H
|
104
|
h
|
41
|
)
|
73
|
I
|
105
|
i
|
42
|
*
|
74
|
J
|
106
|
j
|
43
|
+
|
75
|
K
|
107
|
k
|
44
|
, (逗号)
|
76
|
L
|
108
|
l
|
45
|
- (连字号)
|
77
|
M
|
109
|
m
|
46
|
. (圆点)
|
78
|
N
|
110
|
n
|
47
|
/
|
79
|
O
|
111
|
o
|
48
|
0
|
80
|
P
|
112
|
p
|
49
|
1
|
81
|
Q
|
113
|
q
|
50
|
2
|
82
|
R
|
114
|
r
|
51
|
3
|
83
|
S
|
115
|
s
|
52
|
4
|
84
|
T
|
116
|
t
|
53
|
5
|
85
|
U
|
117
|
u
|
54
|
6
|
86
|
V
|
118
|
v
|
55
|
7
|
87
|
W
|
119
|
w
|
56
|
8
|
88
|
X
|
120
|
x
|
57
|
9
|
89
|
Y
|
121
|
y
|
58
|
: (冒号)
|
90
|
Z
|
122
|
z
|
59
|
; (分号)
|
91
|
[
|
123
|
{
|
60
|
<
|
92
|
\ (反斜杠)
|
124
|
| (竖线)
|
61
|
=
|
93
|
]
|
125
|
}
|
62
|
>
|
94
|
^ (脱字)
|
126
|
~ (代字号)
|
63
|
?
|
95
|
_ (下划线)
|
10
|
LF(换行)
|
|
|
|
|
|
|
附表 2 Cjf.shx中增加的形
==========================================================
ASCII 符号意义 ASCII 符号意义 ASCII 符号意义
001 上标2 134 α 151 ρ
002 上标3 135 β 152 σ
003 上标4 136 γ 153 Т
004 上标5 137 δ 154 υ
005 上标6 138 ε 155 ∈
006 上标7 139 Ψ 156 ω
007 上标8 140 Χ 157 ξ
008 上标9 141 η 158 ψ
010 LF 142 ι 159 ξ
011 移上 143 160 :
012 恢复 144 κ 161 ;
013 移下 145 λ 162 {
014 恢复 146 μ 163 }
147 ν 164 ~
127 ℃ 148 ο 165 Δ
128 ± 149 π 166 φ
129 Φ 150 167 θ
130 扁钢 168 ∑
131 角钢 169 倒△
132 槽钢 170 Ω
133 工字钢 171 Ψ
参考文献
1、AutoCAD 10.0 计算机绘图软件包 用户参考手册 中科院希望电脑技术公司
2、精通中文 AutoCAD 2000
3、AutoCAD 2000高级用户指南:设计、定制、开发
4、AutoCAD 软件技术探密 施灿堂著