一種基於河道CAD數據的三維仿真系統的構造方法與流程
2023-10-08 10:00:44 1
本發明涉及一種基於河道CAD數據的三維仿真系統的構造方法,基於河道的CAD數據,利用SketchUp建模軟體進行建模、通過ArcScene平臺驅動三維場景並利用ArcGIS Engine進行二次開發,是三維GIS在水利信息化領域的有益探索。
背景技術:
當前,三維可視化方法在各行各業都實現對三維地物或建築的立體描述,對建築的紋理也能細緻的表達,也能驅動三維場景,給用戶帶來良好的用戶體驗。但在,三維河流可視化方面,研究人員偏向於對洪水淹沒方面的研究。由於河流區域廣泛,三維建模的過程複雜,操作難度大,需要大量的人力、物力。
因此本發明提供一種基於河道CAD數據的三維仿真系統的構造方法,採用ArcGIS與SketchUp相結合的方法快速和方便的對三維創意進行創建、修改和渲染,從而實現三維模型的建立,並且利用ArcGIS Engine平臺的可視化空間,開發出一個獨立於GIS平臺的三維數字應用系統。
技術實現要素:
發明目的:針對現有技術中存在的問題,本發明提供一種SketchUp和ArcGIS相結合的方法,為更好地進行河流管理提供了基礎信息平臺。
技術方案:一種基於河道CAD數據的三維仿真系統的構造方法,首先是對河道的CAD規劃底圖的整理,去除建模無用數據、分塊畫點和統一參考平面處理。規劃底圖中數據具有較多的對建模無用的數據,如控制點、標註信息及設計規劃區以外的地物標誌等。特別是具有太多的碎線和亂線,面、線存在不閉合現象。為了建模後能更精確更方便地進行拼接,先在分成的幾塊的各個邊界上畫上一些點(等高線與邊界的交點),這樣在拼接時,就不會發生錯位現象,不需要每條進行修改,只需選擇邊界兩邊的等高線進行合併即可。另外,導入的數據會存在標高不一致,導入時出現立體線,層面不一致等情況,此時可以通過統一設置導入到sketchup中的CAD底圖的z值為0達到同一參考平面。
其次,對紋理數據的處理,一般是通過高解析度的數位相機拍攝的相片,通過Photoshop等軟體處理後得到地物紋理信息。在SketchUp中構建三維模型程序更為簡單,主要步驟包括:從CAD數據中導入上述整理後的平面,利用SketchUp將平面數據推拉成體,後期進行貼圖渲染和美化。其中,將CAD數據導入過程中,SketchUp和CAD要具有相同的單位,不然會出現導入數據錯誤。完成河流的建模工作後,通過格式轉換的方式將模型格式轉換為ArcGIS支持的多面體模型Multipatch格式,並為模型添加一些屬性信息。
本發明方法的主要實現步驟如下:
步驟1:對現有的河道CAD數據進行去除建模無用數據、分塊畫點和統一參考平面,得到處理好的CAD數據;
步驟2:將處理好的CAD數據導入SketchUp並利用其豐富的功能方便、快捷地實現三維系統的場景建模,用「推/拉」工具,放於導入的CAD圖表面上,單擊滑鼠並向上移動,在右下角尺寸輸入框中,用鍵盤輸入高度值,按回車確認。即建立完成了立方體,然後在模型表面貼上紋理圖片;
步驟3:把建立的三維模型轉換成Multipatch(*.mdb)格式,再把mdb格式的三維模型添加到ArcScene三維平臺中從而將整個河流三維數字可視化;
步驟4:實現三維場景的瀏覽;
步驟5:實現河道屬性查詢功能;
步驟6:實現沿河道飛行功能。
獲取水面所在圖層ILayer layer=axSceneControl1.SceneGraph.Scene.get_Layer(n);
然後加載無人機模型
pmark3dsymbol.CreateFromFile("...");
最後切換視角
ICamera camera=axSceneControl1.SceneViewer.Camera;
優選地,所述步驟1中,在導入CAD文件前要清理一下CAD中標註、文字等無關數據和圖層,這樣在後面開展的SketchUp建模工作中就可以避免無關數據的幹擾,方便3D河道建模的進行,同時也可以減少計算機內存的佔用。
優選地,所述步驟3中,完成河流的建模工作後,通過在arctoolbox中,3D Analyst tools/conversion/from TIN/layer 3D to feature class/起名存儲轉換的方式將模型格式轉換為ArcGIS支持的多面體模型Multipatch格式。
優選地,所述步驟3中,採用Google SketchUp和ArcGIS相結合的方法將河流場景三維可視化與三維空間對象管理耦合起來形成3D可視化的集成系統。
本發明採用上述技術方案,具有以下有益效果:用戶可以進行三維場景瀏覽、信息查詢,能夠進行河流二維平面圖和河流三維場景的展示,具有三維景觀動態觀察及飛行功能,支持框選放大和縮小等,以便從整體和局部兩個不同的角度更好的進行場景瀏覽,並可以以圖片的形式導出場景;提供信息查詢,使得系統具有一定的實用性。河流的三維瀏覽功能要給用戶一種身臨其境的感覺,坐在船上在河裡運動的感覺。三維場景的展示可以給人們提供真實直觀的感受,通過放大縮小等功能可以查看細部效果和全景場景,但對於河流斷面的屬性信息,如斷面名稱,位置,河寬,設計圖等無法直接以場景的形式展現。
附圖說明
圖1為本發明實施例的流程圖。
具體實施方式
下面結合具體實施例,進一步闡明本發明,應理解這些實施例僅用於說明本發明而不用於限制本發明的範圍,在閱讀了本發明之後,本領域技術人員對本發明的各種等價形式的修改均落於本申請所附權利要求所限定的範圍。
如圖1所示,基於河道CAD數據的三維仿真系統的構造方法,包括如下步驟:
步驟1:整理CAD規劃底圖。刪除CAD規劃底圖中對建模無用的數據,如控制點、標註信息及設計規劃區以外的地物標誌等。
步驟2:構建三維模型。將整理後的CAD規劃底圖導入到SketchUp中,推拉成體。導入的數據會存在標高不一致,導入時出現立體線,層面不一致等情況,此時可以通過統一設置z值為0達到同一參考平面。SketchUp和CAD要具有相同的長度單位,不然會出現導入數據錯誤。單位可以在文件→導入→選項中進行設置。CAD中默認單位一般是毫米(mm),所以在導入過程中Google SketchUp的單位最好也設置成mm。根據CAD圖上的標註找到堤壩線條,使用封面插件將兩根堤壩線條之間的空白封成一個平面,之後推拉出高度,再用移動工具拉伸堤壩將坡比拉伸為1:3,同時將瀝青路面也推拉相同高度;然後,將河流的主要標誌性建築如大橋、涵洞和排澇站等都通SketchUp製作出來;最後,添加相應的紋理。
步驟3:整合模型,根據步驟2中所構建的模型,將多段河流在ArcScene中進行整合,等高線與邊界的交點之間會自動對應,拼接。
步驟4:搭建三維可視化場景。通過ArcGIS工具的使用,導入SketchUp模型為Multipatch數據。首先,需要在ArcCatalog模塊中首先創建一個Personal Geodatabase資料庫,同時在其資料庫中建立一個Multipatch的Feature Class並設置圖層所在站點編號,再通過ArcGIS軟體中Import3Dfile工具,導入SketchUp到Multipatch實現轉換。在這個過程中需要注意,當模型導入ArcScene中後,模型丟失了原有的貼圖和紋理。在ArcScene中,打開3D Editor/start editing/選中要替換的對象/3D Editor/replace with model/選擇在Google SketchUp中導出的模型導入,即可替換掉原來的模型,停止編輯,刷新一下,貼圖紋理就都出來了。河流上的景觀如大橋、涵洞、排澇站水閘以及一些斷面標誌則以style符號庫導入到ArcScene中。
步驟5:實現主要功能,其中具體包括:三維場景瀏覽模塊、信息查詢模塊。三維場景瀏覽模塊利用ArcGIS中的Engine開發組件,編寫控制三維模型沿著線段飛行的程序
使3D模型在三維場景中沿著指定路徑漫遊,從而實現河流的巡航功能。信息查詢模塊根據屬性值進行查詢。