擴充AutoCAD字型檔,滿足工程設計要求

AutoCAD    時間:2014-03-06 14:02:56
擴充AutoCAD字型檔,滿足工程設計要求簡介
[內容概要]CAD技術已進入我們生活的各個領域,Autodesk公司開發的AutoCAD軟體包因其卓越的優良性能在我國得到了廣泛的使用。但AutoCAD本身的文字功能存在一定的局限性,……
擴充AutoCAD字型檔,滿足工程設計要求正文

[內容概要]CAD技術已進入我們生活的各個領域,Autodesk公司開發的AutoCAD軟體包因其卓越的優良性能在我國得到了廣泛的使用。但AutoCAD本身的文字功能存在一定的局限性,不能滿足設計工程需要。本文詳細分析了AutoCAD字形的數據結構和其存儲方式,找出擴充字形文件的方法,並構造了一個滿足自己工作需要的字形文件,取得了較好的效果。

[關鍵字]設計 CAD 字型檔 字形

一、概述

人類從未停止設計,設計的對象從人類居住的房屋,人類生活的必需品,到人類的整個生存、生活、學習、工作所涉及的環境,以及人類勞動的工具。CADComputer Aided Design)的出現,讓人類的設計告別繪圖板和鉛筆,使設計進入了現代的計算機時代。特別是進入90年代后,微機的性能大步提高,基於微機的計算機輔助設計軟體的性能也大大提高,而微機和CAD軟體的價格也不斷下降,使CAD正廣泛應用到各個行業和領域。

CAD技術是一項綜合性的,集計算機圖形學、資料庫、網路通訊等計算機及其他領域知識於一體的高新技術;是先進位造技術的重要組成部分;也是提高設計水平、縮短產品開發周期、增強行業競爭能力的一項關鍵技術。

採用CAD技術進行產品設計不但可以使設計人員"甩掉圖板",更新傳統的設計思想,實現設計自動化,降低產品的成本,提高企業及其產品在市場上的競爭能力;還可以使企業由原來的串列式作業轉變為并行作業,建立一種全新的設計和生產技術管理體制,縮短產品的開發周期,提高勞動生產率。

1 CAD技術應用概況

CAD/CAM(計算機輔助設計及製造)技術產生於本世紀50年代後期發達國家的航空和軍事工業中,隨著計算機軟硬體技術和計算機圖形學技術的發展而迅速成長起來。1989年美國國家工程科學院將CAD/CAM技術評為當代(1964-1989)十項最傑出的工程技術成就之一。三十幾年來CAD技術和系統有了飛速的發展,CAD/CAM的應用迅速普及。在工業發達國家 ,CAD/CAM技術的應用已迅速從軍事工業向民用工業擴展,由大型企業向中小企業推廣,由高技術領域的應用向日用家電、輕工產品的設計和製造中普及。

CAD是一個包括範圍很廣的概念,概括來說,CAD的設計對象有兩大類,一類是機械、電氣、電子、輕工和紡織產品;另一類是工程設計產品,即工程建築,國外簡稱AEC(ArchitectureEngineeringConstruction)。而如今,CAD技術的應用範圍已經延伸到藝術、電影、動畫、廣告和娛樂等領域,產生了巨大的經濟及社會效益,有著廣泛的應用前景。

在國內CAD市場,由美國Autodesk公司開發的通用輔助設計、輔助繪圖軟體包AutoCAD得到了廣泛的應用。Autodesk公司是世界上最大的工程設計軟體公司,也是全球第四大軟體公司。該公司佔有全球近百億美元的CAD(計算機輔助設計)軟體市場,具有從繪製地圖、建築設計、機械設計到影視和遊戲製作的完整軟體產品線。其旗艦產品AutoCAD,已成了事實上的工業標準。

2AutoCAD的文字輸入及存在的問題

AutoCAD是由美國Autodesk公司為微機開發的一個互動式繪圖軟體,是一套功能極強的計算機輔助設計工具,具有較強的繪圖、編輯、剖麵線和圖案繪製、尺寸標註以及方便用戶的二次開發功能。它是目前世界上應用最廣的CAD軟體,占整個世界個人微機CAD/CAE/CAM軟體市場的37%左右,是諸多微機CAD軟體的佼佼者。

