給排水設(shè)計(jì)給排水CAD軟件開(kāi)發(fā)實(shí)例
【摘要】本文介紹了用戶幻燈菜單及功能和開(kāi)發(fā)方法,并給出了標(biāo)高標(biāo)注和圖例繪制程序的開(kāi)發(fā)方法以及程序注解。
1用戶幻燈菜單簡(jiǎn)介用戶幻燈菜單(下文簡(jiǎn)稱幻燈菜單)是在AutoCAD平臺(tái)上開(kāi)發(fā)的一種高效實(shí)用的用戶圖形界面,由幻燈和相應(yīng)的AutoLISP實(shí)用程序組成。其功能及用法類似于AutoCAD的圖標(biāo)菜單。調(diào)用時(shí)幻燈菜單屏幕上出現(xiàn)一幅幻燈,幻燈顯示不同圖形界面,由幻燈和相應(yīng)的AutoCAD實(shí)用程序組成。其功能及用法的功能區(qū)域,每個(gè)區(qū)域?qū)?yīng)相應(yīng)的功能,用鼠標(biāo)點(diǎn)取即可調(diào)用該功能。
幻燈菜單可以用于開(kāi)發(fā)本部門使用的工具軟件或是商業(yè)化的CAD軟件,可以大大提高開(kāi)發(fā)效率以及設(shè)計(jì)繪圖速度。
下面以我院開(kāi)發(fā)的標(biāo)高標(biāo)注程序?yàn)槔榻B幻燈菜單的功能:在command:狀態(tài)下從下拉菜單中點(diǎn)取“標(biāo)高標(biāo)注1”后屏幕上出現(xiàn)如圖1所示幻燈,用鼠標(biāo)在某一標(biāo)高種類格中點(diǎn)擊后幻燈消失,恢復(fù)前一圖面,在提示行中提示“請(qǐng)輸入起點(diǎn)”,給點(diǎn)后又提示:“標(biāo)高值”,輸入數(shù)值后自動(dòng)按選擇的種類畫好標(biāo)高符號(hào)并寫好標(biāo)高值;然后重復(fù)提示“請(qǐng)輸入起點(diǎn)”標(biāo)注下一個(gè),回車則回到圖1幻燈重復(fù)使用,點(diǎn)EXIT退出。
2幻燈菜單的特點(diǎn)
幻燈菜單可以實(shí)現(xiàn)AutoCAD的圖標(biāo)菜單的各項(xiàng)功能,并且有如下優(yōu)點(diǎn):
a.制作、修改效率高。制作圖標(biāo)菜單時(shí),要實(shí)現(xiàn)的功能數(shù)與幻燈數(shù)及菜單項(xiàng)的數(shù)量相同。而制作一個(gè)幻燈菜單只需要作一個(gè)幻燈,幻燈數(shù)量大幅減少,修改也容易得多。
b.使用效率高。為了提高軟件效率,盡量減少擊鍵次數(shù)是今后軟件的發(fā)展方向。幻燈菜單可以將多種形式的選擇以圖形形式直觀地顯示出來(lái),以供選擇。以標(biāo)高標(biāo)注為例,以前的方法是先問(wèn)標(biāo)高符號(hào)形式,再問(wèn)方向,而使用幻燈菜單只需點(diǎn)取一次即可。
c.界面美觀,制作靈活多樣,使用方便;脽舨藛卧谝环脽糁袆澐值墓δ軈^(qū)數(shù)量不限,并且可以根據(jù)需要制作成方格、橫格、豎格、扇型格、圓環(huán)格等多種形式,甚至可以達(dá)到可編程序?qū)υ捒虻暮芏喙δ堋?nbsp;
d.適用性強(qiáng),移植方便;脽舨藛芜m用于R9.0版以上的各種中、西文AutoCAD版本。使用幻燈菜單時(shí),由于它包含在用ADS或AutoLISP等語(yǔ)言編制的程序中,所以只要能運(yùn)行程序即可調(diào)出幻燈菜單,版本升級(jí)時(shí)不必改變新的菜單文件。而圖標(biāo)菜單的菜單項(xiàng)必須逐條加入到新的菜單文件中。
e.可以作成定型模塊重復(fù)使用,從而大大提高編程效率。
3幻燈菜單的制作
幻燈菜單的原理是:將AutoCAD繪圖區(qū)分為若干規(guī)則的圖形區(qū)域,每一區(qū)域可以對(duì)應(yīng)一組功能,在程序調(diào)用幻燈菜單時(shí),要求用戶根據(jù)需要在某一圖形區(qū)域中選取一點(diǎn),然后程序自動(dòng)計(jì)算出該點(diǎn)所在的區(qū)域位置,從而調(diào)用所對(duì)應(yīng)的程序功能。
點(diǎn)的定位是幻燈菜單制作編程的關(guān)鍵所在,以矩形格幻燈菜單為例,其步驟是:
a.獲取下列AutoCAD系統(tǒng)變量:
viewsize-當(dāng)前繪圖區(qū)高,用繪圖單位計(jì)算;
viewctr-當(dāng)前繪圖區(qū)中心點(diǎn)坐標(biāo)值;
vsmax、vsmin-虛擬屏幕的左下角及右上角點(diǎn)坐標(biāo)值,可以用來(lái)求繪圖區(qū)寬高比,從而求出繪圖區(qū)寬度。
b.根據(jù)橫向和豎向分格數(shù),求出每格的寬和高。
c.由點(diǎn)的坐標(biāo)值分別求出點(diǎn)所在格的橫向和豎向序號(hào)。
d.橫向和豎向序號(hào)連接即可獲得該格的區(qū)域代碼。
后文將給出我院開(kāi)發(fā)的標(biāo)高標(biāo)注和圖例繪制兩個(gè)實(shí)例,以下程序均在AutoCADR10至13各版本下順利運(yùn)行,并已非常成熟。需要指出的是,為了簡(jiǎn)化程序,突出重點(diǎn),刪去了一些諸如容錯(cuò)或裝飾
[1] [2] [3] [4] [5]