• 
    

    
    

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

      ?

      基于.NET API的河道深泓線提取的CAD工具的開發(fā)和應(yīng)用

      2015-12-02 08:41:22李曦凌向明明
      水電與抽水蓄能 2015年1期
      關(guān)鍵詞:中心線波束繪制

      李曦凌,向明明

      (中國電建集團(tuán)昆明勘測設(shè)計(jì)研究院有限公司,云南省昆明市 650001)

      基于.NET API的河道深泓線提取的CAD工具的開發(fā)和應(yīng)用

      李曦凌,向明明

      (中國電建集團(tuán)昆明勘測設(shè)計(jì)研究院有限公司,云南省昆明市 650001)

      在多波束測深系統(tǒng)應(yīng)用于河道水下地形測量中,由于數(shù)據(jù)量巨大,手工提取深泓線成為了一項(xiàng)艱巨而繁瑣的任務(wù)。本文提出了在CAD2010平臺(tái)下,利用VB.NET語言,實(shí)現(xiàn)深泓線自動(dòng)提取的方法。

      多波束水下地形測量;深泓線提取;.NET API;CAD二次開發(fā)

      0 引言

      河床深泓線河底最低點(diǎn)的連線,是河流特性的基本參數(shù),它反映了河道的變化,對于河流、水庫的演變過程研究有著重要意義。在水下地形測量中,深泓線是一項(xiàng)重要的測量成果。目前對深泓線的繪制主要有人工和自動(dòng)兩種方法,自動(dòng)算法主要是閉合等深線端點(diǎn)法[1],這種方法適用于紙質(zhì)地形圖矢量化后的深泓線提取,但是由于等高距、地形圖比例尺的限制及等深線本身的誤差,提取后的深泓線精度不高。

      多波束測深系統(tǒng)能獲得一個(gè)條帶覆蓋區(qū)域內(nèi)多個(gè)測量點(diǎn)的海底深度值,實(shí)現(xiàn)了從“點(diǎn)—線”測量到“線—面”測量的跨越。多波束系統(tǒng)能夠生產(chǎn)出高精度點(diǎn)云,在此基礎(chǔ)上繪制的深泓線精度高。但是,一條河的點(diǎn)云數(shù)據(jù)量十分龐大,就算將點(diǎn)云抽稀成按一定間距分布的高程點(diǎn),人工繪制深泓線也是一件十分繁瑣的事。因此,通過編寫程序?qū)崿F(xiàn)深泓線自動(dòng)提取十分必要。

      本文的主要方法是在CAD平臺(tái)下提取、繪制深泓線。當(dāng)前AutoCAD的二次開發(fā)工具主要有:VisualLisp、VBA、ObjectARX和.NET API等。其中,VisualLisp與VBA較為簡單,而 ObjectARX基于VC平臺(tái),在C++的支持下,其功能非常強(qiáng)大,可以很好地運(yùn)用各種面向?qū)ο蠹夹g(shù),但其缺點(diǎn)是發(fā)開速度比較慢,同時(shí)對開發(fā)人員的能力要求較高。

      基于.NET平臺(tái)對AutoCAD進(jìn)行二次開發(fā),可充分利用.NET的各種優(yōu)勢,在保證功能強(qiáng)大的前提下大大提高開發(fā)速度。

      2 深泓線提取原理及實(shí)現(xiàn)過程

      2.1 基本原理

      基于地形圖的人工繪制深泓線的思路為:利用地形圖上的等高線和高程點(diǎn),沿著河道中心線,按一定間距將最低的高程點(diǎn)連接起來形成深泓線。

      在編寫程序時(shí),借鑒了斷面法的思路,即:沿河道中心線按一定間距生成河道中心線的橫剖面,然后每一條橫剖面建立一個(gè)“緩沖搜索區(qū)”,搜索該區(qū)域內(nèi)所有高程點(diǎn)中的高程最小值,最后將這些最低點(diǎn)連接起來,如圖1所示。

      圖1 深泓線繪制流程圖

      2.2 實(shí)現(xiàn)過程

      2.2.1 CAD實(shí)體的獲取

      圖形對象又稱為實(shí)體,是組成圖形的可見對象(線、圓、光柵圖像等)。向當(dāng)前圖形添加圖形對象的方法是,通過引用正確的塊表記錄,使用Append Entity方法將要添加的新對象添加到圖形中。

      要修改或查詢對象,先從相應(yīng)的塊表記錄里獲得對該對象的引用,然后調(diào)用該對象自己的方法或?qū)傩?。每個(gè)圖形對象都擁有一些方法,這些方法實(shí)現(xiàn)了與大部分AutoCAD編輯命令相同的功能,像復(fù)制、刪除、移動(dòng)、鏡像,等等。

      本文涉及的CAD實(shí)體類型主要是多線段(polyline)、 塊 參 照(BlockReference) 和 文 字(DBtext)。在工程應(yīng)用中,我們規(guī)定河道深泓線是一條多線段,而高程點(diǎn)是CASS繪圖軟件生成的塊參照。

      2.2.2 橫剖面線生成

      首先在河道中心線(polyline類型)上按一定間距提取該中心線上的點(diǎn)P(point3d類型),找出該點(diǎn)前后兩個(gè)節(jié)點(diǎn)Pi-1和Pi之間的直線,獲得與之垂直的直線,即為P點(diǎn)上河道中心線的法線。

      使用到的關(guān)鍵方法有:

      (1) 獲取多線段上某長度上的點(diǎn):polyline.GetPointAtDist()。

      (2) 構(gòu)造一個(gè)極坐標(biāo)方法獲取點(diǎn)的函數(shù)PolarPoint,用于得到法線兩端點(diǎn)。

      (3) AppendEntity方法添加橫剖面的多線段實(shí)體。

      圖2 河道中心線法線的生成示意圖

      2.2.3 “緩沖區(qū)”搜索最低點(diǎn)

      根據(jù)上一步驟生成的法線多線段,左右平移一定距離得到兩條平行線,將這兩條平行線連接形成一個(gè)多邊形(polygon),這個(gè)多邊形就是搜索的緩沖區(qū),利用.Select Crossing Polygon方法選擇多邊形內(nèi)的高程點(diǎn),得到一個(gè)高程點(diǎn)的集合,然后在集合中查找高程值最小的那個(gè)實(shí)體。

      2.2.4 生成深泓線及縱斷面圖

      構(gòu)建一個(gè)深泓線的Point3d Collection類,在搜索斷面最低點(diǎn)的同時(shí)向該類的添加point3d類,在添加節(jié)點(diǎn)完成后,用Append Entity方法繪出深泓線的三維多線段平面圖。

      深泓線的斷面圖的橫坐標(biāo)里程需與河道中心線一致,即需要將深泓線的長度歸算到河道中心線上后方可生成斷面圖。

      2.2.5 運(yùn)行優(yōu)化

      在實(shí)際工程應(yīng)用中,深泓線往往是一條有著大量頂點(diǎn)的三維多線段,設(shè)這些多線段頂點(diǎn)集合為strechpoints(),若每個(gè)斷面的前后兩個(gè)頂點(diǎn)都是從strechpoints()中從頭到尾地搜索,則會(huì)造成程序的內(nèi)存溢出及運(yùn)行緩慢等情況。所以,需要在循環(huán)中加入判斷:設(shè)前一個(gè)斷面的前后端點(diǎn)為j-1,和j,則在下一個(gè)循環(huán)中的循環(huán)變量起始值為j。

      For j As Integer = L_count To U_count 變換循環(huán)變量起始值

      L_count = j

      U_count = strechpoints.Count – 1 多邊形頂點(diǎn)的個(gè)數(shù)

      Next j

      3 實(shí)例驗(yàn)證

      為了驗(yàn)證程序的運(yùn)行效果,選取了云南某電站水庫水下地形測量多波束導(dǎo)出的網(wǎng)格點(diǎn)為實(shí)驗(yàn)數(shù)據(jù),點(diǎn)間距為20m,河道中心線長100km,選擇搜索步長為20m,程序運(yùn)行時(shí)間為2min20s。程序運(yùn)行界面及程序效果圖分別如圖3、圖4所示。

      圖3 程序運(yùn)行界面

      圖4 程序效果圖

      4 結(jié)束語

      在.NET 環(huán)境下,用VB語言對AutoCAD 進(jìn)行二次開發(fā), 實(shí)現(xiàn)了河道深泓線的自動(dòng)提取。作者設(shè)計(jì)了直觀的人機(jī)交互界面,只需提供幾個(gè)少量的參數(shù)即可準(zhǔn)確提取深泓線。同時(shí),自動(dòng)提取程序避免了手動(dòng)查找的麻煩及不準(zhǔn)確性,降低了勞動(dòng)強(qiáng)度,提高了工作效率,在生產(chǎn)實(shí)踐中運(yùn)行良好。

      [1] 丁賢榮.基于ArcGIS Engine的河床深泓線提取方法研究[J/OL].中國科技論文在線,2007(4).

      [2] 曾洪飛,張帆,盧擇臨.AutoCAD VBA amp; VB.NET開發(fā)基礎(chǔ)與實(shí)例教程[M].北京:中國電力出版社,2008.

      李曦凌(1982—),男,工程師,主要研究方向:測繪工程。

      向明明(1983—),男,工程師,主要研究方向:測繪工程。

      Development and Application of AutoCAD Tool of the Extraction of Thalweg based on .NET API

      LI Xiling
      (Kunming engineering cooperation limited, Kunming 650001,China)

      In the application of multi beam sounding system in the underwater measurement of reservoir or river, because of the huge amounts of raw data, manual extraction of thalweg became a difficult and tedious task. This paper presents the method of automatic extraction of thalweg on CAD2010 platform, based on VB.NET language.

      the multi beam underwater measurement;extraction of thalweg; NET API; extended development of CAD

      猜你喜歡
      中心線波束繪制
      Art on coffee cups
      毫米波大規(guī)模陣列天線波束掃描研究*
      放學(xué)后
      童話世界(2018年17期)2018-07-30 01:52:02
      圓陣多波束測角探究
      電子測試(2018年6期)2018-05-09 07:31:54
      Helix陣匹配場三維波束形成
      第十講 幾何公差代號(hào)標(biāo)注示例10
      ——目鏡套筒
      X線攝影中中心線對DR攝影質(zhì)量的重要性
      基于Meanshift和Hough變換的秧苗行中心線提取
      基于非正交變換的局域波束空時(shí)自適應(yīng)處理
      在轉(zhuǎn)變中繪制新藍(lán)圖
      奉化市| 翁牛特旗| 青田县| 博野县| 东兴市| 故城县| 东阿县| 志丹县| 福清市| 秦安县| 亚东县| 永和县| 郑州市| 城口县| 兴海县| 义乌市| 濮阳市| 加查县| 潼南县| 乐至县| 漾濞| 盘山县| 丰镇市| 宝应县| 怀宁县| 桂东县| 当阳市| 望江县| 时尚| 隆子县| 慈利县| 仪征市| 武平县| 安化县| 花莲市| 鲁山县| 咸丰县| 图木舒克市| 通河县| 米易县| 卢湾区|