<del id="dhfrq"></del>

    1. <tr id="dhfrq"></tr>
      成人午夜激情在线观看,国产精品一线天粉嫩av,99精品国产综合久久久久五月天 ,一卡2卡三卡4卡免费网站,国产高清在线男人的天堂,五月天国产成人AV免费观看,67194熟妇在线观看线路,成人无码潮喷在线观看
      現(xiàn)在位置:范文先生網(wǎng)>理工論文>石油能源論文>給排水設(shè)計(jì)給排水CAD軟件開(kāi)發(fā)實(shí)例

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

      時(shí)間:2022-08-06 10:19:54 石油能源論文 我要投稿
      • 相關(guān)推薦

      給排水設(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ū)υ捒虻暮芏喙δ堋?br />  
        d.適用性強(qiáng),移植方便。幻燈菜單適用于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ò)或裝飾性的語(yǔ)句,但不影響程序運(yùn)行。
        
        4實(shí)例一———標(biāo)高標(biāo)注程序
        
        由程序abg.lsp和幻燈文件acdl.sld文件組成,使用說(shuō)明已在前面敘述,標(biāo)題7a給出abg.lsp程序清單及注解
        
        abg.lsp程序包括主程序abg和15個(gè)標(biāo)高標(biāo)注子函數(shù),子函數(shù)abgl至abg15類似,本文只列出abgl子函數(shù)程序。
        
        5實(shí)例二———圖例繪制軟件本軟件由用戶在6頁(yè)幻燈菜單中連續(xù)選取圖例,給出一個(gè)插入圖例的左上角點(diǎn)后,程序自動(dòng)將所選擇的圖例按順序逐項(xiàng)向下排列連續(xù)繪出。軟件由AutoLISP程序atl.lsp和6頁(yè)幻燈以及近百個(gè)圖塊組成。幻燈文件為atl1~atl6.sld。圖塊名為atlabc.dwg,atl為前綴,a代表幻燈頁(yè)序號(hào),為1~6;b代表幻燈菜單左右代碼,左面為1,右面為2;c代表幻燈菜單中上下序號(hào),分別為1~8。
        
        本軟件設(shè)計(jì)的核心思想是通過(guò)點(diǎn)的定位計(jì)算出的所對(duì)應(yīng)的圖例圖塊名,然后插入圖例,多重選擇由表處理語(yǔ)句來(lái)完成。本文中第7節(jié)的b部分給出atl.lsp中與幻燈菜單有關(guān)的程序清單及注解。后面還有幾個(gè)子函數(shù),由于篇幅有限本文不詳細(xì)列出程序,只做簡(jiǎn)單介紹:
        
        lastsld子函數(shù)對(duì)幻燈名字符串進(jìn)行運(yùn)算,求出上一頁(yè)幻燈名;
        
        nextsld子函數(shù)對(duì)幻燈名字符串進(jìn)行運(yùn)算,求出下一頁(yè)幻燈名;
        
        setnil子函數(shù)對(duì)各變量(必須包括whill)賦空值,并退出程序:
        
        setok子函數(shù)對(duì)被選擇的圖例表進(jìn)行處理,并逐項(xiàng)連續(xù)插入圖例。
        
        6小結(jié)
        
        a.標(biāo)高標(biāo)注程序是利用幻燈菜單調(diào)出相應(yīng)的標(biāo)高標(biāo)注子程序。
        
        b.圖例程序是利用幻燈菜單給圖例名稱賦值,然后運(yùn)用字符串處理和表處理技術(shù)求得圖例名稱的列表,從而連續(xù)逐項(xiàng)插入被選中的圖例。
        
        c.圖例幻燈菜單分兩個(gè)大區(qū),上面是圖例區(qū),下面是幻燈菜單的操作區(qū),可見(jiàn)幻燈菜單能做成復(fù)雜高效的菜單。
        
        7程序清單
        
        a.abg.lsp程序及注解;
        
        (defunC:BGBZ()
        
        (setqwhil1t)
        
        (whilewhil1)
        
        (
        
        
        
        command″vslide″″acd1″)
        
        (if(setqpp(getpoint″請(qǐng)點(diǎn)取標(biāo)高種類″))
        
        (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)始
        
        設(shè)whil1值為真
        
        當(dāng)whil1為真時(shí)執(zhí)行下列程序
        
        顯示幻燈在幻燈菜單中選點(diǎn)
        
        重畫恢復(fù)原畫面
        
        繪圖區(qū)高
        
        繪圖區(qū)中心點(diǎn)
        
        虛擬屏幕右上角
        
        共獲取系統(tǒng)變量
        
        求繪圖區(qū)寬
        
        有效區(qū)左下角,(有效區(qū)寬和高占繪圖寬和高的三分之二)
        
        有效區(qū)右上角
        
        每格寬和高
        
        PP點(diǎn)的X和Y坐標(biāo)
        
        左下角點(diǎn)坐標(biāo)
        
        PP點(diǎn)和PP0點(diǎn)X和Y坐標(biāo)差;
        
        X方向格序號(hào)
        
        Y方向格序號(hào)
        
        將X和Y連接
        
        多項(xiàng)選擇條件函數(shù)
        
        nn=13時(shí)運(yùn)行abe2子函數(shù)
        
        ((=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″標(biāo)高值:″))
        
        (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格規(guī)定功能,即每一格對(duì)應(yīng)一個(gè)子函數(shù)
        
        主程序BGBZ結(jié)束
        
        定義abg1子函數(shù)
        
        標(biāo)高符號(hào)起點(diǎn)
        
        不接受空值
        
        標(biāo)高值
        
        計(jì)算各點(diǎn)位置
        
        標(biāo)高為0時(shí)加“±”
        
        畫標(biāo)高符號(hào)
        
        寫標(biāo)高值comma
        
        
        
        nd
        
        while;defun-abg1a
        
        bg2~abg15子函數(shù)省略
        
        (defunC:TL()
        
        (setqatllistniltlsld″atla″tlsldn″1″whil1t)
        
        (setqtlpath″/cad/atl″)
        
        (promtp″\n給排水圖例程序
        —BERIS″)
        
        (whilewhil1
        
        (command″vslide″(strcattlpath″atl″tlsldn))
        
        (initget1)
        
        (setqpp(getpoint″\n請(qǐng)連續(xù)點(diǎn)取圖例,并點(diǎn)取〈確定〉″))
        
        (setqh(getvar″viewsize″))
        
        (setqpcen(getvar″viewctr″))
        
        圖例繪制主程序
        
        賦初始值
        
        圖例圖塊路徑
        
        提示
        
        當(dāng)whil1為真執(zhí)行下面程序調(diào)出幻燈(幻燈名由三個(gè)變量連接而成,圖2為第一頁(yè))
        
        不接受空值
        
        以下內(nèi)容同標(biāo)高標(biāo)注程序
        
        (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)在上半部分運(yùn)行dq1,否則運(yùn)行dq2while;defun圖例主程序結(jié)束定義dq1子函數(shù)
        
        點(diǎn)落在左面aorb為1
        
        點(diǎn)在右面aorb為2;if
        
        計(jì)算縱向序號(hào)計(jì)算圖例圖塊名(由4部分連接組成)
        
        dq1結(jié)束
        
        定義dq2子函數(shù)
        
        計(jì)算橫向序號(hào)
        
        運(yùn)行lastsld子函數(shù),向前翻頁(yè)
        
        運(yùn)行nextsld子函數(shù),向后翻頁(yè)
        
        運(yùn)行setnil子函數(shù),賦空退出
        
        運(yùn)行setok子函數(shù),插入圖例
        
        定義lastsld子函數(shù),略
        
        定義nextsld子函數(shù),略
        
        定義setnil子函數(shù),略
        
        定義sitok子函數(shù),略
        
        
        

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

      建筑給排水設(shè)計(jì)與環(huán)境保護(hù)探討08-19

      建筑給排水設(shè)計(jì)與環(huán)境保護(hù)探討08-19

      排水專業(yè)求職信08-25

      給排水實(shí)習(xí)報(bào)告7篇08-25

      站外排水問(wèn)題報(bào)告08-23

      排水施工合同04-06

      給排水工作總結(jié)05-28

      排水畫大班美術(shù)教案08-26

      精選給排水的實(shí)習(xí)報(bào)告三篇06-18

      精選給排水實(shí)習(xí)報(bào)告4篇03-29

      主站蜘蛛池模板: 中文字幕日韩国产精品| 中文字幕乱码亚洲无线| 在线天堂最新版资源| 日本三级香港三级三级人妇久| 亚洲熟妇色xxxxx欧美老妇| 久久国产成人高清精品亚洲| 日韩少妇人妻vs中文字幕| 香蕉乱码成人久久天堂爱| 亚洲综合国产伊人五月婷| 亚洲精品一区二区三区在| 成人网站国产在线视频内射视频| 亚洲第一二三区日韩国产| 福利视频在线一区二区| 国产午夜亚洲精品不卡网站| 国产av无码国产av毛片| 精品精品国产国产自在线| 夜夜添狠狠添高潮出水| 亚洲精品综合一区二区三区| 国产AV无码专区亚洲AV紧身裤 | 成人免费xxxxx在线观看| 精品日本乱一区二区三区| 在线观看成人永久免费网站| 国产精品乱一区二区三区| 高清中文字幕国产精品| 99精品国产在热久久婷婷| 精品人妻中文字幕在线| 国产办公室秘书无码精品99| 午夜国产理论大片高清| 欧美巨大极度另类| 老熟妇仑乱换频一区二区| 国产亚洲AV电影院之毛片| 国产精品国产三级国产专i| 中文字幕国产精品日韩| 久久精品伊人狠狠大香网| 国产精品福利中文字幕| 无码一区二区三区久久精品| 精品女同一区二区三区在线| 四虎影视一区二区精品| 国产一区二区三区精品自拍| 成人3D动漫一区二区三区| 悠悠色成人综合在线观看|