AutoCAD繪圖實際上無任何限制,凡手工能繪製的,AutoCAD都能做到。由於其具有的強大的二次開發能力,目前AutoCAD已被廣泛應用於各個領域。

一個完整的設計文件,除圖形外,還含有必須的文字說明。在手工製圖中,文字註釋是用打字機、鋼筆或鉛筆手工完成的,這是一件費時且煩瑣的工作。計算機輔助繪圖使這件事變得非常簡單。

AutoCAD中,所有的操作均由相應的命令來完成,文字輸入也不例外,其基本命令為T E X TAutoCAD通過STYLE命令來設置字體,通過文本標註命令(如TEXTDTEXT等)可以從相應的形文件中提取圖形所需的字元信息。文字標註的格式為

Command: TEXT DTEXT [回車]

AutoCAD把文本當作一類實體,作為圖形的一部分而存在,圖形中的文本的顯示放大、旋轉、繪製等操作都可以由AutoCAD自己實現。除了在裝入漢字字體時略有不同(必需同西文字體一起裝入),漢字的標註過程同西文文本完全一樣。不同的字形通過裝入不同的字體來實現。

AutoCAD圖形中的文字是由其自帶的後綴名為.SHX格式的文件支持的,該文件被稱作形文件,而專用於顯示文字元號的形文件則稱為字形文件或字型檔文件。根據常規要求,系統已帶有普通文字(含英文、德文、義大利文、南斯拉夫語)和特殊符號(天文、地圖、氣象、音樂)等字型檔。為滿足顯示速度和字體美觀方面的要求,普通文字字型檔含有快速、簡體、雙線體、三線體和哥特體等字體。系統自帶的字形文件可滿足大部分的要求。

AutoCAD正文字體中的每一個文字對應於形狀號,形狀號的編製遵循ASCII碼,可參見附表一。代碼131為控制碼,僅他們中的一個代碼用於AutoCAD正文字體中。即代碼10(LF)—換行符,其含義是向下走一行但不繪圖。另外,還定義了一些特殊符號(見表1-1)。

隨著版本的升級,AutoCAD文字功能逐漸增強,在原來單行文本輸入的基礎上,增加了動態文字(DTEXT)、段落文字(MTEXT)。同時操作系統由DOS全面進入Windows系統后,原來存在的漢字輸入問題現在也得到迎刃而解。雖然AutoCAD經過了近幾十次的升版(其版本由1.014.0,直至最新的AutoCAD2003,國內最早引入的版本為2.16,由2.6版得到推廣), 但是,AutoCAD在文字輸入處理方面存在的二個問題一直未能得到解決:

3.1、特殊符號的輸入

幾乎在所有的製圖應用中,都需要在一般文本與尺寸文本中繪製特殊字元(符號)。例如,有時需要繪製角度符號與直徑符號,或者需要給一些字元畫下劃線或上劃線。標準字型檔文件中提供了幾個控制符,藉助有關控制符(控制碼)序列就可以實現這些功能。對於每一個符號,控制符序列都是以連續的兩個百分號“%%”打頭的。跟在兩個百分號后的控制符描述所需符號。見表1 -1

1- 1  AutoCAD系統自帶特殊符號

控制序列

特殊字元

控制序列

特殊字元

%%c

直徑符號(Ф)

%%O

上劃線模式開/關切換

%%d

角度符號(°)

%%u

下劃線模式開/關切換

% % p

/負公差符號(±)

%%%

% % % 單個%

注意: 特殊控制符%%O%%U是作切換鍵用的。例如,如果輸入“This %%Utoggles%%U the underscore”,則字toggles將加上下劃線(toggles)。

AutoCAD R14.0以後的版本增加了對Windows系統字型檔(True Type)的支持,通過使用Windows系統字型檔或字元映射表也可輸入各種字元。但在工程設計中,仍有一些常用的符號無法解決,如各種型鋼符號(角鋼、扁鋼、槽鋼、工字鋼等),有些符號雖然可通過AutoCADWindows系統來解決,但在使用前需定義成不同的字體(STYLE命令),一行文字需分幾次輸入以調用不同的字體來完成,使用上很不方便。

