国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于VSTO.NET Excel道路平面線形計算程序開發(fā)與實現(xiàn)

2018-07-25 11:38:48馬天馳江智云
交通科技與經(jīng)濟 2018年4期
關(guān)鍵詞:中樁檢核轉(zhuǎn)角

曹 明,馬天馳,宋 偉,江智云,郭 軍

(1.浙江省交通規(guī)劃設(shè)計研究院有限公司,浙江 杭州 310006;2.黑龍江工程學(xué)院 測繪工程學(xué)院,黑龍江 哈爾濱 150050;3.廣州海洋地質(zhì)調(diào)查局,廣東 廣州 510760)

道路設(shè)計成果一般分為圖形文件、表格文件以及資料文檔等,其中各種表格文件最為精確,是勘測各階段的數(shù)學(xué)基礎(chǔ),怎樣高效合理地使用這些表格是外業(yè)路線測設(shè)和內(nèi)業(yè)數(shù)據(jù)處理的關(guān)鍵。為提高道路各勘測設(shè)計及施工階段內(nèi)外業(yè)數(shù)據(jù)處理的效率和準確性,針對過程中需要提取的重要數(shù)據(jù)進行批量和精確計算,進而進行進一步高精度測量放樣工作,獲取路線野外三維地面數(shù)據(jù)。因此,本文提出基于VSTO和.NET Framework技術(shù)開發(fā)出嵌入式程序用于道路相關(guān)各要素和坐標計算等工作。

1 .NET和.NET Framework

.NET是微軟用來實現(xiàn)XML,Web Services,SOA(面向服務(wù)體系結(jié)構(gòu)Service-Oriented Architecture)與敏捷性的新技術(shù),是微軟的新一代技術(shù)平臺,是基于標準的、聯(lián)通的、適應(yīng)變化的、穩(wěn)定的和高性能的一種技術(shù)。一個.NET應(yīng)用是一個使用.NET Framework類庫來編寫,并運行于公共語言運行之上的應(yīng)用程序[1]。

.NET Framework的出現(xiàn),使得原來需要通過編程語言來實現(xiàn)的工作轉(zhuǎn)由.NET Framework來完成。操作系統(tǒng)也可以通過提供一些.NET Framework不支持的功能,降低程序間通信的復(fù)雜性與局限性。這些程序可以是相同語言編寫的,也可以是不同語言編寫的[2]。

2 VSTO

VSTO(Visual Studio Tools for Office)是.NET平臺下最新的Office開發(fā)技術(shù)。相對傳統(tǒng)的VBA技術(shù),VSTO為中高級開發(fā)人員提供了強大的開發(fā)平臺和語言,并解決傳統(tǒng)Office開發(fā)中的諸多問題,開發(fā)人員也可以使用熟悉的技術(shù)來構(gòu)建更加靈活、強大、跨平臺的企業(yè)級解決方案[3-4]。對于Office解決方案開發(fā),VSTO是簡單而強大的框架。這個框架為每個Office開發(fā)者帶來了許多令人驚嘆的好處:窗體空間、類、安全性、服務(wù)器可測量性、面向?qū)ο筇卣?、完整性、易發(fā)布等[5-6]。

3 道路設(shè)計線位中邊樁坐標計算

根據(jù)不同等級道路設(shè)計要求,道路設(shè)計中的平面線型包含不同線型要素,但都是由直線、緩和曲線、圓曲線3種基本單元構(gòu)成,如圖1所示;道路平面曲線的基本組合有:基本型(直線—入緩和曲線—圓曲線—出緩和曲線—直線)、卵型曲線、S型曲線、復(fù)合曲線、回頭曲線等[7-8]。

不同類型的線型各要素算法不同,需對不同線型單獨計算,然后按樁號首尾相接,為保證計算精度,本文保留數(shù)學(xué)模型中的高次項,各曲線類型數(shù)學(xué)模型[9-11]如下:

圖1 道路線路設(shè)計示意圖

3.1 直線上點P處中樁坐標及方位角

如圖1所示,P點方位角即為JDi-1與JDi連線方位角αJDi-1JDi如式(1)所示[12-13]:

(1)

根據(jù)P點樁號和JDi-1樁號及直線方位角即可求出P點坐標,故P點坐標如式(2)所示:

(2)

式中,LP和LJDi-1分別為P點和JDi-1點的樁號,即l為P點與JDi-1的直線長度。

3.2 圓曲線上任一點中樁坐標

圓曲線上任一點中樁坐標(如圖1中K點)。

(3)

為保證上述數(shù)學(xué)模型中高次項能夠滿足計算精度要求,對高次項進行單獨計算,如式(4)所示:

(4)

