吳開興 李輝
摘要:針對二維計算機輔助設計(cAD)及三維建筑信息模型(BIM)工程圖紙檔案缺乏便捷高效的管理和使用手段、對工程圖紙檔案進行增刪改等操作的處理速度較慢、二三維工程圖紙檔案信息攜帶量較低、二三維工程圖紙檔案之間無法產生有效聯(lián)系等問題,本文結合改進的插入排序算法、可縮放矢量圖形(sVG)、網絡圖形庫(WebGL)等,對工程圖紙檔案數字化管理系統(tǒng)進行了研究及實現,解決了上述問題的同時也為其他同類系統(tǒng)的開發(fā)提供了借鑒。
關鍵詞:二三維工程圖紙檔案;插入排序;可縮放矢量圖形;網絡圖形庫
中圖分類號:TP315 文獻標識碼:A
文章編號:1009-3044(2019)31-0259-03
工程圖紙作為設計師設計內容的載體和工程圖紙使用方進行各項相關工作的依據,在工程中有著重要的地位和作用。隨著計算機輔助設計(cAD)及建筑信息模型(BIM)的普及,對工程圖紙的數字化成果交付逐漸普及,然而,對工程圖紙檔案的管理及使用上還是存在著諸多問題。
目前對工程圖紙的使用主要集中于二維CAD和三維BIM工程圖紙檔案的使用方式較為不便,且二維CAD和三維BIM工程圖紙的管理和借閱等工作也大多借助于人工進行,工作較為繁重。
為解決上述二維CAD和三維BIM工程圖紙檔案管理及使用中存在的諸多問題,本文對工程圖紙檔案管理進行了研究及實現,提高了二維CAD和三維BIM工程圖紙檔案在管理、使用上的便捷性,也為同類系統(tǒng)的開發(fā)提供了借鑒。
1系統(tǒng)設計
工程圖紙檔案管理系統(tǒng)前臺頁面包括工程圖紙檔案管理、二維CAD工程圖紙使用、三維BIM工程圖紙使用三個模塊,后臺管理包括用戶、角色、權限的管理。
1.1工程圖紙檔案管理
1.1.1工程圖紙檔案排序
在已存儲大量工程圖紙檔案的情況下對工程圖紙檔案進行增刪改等操作在使用一般排序方法的情況下會占用大量計算資源并耗費大量時間。向包含大量數據并已有序的序列中增加新的數據,插入排序是較優(yōu)的選擇,因而對插入排序算法進行優(yōu)化并應用于工程圖紙檔案排序中,以減少排序帶來的時間和計算資源的消耗。
插入排序是將多個待排序數據,逐個從已排序序列的一端開始,將待排序數據的關鍵碼值與已排序序列中數據的關鍵碼值做對比,直到找到其適當的插人位置并插入。
本文從以下4個方面對插入排序算法進行改進。
(1)插入排序時需將待排序數據從已排序數據序列的一端開始與已排序數據逐個進行對比,對比次數過多,因而將二分法引入插入排序中,以減少對比次數;
(2)二分法在二分點選取時一般以二分區(qū)間中值作為二分點,選取方式過于粗放,因而本文通過對比待排序數據與二分區(qū)間端點數據的差值來選取二分點,以減少二分次數;
(3)多個未排序數據進行插入排序時,每個待排序數據都從已排序數據序列的一端開始進行插入排序未免過于浪費時間,因而將多個未排序數據進行快速排序,前一個數據插入已排序數據序列后,后一個數據從前一個數據的插入位置開始進行插入排序,以減少對比次數;
(4)插入排序時因待排序數據插入已排序數據序列后,在待排序數據插入位置之后的已排序數據需向后位移一位,龐大的位移次數對時間、計算資源的消耗較多,因而引入多路插入方法,按數據量的大小設定分組長度,當數據插入分組時只將分組中處于插入位置后的數據后移,以減少位移次數。
1.2三維BIM工程圖紙使用
一般建模軟件所導出的三維圖紙是一個整體的三維模型,其在使用上大多局限于整體模型的瀏覽,而在實際應用中三維圖紙檔案僅能進行整體瀏覽顯然不敷使用,而是需要獲取各圖元實體的屬性等信息,以存儲并展示更多信息,并輔助各項工作的進行,因此需對整體的三維圖紙進行拆分處理,并為各圖元掛載屬性等信息,使三維工程圖紙檔案的使用不再局限于整體的瀏覽。
OBJ格式三維BIM圖紙文件格式較為簡單,易于開發(fā),因而能夠從大多數BIM建模軟件中通過插件導出。隨著WebGL技術的發(fā)展,使用無插件的WebGL三維繪圖協(xié)議實現三維BIM圖紙在線使用成了更優(yōu)的選擇。本文使用WebGL的一個功能強大的類庫Cesium實現三維工程圖紙檔案的使用。
OBJ文件中以體、面、點、點紋理等元素來對模型進行描述,將導出的一個整體的OBJ模型文件按體的不同拆分成多個只包含一個體及其所屬面、點、點紋理的OBJ模型文件,并更新面中的點和點紋理索引。將拆分后的OBJ格式模型文件通過頁面后臺調用格式轉換插件批量轉換為更為輕量化的GLTF文件,并將包括各圖元GLTF文件存儲地址、圖元屬性等信息存儲于XML文件中。通過依照XML文檔中記錄的圖元文件存儲地址依次讀取拆分出的三維圖元并通過Cesium顯示,讀取XML文檔中存儲的圖元屬性信息掛載于圖元實體上,通過對XML文檔的操作實現圖元信息的增刪改功能,實現三維BIM圖紙的在線使用。
1.3二維CAD圖紙使用
DXF格式是二維CAD行業(yè)中較為流行的開放矢量數據交換工業(yè)標準??煽s放矢量圖形(SVG)是基于可擴展標記語言(xML)的一種用于描述二維矢量圖形的圖形格式,能夠無插件的在瀏覽器中展示矢量圖形。本文采用解析DXF格式二維CAD圖紙并使用SVG技術進行顯示的方式實現二維CAD圖紙的使用。
DXF格式以組碼標記數據的形式區(qū)分及描述坐標點、角度及樣式等矢量圖形數據。在DXF格式文檔中每個組碼或數據單獨一行,每兩行為一組,前一行為組碼,決定后一行數據元素的類型。從DXF文件中能夠讀取二維CAD中圖元位置坐標及矢量信息等數據,由于SVG坐標系與DXF中的坐標系不同,需將DXF中點的坐標轉為SVG坐標系中的坐標。假定Xs、Ys為點在SVG坐標系中的坐標,xn、Yn為點在DXF中的坐標,Xmin、Ymax分別為DXF中x坐標最小值及Y坐標最大值,則
完成DXF文檔數據的讀取后,將DXF文檔中各圖元轉化為SVG圖元,并將其放入頁面前臺顯示,實現二維CAD圖紙的使用,通過對SVG中視窗的設置,實現二維CAD圖紙使用中的縮放功能。
工程中對二維圖紙的使用不僅僅局限于瀏覽,也需查看二維圖紙中各圖元的屬性等信息,同時為使用戶能夠更方便地了解同一圖元在二三維圖紙中的表述,為二維圖紙圖元掛載包含二維圖元屬性等信息及該圖元三維瀏覽在內的二三維一體化信息。
判斷用戶所選二維圖元后,以二維圖元信息檢索該二維圖元所對應的三維圖元,并在頁面中展示該圖元的三維圖元及屬性信息,并通過對XML文檔的操作,實現了圖元信息的增刪改功能。
2系統(tǒng)實現
圖紙檔案上傳及信息錄入界面如圖1所示。
圖紙檔案信息修改和補錄界面如圖2所示。
二維圖紙檔案使用界面如圖3所示,三維圖紙檔案使用界面如圖4所示。
3結束語
為實現二三維工程圖紙檔案的便捷管理及使用,提高二三維圖紙中的信息攜帶量,本文對煤礦行業(yè)工程圖紙檔案管理進行了研究、設計和開發(fā),加強了工程圖檔管理系統(tǒng)的反應速度和使用便捷性,加強了對三維圖紙的管理,同時通過在二維圖元的屬性中添加該圖元的三維圖元,增強了二三維圖紙之間的聯(lián)系,實現了二三維圖紙的便捷的在線使用,增加了二三維圖紙中信息的攜帶量,同時也為其他同類軟件的開發(fā)提供了借鑒。