3.2、文本文件的排版和美觀

使用過字處理軟體如Microsoft WordWPS的人們都知道,這些軟體均可實現文本文件的排版,以滿足用戶的各種需要,而AutoCAD本身現有的功能尚不能實現這種功能,其文本輸入只能實現簡單的功能(上劃線、下劃線)。而在設計文件中,經常要輸入單位,如m2m3等,有時在說明中還要輸入一些數學公式。

一個漂亮美觀的文章,總能增加人們對該文章的喜悅,同樣美觀的設計文件也能增加閱讀者的親和力。由於漢字一般比英文單詞的筆畫來得複雜,為了能清晰地表示一段文章,在中英文混合輸入時,視覺習慣上應該漢字略高於英文,而在AutoCAD中,以同一高度輸入中英文,往往是英文高於中文,在視覺上覺得比例失調,影響美觀。

為解決上述兩個問題,必須對Text命令進行擴充。要擴充TEXT命令,必須先弄清楚此命令寫文字的處理過程:(1)確定文字(西文字元、漢字 )的各種屬性;(2)"文字解釋器"(Translater for text)初值;(3)讀入一行文字;(4)對此行文字中的每個文字(西方字元為單個字元、漢字為兩個字元)按其先後順序逐個進行以下操作 ;(5)落筆(置寫方式);(6)從形文件(西文字元從普通形文件、漢字從多字形文件)中取出對應數據;(7)文字解釋器將取出的數據按其數據定義邊解釋邊寫入圖中。

要擴充TEXT命令,且又不修改AutoCAD程序,那麼只能從此命令所使用的數據上作文章,由以上給出的處理過程可知:TEXT命令所使用的主要數據為形文件(西方字型檔、漢字字型檔),即應從形文件上作文章。為此,必須要了解形文件,不僅要了解文件格式,更重要的是要了解其中數據的定義。

二、 形和字體的格式及編碼

1形的基本概念

(SHAPES)是一種特殊實體,可使用線、弧及圓來定義它們。對AutoCAD來說,Shapes在存儲和繪圖方面比另一種實體塊更有效。在必須頻繁的插入一個簡單的零件和速度很重要的情況下,用戶定義的形很有用。它的一個變種是用於確定文本字體。

在上面已提到形都是由簡單的對象組成。這些對象是單一的直線、圓弧和圓。簡化使用這些對象的原因是在指定方向和距離值時,不能使用小數和建築單位,而只能使用整數和整型的分數。例如,一條線的距離等於1除以2的平方根(值為.7071068),而分數70/99 (等於.7070707),近似於線的距離值,因此可用此分數值代替。

形和字體都以同一種方式編寫,並都保存在擴展名為. SHP文件中。SHP文件必須編譯SHX文件才能被調用。也就是說,SHX是通過AutoCAD將文本格式的SHP文件編譯成二進位的SHX文件。其目的是將SHP內的形(包括字形)定義予以適當的排列及組織為二進位文件格式,以方便及加速AutoCAD的存取。

實際上,形文件分為三種:形、ASCII字型及大字型文件。三者在設計時唯一的差別是文件頭的聲明行(下節解釋),而在使用時的主要區別在於調用它們的命令不同。形使用SHAPE命令通過字形名稱調用,而字體在插入文本時才被調用,如執行TEXTDIM命令。ASCII字型文件以1Byte的字形碼調用,也就是常說的英文字型文件,大字型文件以2Byte的字形碼調用,也就是常說的中文字型文件。不管是用SHAPE命令調用的形,還是作為一個字元插入時,輸入的形名既可以大寫也可以是小寫。

2SHP文件的格式

SHP文件而言,形、ASCII字型及大字型文件三者在文件格式上是相近的,主要區別在於文件頭的聲明行不同。三種SHP形文件的格式如下:

2.1、形文件的形定義格式

單個的字元以ASCII碼的形式編寫並保存。.SHP文件或.SHX文件可以包含255個字元,每個字元定義有一個標題行,如下所示:

*形編號,位元組數,形名稱

標題行的下一行將用一行或多行代碼定義字元。簡單的形只用一行或兩行就可表達清楚。

標題行中每一項的含義為:

形編號可從1到255,但不能重複。形編碼的數值不可為0,此為特殊碼。

位元組數定義一形符號使用的位元組數,包括末尾的0表示形定義結束。在定義形字元時使用的位元組數最多不能超過2000。位元組之間以逗號分隔。還可將一對數值用括弧括起來,增強可讀性,但括弧無其他含義,也不佔用一個位元組。

形狀文件是以名稱調用,即用SHAPE命令調用形,形名必須大寫。在使用SHAPE命令時要輸入形名,正如在BLOCK命令中使用塊名一樣。

2.2ASCII字形文件的形定義格式

ASCII字型在上述基礎上增加了文件頭聲明,增加的聲明為:

*0,4,字符集名稱

上高,下高,種類,0

含義為:

0:特殊的字型碼,聲明此為字型文件的文件頭

4:長度值,其值固定,Bytes

字符集名稱:任意的字元串,不要太長。

上高:文字基準線上方可允許的高度。

下高:文字基準線下方可允許的高度。

種類:  0—僅供橫向方向書寫的文字集

1--僅供豎向方向書寫的文字集

2—同時可供橫向和豎向兩個方向書寫的文字集

對於ASCII字型文件,形名稱可以使用小寫字母,這樣在編譯並保存到內存中時,AutoCAD將忽略這些名稱,可節約SHX文件的空間。在字形文件中,形名稱只用於便利SHP文件的閱讀。

ASCII形文件與上述的形文件一樣,一個文件中只能包含255個字元,每個字元定義有一個標題行,同2.1

2.3、大字型文件的形定義格式

有些語言如日語、朝鮮語,具有數千個非ASCII碼文字。為了寫這種文字,AutoCAD提供了一個形定義的專用格式文件,即大字型文件(big-font)。大字型文件除了與ASCII字型文件一樣擁有特殊碼0,在文件的第一行還一定要有如下的聲明:

*BIGFONT 字數,字碼區間數,區間一,區間二,。。。

其餘同ASCII字型文件。

其中:字數:字型文件內的大約字數,與實際數誤差〈10%.

   字元區間數:以字元的High Byte為主,內分為幾個區間。

   區間一、區間二:High Byte的上下範圍。

本文主要討論ASCII碼的擴充,對大字型文件在此不多加討論。

3、形文件的編碼

SHP文件是採用一系列的形狀描述字和專用碼來編碼的,程序員使用正文編輯程序或字處理程序來輸入。

3.1形狀描述字

形狀描述字包括一個位元組的筆運動矢量長度和方向代碼。用二進位代碼指定筆運動的矢量長度和方向代碼可以組成一個形-字元。每一個二進位代碼是一個位元組。代碼0到16不是矢量-方向代碼,而是專用的編寫形定義的代碼。

每個矢量的長度和方向代碼是一個三字元的字元串。在代碼字元串中,第一個字元必須為0,第二個字元指定矢量的長度,它相對於形狀的”高度”而言。矢量長度受到比例因子的影響,矢量長度和比例因子的積是實際的距離值。第三個字元指定矢量的方向。在使用時,有16個可用的標準方向。圖2-1所示為16個標準方向。

圖中所有矢量都是以同一長度規格來繪製的。對角線矢量被“延長”來匹配最接近正交矢量X或Y的位移量。例如;讓我們建立一個命名為DBOX形狀號為230的形狀。見圖2-2

*2306,DBOX

014010,01C,018,012,0

注意除了可以使用矢量-方向代碼外,還可使用特殊代碼89定義一對由XY增量組成的位移值。

3.2、專用代碼

專用代碼可以是十進位也可以是十六進位,指定的代碼可以從0到16或從000到00E。以0打頭的三位二進位數是十六進位的特殊代碼。代碼10是十進位的特殊代碼,而010等於十進位數的16,但最重要的是010被AutoCAD解釋為矢量-方向代碼,表示矢量的長度為1,方向為0度。等於10的十六進位數是00A。各專用代碼的含義如下。

代碼0:形定義的結束,形定義的結束標記是0。

代碼1和2:抬筆和落筆落筆(即繪圖)模式在繪製每個形的開始時激活。當繪圖模式打開時,一個矢量說明將繪製一條直線;當繪圖模式關閉時,矢量說明只移到新位置,而不繪製直線。