dXK和dYK分別為高次項影響值,本文特選取杭州繞城高速直曲轉(zhuǎn)角表中半徑較小的數(shù)據(jù)進行驗證,特取ls1=220,R=1 800,αJDi-1JDi=45°。由式(4)可以得出dXM=-0.000 06 m,dYM=0.003 mm。

3.3 第一緩和曲線任一點的中樁坐標

第一緩和曲線任一點的中樁坐標(如圖1中U點)

(5)

式中,w為路線轉(zhuǎn)角方向識別號,右偏時:w=1,左偏時:w=-1;當(dāng)U點位于第一緩和曲線上時,

為保證上述數(shù)學(xué)模型中高次項能夠滿足計算精度要求,對高次項進行單獨計算,如式(6)所示:

(6)

dXU和dYU分別為高次項計算值,為驗證高次項對計算結(jié)果的影響,本文特選取杭州繞城高速直曲轉(zhuǎn)角表中半徑較小的數(shù)據(jù)進行驗證,特取l=ls1=220,實際計算中l(wèi)

3.4 第二緩和曲線上任一點中樁坐標

M點處中樁坐標計算式如式(7)[14-15](見圖1):

(7)

由于第一緩和曲線與第二緩和曲線數(shù)學(xué)模型一致,因此可以得出該數(shù)學(xué)模型中高次項能夠滿足計算精度要求,在此不再贅述。

3.5 邊樁坐標計算

邊樁坐標是在對應(yīng)中樁坐標和方位角的基礎(chǔ)上得出,如式(8)、式(9)所示。

路線左側(cè)邊樁坐標計算式[16]:

(8)

路線右側(cè)邊樁坐標計算式[16]:

(9)

4 道路上任一點坐標計算程序設(shè)計

4.1 程序結(jié)構(gòu)設(shè)計

合理的程序結(jié)構(gòu)設(shè)計是保證計算準確性的基礎(chǔ),也為后續(xù)開發(fā)各項功能提供接口,同時通過自檢能更加準確地檢核內(nèi)部數(shù)據(jù)計算的準確性。

程序具體設(shè)計框架如圖2所示。

圖2 程序結(jié)構(gòu)設(shè)計流程圖

4.2 程序功能設(shè)計

本程序有兩種資料錄入方法。

方法一:輸入路線起點樁號、交點坐標以及入緩和曲線和出緩和曲線長度,并生成對應(yīng)的直曲轉(zhuǎn)角表;

方法二:直接讀取設(shè)計直曲轉(zhuǎn)角表。根據(jù)計算和設(shè)計提供的直曲轉(zhuǎn)角表對設(shè)計線路進行一致性檢核,檢測設(shè)計線路是否完整。

后臺保存線位各段主點要素,然后根據(jù)待計算樁號所處曲線段和坐標計算模型計算對應(yīng)坐標;該坐標與設(shè)計坐標進行逐樁做標記性對比檢核,判斷計算準確性和精度。

此外根據(jù)式(6)和(7)計算橫斷面成果坐標。

4.3 程序具體實現(xiàn)

4.3.1 程序界面設(shè)計

本文程序是Excel二次開發(fā)的嵌入式程序,程序界面如圖3所示。

4.3.2 程序代碼編寫

C#是面向?qū)ο笤O(shè)計的程序語言,為更好地維護和拓展程序,本程序?qū)iT設(shè)計道路數(shù)據(jù)處理的類HintRoadClass和不同曲線類型的數(shù)據(jù)結(jié)構(gòu),如表1所示定義變量及函數(shù),程序中的主要功能函數(shù)代碼如下。

1)建立基本應(yīng)用工作表

for(intiNumsht=sheetName.Length - 1; iNumsht >= 0;

iNumsht--){_wb.Sheets.Add();

_wb.ActiveSheet.name=sheetName[iNumsht];}

2)根據(jù)設(shè)計參數(shù)生成直曲轉(zhuǎn)角表

q1 = pm[2,4]/2-ath.Pow(pm[2,4],3)/

(240 * Math.Pow(pm[2,3],2)) + Math.Pow(pm[2,4],5) / (34560 * Math.Pow(pm[2,3],4));

表1 程序結(jié)構(gòu)

圖3 程序操作界面

q2 = pm[2,5]/2-ath.Pow(pm[2,5],3)/(240*Math.Pow(pm[2,3],2))+Math.Pow(pm[2,5],5)/(34560 * Math.Pow(pm[2,3],4));

p1 = Math.Pow(pm[2,4],2)/(24 * pm[2,3])-Math.Pow(pm[2,4],4) / (2688 * Math.Pow(pm[2,3],3)) + Math.Pow(pm[2,4],6)/(506880 * Math.Pow(pm[2,3],5));

p2 = Math.Pow(pm[2,5],2)/(24 * pm[2,3])-ath.Pow(pm[2,5],4)/(2688*Math.Pow(pm[2,3],3))+Math.Pow(pm[2,5],6)/(506880 * Math.Pow(pm[2,3],5));

