版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Word文檔鐵路橋梁BIM程序的設(shè)計(jì)與實(shí)現(xiàn)
商業(yè)化的設(shè)計(jì)平臺雖好,但自主研發(fā)的平臺有不行替代的優(yōu)點(diǎn)
商業(yè)化平臺技術(shù)成熟、模型渲染美觀,特殊是在空間幾何計(jì)算方面的優(yōu)勢特別突出,但同時也存在一些問題:(1)專業(yè)性設(shè)計(jì)功能完全需要二次開發(fā);(2)不把握核心代碼,無法修改其核心用戶界面(UI)以及固有的操作模式,為操作帶來不便;(3)純英文的開發(fā)接口程序庫,為二次開發(fā)帶來極大困難。
因此,假如僅僅是進(jìn)行三維仿真建模的話尚且可行,但假如要利用其開發(fā)長大橋梁的正向設(shè)計(jì)功能,將無法繞開上述問題,另外,商業(yè)化平臺的前期購買以及后期升級維護(hù)成本較高。
相反,假如自主開發(fā)橋梁BIM設(shè)計(jì)程序,由于涉及到空間幾何計(jì)算、坐標(biāo)系統(tǒng)、劃網(wǎng)建模、3D渲染、長大場景調(diào)度等前沿性技術(shù),在開發(fā)難度、開發(fā)成本、開發(fā)周期方面都有較大風(fēng)險(xiǎn)和阻力。但優(yōu)勢在于把握核心代碼,其設(shè)計(jì)模式及顯示界面均可依據(jù)使用者需求量身定制,并且程序升級改造敏捷、維護(hù)成本低。
本文從OpenGL圖形渲染的底層功能著手,自主研發(fā)BIM建模平臺,介紹一款兼具二維交互設(shè)計(jì)和三維顯示功能的鐵路橋梁BIM程序。并從鐵路橋梁設(shè)計(jì)的專業(yè)角度動身,在程序的開發(fā)思路、設(shè)計(jì)模式比選,以及在視圖顯示的關(guān)鍵性技術(shù)方面做出探究。
程序設(shè)計(jì)模式
三維橋梁設(shè)計(jì)程序的特點(diǎn)
(1)在橋梁設(shè)計(jì)計(jì)算方面,需要結(jié)合梁縫計(jì)算、結(jié)構(gòu)計(jì)算等自身的專業(yè)性軟件,進(jìn)行協(xié)同設(shè)計(jì)。
(2)在圖形類型方面,橋梁工程相對于路基、站場等專業(yè),以及對空間曲面建模方面有更多需求。
(3)在建模方式方面,鐵路橋涵設(shè)計(jì)除了需要建立標(biāo)準(zhǔn)圖庫來滿意標(biāo)準(zhǔn)化結(jié)構(gòu)部件建模以外,橋址范圍內(nèi)的邊坡防護(hù)、涵洞順溝等,還需要依據(jù)設(shè)計(jì)參數(shù)及三維地形,進(jìn)行自動化的自適應(yīng)性建模。
(4)特大型鐵路橋梁在國內(nèi)高速鐵路橋梁設(shè)計(jì)中特別普及,單座橋梁長度突破幾百公里以上的狀況已形成常態(tài),而橋梁孔跨布置是由精密計(jì)算而來,對BIM中任意一處孔跨的更改,都將牽動整座橋數(shù)百公里梁跨的重新設(shè)計(jì)和圖形重構(gòu)。因此,BIM設(shè)計(jì)程序不僅要求高性能的計(jì)算機(jī)硬件,對程序數(shù)據(jù)結(jié)構(gòu)的合理性及算法的高效性也都有較高要求。
二維、三維視圖并存的設(shè)計(jì)模式
目前,國內(nèi)鐵路項(xiàng)目采納的主要BIM設(shè)計(jì)平臺,如:revit、bently、達(dá)索等,都是在純?nèi)S模式下開展設(shè)計(jì),顛覆性地取締了傳統(tǒng)二維設(shè)計(jì)方法,設(shè)計(jì)成果也為純?nèi)S鐵路模型,仿真程度高;但鐵路橋涵因其自身特點(diǎn),在設(shè)計(jì)過程中,對里程、高程、凈空、梁縫等外部數(shù)據(jù),以及梁、墩臺、基礎(chǔ)的結(jié)構(gòu)尺寸等內(nèi)部數(shù)據(jù)的依靠程度很高,純?nèi)S設(shè)計(jì)模式無法直接將這些數(shù)據(jù)呈現(xiàn)在設(shè)計(jì)者眼前,設(shè)計(jì)者若想查看,必需先經(jīng)過三維成果向二維成果轉(zhuǎn)換或手動調(diào)出數(shù)據(jù)窗口才可以得到上述數(shù)據(jù)。
因此對于BIM橋梁設(shè)計(jì),不宜完全摒棄二維設(shè)計(jì)方法。BIM鐵路橋梁程序開發(fā)能夠兼?zhèn)淙S理念和傳統(tǒng)二維設(shè)計(jì)方法,同步生成二維設(shè)計(jì)成果以及進(jìn)行三維建模展現(xiàn)或成為更加合理的設(shè)計(jì)模式。
另外,從程序開發(fā)角度來講,BIM程序若能涵蓋二維設(shè)計(jì)模式,可以更便利地與傳統(tǒng)二維設(shè)計(jì)軟件進(jìn)行連接,削減BIM程序開發(fā)工作量及開發(fā)難度。
而且二維、三維結(jié)合的設(shè)計(jì)模式,也可以使設(shè)計(jì)人員在新型的BIM設(shè)計(jì)環(huán)境下,能夠利用自己熟識的傳統(tǒng)設(shè)計(jì)思路來快速適應(yīng)程序,從而提高程序應(yīng)用效率,否則純?nèi)S模式在鐵路橋梁勘察設(shè)計(jì)領(lǐng)域的推廣阻力和成本將會較大。本程序采納了二維視圖交互設(shè)計(jì),及三維視圖顯示的設(shè)計(jì)模式。
程序主界面
程序框架
MVC框架模式概述
程序以C++MFC為開發(fā)工具,以MVC框架模式開發(fā)基于OpenGL的二維、三維視圖顯示功能。模型-視圖-掌握(MVC,Model-View-Controller)框架是圖形用戶界面(GUI,GraphicUserInterface)程序的一種普遍的設(shè)計(jì)框架。采納MVC框架模式的優(yōu)勢是使得OpenGL渲染函數(shù)的調(diào)用從普遍的消息路由中完全脫離開來。
模型層
模型層是應(yīng)用程序的核心部分,全部應(yīng)用程序中的數(shù)據(jù)和定義應(yīng)用程序行為的實(shí)現(xiàn)都被包含在內(nèi)。最重要的是,任何指向視圖層和掌握層功能都沒有被模型層引用,這意味著模型層是完全單獨(dú)的。它完全無須關(guān)懷視圖層和掌握層的行為,從而它只是簡潔地對視圖層和掌握層的懇求進(jìn)行加工操作。本程序中模型層負(fù)責(zé)全部的OpenGL頂點(diǎn)數(shù)據(jù)管理、頂點(diǎn)緩沖區(qū)對象(VBO,VertexBufferObject)繪圖和圖形更新。
視圖層
視圖層負(fù)責(zé)依據(jù)窗口設(shè)備環(huán)境創(chuàng)建渲染設(shè)備環(huán)境,最終將可視化的內(nèi)容渲染到屏幕之上。視圖層不含有指向掌握層的引用(與掌握層單獨(dú))。只有當(dāng)掌握層發(fā)送更新懇求時,它才會執(zhí)行渲染操作。然而,視圖層需要有指向模型層的引用,由于它需要從模型層得到頂點(diǎn)、法向量、顏色等數(shù)據(jù),這樣才能將數(shù)據(jù)渲染到屏幕上。
掌握層
掌握層負(fù)責(zé)創(chuàng)建單獨(dú)渲染線程,并對用戶大事作出最直接的響應(yīng),它接受和處理全部的用戶在窗體或視口中的操作,如鼠標(biāo)和鍵盤輸入等。為了處理用戶大事,掌握層需要訪問詳細(xì)的模型層組件和視圖層組件。掌握層組件通知模型層處理數(shù)據(jù),同時告知視圖層更新顯示的數(shù)據(jù)。另外,在本程序中,掌握層還負(fù)責(zé)對用戶大事相關(guān)的圖元數(shù)據(jù),如點(diǎn)、線、面、文字等,向OpenGL渲染數(shù)據(jù)進(jìn)行轉(zhuǎn)換。
顯示功能關(guān)鍵技術(shù)
二維視圖開發(fā)
十字靶標(biāo)相對鼠標(biāo)的同步定位
交互式設(shè)計(jì)視圖開發(fā)中,如何將鼠標(biāo)在屏幕窗體中的像素坐標(biāo)(V)轉(zhuǎn)換為視圖中的世界坐標(biāo)(W),是開發(fā)圖形定位、圖形選擇的前提。轉(zhuǎn)換公式的關(guān)鍵為計(jì)算窗體尺寸與視口所代表的世界坐標(biāo)尺寸的比例vscale,當(dāng)渲染視口與窗體邊緣完全重合時,當(dāng)前鼠標(biāo)所在的視圖世界坐標(biāo)計(jì)算公式為:V=Wvscale,當(dāng)視口與窗體不重合時,還要計(jì)入視口相對窗體的起點(diǎn)偏移量(d),則視圖世界坐標(biāo)計(jì)算公式為:V=d+Wvscale。
基于VBO的圖形渲染
任何一個3D應(yīng)用程序開發(fā)的最大的目標(biāo)之一就是渲染速度,需要自始至終的將實(shí)際渲染圖形的數(shù)量限制在最小范圍內(nèi)。除此之外,想簡潔提高多邊形的提交速度的話,通??梢岳肙penGL供應(yīng)的優(yōu)化方法,頂點(diǎn)數(shù)組是一個比較好的方法。加上VBO的擴(kuò)展,提高了渲染效率。使用頂點(diǎn)數(shù)組可以削減函數(shù)調(diào)用的次數(shù)和共享頂點(diǎn)的冗余使用,但其缺點(diǎn)是頂點(diǎn)數(shù)組中的函數(shù)位于客戶端并且數(shù)組中的數(shù)據(jù)在它每次被引用時都需要發(fā)送到服務(wù)器端一次。而VBO在服務(wù)器端的高性能內(nèi)存中為頂點(diǎn)屬性制造了一個"緩沖區(qū)對象',也就是說,VBO能夠把數(shù)據(jù)加載到顯卡的高性能顯存中。因此當(dāng)用戶對橋梁方案編輯時,只要不轉(zhuǎn)變頂點(diǎn)數(shù)量,如修改墩高、拉伸或縮短結(jié)構(gòu)尺寸等,便可降低渲染時間。
CAD式的圖形拾取效果
OpenGL供應(yīng)了豐富的圖形交互操作功能,可利用選擇模式完成圖形的拾取操作。對于拾取后如何標(biāo)記顯示,進(jìn)而通知用戶當(dāng)前被選中圖形的拾取狀態(tài),在程序開發(fā)中嘗試了2種方法:(1)采納CAD的方式,將備選中圖形顯示成點(diǎn)狀線狀態(tài);(2)采納達(dá)索系統(tǒng)的CATIA程序的方式,將被選中圖形顯示成高亮狀態(tài)。
經(jīng)過實(shí)際開發(fā)對比,前者可以特別好的利用VBO可提取并編輯頂點(diǎn)坐標(biāo)的特點(diǎn),只需要依據(jù)備選圖形的VBO名稱提取出相關(guān)頂點(diǎn)數(shù)組,之后無需跳出VBO模式渲染,直接以視口背景顏色按點(diǎn)狀線樣式重繪一次,即可達(dá)到與CAD完全一樣的選中顯示狀態(tài)。而后者由于需要修改材質(zhì)和光照狀態(tài),必需脫離VBO模式渲染,而且不易實(shí)現(xiàn)僅針對備選圖形的OpenGL狀態(tài)修改,所以程序選擇了CAD式的點(diǎn)狀線圖形拾取處理方法。
三維場景空間索引
三維場景包括三維地形、橋梁結(jié)構(gòu)、橋梁附屬設(shè)施等模型,鐵路三維地形為大型條帶狀模型,要求有比較高的交互性幀率來保證交互掃瞄操作時的渲染流暢性。因此,在渲染每一幀屏幕前,都需要對當(dāng)前視景體所包含模型數(shù)據(jù)進(jìn)行篩選,而且還要對無限視野下的模型數(shù)據(jù)進(jìn)行分級簡化,所以,只有采納合適的空間索引數(shù)據(jù)結(jié)構(gòu),才能提高渲染效率。
本程序采納的是比較適合于呈片狀均布數(shù)據(jù)的四叉樹空間索引。四叉樹索引的基本思想是對空間數(shù)據(jù)遞歸劃分為樹結(jié)構(gòu),詳細(xì)流程是,將當(dāng)前空間數(shù)據(jù)等分成4個子空間,之后每個子空間遞歸劃分下去,直到樹的層次達(dá)到肯定深度或者滿意某種要求后停止分割。
4叉樹索引比較簡潔,但是存在以下不足:(1)當(dāng)空間數(shù)據(jù)對象分布不勻稱時,會生成嚴(yán)峻不平衡樹,導(dǎo)致索引深度增加;(2)同一數(shù)據(jù)有可能被重復(fù)存儲到樹中多個不同節(jié)點(diǎn)之中,鋪張存儲空間。
因此,對四叉樹模型做出以下改進(jìn):(1)規(guī)定空間數(shù)據(jù)僅保存在完全包含它的最小分割節(jié)點(diǎn)中,并且每個數(shù)據(jù)只能在樹中存儲一次,避開存儲空間的鋪張;(2)在創(chuàng)建樹時,首先生成滿四叉樹,并限制四叉樹深度,從而避開安排數(shù)據(jù)時臨時插入節(jié)點(diǎn)而導(dǎo)致的內(nèi)存重新安排損耗;(3)一次性將樹的空節(jié)點(diǎn)所占內(nèi)存釋放掉。經(jīng)過以上改進(jìn)便可生成較為平衡的四叉樹,改進(jìn)后的四叉樹模型。
改進(jìn)后的四叉樹模型示意圖
橋梁設(shè)計(jì)系統(tǒng)
通用圖管理
鐵路橋梁工點(diǎn)一般是基于通用圖開展設(shè)計(jì)的,如何建立界面操作簡潔、錄入及讀寫便利的圖庫管理系統(tǒng),是鐵路橋梁設(shè)計(jì)程序開發(fā)的重要環(huán)節(jié)。本程序的圖庫系統(tǒng)以C++語言對Excel文件的讀取操作,以及對ACCESS文件的寫入操作為主要技術(shù)手段,開發(fā)單獨(dú)的顯示操作窗口。
通用圖庫管理窗口
供應(yīng)使用者在開展BIM橋梁設(shè)計(jì)前,預(yù)先對鐵路項(xiàng)目所用的結(jié)構(gòu)通用圖及其對應(yīng)工程數(shù)量進(jìn)行錄入管理。主要功能為:(1)梁、墩、臺、基礎(chǔ)的Excel通用圖數(shù)據(jù)文件錄入;(2)各通用圖的匹配使用原則錄入;(3)圖庫界面中的排序、篩選顯示;(4)橋梁工點(diǎn)設(shè)計(jì)時,依據(jù)跨度、墩高等信息的圖庫自動匹配。
上下序資料管理
上下序資料獲得類型,根據(jù)"獵取供應(yīng)'方式分為3種。
(1)在程序內(nèi)部利用開發(fā)專業(yè)之間的接口函數(shù),自動傳遞上下序數(shù)據(jù),如:鉆孔地層、地質(zhì)縱斷、路基斷面、線位資料和地模坐標(biāo)。
(2)利用圖形掃瞄窗口,手動調(diào)用掃瞄,如:路基斷面圖、地質(zhì)柱狀圖。
(3)利用資料互提菜單,在程序中手動點(diǎn)擊并以文件形式獵取,如:線路資料表、隧道表、橋涵表和墩臺里程表等。
上序資料管理窗口
橋梁設(shè)計(jì)功能
(1)利用GridCtrl控件制作基于橋梁孔跨布置的表格式設(shè)計(jì)窗口,表格中以橋梁單位孔跨為單位按行排列。每行顯示其做代表孔跨的小里程側(cè)墩臺里程、跨度、梁縫、墩高、相關(guān)高程以及本跨度內(nèi)所采納的結(jié)構(gòu)通用圖信息,從而通過編輯表格的方式完成全橋孔跨設(shè)計(jì);
孔跨設(shè)計(jì)窗口
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 集資房認(rèn)購權(quán)轉(zhuǎn)讓合同范本
- 企業(yè)經(jīng)營承包合同協(xié)議范本
- 果園承包合同模板大全
- 農(nóng)村土地買賣合同范本
- 學(xué)校租用轎車合同協(xié)議
- 購房擔(dān)保借款協(xié)議
- 培訓(xùn)機(jī)構(gòu)合作協(xié)議:合同樣本
- 農(nóng)業(yè)住宅轉(zhuǎn)讓協(xié)議書參考
- 工傷賠償協(xié)議書模板
- 2024合作共贏協(xié)議格式
- 2021-2022學(xué)年部編版語文八年級下冊第二單元主題綜合實(shí)踐作業(yè)——生活中的科學(xué)
- 管理學(xué)決策計(jì)算題
- 部編版四年級語文上冊專項(xiàng)復(fù)習(xí)課外閱讀專項(xiàng)
- 橫道圖施工進(jìn)度計(jì)劃
- 110kV大司線更換43#44#導(dǎo)地線及橫擔(dān)施工方案
- 新國標(biāo)電動汽車充電CAN報(bào)文協(xié)議解析
- abaqus-鋁合金A357切削加工有限元模擬
- 七年級一元一次方程經(jīng)典題型計(jì)算題100道
- 四川省教師考核工作登記表(空白)
- 魯教版六年級數(shù)學(xué)上冊最新期中試題及答案
- 中醫(yī)院重點(diǎn)專科建設(shè)整改措施
評論
0/150
提交評論