如何在AutoCAD R14下改变中西文的比例

Author: 罗张东 Date: 2000年 第24期

  由于AutoCAD不提供矢量汉字字体文件,因此,我们在AutoCAD R14下使用原来的AutoCAD R12中文版的hztxt.shx写中文时,就会发现中西文的比例不协调,在同一字高下,西文比汉字大一号,非常难看。而AutoCAD R14并不提供改变中西文比例的命令,笔者经过摸索,找到一种改变中西文比例的方法。
  在AutoCAD中,扩展名为.shx、.shp的字体是一种用矢量描述的形文件。在描述矢量的命令集中有两个命令专用码可用来改变矢量的高度,它们是:
  003——用下一个字节除矢量长度。
  004——用下一个字节乘矢量长度。
  下面以最常用的单线字体txt.shp(可在AutoCAD R12的souse子目录下找到)中的西文“A”为例来说明如何改变西文的高度。
  在西文字体文件(注意:不是大字体文件)中,每个字符的定义行必须是下列格式:
  *shapenumber,defbytes,shapename
  其中:shapenumber ——字符的编号。
        defbytes ——定义字符所用的字节数。
        Shapename ——字符的名字。
  在txt.shp中,大写字母“A”的定义如下:
  *65,21,uca
  2,14,8,(-2,-6),1,024,043,04D,02C,2,047,1,040,2,02E,14,8,(-4,-3),0
  假定西文缩小到原来的4/5时,中西文的比例就比较协调了。由于在字形文件中不允许出现小数或分数,因此,4/5就得分解为乘4除以5。这样只须在字母“A”的矢量定义的前面加上004,4,003,5就可实现缩小1/4了。但是,必须注意到,AutoCAD并不会在写完字符“A”以后,自动把比例因子0.8(4/5)改回到1,那么“A”以后的所有字符(包括汉字)都将是原来的4/5了,这当然不是我们的本意,为此,应在缩小1/4后,再扩大到原来的1.25倍(除以4/5),即在矢量定义的末尾添上004,5,003,4(乘5除以4)。同时,因为增加了8个字节,字节数21应变为29。这样,一个完整的完成字母“A”缩小1/4的矢量描述为:
  *65,29,uca
  004,4,003,5,2,14,8,(-2,-6),1,024,043,04D,02C,2,047,1,040,2,02E,14,8,(-4,-3),004,5,003,4,0
  将常用的26个字母的大小写及10个阿拉伯数字按上述办法改写一道,即可满足工程绘图需要了。如果将上述方法编成一个小程序,就可随心所欲地改变中西文的比例。最后,将txt.shp编译成txt.shx就可以直接使用txt.shx字体了。