版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
給排水設(shè)計(全文)PGE\*MERGEFORMTPGE\*MERGEFORMT1給排水設(shè)計(全文)全文共1頁,當(dāng)前為第1頁。給排水設(shè)計給排水設(shè)計(全文)全文共1頁,當(dāng)前為第1頁。1用戶幻燈菜單簡介用戶幻燈菜單(下文簡稱幻燈菜單)是在utoCD平臺上開發(fā)的一種高效有用的用戶圖形界面,由幻燈和相應(yīng)的utoLISP有用程序組成。其功能及用法類似于utoCD的圖標(biāo)菜單。調(diào)用時幻燈菜單屏幕上出現(xiàn)一幅幻燈,幻燈顯示不同圖形界面,由幻燈和相應(yīng)的utoCD有用程序組成。其功能及用法的功能區(qū)域,每個區(qū)域?qū)?yīng)相應(yīng)的功能,用鼠標(biāo)點(diǎn)取即可調(diào)用該功能。
幻燈菜單可以用于開發(fā)本部門使用的工具軟件或是商業(yè)化的CD軟件,可以大大提高開發(fā)效率以及設(shè)計繪圖速度。
下面以我院開發(fā)的標(biāo)高標(biāo)注程序?yàn)槔榻B幻燈菜單的功能:在commnd:狀態(tài)下從下拉菜單中點(diǎn)取“標(biāo)高標(biāo)注1”后屏幕上出現(xiàn)如圖1所示幻燈,用鼠標(biāo)在某一標(biāo)高種類格中點(diǎn)擊后幻燈消逝,恢復(fù)前一圖面,在提示行中提示“請輸入起點(diǎn)”,給點(diǎn)后又提示:“標(biāo)高值”,輸入數(shù)值后自動按選擇的種類畫好標(biāo)高符號并寫好標(biāo)高值;然后重復(fù)提示“請輸入起點(diǎn)”標(biāo)注下一個,回車則回到圖1幻燈重復(fù)使用,點(diǎn)EXIT退出。
2幻燈菜單的特點(diǎn)
幻燈菜單可以實(shí)現(xiàn)utoCD的圖標(biāo)菜單的各項(xiàng)功能,并且有如下優(yōu)點(diǎn):
.制作、修改效率高。制作圖標(biāo)菜單時,要實(shí)現(xiàn)的功能數(shù)與幻燈數(shù)及菜單項(xiàng)的數(shù)量相同。而制作一個幻燈菜單只需要作一個幻燈,幻燈數(shù)量大幅減少,修改也容易得多。
給排水設(shè)計(全文)全文共2頁,當(dāng)前為第2頁。b.使用效率高。為了提高軟件效率,盡量減少擊鍵次數(shù)是今后軟件的進(jìn)展方向?;脽舨藛慰梢詫⒍喾N形式的選擇以圖形形式直觀地顯示出來,以供選擇。以標(biāo)高標(biāo)注為例,以前的方法是先問標(biāo)高符號形式,再問方向,而使用幻燈菜單只需點(diǎn)取一次即可。
c.界面美觀,制作靈活多樣,使用方便。幻燈菜單在一幅幻燈中劃分的功能區(qū)數(shù)量不限,并且可以根據(jù)需要制作成方格、橫格、豎格、扇型格、圓環(huán)格等多種形式,甚至可以達(dá)到可編程序?qū)υ捒虻暮芏喙δ堋?/p>
d.適用性強(qiáng),移植方便?;脽舨藛芜m用于R9.0版以上的各種中、西文utoCD版本。使用幻燈菜單時,由于它包含在用DS或utoLISP等語言編制的程序中,所以只要能運(yùn)行程序即可調(diào)出幻燈菜單,版本升級時不必改變新的菜單文件。而圖標(biāo)菜單的菜單項(xiàng)必須逐條加入到新的菜單文件中。
e.可以作成定型模塊重復(fù)使用,從而大大提高編程效率。
3幻燈菜單的制作
幻燈菜單的原理是:將utoCD繪圖區(qū)分為若干規(guī)則的圖形區(qū)域,每一區(qū)域可以對應(yīng)一組功能,在程序調(diào)用幻燈菜單時,要求用戶根據(jù)需要在某一圖形區(qū)域中選取一點(diǎn),然后程序自動計算出該點(diǎn)所在的區(qū)域位置,從而調(diào)用所對應(yīng)的程序功能。
點(diǎn)的定位是幻燈菜單制作編程的關(guān)鍵所在,以矩形格幻燈菜單為例,其步驟是:
.獵取下列utoCD系統(tǒng)變量:
給排水設(shè)計(全文)全文共3頁,當(dāng)前為第3頁。viewsize-當(dāng)前繪圖區(qū)高,用繪圖單位計算;
viewctr-當(dāng)前繪圖區(qū)中心點(diǎn)坐標(biāo)值;
vsmx、vsmin-虛擬屏幕的左下角及右上角點(diǎn)坐標(biāo)值,可以用來求繪圖區(qū)寬高比,從而求出繪圖區(qū)寬度。
b.根據(jù)橫向和豎向分格數(shù),求出每格的寬和高。
c.由點(diǎn)的坐標(biāo)值分別求出點(diǎn)所在格的橫向和豎向序號。
d.橫向和豎向序號連接即可獲得該格的區(qū)域代碼。
后文將給出我院開發(fā)的標(biāo)高標(biāo)注和圖例繪制兩個實(shí)例,以下程序均在utoCDR10至13各版本下順利運(yùn)行,并已非常成熟。需要指出的是,為了簡化程序,突出重點(diǎn),刪去了一些諸如容錯或裝飾性的語句,但不影響程序運(yùn)行。
4實(shí)例一———標(biāo)高標(biāo)注程序
由程序bg.lsp和幻燈文件cdl.sld文件組成,使用說明已在前面敘述,標(biāo)題7給出bg.lsp程序清單及注解
bg.lsp程序包括主程序bg和15個標(biāo)高標(biāo)注子函數(shù),子函數(shù)bgl至bg15類似,本文只列出bgl子函數(shù)程序。
5實(shí)例二———圖例繪制軟件本軟件由用戶在6頁幻燈菜單中連續(xù)選取圖例,給出一個插入圖例的左上角點(diǎn)后,程序自動將所選擇的圖例按順序逐項(xiàng)向下排列連續(xù)繪出。軟件由utoLISP程序tl.lsp和6頁幻燈以及近百個圖塊組成?;脽粑募閠l1~tl6.sld。圖塊名為tlbc.dwg,tl為前綴,代表幻燈頁序號,為1~6;b代表幻燈菜單左右代碼,左面為1,右面為2;c代表幻燈菜給排水設(shè)計(全文)全文共4頁,當(dāng)前為第4頁。單中上下序號,分別為1~8。
本軟件設(shè)計的核心思想是通過點(diǎn)的定位計算出的所對應(yīng)的圖例圖塊名,然后插入圖例,多重選擇由表處理語句來完成。本文中第7節(jié)的b部分給出tl.lsp中與幻燈菜單有關(guān)的程序清單及注解。后面還有幾個子函數(shù),由于篇幅有限本文不詳細(xì)列出程序,只做簡單介紹:
lstsld子函數(shù)對幻燈名字符串進(jìn)行運(yùn)算,求出上一頁幻燈名;
nextsld子函數(shù)對幻燈名字符串進(jìn)行運(yùn)算,求出下一頁幻燈名;
setnil子函數(shù)對各變量(必須包括whill)賦空值,并退出程序:
setok子函數(shù)對被選擇的圖例表進(jìn)行處理,并逐項(xiàng)連續(xù)插入圖例。
6小結(jié)
.標(biāo)高標(biāo)注程序是利用幻燈菜單調(diào)出相應(yīng)的標(biāo)高標(biāo)注子程序。
b.圖例程序是利用幻燈菜單給圖例名稱賦值,然后運(yùn)用字符串處理和表處理技術(shù)求得圖例名稱的列表,從而連續(xù)逐項(xiàng)插入被選中的圖例。
c.圖例幻燈菜單分兩個大區(qū),上面是圖例區(qū),下面是幻燈菜單的操作區(qū),可見幻燈菜單能做成復(fù)雜高效的菜單。
7程序清單
.bg.lsp程序及注解;
給排水設(shè)計(全文)全文共5頁,當(dāng)前為第5頁。(defunC:BGBZ()
(setqwhil1t)
(whilewhil1)
(commnd″vslide″″cd1″)
(if(setqpp(getpoint″請點(diǎn)取標(biāo)高種類″))
(progn
(redrw)
(setqh(getvr″viewsize″)
pcen(getvr″viewsize″)
pmx(getvr″vsmx″)
pmim(getvr″vsmin″)虛擬屏幕左下角)
(setqw(*(/(-(crpmx)(crpmin))
(-(cdrpmx)(cdrpmin)))h))
(setqpp0(list(-(crpcen)(/w3))
(-(cdrpcen(
/h3))))
(setqpp1(list(+(crpcen)(/w3))
(+(cdrpcen)(/h3))))
(setqdx(/w6)dy(/h6))
(setqlx(crpp)ly(cdrpp))
(setqplx(crpp0)ply(cdrpp0))
(setplx(-lxplx)ly(-lyply))
給排水設(shè)計(全文)全文共6頁,當(dāng)前為第6頁。(setpx(fix(1+(/(-pxpx0)dx))))
(setqy(fix(1+(/(-pypy0)dy))))
(setqnn(strct(itox)(itoy)))
(cond((=nn14)(bg1))
((=nn13)(bg2))
((=nn12)(bg3))
((=nn11)(bg4))
主程序BGBZ開始
設(shè)whil1值為真
當(dāng)whil1為真時執(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)
給排水設(shè)計(全文)全文共7頁,當(dāng)前為第7頁。PP點(diǎn)和PP0點(diǎn)X和Y坐標(biāo)差;
X方向格序號
Y方向格序號
將X和Y連接
多項(xiàng)選擇條件函數(shù)
nn=13時運(yùn)行be2子函數(shù)
((=nn24)(bg5))
((=nn23)(bg6))
((=nn22)(bg7))
((=nn21)(bg8))
((=nn34)(bg9))
((=nn33)(bg10))
((=nn32)(bg11))
((=nn31)(bg12))
((=nn44)(bg13))
((=nn43)(bg14))
((=nn42)(bg15))
((=nn41)(setqwhil1nil))
);cond)
)));progn;if;while;defun
(defunbg1()
(while(setqp1(getpoint″輸入起點(diǎn)″))
給排水設(shè)計(全文)全文共8頁,當(dāng)前為第8頁。(initget1)
(setqs1(getrel″標(biāo)高值:″))
(setqp2(polrp108))
(setqp3(polrp2(/pi4)3.2))
(setqp4(list(+(crp2)0)(+(cdrp2)2.9)))
(if(=s10)(setps2″%%p0.00″)(setqs2(rtoss122)))
(commnd″line″p1″@14<0″″″″line″p3p2
″@3.2<135″″@12.8<0″″″
″text″p42.80s2)));……
b.tl.lsp程序及注解
為11-44格規(guī)定功能,即每一格對應(yīng)一個子函數(shù)
主程序BGBZ結(jié)束
定義bg1子函數(shù)
標(biāo)高符號起點(diǎn)
不接受空值
標(biāo)高值
計算各點(diǎn)位置
標(biāo)高為0時加“±”
畫標(biāo)高符號
寫標(biāo)高值commnd
while;defun-bg1
bg2~bg15子函數(shù)省略
給排水設(shè)計(全文)全文共9頁,當(dāng)前為第9頁。(defunC:TL()
(setqtllistniltlsld″tl″tlsldn″1″whil1t)
(setqtlpth″/cd/tl″)
(promtp″\n給排水圖例程序
—BERIS″)
(whilewhil1
(commnd″vslide″(strcttlpth″tl″tlsldn))
(initget1)
(setqpp(getpoint″\n請連續(xù)點(diǎn)取圖例,并點(diǎn)取〈確定〉″))
(setqh(getvr″viewsize″))
(setqpcen(getvr″viewctr″))
圖例繪制主程序
賦初始值
圖例圖塊路徑
提示
當(dāng)whil1為真執(zhí)行下面程序調(diào)出幻燈(幻燈名由三個變量連接而成,圖2為第一頁)
不接受空值
以下內(nèi)容同標(biāo)高標(biāo)注程序
(setqpmx(getvr″vsmx″))
(setqpmin(getvr″vsmin″))
給排水設(shè)計(全文)全文共10頁,當(dāng)前為第10頁。(setqw(*(/(-(crpmx)(crpmin))
(-cdrpmx)(cdrpmin)))h))
(setqpp0(list(-(crpcen)(*w0.44))
(-(cdrpcen)(*h0.26))))
(setqpp1(list(+(crpcen)(*w0.44))
(+(cdrpcen)(*h0.44))))
(setqdx(/(*w0.88)4)dy(/(*h0.7)8))
(setqpx(crpp)py(cdrpp))
(setqpx0(crpp0)py0(cdrpp0))
(if(<pypy0)(dq2)(dq1))))
(defundq1()(if(<px(crpcen))
(setqorb″1″)
(setqorb″2″))
(setqxh(fix(1+(/(-pypy0)dy))))
(setqblknme
(strct″tl″tlsldnorb(itoxh))))
(defundq2()
(setqxh1(fix(1+(/(-pxpx0)dx))))
(cond((=xh11)(lstsld))
((=xh12)(nexts
ld))
((=xh13)(setnil))
給排水設(shè)計(全文)全文共11頁,當(dāng)前為第11頁。((=xh14)(setok))))
(de
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年智能防盜門安裝與系統(tǒng)集成服務(wù)協(xié)議3篇
- 2024技術(shù)支持協(xié)議書范本
- 2024版聘用合同勞動合同
- 2025年度苯板銷售與產(chǎn)業(yè)鏈整合合同2篇
- 二零二五年度環(huán)保型廣告車租賃服務(wù)協(xié)議6篇
- 2024延期支付科研經(jīng)費(fèi)合同協(xié)議書3篇
- 2024昆明市二手房買賣合同及其空氣質(zhì)量保證協(xié)議
- 二零二五年金融衍生品交易合同公證協(xié)議3篇
- 二零二五年度賓館客房租賃合同解除協(xié)議2篇
- 武漢信息傳播職業(yè)技術(shù)學(xué)院《空間數(shù)據(jù)庫》2023-2024學(xué)年第一學(xué)期期末試卷
- 常用靜脈藥物溶媒的選擇
- 當(dāng)代西方文學(xué)理論知到智慧樹章節(jié)測試課后答案2024年秋武漢科技大學(xué)
- 2024年預(yù)制混凝土制品購銷協(xié)議3篇
- 2024-2030年中國高端私人會所市場競爭格局及投資經(jīng)營管理分析報告
- GA/T 1003-2024銀行自助服務(wù)亭技術(shù)規(guī)范
- 《消防設(shè)備操作使用》培訓(xùn)
- 新交際英語(2024)一年級上冊Unit 1~6全冊教案
- 2024年度跨境電商平臺運(yùn)營與孵化合同
- 2024年電動汽車充電消費(fèi)者研究報告-2024-11-新能源
- 湖北省黃岡高級中學(xué)2025屆物理高一第一學(xué)期期末考試試題含解析
- 上海市徐匯中學(xué)2025屆物理高一第一學(xué)期期末學(xué)業(yè)水平測試試題含解析
評論
0/150
提交評論