激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

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

時(shí)間:2024-08-28 08:30:09 理工畢業(yè)論文 我要投稿
  • 相關(guān)推薦

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

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

1用戶(hù)幻燈菜單簡(jiǎn)介用戶(hù)幻燈菜單(下文簡(jiǎn)稱(chēng)幻燈菜單)是在AutoCAD平臺上開(kāi)發(fā)的一種高效實(shí)用的用戶(hù)圖形界面,由幻燈和相應的AutoLISP實(shí)用程序組成。其功能及用法類(lèi)似于AutoCAD的圖標菜單。調用時(shí)幻燈菜單屏幕上出現一幅幻燈,幻燈顯示不同圖形界面,由幻燈和相應的AutoCAD實(shí)用程序組成。其功能及用法的功能區域,每個(gè)區域對應相應的功能,用鼠標點(diǎn)取即可調用該功能。

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

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

2幻燈菜單的特點(diǎn)

幻燈菜單可以實(shí)現AutoCAD的圖標菜單的各項功能,并且有如下優(yōu)點(diǎn):

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

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

c.界面美觀(guān),制作靈活多樣,使用方便;脽舨藛卧谝环脽糁袆澐值墓δ軈^數量不限,并且可以根據需要制作成方格、橫格、豎格、扇型格、圓環(huán)格等多種形式,甚至可以達到可編程序對話(huà)框的很多功能。

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

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

3幻燈菜單的制作

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

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

a.獲取下列AutoCAD系統變量:

viewsize-當前繪圖區高,用繪圖單位計算;

viewctr-當前繪圖區中心點(diǎn)坐標值;

vsmax、vsmin-虛擬屏幕的左下角及右上角點(diǎn)坐標值,可以用來(lái)求繪圖區寬高比,從而求出繪圖區寬度。

b.根據橫向和豎向分格數,求出每格的寬和高。

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

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

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

4實(shí)例一———標高標注程序

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

abg.lsp程序包括主程序abg和15個(gè)標高標注子函數,子函數abgl至abg15類(lèi)似,本文只列出abgl子函數程序。

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

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

lastsld子函數對幻燈名字符串進(jìn)行運算,求出上一頁(yè)幻燈名;

nextsld子函數對幻燈名字符串進(jìn)行運算,求出下一頁(yè)幻燈名;

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

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

6小結

a.標高標注程序是利用幻燈菜單調出相應的標高標注子程序。

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

c.圖例幻燈菜單分兩個(gè)大區,上面是圖例區,下面是幻燈菜單的操作區,可見(jiàn)幻燈菜單能做成復雜高效的菜單。

7程序清單

a.abg.lsp程序及注解;

(defunC:BGBZ()

(setqwhil1t)

(whilewhil1)

(command″vslide″″acd1″)

(if(setqpp(getpoint″請點(diǎn)取標高種類(lèi)″))

(progn

(redraw)

(setqh(getvar″viewsize″)

pcen(getvar″viewsize″)

pmax(getvar″vsmax″)

pmim(getvar″vsmin″)虛擬屏幕左下角)

(setqw(*(/(-(carpmax)(carpmin))

(-(cadrpmax)(cadrpmin)))h))

(setqpp0(list(-(carpcen)(/w3))

(-(cadrpcen(

/h3))))

(setqpp1(list( (carpcen)(/w3))

( (cadrpcen)(/h3))))

(setqdx(/w6)dy(/h6))

(setqlx(carpp)ly(cadrpp))

(setqplx(carpp0)ply(cadrpp0))

(setplx(-lxplx)ly(-lyply))

(setpx(fix(1 (/(-pxpx0)dx))))

(setqy(fix(1 (/(-pypy0)dy))))

(setqnn(strcat(itoax)(itoay)))

(cond((=nn14)(abg1))

((=nn13)(abg2))

((=nn12)(abg3))

((=nn11)(abg4))

主程序BGBZ開(kāi)始

設whil1值為真

當whil1為真時(shí)執行下列程序

顯示幻燈在幻燈菜單中選點(diǎn)

重畫(huà)恢復原畫(huà)面

繪圖區高

繪圖區中心點(diǎn)

虛擬屏幕右上角

共獲取系統變量

求繪圖區寬

有效區左下角,(有效區寬和高占繪圖寬和高的三分之二)

有效區右上角

每格寬和高

PP點(diǎn)的X和Y坐標

左下角點(diǎn)坐標

PP點(diǎn)和PP0點(diǎn)X和Y坐標差;

X方向格序號

Y方向格序號

將X和Y連接

多項選擇條件函數

nn=13時(shí)運行abe2子函數

((=nn24)(abg5))

((=nn23)(abg6))

((=nn22)(abg7))

((=nn21)(abg8))

((=nn34)(abg9))

((=nn33)(abg10))

((=nn32)(abg11))

((=nn31)(abg12))

((=nn44)(abg13))

((=nn43)(abg14))

((=nn42)(abg15))

((=nn41)(setqwhil1nil))

);cond)

)));progn;if;while;defun

