你當(dāng)前的位置>>主頁>>AutoCAD知識>>AutoCAD二次開發(fā)
 
            AutoCAD的線型與填充圖案開發(fā)技術(shù)

    當(dāng)您在使用AutoCAD進(jìn)行圖形設(shè)計(jì)時,常常會感到現(xiàn)有的線型與填充圖案不能滿足自己的要求。因?yàn)锳utoCAD畢竟是美國的軟件,它采用的標(biāo)準(zhǔn)線型與填充圖案與我國現(xiàn)行的繪圖標(biāo)準(zhǔn)和有關(guān)規(guī)定不盡吻合,因此您有必要定制一套自己的線型與填充圖案,以滿足繪圖的需求。下面將以AutoCAD 2000中文版為藍(lán)本,詳細(xì)介紹線型與填充圖案的開發(fā)技術(shù)。

   一、線型的開發(fā)
   1.線型文件的定義格式
   要開發(fā)出一套自己的線型,我們可以先學(xué)習(xí)一下AutoCAD 2000本身本帶的標(biāo)準(zhǔn)線型文件,以便有所借鑒。我們找到AutoCAD 2000的標(biāo)準(zhǔn)線型文件ACAD.LIN,這個文件位于AutoCAD所在路徑的Support子目錄下,用一般的文本編輯器(如記事本、寫字板)即要打開,該文件的內(nèi)容如圖1所示。


 

現(xiàn)在我們來研究一下這個文件。文件中“;;”代表注釋行。因此我們可以利用它來添加一些注釋性文字,以增強(qiáng)文件的可讀性。
   每種線型都可以定義為兩行,第一行定義線型的名稱和線型說明。行首必須是以“*”開始,其后是線型名稱。線型的描述也是起一個直觀的注釋作用,最好加上,不過這種描述不能超過47個字符。第二行才是真正描述線型的代碼。行首的“A”代表對齊方式。在這種對齊方式下,第一個參數(shù)的值應(yīng)該大于或等于0,第二個參數(shù)的值應(yīng)該小于0。簡單地說:正值表示落表,AutoCAD會畫出一條相應(yīng)長度的實(shí)線;0表示畫一個點(diǎn);負(fù)值則表示提筆,AutoCAD會提筆空出相應(yīng)長度。我們可以想像成繪圖筆的工作過程,就很容易理解了。要注意的是,這些字符之間以半角的逗號隔開,每一行結(jié)束必須按回車鍵,最后一行也不例外。另外,在*.LIN文件中,每個線型文件最多可容納280個字符。
   說了這么多,您可能還沒有明白,不要緊,現(xiàn)在讓我們來分析一下第一種線型Border,首先的“.5”表示正數(shù)0.5,也就是畫一條0.5個單位長的線;然后的“-.25”表示負(fù)的0.25,也就是留一段0.25個單位長的空白;緊接著畫0.5個單位長的線,0.25個單位長的空白,0表示畫一個點(diǎn),然后又是0.25個單位長的空白,如圖2所示。
 

在清楚線型的定義之后,我們不妨來做一個自己的線型,根據(jù)建筑制圖的相關(guān)規(guī)定,新建一個雙點(diǎn)劃線的線型,用于假想輪廓線和成型前原始輪廓線的繪制,如圖3所示。

 

我們將這個線型命名為outline,那么這個雙點(diǎn)劃線的線型則可以做如下定義:

   *OUTLINE,outline ______..______..______
   A,1.0,-.1,0,-.1,0,-.1

   將這兩行添加到ACAD.LIN文件中,存盤并退出文本編輯器。啟動AutoCAD 2000,在使用我們定義的outline線型之前,需要加載該線型。使用“格式”菜單中的“線型”命令打開“線型管理器”對話框,單擊“加載”按鈕,打開“加載或重載線型”對話框,單擊“文件”按鈕,然后選擇ACAD.LIN文件,單擊打開按鈕。從可用線型列表中選擇“OUTLINE”線型,單擊“確定”按鈕將其加載,如圖4所示。

 

在“線型管理器”對話框中選擇OUTLINE線型,然后單擊“當(dāng)前”按鈕,將該線型置為當(dāng)前線型,單擊“確定”按鈕,加載完成,如圖5所示。


 

現(xiàn)在可以使用繪圖命令繪制幾個對象(如圖6所示),如果您看不到線型效果,可能需要放大繪圖窗口。

 