代碼3和4:比例因子按照下面指定的整數因子放大或縮小形中的一個(或一組)矢量的尺寸。代碼3告訴AutoCAD用下一矢量除以緊隨代碼3后的比例因子,代碼4告訴AutoCAD用下一矢量乘以緊隨代碼4后的比例因子。比例因子在同一形中是累計的。

代碼5和6:保存和恢複位置形定義中的每一位置都與上一個位置關聯。一旦筆被移到了一個特殊的位置上,在移動前可在形定義中記錄當前的位置供以後使用。這用於當一個對象在同一個位置上開始或結束多次的情況。例如,組合使用代碼5和6將非常方便地繪製一個帶有輻條的車輪,用代碼5定義車輪的中心,繪製輻條,然後用代碼6返回車輪的中心繼續繪製。

保存和恢複位置也就是將當前位置壓入堆棧或從堆棧中彈出的過程。堆棧中一次最多可保存四個位置。從堆棧中彈出的順序與壓入堆棧的順序相反,且每個壓入堆棧的位置必須彈出。

如果由於過多的壓入操作、彈出而造成堆棧溢出,則在繪製形時將顯示錯誤信息

代碼7:子形 在SHP/SHX文件中定義的一個形,該形可包含在同一個形文件中的另一個形定義中,代碼7後面緊跟插入的形的編號。

代碼8和9:X - Y位移普通矢量只能繪製在16個預定義的方向上,並且最大長度為15。通過代碼8和9可用X - Y位移繪製非標準矢量。代碼8后必須跟兩個定義位元組,分別為X位移與Y位移。倒如,8,(7,-8)表示將筆沿X軸正向移動7個單位,沿Y軸負向移動8個單位。這裡的括弧是可選的,只是為了增強可讀性。用代碼9可繪製一系列非標準矢量。此代碼後面可跟任意數量的X-Y 位移對,由(0,0) 對終止。例如,9, (7,-8), (14,9), (-17,3), (0,0) 表示按當前的模式使用三對位移值,用(0,0) 對返回普通矢量模式。

代碼00A:八分圓弧代碼00A(或10)告訴AutoCAD用下兩個位元組定義一個圓弧,此圓弧稱為八分圓弧,因為它跨越一個或多個45°的八分圓。八分圓弧的起點和端點都在八分圓邊界上。圖2-3所示為各八分圓的代碼編號。繪製八分圓弧的格式如下所示:

10,半徑,(-)0SC

半徑可以是1到255之間的任意值。第3個位元組以0打頭,指定圓弧的方向(順時針方向為負,逆時針方向為正)、起始八分圓( S )和跨越的八分圓數( C )的值為0到7。其中,0等於八個八分圓或整個圓。圖18-48所示的弧用以下代碼繪製:

10(2,-043)

繪製的圓弧半徑為2,從八分圓4處開始,順時針旋轉135°(跨越了三個八分圓)。

代碼00B:不規則圓弧 代碼00B(11)繪製不規則的圓弧,其起點和端點不一定在八分圓邊界上。其定義格式為:

11start_offset,end_offset,high_radius,low_radius,(-)0SC

start_offsetend_offset表示從圓弧起點和端點到所在的八分圓邊界的距離。high_radius如果為非0值,表示半徑大於255。low_radius 和最後定義的位元組與八分圓弧的定義(代碼00A,如前所述)一樣,負數依然表示順時針方向。

代碼00C和00D:指定凸度的圓弧 代碼00C和00D(12和13 )提供了另一種不同於八分圓的繪製圓弧的方式。在代碼00C 和00D 中通過將凸度因子應用到位移矢量來繪製圓弧。代碼00C和00D是由X位移和Y位移確定圓弧的端點,由凸度確定圓弧的曲率。凸度由連接圓弧兩個端點的直線確定。凸度的取值範圍為-127到+127。最大和最小值(127或-127)定義了180°的圓弧(半個圓)。小值對應小度數的圓弧。意思是,假設指定的凸度值為x,用x乘以180再除以127,即得到對應的角度值。凸度值為0表示定義一條直線。

