各位经验丰富的学者专家老师们:
你们好!
大家都知道大字体gbcbig.shp是AutoCAD本地化时需要的一个字体定义形文件,其转化为gbcbig.shx后可被AutoCAD调用。现在我正在做一项工作,想将这种.SHX文件转换成.aa文件,以扩展.shx格式文件的使用范围,说明一下:.aa文件是ThinkDesign中的字体文件定义格式。我想实现他们三者(.shp,.shx,.aa)之间的相互转化.目前已经基本实现了这个目标,具体包括:shx-->shp shp-->aa
shx-->aa 。在实现将shp-->aa/shx-->aa 中,我需要知道.shp/.shx文件中字高的定义。
在AutoCAD帮助文件中有如下解释:
*0,4,font-name
above,below,modes,0
其中,above 值指出大写字母从基线向上延伸的矢量长度,below 指出小写字母从基线向下延伸的距离。基线的概念与纸面书写时的基准线相似。这些值定义了基本字符尺寸,用作 TEXT 命令中指定高度的缩放比例。
举个例子:
*BIGFONT 7019,1,161,254
*0,4,工程汉字字符集 1998.1. FAW/Autodesk CTC CBX(0293)
0,64,2,0
在实现将shp转化aa和将shx转化aa 中,我将字高规定为max(above,below),在gbcbig中具体表现为max(0,64),除了gbcbig这个字体定义外,其他都还算合适,问题就出在gbcbig上,因为gbcbig中有一个子形*142,具体是这样定义的:
*142,14,起始描述(比例系数加入和起点调整)
4,9,3,102,2,14,8,(-34,-80),2,8,(0,-5),0
这就有一个问题,如果我把max(0,64)当成是字高的话,对于一个具体的字的定义来说,比如*48112,57,火
7,142,5,2,8,(29,51),1,8,(-8,-30),8,(-15,-18),2,8,(49,5),1,8,(7,0),2,8,(-29,81),
1,8,(-4,-40),2,8,(-17,19),1,8,(9,-21),2,8,(10,7),1,8,(24,-47),2,8,(-7,61),1,8,(-13,-19),7,143,0
这个字在CAD中显示出来就是一个正常显示的9/102大小的字,非常的小,难以辨识。
我现在需要解决这个字体缩放问题。为什么这个gbcbig字体显示结果会是这样小呢,我怀疑是我把字高的定义搞错了,查了很多资料,也没有答案,特请大家帮忙。
问题1:字体的形定义中字高是如何定义的
问题2:为什么一般的普通大字体(非扩展大字体)文件,比如
*BIGFONT 5887,1,128,255
*0,4,FS791127 Copyright (c) 1991 by Top One Technology Inc., Taipei., Taiwan.
48,0,2,0
*BIGFONT 8009,3,161,163,166,166,176,247
*0,4,HZ 1/6/92
127,0,2,0
中的编码0的定义部分前两位是:第一位是非0,第二位是0;而gbcbig中编码0的定义部分前两位却是反过来的:0,64?是偶然还是另有其他解释呢?
一问:
为什么不能显示汉字?或
输入的汉字变成了问号?
答:原因可能是:
1. 对应的字型
没有使用汉字字体,如HZTXT.SHX等;
2. 当前系统中没有汉字字体形文件;应将所用到的形文件
复制到
AutoCAD的字体目录中(一般为...\FONTS\);
3. 对于
某些符号,如希腊字母等,同样必须使用
对应的字体形文件,否则会显示成?号。
二问:为什么输入的文字高度无法改变?
答:使用的字型的高度值不为0时,
用DTEXT命令书写文本时都不提示输入高度,
这样写出来的文本高度是不变的,
包括使用该字型进行的尺寸标注。
三问:如何改变已经存在的字体格式?
答:如果想改变已有文字的大小、字体、高宽比例、间距、倾斜角度、插入点等,
最好利用“特性(DDMODIFY)”命令(前提是你已经定义好了许多文字格式)。
点击“特性”命令,点击要修改的文字,回车,
出现“修改文字”窗口,
选择要修改的项目进行修改即可。
四问:可以使用系统字体吗,如宋体、楷体等?
答:虽然ACAD R14能够使用*.TTF汉字字体文件,
可是这种字体太花费CPU时间,
对于档次稍低的电脑,
显示速度(如使用实时缩放命令时)实在太慢。
建议档次低的电脑还是使用*.shx文件好。
在汉字*.shx文件当中,
推荐使用大恒或浩辰公司为ACADR12配套的HZ*.shx字体文件,
但在不同机器上没有相应字体会引起汉字显示问题。
当然为美观起见少量使用系统字库也未尝不可。
五问 何替换找不到的原文字体?
复制要替换的字库为将被替换的字库名,如:打开一幅图,提示未找到字体jd,你想用hztxt.shx替换它,那么你可以去找AutoCAD字体文件夹(font)把里面的hztxt.shx 复制一份,重新命名为jd.shx,然后在把XX.shx放到font里面,在重新打开此图就可以了。以后如果你打开的图包含jd这样你机子里没有的字体,就再也不会不停的要你找字体替换了。