先說說計算機(jī)處理文字的方式吧。計算機(jī)應(yīng)該叫做數(shù)字計算機(jī),它只能處理數(shù)碼,儲存的都是數(shù)字。而文字是什么呢?是圖形。比如漢字結(jié)構(gòu)的橫、豎、撇、折等都是圖形,英文也是圖形,所有文字都是圖形。那計算機(jī)如何處理文字呢?必須給文字取個代號,這就像學(xué)校班上每個學(xué)生都有一個學(xué)號一樣。計算機(jī)處理文字就像老師點(diǎn)學(xué)號一樣,點(diǎn)到哪個號,就代表著那個學(xué)號所對應(yīng)的學(xué)生。計算機(jī)就是這樣處理文字的。
這就出現(xiàn)一個問題了。我這個班可能是只有八個學(xué)生的藝術(shù)班,學(xué)號用一位數(shù)表示就夠了。普通的班級可能就不止這些了,可能有三十人,用一位數(shù)學(xué)號就不夠用了,怎么辦?得用兩位數(shù)表示。八個學(xué)生的藝術(shù)班也可以用兩位數(shù)表示,01號、02號....08號,但是兩位數(shù)與一位數(shù)是不同的。這就好比信封上的郵政編碼,有六個框填六個數(shù)碼。如果有八個碼,六個框肯定就不夠用了。計算機(jī)儲存數(shù)碼的時候也面臨這樣的問題,如果文字不是很多,一個字節(jié)可能就夠了,如果文字很多,可能就要兩個字節(jié),一個字節(jié)就不夠了。一個字節(jié)可以儲存256個文字,兩個字節(jié)可以儲存65536 個文字,四個字節(jié)可以儲存40多億個文字。計算機(jī)是洋人發(fā)明的,洋文(英文)有26個字母,加上特殊字符和標(biāo)點(diǎn)符號,也不會超過256個,只用一個字節(jié)就夠了。所以,美國國家標(biāo)準(zhǔn)字符集的每一個字符(也就是ANSI字符、ASCII字符)在計算機(jī)里,是用一個字節(jié)表示的,而這種編碼也稱為ANSI碼、ASCII碼。那么,ANSI和ASCII是什么關(guān)系呢?ANSI是美國國家標(biāo)準(zhǔn)學(xué)會的英文名稱的縮寫,它是一個很大的組織,涉及各行各業(yè),制定的標(biāo)準(zhǔn)也很多,每個標(biāo)準(zhǔn)都冠以ANSI。計算機(jī)美國國家標(biāo)準(zhǔn)編碼也就簡稱ANSI編碼,ANSI編碼所對應(yīng)的字符也就簡稱ANSI字符。實(shí)際上,這個編碼發(fā)布的時候起的名字是美國信息交換標(biāo)準(zhǔn)碼,英文縮寫ASCII,所以也簡稱ASCII碼,字符簡稱ASCII字符。這就相當(dāng)于我們的學(xué)名和乳名,學(xué)名要冠以姓,而乳名就不用了。實(shí)際都是一個人。
美國的計算機(jī)要賣到亞澳歐非拉,美國的軟件也要賣到世界各地,語言就多了,256個字符肯定不夠用了,一個字節(jié)也放不下了。于是,國際標(biāo)準(zhǔn)出來了,那就是Unicode標(biāo)準(zhǔn)(簡稱UCS標(biāo)準(zhǔn))。Unicode標(biāo)準(zhǔn)的編碼稱為Unicode編碼,對應(yīng)的字符稱為Unicode字符。Unicode字符包含了其他國家的文字,當(dāng)然也包含英文字符,或者說也包含ANSI字符。Unicode有兩個標(biāo)準(zhǔn),UCS-2和UCS-4。UCS-2最多可以包含65536 個文字,用兩個字節(jié)儲存,通常我們說的Unicode標(biāo)準(zhǔn)就是指這個標(biāo)準(zhǔn)。但是,65536 個文字也不一定夠用,據(jù)說我國的康熙字典里包含的就不止這么多個文字。于是,另一個標(biāo)準(zhǔn),UCS-4就起作用了。UCS-4最多可包含40多億個文字,足夠用了,它采用四個字節(jié)儲存。UCS-4只在特殊行業(yè)里使用。
通常,以一個字節(jié)存儲的字符也稱為窄字符,以多于一個字節(jié)存儲的字符稱為寬字符。寬與窄的區(qū)別不在于字符本身,而在于字符占用的存儲空間的大小。比如,以一個字節(jié)存儲的字符“a”稱為窄字符,而以漢字形式(Unicode形式)存儲的時候就叫做寬字符了。
現(xiàn)在再來說說shx字體。
其實(shí),cad里所稱的shx字體和大字體(也叫bigfont),都是autocad自己專用專有的字體。大字體也是shx字體,是shx字體的一種特殊形式。要說shx字體,還得說說字體在cad里的發(fā)展過程。
上面說了文字和編碼的關(guān)系。這就好比一個人,他小的時候叫王五,大了以后叫王五,老了的時候還叫王五。王五這個名字和人是對應(yīng)上的,這不會錯。但是,王五的各個時期的形象是不同的,四季穿戴也可能不同。于是,字體的概念就出來了。字體實(shí)際上是表示了文字表象的不同。在操作系統(tǒng)的早期時代DOS時代,各個應(yīng)用軟件在文字顯示上是超前的。這也是無奈的做法,微軟的操作系統(tǒng)只提供標(biāo)準(zhǔn)的字符顯示,滿足不了軟件的需要。于是,諸侯爭霸,各軟件都帶有自己的字庫,各軟件的字庫也很少能互通。autocad也有自己的字庫,在fonts目錄里。字體文件以shx為擴(kuò)展名,稱為shx字體。最初的shx字體支持的是ANSI字符,后來擴(kuò)大到支持非ANSI字符,也就是大字體或bigfont,用雙字節(jié)儲存,這也就是為什么叫大字體的原因。但也僅作為文字處理上的補(bǔ)丁,要單獨(dú)指定。應(yīng)該說,這個時候的大字體還不一定都符合Unicode標(biāo)準(zhǔn),于是有時就出現(xiàn)了顯示亂碼的現(xiàn)象。shx字體是cad早期的產(chǎn)物,從r14開始,autocad開始支持windows的字體,這恐怕也是cad發(fā)展的趨勢。但由于shx字體(包括大字體)是為cad專門制作的,就目前的情況來看,還有諸多優(yōu)勢,表現(xiàn)在:
1、在dwg文件的存儲上占用的空間小,在顯示的速度上比較快。特別是文字比較多的情況下,regen的重顯的速度上的差異更明顯,在實(shí)時移動(pan)的更新上不存在時差現(xiàn)象。
2、由于windows字體為外來字體(相對于shx字體),在生成及編輯的過程中,還不能做到完美無缺。比如,truetype字體(windows字體)的文字在移動、拷貝的過程中,句子的長度可能與實(shí)際的長度不同,影響了參考定位。再如,truetype字體的實(shí)際高度可能與指定的高度之間有差異,不能精確地指定字高,只能通過試錯的方式確定,影響了繪圖的速度,也影響了編程控制的難度。
3、由于shx字體為線型字體,可以像線段一樣指定特別屬性,產(chǎn)生特殊效果。比如,可以指定厚度值,從而產(chǎn)生立體效果。
4、與truetype字體相比,shx字體美觀效果不夠理想,但在工程中尚可滿足需要。shx字體相當(dāng)于硬筆書法,在模擬毛筆書法上存有差距。
由于shx字體與windows的truetype字體互有所長,在工程中可取長補(bǔ)短,酌情使用。
評論
查看更多