t1 = q1 + (pm[2,3] + p2-m[2,3]+p1)*Math.Cos(pj))/Math.Sin(pj);

t2 = q2 + (pm[2,3] + p1-m[2,3]+p2)*Math.Cos(pj))/Math.Sin(pj);

ly = pm[2,3] * pj - (pm[2,4] + pm[2,5]) / 2;

其中q1、q2、p1、p2、t1、t2、ly分別為曲線要素。

3)中樁坐標計算

中樁坐標計算分多種情況,需采用不同的數(shù)學(xué)模型,此處只列舉代碼片段,如下:

l = lxzh - kzh;

tp = (2 * l - ls1) / 2 / R;

xp = R * Math.Sin(tp) + q1;

yp = R * (1 - Math.Cos(tp)) + p1;

x = x1 + xp * Math.Cos(a0) - zy * yp * Math.Sin(a0);

y = y1 + xp * Math.Sin(a0) + zy * yp * Math.Cos(a0);

5 程序測試與工程實踐

本文以浙江省某高速公路項目為測試對象,選取其中一段設(shè)計數(shù)據(jù)進行測試,同時闡述程序操作流程,并對計算結(jié)果進行精度統(tǒng)計。

啟動Excel軟件后,點擊“路線表格準備”按鈕,即生成所需工作表,如圖4所示。

圖4 程序生成工作表

將設(shè)計參數(shù)錄入“平面資料”表中,執(zhí)行“生成直曲轉(zhuǎn)表”,即在“直曲線表”中計算載入數(shù)據(jù),同時讀取設(shè)計直曲轉(zhuǎn)角表并與該表進行詳細檢核比對,如圖5所示。

圖5 直曲轉(zhuǎn)角精度及計算結(jié)果

將待計算樁號和橫斷面數(shù)據(jù)錄入相應(yīng)表格即可計算出相應(yīng)坐標等,如圖6所示。限于篇幅有限,在此不一一列舉。

圖6 道路中樁坐標計算結(jié)果

此外程序自動將計算成果與設(shè)計坐標逐個進行對比,生成精度檢核報表,如表2所示。

表2 計算結(jié)果精度統(tǒng)計表

因篇幅所限,省略了程序運行中的部分界面及計算成果表。

6 結(jié)束語

本文研究了道路設(shè)計參數(shù)數(shù)學(xué)模型,編寫了基于VSTO、Excel和.NET開發(fā)平臺的道路數(shù)據(jù)處理程序,實現(xiàn)了直線段、入緩和曲線、圓曲線、出緩和曲線段主點坐標以及任一點坐標和方位角的計算,通過保留更高迭代項以提高計算模型的精度,并對各階段成果進行檢核,同時對計算結(jié)果統(tǒng)計分析形成報表。程序能在可靠性、效率、精度以及適應(yīng)性等方面滿足道路測設(shè)放樣要求。同時,對程序結(jié)構(gòu)和功能的優(yōu)化設(shè)計,為今后開發(fā)更多功能提供相應(yīng)接口,有利于程序進一步的拓展,以便更高效、更準確完成今后道路測設(shè)工作。

本文僅對完整線路進行研究和開發(fā),而對于卵型曲線等非完整線位尚有待進一步研究和探討。

猜你喜歡
中樁檢核轉(zhuǎn)角
從“檢核”到“鷹架”
玩轉(zhuǎn)角的平分線
垂直荷載木結(jié)構(gòu)大跨屋頂設(shè)計
三次“轉(zhuǎn)角”遇到愛
解放軍健康(2017年5期)2017-08-01 06:27:42
土建工程中樁基礎(chǔ)的施工要點分析
永春堂贏在轉(zhuǎn)角
建筑工程土建施工中樁基礎(chǔ)施工要點探討
檢核目錄法的研究與應(yīng)用—以書架設(shè)計為例
福建省廈門第一中學(xué)黃建通老師:中學(xué)生創(chuàng)新思維課程引入“奧斯本檢核表技法”
新校長(2016年8期)2016-01-10 06:43:49
關(guān)于公路測量中定線恢復(fù)若干問題的探討
赣榆县| 岚皋县| 永嘉县| 嘉禾县| 岳阳市| 庄河市| 日喀则市| 桂阳县| 元阳县| 锡林浩特市| 巴林左旗| 保德县| 屏南县| 大新县| 临夏县| 大埔区| 琼中| 子长县| 梅河口市| 通河县| 东丽区| 乐都县| 义马市| 桃源县| 长汀县| 凌源市| 娄烦县| 尼玛县| 铁力市| 裕民县| 民权县| 威宁| 龙江县| 商城县| 旺苍县| 抚松县| 平邑县| 合江县| 琼结县| 龙州县| 延津县|