工程項目管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 工程項目管理軟件 | 裝飾管理系統(tǒng) | 簽約案例 | 購買價格 | 在線試用 | 手機APP | 產(chǎn)品資料
X 關(guān)閉
工程管理軟件

當(dāng)前位置:工程項目OA系統(tǒng) > 建筑OA系統(tǒng) > 工程管理軟件

給排水設(shè)計給排水CAD軟件開發(fā)實例

申請免費試用、咨詢電話:400-8352-114

【摘要】本文介紹了用戶幻燈菜單及功能和開發(fā)方法,并給出了標(biāo)高標(biāo)注和圖例繪制程序的開發(fā)方法以及程序注解。  

1用戶幻燈菜單簡介用戶幻燈菜單(下文簡稱幻燈菜單)是在AutoCAD平臺上開發(fā)的一種高效實用的用戶圖形界面,由幻燈和相應(yīng)的AutoLISP實用程序組成。其功能及用法類似于AutoCAD的圖標(biāo)菜單。調(diào)用時幻燈菜單屏幕上出現(xiàn)一幅幻燈,幻燈顯示不同圖形界面,由幻燈和相應(yīng)的AutoCAD實用程序組成。其功能及用法的功能區(qū)域,每個區(qū)域?qū)?yīng)相應(yīng)的功能,用鼠標(biāo)點取即可調(diào)用該功能。  

幻燈菜單可以用于開發(fā)本部門使用的工具軟件或是商業(yè)化的CAD軟件,可以大大提高開發(fā)效率以及設(shè)計繪圖速度。  

下面以我院開發(fā)的標(biāo)高標(biāo)注程序為例介紹幻燈菜單的功能:在command:狀態(tài)下從下拉菜單中點取“標(biāo)高標(biāo)注1”后屏幕上出現(xiàn)如圖1所示幻燈,用鼠標(biāo)在某一標(biāo)高種類格中點擊后幻燈消失,恢復(fù)前一圖面,在提示行中提示“請輸入起點”,給點后又提示:“標(biāo)高值”,輸入數(shù)值后自動按選擇的種類畫好標(biāo)高符號并寫好標(biāo)高值;然后重復(fù)提示“請輸入起點”標(biāo)注下一個,回車則回到圖1幻燈重復(fù)使用,點EXIT退出。  

2幻燈菜單的特點  

幻燈菜單可以實現(xiàn)AutoCAD的圖標(biāo)菜單的各項功能,并且有如下優(yōu)點:  

a.制作、修改效率高。制作圖標(biāo)菜單時,要實現(xiàn)的功能數(shù)與幻燈數(shù)及菜單項的數(shù)量相同。而制作一個幻燈菜單只需要作一個幻燈,幻燈數(shù)量大幅減少,修改也容易得多。  

b.使用效率高。為了提高軟件效率,盡量減少擊鍵次數(shù)是今后軟件的發(fā)展方向?;脽舨藛慰梢詫⒍喾N形式的選擇以圖形形式直觀地顯示出來,以供選擇。以標(biāo)高標(biāo)注為例,以前的方法是先問標(biāo)高符號形式,再問方向,而使用幻燈菜單只需點取一次即可。  

c.界面美觀,制作靈活多樣,使用方便?;脽舨藛卧谝环脽糁袆澐值墓δ軈^(qū)數(shù)量不限,并且可以根據(jù)需要制作成方格、橫格、豎格、扇型格、圓環(huán)格等多種形式,甚至可以達到可編程序?qū)υ捒虻暮芏喙δ堋?nbsp; 

d.適用性強,移植方便。幻燈菜單適用于R9.0版以上的各種中、西文AutoCAD版本。使用幻燈菜單時,由于它包含在用ADS或AutoLISP等語言編制的程序中,所以只要能運行程序即可調(diào)出幻燈菜單,版本升級時不必改變新的菜單文件。而圖標(biāo)菜單的菜單項必須逐條加入到新的菜單文件中。  

e.可以作成定型模塊重復(fù)使用,從而大大提高編程效率。  

