在AutoCAD的早期版本中,僅能通過(guò)定義形文件的方式來(lái)使用字體。現在A(yíng)utoCAD可調用Windows系統字庫,С諸rueType字體以及PostScript字體,但AutoCAD仍提供了許多使用形定義的字體文件供用戶(hù)使用,這些字體文件保存在A(yíng)utoCAD主文件夾的“FONT”子文件夾中。如果用戶(hù)仍不滿(mǎn)足于這些字體,而希望使用具有獨特風(fēng)格的字體,那么我們可以用與創(chuàng )建形文件類(lèi)似的方法來(lái)創(chuàng )建新的字體文件。 33.2.2字體文件的定義 1.文字字體說(shuō)明 如果一個(gè)形定義文件被用作字體文件,則文件中的第一個(gè)條目必須用于描述字體本身,即文字字體的說(shuō)明。文字字體說(shuō)明由頭部說(shuō)明和形狀說(shuō)明兩部分組成,用以提供字體本身的信息。具體格式如下: *0,Defbytes,fontname Above,Below,Modes,0 其中: (1)Defbytes:形狀說(shuō)明的數據字節數,包括終止符0。 (2)fontname:字體名稱(chēng)。 (3)Above:高位距離,定義大寫(xiě)字母在基線(xiàn)上方的矢量長(cháng)度。 (4)Below:低位距離,定義小寫(xiě)字母在基線(xiàn)下方的距離。 (5)Nodes:定義字體方向,取0表示文字為水平方向,取2表示文字為(水平或垂直)兩個(gè)方向。 (6)0:終止標識符。 2.字符形狀定義 字符形狀定義與形的定義幾乎完全相同,具體差別在于: (1)字符形狀編號為該字母的ASCII碼而不能是任意的編號,因為AutoCAD是按字符的ASCII在繪制字符的,而不是它的名稱(chēng)。 (2)雖然AutoCAD并不根據字符形狀的名稱(chēng)來(lái)繪制字符,但仍可在編輯字體文件時(shí)應用字符形狀的名稱(chēng)。一般用小寫(xiě)字母來(lái)指定形狀名稱(chēng),小寫(xiě)的形狀名稱(chēng)是不會(huì )保存在內存中的。 (3)ASCII碼中1~31為控制字符,其中只有10用于A(yíng)utoCAD字體中,用來(lái)定義換行(lf)。即將繪圖位置下移一行,而不繪制圖形。例如: *10,5,lf 2,8,(0,-10),0 33.2.3字體文件的創(chuàng )建與使用 同形定義文件一樣,我們可以使用文本編輯器來(lái)創(chuàng )建字體定義文件。 實(shí)例3創(chuàng )建“USERFONT”字體 (1)使用Windows附件中的“記事本”程序創(chuàng )建一個(gè)新的文本文件。 (2)在該文件中添加如下內容,如圖33-6所示。 ;userfont.shp-userdefinedfonts *0,4,userfont 21,7,2,0 *69,14,lte 2,010,1,044,020,2,02A,1,010,2,02b,1,020,0 *72,13,lth 2,010,1,044,2,02C,1,020,2,024,1,04C,0 *76,9,ltl 2,010,1,044,2,04C,1,020,0 *79,8,lto 2,010,1,020,044,028,04C,0
將該文件保存在A(yíng)utoCAD主文件夾的“FONTS”子文件夾中,并命名為“userfont.shp”。 (3)在A(yíng)utoCAD中對該文件進(jìn)行編譯,并載入到當前的字體樣式中。 (4)在A(yíng)utoCAD中使用“Text”或“MText”命令繪制文字“HELLO”,結果如圖33-7所示。
33.2.4大字體說(shuō)明 某些語(yǔ)言(如漢語(yǔ))的字體包括上千種非ASCII字符。為繪制包含這些文字的圖形,AutoCAD支持稱(chēng)為大字體文件的特殊格式的形定義文件。由于大字體文件包含成百上千種字符的字體,因此其處理方式較為復雜。除了使用更加復雜的文件搜索技術(shù)之外,AutoCAD需要某種方法來(lái)用雙字節代碼表示字符和單字節代碼。 大字體形定義文件的第一行必須為: *BIGFONTnchars,nranges,b1,e1,b2,e2,... 其中各項含義如下: (1)nchars:指出此集合中近似的字符定義數量。如果此數值過(guò)大,且誤差超過(guò)百分之十,則速度或文件大小就會(huì )受到影響。 (2)nranges:指出有多少個(gè)連續區間中的數字用作換碼代碼;換碼代碼是雙字節代碼開(kāi)始區域的特殊字符代碼。 (3)b1,e1,b2,e2,…:定義了每個(gè)區間的開(kāi)始和結束代碼。 在*BIGFONT行后是字體定義,大字體定義與普通AutoCAD文字字體相似,區別在于其字符代碼(形編號)違禁詞可以為65535之外。 在一些繪圖規范中,許多特殊符號可以出現在文字字符串中。AutoCAD標準文字字體可擴展包含特殊字符。然而,擴展后的標準文字字體有許多限制,如: (1)每個(gè)字體文件的形數目為255。 (2)標準字符集使用約一半可用的形編號。只有代碼1到9,11到31,130到255可用。 (3)多文字字體需要在每種字體中包含符號定義的副本。 (4)特殊符號需要用戶(hù)輸入nnn,此處的nnn是符號的形編號。 而使用大字體機制可以避免這些問(wèn)題。用戶(hù)可以選擇一個(gè)或多個(gè)不常使用的字符作為換碼代碼,例如使用“|R”來(lái)調用希臘字母“Γ”。 當需要在A(yíng)utoCAD系統中使用大字體時(shí),則要在“TextStyle(文字樣式)”對話(huà)框中請選擇“UseBigFont(使用大字體)”選項,并在“BigFont(大字體)”下拉列表中選擇所需的大字體文件,如圖33-8所示。
33.2.5Unicode字體說(shuō)明 標準的AutoCAD字體與主機操作系統使用的字符映射一致。這是因為字符直接按它們從鍵盤(pán)獲取的格式保存在數據庫中。用于生成字體的是相同的字符代碼。當使用存在多種字符編碼標準的重音字符(八位字符)時(shí),這就成為一個(gè)嚴重問(wèn)題。由于字符映射的限制,AutoCAD為其使用的多種代碼頁(yè)提供了一組Unicode字體。這些字體本質(zhì)上一樣,根據定義的代碼頁(yè)的不同,而擁有位于不同位置的字符。如果所使用的字體編碼與圖形中的文字不匹配,可能繪制出錯誤的字符。 使用Unicode字體時(shí),文字字符串在被繪制前都轉換為Unicode,因此不必再為其他語(yǔ)言或平臺提供附加字體。由于Unicode提供了大字符集,所以一種Unicode字體就能支持所有語(yǔ)言和平臺。此功能對用戶(hù)是透明的,因為如果必要(由代碼頁(yè)的不同決定),圖形在加載時(shí)被轉換為AutoCAD的系統代碼頁(yè)。圖形總是以AutoCAD系統代碼頁(yè)的形式保存。 但是需要說(shuō)明的是,Unicode不能為所有亞洲語(yǔ)言提供完整的支持,因此大字體仍然在某些或全部亞洲版本中使用。 Unicode形定義文件在格式和語(yǔ)法上與普通AutoCAD形定義文件一樣,主要的區別為:1.在字體開(kāi)始的語(yǔ)法中不同,如下所示。 *UNIFONT,6,font-name above,below,modes,encoding,type,0 其中font-name、above、below和modes參數與常規字體中的參數一樣。余下的兩個(gè)參數定義如下: (1)encoding:字體編碼。使用下列整數值:
|
|
|