代碼00C繪製一段圓弧,而代碼00D繪製多段圓弧(polyarcs)。它們與代碼8和9相似。代碼00D與009一樣,必須用(0,0)對終止。代碼00D後面可跟0或多個圓弧段定義,其中0凸度值用於繪製直線。

代碼00E 正文垂直標記命令。專用碼00E(14)僅用於雙向文字字體描述中,即文字可以在水平和垂直兩個方向上表示。當該碼用到字元定義中,如果文字垂直寫,則對下一個碼進行處理。如果文字是水平寫的,則下一個碼就跳過不予處理。

在水平文字中,每個字元的起始點在其基線左端,而在垂直文字中,起始點在字元頂部中心。在每個字元結束時,“抬筆”段一般要回到下一個字元的起始點。對於水平文字要向右,對垂直文字要向下。專用碼00E主要用來調整起點和終點的差別,使同一字形可用在水平和垂直兩個方向上。

3SHX文件的存儲格式

了解SHX文件的格式,有助於事半功倍地解決實際問題。

ASCII字體文件和大字體文件的SHX格式分別見表2-1和表2-2

2-1 ASCII字體文件存儲格式

序號

起始及終止位元組

  據  內  容

1

120

Shape文件版本標識字元串,“AutoCAD-86 shapes 1.0”

2

2123

CR+LF+EOF (16進位的 0D 0A 1A)

3

2425

最小的字型碼(0)

4

2627

最大的字型碼

5

2829

字型碼總數N,包括字符集的聲明(Code 0)

6

30(33+4m)

M0到(N-1),每四個Bytes一字,前2Butes為字型碼,后2Bytes為字型定義的長度,均為整數。

7

(33+4n-1)

依長度擺放各字型定義

 

 

 

 

2-2 大字體文件存儲格式

序號

起始及終止位元組

  據  內  容

1

021

Shape文件版本標識字元串,“AutoCAD-86 bigfont 1.0”

2

2224

CR+LF+EOF (16進位的 0D 0A 1A)

3

2526

(08 00)

4

2728

字型碼總數N,包括字符集的聲明(Code 0)

5

230

字型碼區間數K

6

31(31+4m)

M0到(k-1),每四個Bytes一組存放區間的起始與結尾字碼,各2Bytes。

7

31+4k(31+4k+8L-1)

L0到(N-1),每8位一筆存放字型的字碼2Bytes、長度2Bytes與字型定義的地址(4Bytes)等數據。

8

最後

依長度擺放各字型定義

三、字體文件的擴充方法

字形文件的編製是一項工作量大、枯燥乏味的工作,如果所需字形全部獨立編製,則是費力不討好。AutoCAD系統已提供了很多標準字型檔,根據工程設計的實際情況,一般在標準字型檔的基礎上增加需要的字形(或功能)即可。本文擬在txt.shx基礎上進行擴充。

為滿足實際需要,對不同的情況採用不同的處理方法。

1標準字型檔的處理

大家知道,SHX文件為二進位格式,採用一般的字處理軟體無法對其進行編輯和擴充。對標準字型檔首先要得到SHP源文件,才能進行處理。

1.1、文本格式SHP的獲取

在正常安裝的情況下,AutoCAD R14.0及以上的版本不提供SHP文件,而僅提供SHX文件。要得到SHP文件可通過三個途徑:

aAutoCAD R12.0以前的版本在正常安裝時,其Fonts子目錄下同時含有SHPSHX文件。找到低版本的AutoCAD后,從中Copy一份。

B、某些AutoCAD漢化軟體,如隆迪ACE軟體的子目錄Bonus下含有Txt.shp文件。

c、如無法從上述兩種方法得到,那就只能通過編程實現SHXSHP文件格式的轉換。SHX文件的格式見第二章第三節。既然SHX文件是二進位的SHP文件,而SHP又是ASCII格式,兩者的轉換不存在加、解密,根據上述格式可以很方便的設計出所需的程序。限於篇幅,其源程序在此不再列出。事實上,由於中文字型檔從不提供SHP文件,如需改造中文字型檔,必須採用SHX2SHP程序。

