您的位置:网站首页 > CAD新闻

从文字处理的发展讲到CAD的大字体

时间:2012-03-07 09:20:02 来源:未知

之前发过文章简单地介绍了SHX字体的分类,这篇文章更系统地介绍了大字体的历史。

 

要回答关于CAD大字体的问题,恐怕不仅仅要回答字体方面的,可能还要说说更广更多的内容。比如计算机处理文字的方式,文字编码等方面的内容。

先说说计算机处理文字的方式吧。计算机应该叫做数字计算机,它只能处理数码,储存的都是数字。而文字是什么呢?是图形。比如汉字结构的横、竖、撇、折等都是图形,英文也是图形,所有文字都是图形。那计算机如何处理文字呢?必须给文字取个代号,这就像学校班上每个学生都有一个学号一样。计算机处理文字就像老师点学号一样,点到哪个号,就代表着那个学号所对应的学生。计算机就是这样处理文字的。

这就出现一个问题了。我这个班可能是只有八个学生的艺术班,学号用一位数表示就够了。普通的班级可能就不止这些了,可能有三十人,用一位数学号就不够用了,怎么办?得用两位数表示。八个学生的艺术班也可以用两位数表示,01号、02号....08号,但是两位数与一位数是不同的。这就好比信封上的邮政编码,有六个框填六个数码。如果有八个码,六个框肯定就不够用了。计算机储存数码的时候也面临这样的问题,如果文字不是很多,一个字节可能就够了,如果文字很多,可能就要两个字节,一个字节就不够了。一个字节可以储存256个文字,两个字节可以储存65536 个文字,四个字节可以储存40多亿个文字。计算机是洋人发明的,洋文(英文)有26个字母,加上特殊字符和标点符号,也不会超过256个,只用一个字节就够了。所以,美国国家标准字符集的每一个字符(也就是ANSI字符、ASCII字符)在计算机里,是用一个字节表示的,而这种编码也称为ANSI码、ASCII码。那么,ANSI和ASCII是什么关系呢?ANSI是美国国家标准学会的英文名称的缩写,它是一个很大的组织,涉及各行各业,制定的标准也很多,每个标准都冠以ANSI。计算机美国国家标准编码也就简称ANSI编码,ANSI编码所对应的字符也就简称ANSI字符。实际上,这个编码发布的时候起的名字是美国信息交换标准码,英文缩写ASCII,所以也简称ASCII码,字符简称ASCII字符。这就相当于我们的学名和乳名,学名要冠以姓,而乳名就不用了。实际都是一个人。

美国的计算机要卖到亚澳欧非拉,美国的软件也要卖到世界各地,语言就多了,256个字符肯定不够用了,一个字节也放不下了。于是,国际标准出来了,那就是Unicode标准(简称UCS标准)。Unicode标准的编码称为Unicode编码,对应的字符称为Unicode字符。Unicode字符包含了其他国家的文字,当然也包含英文字符,或者说也包含ANSI字符。Unicode有两个标准,UCS-2和UCS-4。UCS-2最多可以包含65536 个文字,用两个字节储存,通常我们说的Unicode标准就是指这个标准。但是,65536 个文字也不一定够用,据说我国的康熙字典里包含的就不止这么多个文字。于是,另一个标准,UCS-4就起作用了。UCS-4最多可包含40多亿个文字,足够用了,它采用四个字节储存。UCS-4只在特殊行业里使用。

通常,以一个字节存储的字符也称为窄字符,以多于一个字节存储的字符称为宽字符。宽与窄的区别不在于字符本身,而在于字符占用的存储空间的大小。比如,以一个字节存储的字符“a”称为窄字符,而以汉字形式(Unicode形式)存储的时候就叫做宽字符了。

现在再来说说shx字体。

其实,cad里所称的shx字体和大字体(也叫bigfont),都是autocad自己专用专有的字体。大字体也是shx字体,是shx字体的一种特殊形式。要说shx字体,还得说说字体在cad里的发展过程。

上面说了文字和编码的关系。这就好比一个人,他小的时候叫王五,大了以后叫王五,老了的时候还叫王五。王五这个名字和人是对应上的,这不会错。但是,王五的各个时期的形象是不同的,四季穿戴也可能不同。于是,字体的概念就出来了。字体实际上是表示了文字表象的不同。在操作系统的早期时代DOS时代,各个应用软件在文字显示上是超前的。这也是无奈的做法,微软的操作系统只提供标准的字符显示,满足不了软件的需要。于是,诸侯争霸,各软件都带有自己的字库,各软件的字库也很少能互通。autocad也有自己的字库,在fonts目录里。字体文件以shx为扩展名,称为shx字体。最初的shx字体支持的是ANSI字符,后来扩大到支持非ANSI字符,也就是大字体或bigfont,用双字节储存,这也就是为什么叫大字体的原因。但也仅作为文字处理上的补丁,要单独指定。应该说,这个时候的大字体还不一定都符合Unicode标准,于是有时就出现了显示乱码的现象。shx字体是cad早期的产物,从r14开始,autocad开始支持windows的字体,这恐怕也是cad发展的趋势。但由于shx字体(包括大字体)是为cad专门制作的,就目前的情况来看,还有诸多优势,表现在:

1、在dwg文件的存储上占用的空间小,在显示的速度上比较快。特别是文字比较多的情况下,regen的重显的速度上的差异更明显,在实时移动(pan)的更新上不存在时差现象。

2、由于windows字体为外来字体(相对于shx字体),在生成及编辑的过程中,还不能做到完美无缺。比如,truetype字体(windows字体)的文字在移动、拷贝的过程中,句子的长度可能与实际的长度不同,影响了参考定位。再如,truetype字体的实际高度可能与指定的高度之间有差异,不能精确地指定字高,只能通过试错的方式确定,影响了绘图的速度,也影响了编程控制的难度。

3、由于shx字体为线型字体,可以像线段一样指定特别属性,产生特殊效果。比如,可以指定厚度值,从而产生立体效果。

4、与truetype字体相比,shx字体美观效果不够理想,但在工程中尚可满足需要。shx字体相当于硬笔书法,在模拟毛笔书法上存有差距。

由于shx字体与windows的truetype字体互有所长,在工程中可取长补短,酌情使用。

附:常用的AutoCAD中文大字体文件27种下载 http://www.cadzj.com/n/29737.html