99精品久久这里只有精品,三上悠亚免费一区二区在线,91精品福利一区二区,爱a久久片,无国产精品白浆免费视,中文字幕欧美一区,爽妇网国产精品,国产一级做a爱免费观看,午夜一级在线,国产精品偷伦视频免费手机播放

    <del id="eyo20"><dfn id="eyo20"></dfn></del>
  • <small id="eyo20"><abbr id="eyo20"></abbr></small>
      <strike id="eyo20"><samp id="eyo20"></samp></strike>
    • 首頁 > 文章中心 > 正文

      給排水設計

      前言:本站為你精心整理了給排水設計范文,希望能為你的創(chuàng)作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。

      給排水設計

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

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

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

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

      2幻燈菜單的特點

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

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

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

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

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

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

      3幻燈菜單的制作

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

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

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

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

      viewctr-當前繪圖區(qū)中心點坐標值;

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

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

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

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

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

      4實例一———標高標注程序

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

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

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

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

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

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

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

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

      6小結

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

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

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

      7程序清單

      a.abg.lsp程序及注解;

      (defunC:BGBZ()

      (setqwhil1t)

      (whilewhil1)

      (command″vslide″″acd1″)

      (if(setqpp(getpoint″請點取標高種類″))

      (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開始

      設whil1值為真

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

      顯示幻燈在幻燈菜單中選點

      重畫恢復原畫面

      繪圖區(qū)高

      繪圖區(qū)中心點

      虛擬屏幕右上角

      共獲取系統(tǒng)變量

      求繪圖區(qū)寬

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

      有效區(qū)右上角

      每格寬和高

      PP點的X和Y坐標

      左下角點坐標

      PP點和PP0點X和Y坐標差;

      X方向格序號

      Y方向格序號

      將X和Y連接

      多項選擇條件函數(shù)

      nn=13時運行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″輸入起點″))

      (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格規(guī)定功能,即每一格對應一個子函數(shù)

      主程序BGBZ結束

      定義abg1子函數(shù)

      標高符號起點

      不接受空值

      標高值

      計算各點位置

      標高為0時加“±”

      畫標高符號

      寫標高值command

      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請連續(xù)點取圖例,并點取〈確定〉″))

      (setqh(getvar″viewsize″))

      (setqpcen(getvar″viewctr″))

      圖例繪制主程序

      賦初始值

      圖例圖塊路徑

      提示

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

      不接受空值

      以下內容同標高標注程序

      (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())

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

      點落在左面aorb為1

      點在右面aorb為2;if

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

      dq1結束

      定義dq2子函數(shù)

      計算橫向序號

      運行l(wèi)astsld子函數(shù),向前翻頁

      運行nextsld子函數(shù),向后翻頁

      運行setnil子函數(shù),賦空退出

      運行setok子函數(shù),插入圖例

      定義lastsld子函數(shù),略

      定義nextsld子函數(shù),略

      定義setnil子函數(shù),略

      定義sitok子函數(shù),略

      文檔上傳者

      相關期刊

      給水排水

      北大期刊 審核時間1-3個月

      中國建設科技集團股份有限公司

      西南給排水

      省級期刊 審核時間1個月內

      中房集團

      給水排水動態(tài)

      部級期刊 審核時間1個月內

      中華人民共和國建設部

      丝袜美腿诱惑一二三区| 精品亚洲成a人在线观看青青| 免费一区二区三区久久| 午夜无码熟熟妇丰满人妻| 日本三区在线观看视频| 豆国产96在线 | 亚洲| 麻豆一区二区99久久久久| 亚洲无码a∨在线视频| 国产丝袜在线福利观看| 中文字日产幕码三区的做法步| 国产丝袜美女一区二区三区| 午夜不卡av免费| 国产主播在线 | 中文| 中文少妇一区二区三区| 国产亚洲91精品色在线| 丝袜美腿一区二区三区| 精品国精品无码自拍自在线| 国产xxxxx在线观看免费| 亚洲国产成人精品一区刚刚| 女人av天堂国产在线| 最近中文字幕免费完整版| 波多野结衣免费一区视频| 国产成人久久精品77777综合| 国产久久久自拍视频在线观看 | 日韩av一区二区三区激情在线| 国产免费a∨片在线软件| 在教室伦流澡到高潮h麻豆| 国产在线视频h| 午夜桃色视频在线观看| 久久久久久久亚洲av无码| 日本熟妇人妻xxxxx视频| 中文AV怡红院| 久久久噜噜噜噜久久熟女m| 影音先锋久久久久av综合网成人| 一区二区三区在线 | 欧| 日本污视频| 亚洲精品一区二区三区日韩| 亚洲视频在线一区二区| 国产成人无码a区在线观看视频| 亚洲AV永久青草无码性色av| 亚洲一区久久久狠婷婷|