在本人的工作中,不僅需要英文字母,而且經常要用到一些希臘字元,如α、β、γ、δ、λ等,通過上述方法一併得到希臘字型檔文件Greeks.SHP。

2、標準字型檔的處理

txt.shp中除英文字母外,還定義了三個特殊符號℃、±、Φ,其形狀號分別為127、128、129,為保持兼容,該三個符號予以保留。另外為避免文件覆蓋,將txt.shp更名為Cjf.shp。

2.1、將Greeks.shp中需要的字型加入到Cjf.shp,其形狀號為134171(可以根據需要增減形狀數量)。

2.2、按照習慣,英文文字的高度應比中文文字矮,這樣排出的文字較美觀。但中文字體的字模高度並不統一,同時不同的字體文件外觀也不同,為取得較好的視覺效果,必須根據使用的中文字型調整兩者的高度比例。本人取修改後的字形高度為原高度的0.8,修改方法,在原形狀描述前增加“3,10,4,8”,在結束處加上“3,8,4,10”,同時不要忘記將定義位元組數做相應的修改(在原來基礎上加8)。

通過修改和引入已有的SHP文件,達到擴充字型檔的目的。

3、特殊符號的建立

工程設計中所用到的特殊符號包括兩類:特殊形體和單位上標。

3.1、特殊形體

各個專業均有自己專業的一些特殊符號,如電子專業需用電子、電氣符號,土建專業需用到型鋼和一級鋼筋、二級鋼筋符號。對於經常在文字中出現的特殊符號有必要作為字體形進行定義。

對於本人從事的工作,經常要用到型鋼符號。這些型鋼包括角鋼、扁鋼、槽鋼、工字鋼等。按照上述的形的編寫規則和工程符號表示要求,將這四個符號編入Cjf.shp中,其形狀號編為130~133

3.2、單位上標

工程文件中經常要表示單位,如12.3m245.34m3等,用過Microsoft Word的同志都知道,在Word中選擇【格式】菜單中【字體】命令后,出現一個彈出菜單,選擇上標選項即可將所選字元設為上標,非常方便。在工程設計文件中,經常要用到單位的表示,但AutoCAD本身並不提供該功能。考慮到該項功能使用頻率較高,在字型檔文件中專門定義了上標2~9,其形狀號為11~18

3.3控制符號的建立

Word中,文本文件的排版功能主要是通過【格式】菜單實現。而工程文本文件主要用於輸出,對於顯示、色彩方面的要求不高(AutoCAD可用Color命令改變實體顏色),其他排版功能如文字行間距、上劃線、下劃線可通過AutoCAD相關命令方便地實現,對於陰文、陽文如字體文件支持,也可通過填充命令實現。因此,對AutoCAD的排版而言,主要是要實現任意文字的上、下標標註。

由於上、下標符號不能在文件中直接顯示,故將其稱做控制符號。

設置上、下標,其基本思路是要解決兩點:

a、文字的起始點。對上標文字,其文字基點在正常文字高度的2/3處;對下標文字,其文字基點應略低於正常文字的基點,本人將其設於與正常文字的基點相平。

B、文字的高度:上、下標文字的高度為正常文字高度的1/2

為使後續文字能正常標註,必須在上、下標文字標註結束后恢復到正常的參數。因此,對文字上、下標分別標註的情況下,必須各設置兩個控制符號(參數改變和參數恢復),即需增加4個控制符號,形狀名稱分別命名為upshift,uprestore,downshift,downrestore

形的編碼用抬筆(2)、位移(8)、矢量長度相除(3)實現參數的改變,參數恢復則由矢量長度相乘(4)代替矢量長度相除(3)實現。

在公式編寫時,往往出現上、下標同時標註的情況,而Word對這種情況的處理是上、下標分別標註,這與習慣是不相符的,必須增加公式編寫器模塊才能使標註符合習慣寫法。通過增加控制符號,AutoCAD可以非常方便地實現該功能。

四、字體文件的使用

AutoCAD中形或字體必須以SHX格式存在,才能被使用。當用字處理軟體編寫SHP文件完成後,需將. SHP文件編譯成.SHX文件。要將.SHP文件編譯成.SHX文件,在AutoCAD中鍵入:

命令:Compile

