• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Civil 3D 的水深點轉(zhuǎn)換技術

      2023-12-08 11:03:30
      科技創(chuàng)新與應用 2023年35期
      關鍵詞:邊線水深圖層

      肖 怡

      (四川省交通勘察設計研究院有限公司,四川成都 610017)

      在航道整治項目中,設計水深是設計人員經(jīng)常需要用到的數(shù)據(jù),這就要求測量人員根據(jù)設計水位將水下地形點換算成設計水深點[1]。由于江河等流域是存在上下游比降的,所以在處理水深點轉(zhuǎn)換時不能用單一水面高減去水下高程點來計算水深。目前,很多測量人員都是根據(jù)水位比降[2]分段做水深改正,在航道長度長,水位比降大時,數(shù)據(jù)處理工作極其枯燥繁瑣且耗時。

      AutoCAD Civil 3D 是由Autodesk 公司推出的一款的建筑信息模型(BIM)設計軟件。為用戶提供強大的測量、設計、分析與文檔處理解決方案。作為一款強大的平臺軟件,其提供的地形曲面數(shù)據(jù)處理功能對于一線測繪人員十分有用。對于有一定編程經(jīng)驗的測繪人員來說,可以通過Civil 3D 提供的API,用C# 語言對其進行二次開發(fā)。本文就介紹了Civil 3D 是如何用C# 二次開發(fā)解決設計水深點轉(zhuǎn)換工作。

      1 程序設計思路

      Civil 3D 曲面是由三角網(wǎng)構成的,可以用于表達地形、道路、河流等地形特征。Civil 3D 能真實計算出挖填方的工程量,而且還可以進行挖填平衡的自動調(diào)整[3]。在Civil 3D 中,曲面的創(chuàng)建有多種方法,其中最常用的是根據(jù)等高線和圖形對象創(chuàng)建。創(chuàng)建好的曲面對象提供了曲面編輯、查詢及分析功能。其中,編輯功能允許用戶對曲面三角網(wǎng)或者點進行添加、刪除、移動等操作;查詢功能支持用戶查詢曲面上的數(shù)據(jù),如高點程、距離、面積等;分析功能支持對曲面進行分析,如計算曲面面積、體積等。

      在本程序中,主要是對曲面創(chuàng)建和任意高程點查詢的應用。通過用調(diào)整后的設計水邊線創(chuàng)建水面曲面,然后對水下高程點進行水面高程查詢,最后,利用水面高程與水底高程求差計算出真實水深。

      1.1 水邊線高程點數(shù)據(jù)

      水邊線高程點是指在根據(jù)水尺記錄數(shù)據(jù)和設計水位對水邊線進行修正后,在水邊線上根據(jù)水位變化合理地插值出高程點[4],并用Cass 展繪到水邊線地形圖上。成圖效果如圖1 所示。

      圖1 按設計水位修正后水邊線及水邊高程點

      1.2 水下高程點或地形點數(shù)據(jù)

      在測量內(nèi)業(yè)成圖階段,所有高程點的高程都是水準高。通常,等深線的繪制是在等高線圖完成之后,用于繪制等深線的原始數(shù)據(jù)如圖2 所示。

      圖2中,河道中的高程點不能直接用于繪制等深線,需要根據(jù)水邊線高程做水深計算。

      為了方便計算,需要把河道中的高程點用Cass 的“高程點生成數(shù)據(jù)文件功能”導出為*.dat 文件,也可以把所有地形點全導出,后續(xù)在程序中做水下點篩選。

      1.3 程序?qū)崿F(xiàn)流程

      程序設計思路為:首先使用“SSJS(水深計算)”命令啟動程序,交互選擇水邊高程點,程序會自動讀取高程點并構建水面曲面;其次讀取水下高程點數(shù)據(jù),程序自動用曲面內(nèi)插計算出高程點對應水面高;最后通過內(nèi)部設定的水深閾值,去掉地面高程點,即得到純凈的水深點,然后將水深點輸出成.dat 文件。

      程序運行流程如圖3 所示。

      圖3 程序運行流程圖

      成果文件為.dat 格式,測繪人員可直接用Cass 加載并進行等深線的繪制。

      2 關鍵技術研究與實現(xiàn)

      2.1 水邊線高程點編輯

      水邊線高程點內(nèi)插加密需要基于測量時的水尺水位高、實測水邊線和設計水位線,最后形成圖1 中的水邊高程點,水邊高程點需要均勻分布以確保后續(xù)構建的水面曲面足夠精確。

      2.2 程序開發(fā)基礎

      2.2.1 軟件基礎

      Civil 3D 提供了3 種API,分別是.NET API、COM API 和C++[5],其中.NET 語言中的C#語言開發(fā)難度是相對較小的,而且有良好的開發(fā)支持。

      2.2.2 開發(fā)環(huán)境配置

      啟動Visual Studio 2019,選擇“創(chuàng)建新項目”,選擇“類庫(.NET Framework)”,然后框架選擇“.NET Framework4.6”;添加accoremgd.dll、acdbmgd.dll、acmgd.dll、AecBaseMgd.dll 和AeccDbMgd.dll 程序集的引用,并將程序集的“復制本地”屬性改為“false”(圖4)。

      圖4 引用程序集

      2.3 曲面創(chuàng)建

      為了便于數(shù)據(jù)管理,在新建水面曲面時應該為其新建圖層,然后選擇高程點對象添加到曲面中。

      2.3.1 新建圖層

      1)獲取當前文檔和數(shù)據(jù)庫,并創(chuàng)建事務。

      2)獲取圖層表,判斷是否存在“0-Terrain”圖層,如果不存在,則新建“0-Terrain”圖層,并將其設置為當前圖層,如果存在,則將“0-Terrain”圖層設置為當前圖層。

      2.3.2 創(chuàng)建空曲面

      創(chuàng)建曲面是利用Autodesk.Civil.DatabaseServices中的TinSurface 類,首先用TinSurface 的Create 方法創(chuàng)建一個空曲面ID,然后強制轉(zhuǎn)換為三角網(wǎng)曲面對象。

      2.3.3 拾取水邊高程點

      水邊線高程點應為Cass 軟件生成的高程點塊,提取高程點前需要定義一個過濾條件用于篩選高程點。

      然后用Editor 類提供的方法提取高程點對象,創(chuàng)建對象ID 集合。

      2.3.4 添加高程點到曲面

      接用TinSurface 的DrawingObjectsDefinition 屬性的AddFromBlocks 方法將高程點添加到空曲面中。

      2.4 水面高程提取

      利用TinSurface 對象的FindElevationAtXY 方法可以查找指定坐標處的高程值。

      2.5 水深計算

      2.5.1 讀取高程點文件

      讀取高程點調(diào)用了系統(tǒng)File 類中的ReadAllLines方法,將讀取的行數(shù)據(jù)分別拆分存到指定變量。

      2.5.2 計算點位設計水深

      水深=水面高程-水下高程點水準高程。

      利用該計算關系,循環(huán)遍歷計算所有水下高程點對應的設計水深。

      2.5.3 導出水深點文件

      調(diào)用系統(tǒng)提供的StreamWriter 方法即可完成水深文本文件輸出。

      3 程序應用實例——某項目A 河道水深圖

      某項目平面圖如圖5 所示,項目全長約14.5 km,水邊高程點685 個,共有5 754 個地形點(含水下高程點),高程點的格式為點名、編碼、東坐標、北坐標(圖6),經(jīng)測試轉(zhuǎn)換生成全部水下高程點用時約3.2 s(圖7)。

      圖6 項目A 原始數(shù)據(jù)和成果數(shù)據(jù)示例

      圖7 項目B 程序計算花費時間

      4 結束語

      水下高程點轉(zhuǎn)設計水深是一項十分簡單的工作,但是如果不掌握科學的數(shù)據(jù)處理方法,簡單工作將會變成一項任務繁重的體力活。Civil 3D 是一款強大的土木設計類軟件,擁有完善的開發(fā)環(huán)境。C#是一門相對容易上手的編程語言,得益于編程軟件Visual Studio 的強大提示功能,可以幫助初級編程人員補全大量代碼。兩者的結合則催生出了各種功能強大的插件,基于這些插件,可以將廣大一線生產(chǎn)人員從大量重復繁瑣的工作中解放出來。

      在使用過程中做過的最長的某項目長度超過78 km,總地形點超過10 萬個點,在水邊高程點圖形文件和所有地形點文本文件準備好的情況下,只用了不到10 s 的時間即可完成水深點文本文件的生成。如果用人工手動分段計算的話,項目上下游高差54 m,即使按每20 cm 分段需要分250 段,假如每段高程點提取轉(zhuǎn)換需要2 min,則一個人所需花費的時間預計超過8 h,而實際上,一個人手動做這些數(shù)據(jù)轉(zhuǎn)換可能得花費2~3 d 時間。

      所以,基于Civil 3D 的開發(fā)的確能帶來巨大的生產(chǎn)效率的提升,從上述論述也可以看到,Civil 3D 的初級開發(fā)不難,如果能善用二次開發(fā),一定能為工作生產(chǎn)帶來巨大的經(jīng)濟效益。

      猜你喜歡
      邊線水深圖層
      書法靜水深流
      河北水利(2022年10期)2022-12-29 11:48:12
      基于水深分段選擇因子的多光譜影像反演水深
      海洋通報(2022年4期)2022-10-10 07:40:32
      海岸水邊線提取方法在GF-2衛(wèi)星影像中的適應性研究
      海洋通報(2022年3期)2022-09-27 02:46:20
      巧用混合圖層 制作抽象動感森林
      認識足球(六)
      突破矩形上邊線買入法(1)
      圖層法在地理區(qū)域圖讀圖中的應用
      地理教學(2015年18期)2016-01-06 12:00:38
      GPS RTK技術在水深測量中的應用
      淺析“遞層優(yōu)化法”在礦井制圖中的應用
      河南科技(2014年6期)2014-04-04 08:00:42
      浸入式水深監(jiān)測儀器的設計
      齐河县| 栾城县| 铜山县| 射洪县| 会理县| 宜君县| 收藏| 山西省| 桦甸市| 石台县| 襄樊市| 东乌珠穆沁旗| 长海县| 新野县| 舒城县| 许昌县| 定结县| 莱芜市| 望谟县| 桂阳县| 嘉黎县| 德庆县| 正安县| 昌邑市| 沭阳县| 昔阳县| 延边| 德化县| 崇文区| 炉霍县| 和龙市| 玉树县| 攀枝花市| 苏尼特左旗| 布尔津县| 天水市| 宜宾县| 桐城市| 宽城| 惠安县| 吉木乃县|