3幻燈菜單的制作  

幻燈菜單的原理是:將AutoCAD繪圖區(qū)分為若干規(guī)則的圖形區(qū)域,每一區(qū)域可以對應(yīng)一組功能,在程序調(diào)用幻燈菜單時,要求用戶根據(jù)需要在某一圖形區(qū)域中選取一點,然后程序自動計算出該點所在的區(qū)域位置,從而調(diào)用所對應(yīng)的程序功能。  

點的定位是幻燈菜單制作編程的關(guān)鍵所在,以矩形格幻燈菜單為例,其步驟是:  

a.獲取下列AutoCAD系統(tǒng)變量:  

viewsize-當(dāng)前繪圖區(qū)高,用繪圖單位計算;  

viewctr-當(dāng)前繪圖區(qū)中心點坐標(biāo)值;  

vsmax、vsmin-虛擬屏幕的左下角及右上角點坐標(biāo)值,可以用來求繪圖區(qū)寬高比,從而求出繪圖區(qū)寬度。  

b.根據(jù)橫向和豎向分格數(shù),求出每格的寬和高。  

c.由點的坐標(biāo)值分別求出點所在格的橫向和豎向序號。  

d.橫向和豎向序號連接即可獲得該格的區(qū)域代碼。  

后文將給出我院開發(fā)的標(biāo)高標(biāo)注和圖例繪制兩個實例,以下程序均在AutoCADR10至13各版本下順利運行,并已非常成熟。需要指出的是,為了簡化程序,突出重點,刪去了一些諸如容錯或裝飾性的語句,但不影響程序運行。  

4實例一———標(biāo)高標(biāo)注程序  

由程序abg.lsp和幻燈文件acdl.sld文件組成,使用說明已在前面敘述,標(biāo)題7a給出abg.lsp程序清單及注解  

abg.lsp程序包括主程序abg和15個標(biāo)高標(biāo)注子函數(shù),子函數(shù)abgl至abg15類似,本文只列出abgl子函數(shù)程序。  

5實例二———圖例繪制軟件本軟件由用戶在6頁幻燈菜單中連續(xù)選取圖例,給出一個插入圖例的左上角點后,程序自動將所選擇的圖例按順序逐項向下排列連續(xù)繪出。軟件由Au toLISP程序atl.lsp和6頁幻燈以及近百個圖塊組成?;脽粑募椋幔簦欤薄幔簦欤叮螅欤洹D塊名為atlabc.dwg,atl為前綴,a代表幻燈頁序號,為1~6;b代表幻燈菜單左右代碼,左面為1,右面為2;c代表幻燈菜單中上下序號,分別為1~8。  

本軟件設(shè)計的核心思想是通過點的定位計算出的所對應(yīng)的圖例圖塊名,然后插入圖例,多重選擇由表處理語句來完成。本文中第7節(jié)的b部分給出atl.lsp中與幻燈菜單有關(guān)的程序清單及注解。后面還有幾個子函數(shù),由于篇幅有限本文不詳細列出程序,只做簡單介紹:  

lastsld子函數(shù)對幻燈名字符串進行運算,求出上一頁幻燈名;  

nextsld子函數(shù)對幻燈名字符串進行運算,求出下一頁幻燈名;  

setnil子函數(shù)對各變量(必須包括whill)賦空值,并退出程序:  

setok子函數(shù)對被選擇的圖例表進行處理,并逐項連續(xù)插入圖例。  

6小結(jié)  

a.標(biāo)高標(biāo)注程序是利用幻燈菜單調(diào)出相應(yīng)的標(biāo)高標(biāo)注子程序。  

b.圖例程序是利用幻燈菜單給圖例名稱賦值,然后運用字符串處理和表處理技術(shù)求得圖例名稱的列表,從而連續(xù)逐項插入被選中的圖例。  

c.圖例幻燈菜單分兩個大區(qū),上面是圖例區(qū),下面是幻燈菜單的操作區(qū),可見幻燈菜單能做成復(fù)雜高效的菜單。  

發(fā)布:2007-07-28 09:41    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章: