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

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

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


 

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

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

 

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

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

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

 

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


 

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

 

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

 

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

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

 

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

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

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

 

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

 

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

 

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

   *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

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

 

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

我們?cè)賮?lái)看一個(gè)實(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所示。

 

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

(完)

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