2.線型的開發(fā)方法
   從第1節(jié)可以看出,我們可以直接用文本編輯來新建線型文件。實(shí)際上,AutoCAD 2000還提供了在其系統(tǒng)內(nèi)部生成線型的命令“LINETYPE”。而且新建的線型即可以直接追加到ACAD.LIN文件的末尾,也可以另外定義線型文件。下面將對這些方面分別作介紹。
   我們以第1節(jié)中建立的OUTLINE線型為例,先來看一下LINETYPE的命令的使用。啟動AutoCAD 2000,輸入命令“-linetype”(注意前面有一個橫線,如果沒有這個橫線將打開“線型管理器”對話框)。輸入C,新建一個線型,輸入要創(chuàng)建的線型名稱,比如outline,屏幕彈出“創(chuàng)建或附加線型文件”對話框。這時,您可以在原有的文件ACAD.LIN文件中增加新的線型,也可以新建一個線線文件,這里我們新建一個名為myline.lin的線型文件,單擊“保存”按鈕。此時命令行上顯示“說明文字”,輸入對線型的簡單說明。如果您保存線型文件已經(jīng)包含了outline線型,在這之前會有一條詢問您是否覆蓋的信息,F(xiàn)在就可以輸入線型的圖案了,仍然輸入A,1.0,-.1,0,-.1,0,-.1,回車結(jié)束線型的定義。此時,AutoCAD生成一個新的線型文件myline.lin,整個操作過程的系統(tǒng)提示信息如圖7所示。

 

同樣,我們也可以用-linetype命令加載線型,在命令行要求輸入選項(xiàng)時,輸入L,然后輸入要加載的線型,如outline,選擇保存線型的文件,這里選擇myline.lin文件,命令行提示線型已經(jīng)加載,使用鍵退出命令。當(dāng)然,您也可以使用“線型管理器”來加載線型。

   3.復(fù)全線型的定義與開發(fā)
   AutoCAD不僅能定義由短線、間隔和點(diǎn)組成的簡單線型,還可以開發(fā)出較為復(fù)雜的線型,以滿足特殊的需要。比如說表示籬笆的線型。復(fù)合線型功能是從AutoCAD R13版本起新增的功能,可以在定義的線型中嵌入文本和形文件(.SHX)中的形。這里我們將介紹在線型中嵌入文本,形的插入相當(dāng)復(fù)雜一些,我們這里將不作介紹。
   我們?nèi)匀谎赜脤W(xué)習(xí)簡單線型定義的思路,還是先研究一個標(biāo)準(zhǔn)的范例,總結(jié)出其中的規(guī)律,圖8顯示的線型是一個籬笆的復(fù)合線型。那么這個線型是怎么樣定義的呢?很簡單,只有以下兩行語句:

 

*LB_LINE,----X----X----X----
   A,1.0,-.25,["X",STANDARD,S=.2,R=0,X=-.1,Y=-.1],-.25

   第一行沒有什么特別的,跟簡單線型定義一樣,是線型名和線型的簡單描述。第二行的A當(dāng)然是對齊符號,數(shù)字的意義仍然與前面一樣。我們集中精力來看文本的嵌入。
   “X”是嵌入的文本,注意必須加上雙引號!癝TANDARD”是文本式樣的名字,如果當(dāng)前圖形中沒有該樣式,則AutoCAD不允許使用該線型。
   “S=.2”確定文本的比例系數(shù)為0.2。如果使用固定高度的文本,AutoCAD會將此高度乘以比例系統(tǒng)數(shù);如果使用的是可變高度的文本,則AutoCAD會把比例系統(tǒng)數(shù)看成絕對高度。
   “R=0”表示文本相對于當(dāng)前線段方向的轉(zhuǎn)角。0表示文本與所給線段方向一致,這也是缺省值。
   “X=-.1,Y=-.1”為可選項(xiàng),它們確定相對于當(dāng)前點(diǎn)的偏移量。缺省時AutoCAD將文本字符串的左下角點(diǎn)放在此當(dāng)前點(diǎn)。X就是當(dāng)前線段的方向,Y則是垂直于線段向上的方向。這兩個偏移量將使文本的定位更精確。
   復(fù)合線型的使用同簡單線型的使用一樣,也是先裝入再調(diào)用,明白了復(fù)合線型的定義格式之后,我們就可以自己定義線型了。要創(chuàng)建復(fù)合線型,只能是編輯已有線型文件或者建立新的線型文件來達(dá)到目的,而不能像定義簡單線型那樣,采用AutoCAD內(nèi)部以命令行添加線型定義代碼的方式。