(defunabg1()

(while(setqp1(getpoint″輸入起點(diǎn)″))

(initget1)

(setqs1(getreal″標高值:″))

(setqp2(polarp108))

(setqp3(polarp2(/pi4)3.2))

(setqp4(list( (carp2)0)( (cadrp2)2.9)))

(if(=s10)(setps2″%%p0.00″)(setqs2(rtoss122)))

(command″line″p1″@14<0″″″″line″p3p2

″@3.2<135″″@12.8<0″″″

″text″p42.80s2)));……

b.atl.lsp程序及注解

為11-44格規定功能,即每一格對應一個(gè)子函數

主程序BGBZ結束

定義abg1子函數

標高符號起點(diǎn)

不接受空值

標高值

計算各點(diǎn)位置

標高為0時(shí)加“±”

畫(huà)標高符號

寫(xiě)標高值command

while;defun-abg1a

bg2~abg15子函數省略

(defunC:TL()

(setqatllistniltlsld″atla″tlsldn″1″whil1t)

(setqtlpath″/cad/atl″)

(promtp″\n給排水圖例程序
—BERIS″)

(whilewhil1

(command″vslide″(strcattlpath″atl″tlsldn))

(initget1)

(setqpp(getpoint″\n請連續點(diǎn)取圖例,并點(diǎn)取〈確定〉″))

(setqh(getvar″viewsize″))

(setqpcen(getvar″viewctr″))

圖例繪制主程序

賦初始值

圖例圖塊路徑

提示

當whil1為真執行下面程序調出幻燈(幻燈名由三個(gè)變量連接而成,圖2為第一頁(yè))

不接受空值

以下內容同標高標注程序

(setqpmax(getvar″vsmax″))

(setqpmin(getvar″vsmin″))

(setqw(*(/(-(carpmax)(carpmin))

(-cadrpmax)(cadrpmin)))h))

(setqpp0(list(-(carpcen)(*w0.44))

(-(cadrpcen)(*h0.26))))

(setqpp1(list( (carpcen)(*w0.44))

( (cadrpcen)(*h0.44))))

(setqdx(/(*w0.88)4)dy(/(*h0.7)8))

(setqpx(carpp)py(cadrpp))

(setqpx0(carpp0)py0(cadrpp0))

(if(<pypy0)(dq2)(dq1))))

(defundq1()(if(<px(carpcen))

(setqaorb″1″)

(setqaorb″2″))

(setqxh(fix(1 (/(-pypy0)dy))))

(setqblkname

(strcat″atl″tlsldnaorb(itoaxh))))

(defundq2()

(setqxh1(fix(1 (/(-pxpx0)dx))))

(cond((=xh11)(lastsld))

((=xh12)(nexts


ld))

((=xh13)(setnil))

((=xh14)(setok))))

(defunlastsld())

(defunnextsld())

(defunsetnil())

(defunsetok())

如點(diǎn)在上半部分運行dq1,否則運行dq2while;defun圖例主程序結束定義dq1子函數

點(diǎn)落在左面aorb為1

點(diǎn)在右面aorb為2;if

計算縱向序號計算圖例圖塊名(由4部分連接組成)

dq1結束

定義dq2子函數

計算橫向序號

運行lastsld子函數,向前翻頁(yè)

運行nextsld子函數,向后翻頁(yè)

運行setnil子函數,賦空退出

運行setok子函數,插入圖例

定義lastsld子函數,略

定義nextsld子函數,略

定義setnil子函數,略

定義sitok子函數,略 論文出處(作者):
論“城市優(yōu)化供配水系統”研究與開(kāi)發(fā)—建設節水型城市的
給排水專(zhuān)業(yè)CAD軟件開(kāi)發(fā)方法探討

【給排水設計給排水CAD軟件開(kāi)發(fā)實(shí)例】相關(guān)文章:

給排水專(zhuān)業(yè)CAD軟件開(kāi)發(fā)方法探討03-18

擴展實(shí)體數據在給排水工程CAD中的應用03-18

淺談住宅建筑排水設計03-27

住宅給排水設計新思路03-24

建筑給排水設計流程淺析03-16

小議住宅給排水設計的具體細節03-07

提高建筑給排水設計節能優(yōu)化03-14

建筑給排水畢業(yè)設計開(kāi)題報告01-29

建筑給排水及消防系統設計要點(diǎn)論文11-14

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频