AutoCAD圖形中的文字是由其自帶的后綴名為.SHX格式的文件支持的,該文件被稱(chēng)作形文件,而專(zhuān)用于顯示文字符號(hào)的形文件則稱(chēng)為字形文件或字庫(kù)文件。根據(jù)常規(guī)要求,系統(tǒng)已帶有普通文字(含英文、德文、意大利文、南斯拉夫語(yǔ))和特殊符號(hào)(天文、地圖、氣象、音樂(lè))等字庫(kù)。為滿(mǎn)足顯示速度和字體美觀方面的要求,普通文字字庫(kù)含有快速、簡(jiǎn)體、雙線(xiàn)體、三線(xiàn)體和哥特體等字體。系統(tǒng)自帶的字形文件可滿(mǎn)足大部分的要求。
AutoCAD正文字體中的每一個(gè)文字對(duì)應(yīng)于形狀號(hào),形狀號(hào)的編制遵循ASCII碼,可參見(jiàn)附表一。代碼1到31為控制碼,僅他們中的一個(gè)代碼用于AutoCAD正文字體中。即代碼10(LF)―換行符,其含義是向下走一行但不繪圖。另外,還定義了一些特殊符號(hào)(見(jiàn)表1-1)。
隨著版本的升級(jí),AutoCAD文字功能逐漸增強(qiáng),在原來(lái)單行文本輸入的基礎(chǔ)上,增加了動(dòng)態(tài)文字(DTEXT)、段落文字(MTEXT)。同時(shí)操作系統(tǒng)由DOS全面進(jìn)入Windows系統(tǒng)后,原來(lái)存在的漢字輸入問(wèn)題現(xiàn)在也得到迎刃而解。雖然AutoCAD經(jīng)過(guò)了近幾十次的升版(其版本由1.0到14.0,直至最新的AutoCAD2003,國(guó)內(nèi)最早引入的版本為2.16,由2.6版得到推廣), 但是,AutoCAD在文字輸入處理方面存在的二個(gè)問(wèn)題一直未能得到解決:
3.1、特殊符號(hào)的輸入
幾乎在所有的制圖應(yīng)用中,都需要在一般文本與尺寸文本中繪制特殊字符(符號(hào))。例如,有時(shí)需要繪制角度符號(hào)與直徑符號(hào),或者需要給一些字符畫(huà)下劃線(xiàn)或上劃線(xiàn)。標(biāo)準(zhǔn)字庫(kù)文件中提供了幾個(gè)控制符,借助有關(guān)控制符(控制碼)序列就可以實(shí)現(xiàn)這些功能。對(duì)于每一個(gè)符號(hào),控制符序列都是以連續(xù)的兩個(gè)百分號(hào)“%%”打頭的。跟在兩個(gè)百分號(hào)后的控制符描述所需符號(hào)。見(jiàn)表1 -1:
表 1- 1 AutoCAD系統(tǒng)自帶特殊符號(hào)
控制序列
特殊字符
控制序列
特殊字符
%%c
直徑符號(hào)(Ф)
%%O
上劃線(xiàn)模式開(kāi)/關(guān)切換
%%d
角度符號(hào)(°)
%%u
下劃線(xiàn)模式開(kāi)/關(guān)切換
% % p
正/負(fù)公差符號(hào)(±)
%%%
% % % 單個(gè)%號(hào)
注意: 特殊控制符%%O和%%U是作切換鍵用的。例如,如果輸入“This %%Utoggles%%U the underscore”,則字toggles將加上下劃線(xiàn)(toggles)。
AutoCAD R14.0以后的版本增加了對(duì)Windows系統(tǒng)字庫(kù)(True Type)的支持,通過(guò)使用Windows系統(tǒng)字庫(kù)或字符映射表也可輸入各種字符。但在工程設(shè)計(jì)中,仍有一些常用的符號(hào)無(wú)法解決,如各種型鋼符號(hào)(角鋼、扁鋼、槽鋼、工字鋼等),有些符號(hào)雖然可通過(guò)AutoCAD和Windows系統(tǒng)來(lái)解決,但在使用前需定義成不同的字體(用STYLE命令),一行文字需分幾次輸入以調(diào)用不同的字體來(lái)完成,使用上很不方便。
3.2、文本文件的排版和美觀
使用過(guò)字處理軟件如Microsoft Word、WPS的人們都知道,這些軟件均可實(shí)現(xiàn)文本文件的排版,以滿(mǎn)足用戶(hù)的各種需要,而AutoCAD本身現(xiàn)有的功能尚不能實(shí)現(xiàn)這種功能,其文本輸入只能實(shí)現(xiàn)簡(jiǎn)單的功能(上劃線(xiàn)、下劃線(xiàn))。而在設(shè)計(jì)文件中,經(jīng)常要輸入單位,如m2、m3等,有時(shí)在說(shuō)明中還要輸入一些數(shù)學(xué)公式。
一個(gè)漂亮美觀的文章,總能增加人們對(duì)該文章的喜悅,同樣美觀的設(shè)計(jì)文件也能增加閱讀者的親和力。由于漢字一般比英文單詞的筆畫(huà)來(lái)得復(fù)雜,為了能清晰地表示一段文章,在中英文混合輸入時(shí),視覺(jué)習(xí)慣上應(yīng)該漢字略高于英文,而在AutoCAD中,以同一高度輸入中英文,往往是英文高于中文,在視覺(jué)上覺(jué)得比例失調(diào),影響美觀。
為解決上述兩個(gè)問(wèn)題,必須對(duì)Text命令進(jìn)行擴(kuò)充。要擴(kuò)充TEXT命令,必須先弄清楚此命令寫(xiě)文字的處理過(guò)程:(1)確定文字(西文字符、漢字 )的各種屬性;(2)置"文字解釋器"(Translater for text)初值;(3)讀入一行文字;(4)對(duì)此行文字中的每個(gè)文字(西方字符為單個(gè)字符、漢字為兩個(gè)字符)按其先后順序逐個(gè)進(jìn)行以下操作 ;(5)落筆(置寫(xiě)方式);(6)從形文件(西文字符從普通形文件、漢字從多字形文件)中取出對(duì)應(yīng)數(shù)據(jù);(7)文字解釋器將取出的數(shù)據(jù)按其數(shù)據(jù)定義邊解釋邊寫(xiě)入圖中。
要擴(kuò)充TEXT命令,且又不修改AutoCAD程序,那么只能從此命令所使用的數(shù)據(jù)上作文章,由以上給出的處理過(guò)程可知:TEXT命令所使用的主要數(shù)據(jù)為形文件(西方字庫(kù)、漢字字庫(kù)),即應(yīng)從形文件上作文章。為此,必須要了解形文件,不僅要了解文件格式,更重要的是要了解其中數(shù)據(jù)的定義。