從“選擇形文件”對話框中選擇要編譯的形文件Cjf.shp,如果文件中有錯誤, AutoCAD將會發出錯誤報告,否則,出現如下的提示:

編譯形/字體描述文件。

編譯成功。輸出文件路徑\Cjf.shx包含6369位元組。

Cjf.shx中增加的形狀號見附表2。為方便使用,增加一Cread.com文件作為幫助文件,可使使用者不須記憶形狀號

要使用字形文件,必須先用Style命令生成需要的字型。一個字型可以包含一個ASCII字形和一個big-fonts,並加上高度、寬度及旋轉角度等參數組成。

在輸入時,對英文字母可直接輸入,對形狀號大於127的形,可通過%%nnn的方式輸入,其中nnn即為需要的形狀號。

下面是Cjf.shx和大字形文件Hztxt.shx的一個例子。


附表1 文本字體的ASCII碼

代碼

字元

代碼

字元

代碼

字元

32

SPACE

64

@

96

(左撇號)

33

!

65

A

97

a

34

"(雙引號)

66

B

98

b

35

#

67

C

99

c

36

$

68

D

100

D

37

%

69

E

101

e

38

&

70

F

102

f

39

(撇號)

71

G

103

g

40

(

72

H

104

h

41

)

73

I

105

i

42

*

74

J

106

j

43

+

75

K

107

k

44

, (逗號)

76

L

108

l

45

- (連字號)

77

M

109

m

46

. (圓點)

78

N

110

n

47

/

79

O

111

o

48

0

80

P

112

p

49

1

81

Q

113

q

50

2

82

R

114

r

51

3

83

S

115

s

52

4

84

T

116

t

53

5

85

U

117

u

54

6

86

V

118

v

55

7

87

W

119

w

56

8

88

X

120

x

57

9

89

Y

121

y

58

: (冒號)

90

Z

122

z

59

; (分號)

91

[

123

{

60

< 

92

\ (反斜杠)

124

| (豎線)

61

=

93

]

125

}

62

94

^ (脫字)

126

~ (代字型大小)

63

?

95

_ (下劃線)

10

LF(換行)

 

 

 

 

 

 

 


附表 2   Cjf.shx中增加的形

==========================================================

ASCII  符號意義   ASCII  符號意義   ASCII  符號意義

001   上標2   134   α   151   ρ

002   上標3   135   β   152   σ

003   上標4   136   γ   153   Т

004   上標5   137   δ   154   υ

005   上標6   138   ε   155  

006   上標7   139   Ψ   156   ω

007   上標8   140   Χ   157   ξ

008   上標9   141   η   158   ψ

010   LF   142   ι   159   ξ

011   移上   143   160   :

012   恢復   144   κ   161   ;

013   移下   145   λ   162   {

014   恢復   146   μ   163   }

   147   ν   164  

127      148   ο   165   Δ

128   ±   149   π   166   φ

129   Φ   150   167   θ

130   扁鋼   168  

131   角鋼   169   倒△

132   槽鋼    170   Ω

133   工字鋼   171   Ψ

 

 

 

 

參考文獻

1AutoCAD 10.0 計算機繪圖軟體包 用戶參考手冊 中科院希望電腦技術公司

2、精通中文 AutoCAD 2000 

3AutoCAD 2000高級用戶指南:設計、定製、開發

4AutoCAD 軟體技術探密  施燦堂著

 

 

 

 

 

[擴充AutoCAD字型檔,滿足工程設計要求],你可能也喜歡

  • 工程製圖軟體
  • 機械工程製圖大意
  • 工程圖學與機械製圖
  • 工程製圖符號
  • tqc工程製圖
  • autocad字型檔安裝
  • autocad字型檔位置
  • autocad字型檔路徑
  • autocad檔缺少的字型
  • autocad字型無法顯示
  • 出風口設計要求
  • gre分數要求
  • 工地安全欄杆要求
  • 防火填塞規範要求
  • 防火hb等級要求
  • 了解需求滿足需求
  • 噗浪擴充功能
  • 擴充碟隨身碟
  • 擴充碟隨身碟差別
  • 汽車點菸器擴充
Bookmark the permalink ,來源:
One thought on “擴充AutoCAD字型檔,滿足工程設計要求