二、開發(fā)填充圖案
   在繪圖時,我們經(jīng)常會在一定區(qū)域內(nèi)填充某些圖案,也就是“圖案填充”,以起到區(qū)分一個區(qū)域的各組成部分及其構(gòu)成材料的作用,比如我們在繪制混泥土墻面時,就需要用到圖案填充。在AutoCAD系統(tǒng)中圖案填充的功能是通過執(zhí)行HATCH(填充)或者BHATCH(邊界填充)命令來實(shí)現(xiàn)的。AutoCAD提供的一些形式的圖案都位于Suport文件夾下的acad.pat文件中,可以用任何文本編輯器打開它。
   圖案是由一種或多種圖案直線組成的。AutoCAD對直線的數(shù)量沒有限制。每一種圖案的各條線相互平等且線型相同。因此,只要確定了該圖案線中的一條基準(zhǔn)圖案線的方位、線型及其相鄰平行線與該基準(zhǔn)線的相對位置,則這種圖案線就唯一確定了。在AutoCAD中,基準(zhǔn)圖案線的方位由三個參數(shù)決定(如圖9所示),即基準(zhǔn)線的起點(diǎn)(dx,dy)和基準(zhǔn)線與X軸的夾角A(逆時針為正);鶞(zhǔn)圖案線的定義與一般線型的定義完全相同,所以當(dāng)線型為實(shí)線時可以不作定義。在基準(zhǔn)圖案線確定以后,相鄰平行線與基準(zhǔn)圖案線的相對位置由兩個參數(shù)決定,即相鄰平行線起點(diǎn)與基準(zhǔn)圖案線起點(diǎn),在線長度方向的距離(dl)和平行線之間的距離(ds)。

 

我們?nèi)匀灰訟utoCAD自帶的ACADISO.PAT文件為例(如圖10所示),從中取出ANGLE圖案文件。

 

第一行是星號加圖案名和圖案的描述信息,接下來的兩行就是圖案的具體內(nèi)容,可以有一行或幾行,格式為A,dx,dy,dl,ds[定義線型的一組參數(shù)],實(shí)例與格式對照(如圖11),您可以很容易地看出圖案中兩條線的繪制方式。

 

如果您覺得ACAD.PAT文件提供的圖案不夠豐富和理想,也可以自己定制圖案或者直接修改原圖案。為AutoCAD開發(fā)填充圖案的過程比較接近與復(fù)合線型的定義,但要稍微復(fù)雜一些,不過,有了前面的基礎(chǔ),相信您也不難掌握其實(shí)質(zhì)。可將新定義的圖案加入庫文件ACAD.PAT中或?qū)⑺鼏为?dú)保存在一個文件中。將圖案單獨(dú)保存時,文件名必須與圖案名相同。在搞清楚圖案文件的各項(xiàng)參數(shù)之后,我們就可以自出新裁定義一些新的圖案了。下面我們就定義一個三角形的圖案,命名為TRIANGLE,并保存到TRIANGLE.PAT文件中。打開記事本,新建一個文件,輸入如下代碼(代碼最后一行加入一個換行):

   *TRIANGLE,triangle pattern
   0,0,0,1,1.732,1,-1
   60,0,0,1,1.732,1,-1
   120,1,0,1,1.732,1,-1

   將文件保存為TRIANGLE.PAT,并放在support文件夾下。接下來,我們用TRIANGLE圖案來填充一個圓形進(jìn)行驗(yàn)證。首先啟動AutoCAD,繪制一個圓形,然后執(zhí)行“繪圖”菜單中的“圖案填充”命令,打開“邊界圖案填充”對話框。在“類型”列表中選擇“自定義”選項(xiàng),激活“自定義圖案”列表框,單擊“自定義圖案”更表框右側(cè)的按鈕,彈出“填充圖案調(diào)色板”對話框,從中選擇TRIANGLE.PAT文件(如圖12所示),單擊“確定”按鈕關(guān)閉“填充圖案調(diào)色板”對話框。

 

在“邊界圖案填充”對話框中選擇合適的“比例”,單擊“拾取點(diǎn)”按鈕或者“選擇對象”按鈕。在繪圖區(qū)中選中圓形,按回車鍵返回“邊界圖案填充”對話框,單擊“確定”按鈕,完成圖案的填充,填充后的效果如圖13所示。
 

我們再來看一個實(shí)例,填充圖案的代碼如下:

   *STAR,star*
   0,-1,0,1.5,2.598,2,-1
   60,-0.5,-0.886,1.5,2.598,2,-1
   120,0.5,-0.866,1.5,2.598,2,-1

   保存文件后按照前面的方法使用該圖案填充產(chǎn)生星形效果,如圖14所示。

 

    將以上兩個例子作以對比,我們不難發(fā)現(xiàn):圖案填充的關(guān)鍵還在于靈活掌握線段的幾何關(guān)系,即使是簡單的線型,如果經(jīng)過精心的設(shè)計(jì),也能夠產(chǎn)生各種不同的奇妙效果。

(完)

民眾工作室.制作      版權(quán)所有