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

?

基于AutoCAD的道路橫斷面的提取方法*

2021-04-21 13:53:48徐加榮
地礦測(cè)繪 2021年1期
關(guān)鍵詞:中樁平面坐標(biāo)橫斷面

徐加榮,魏 敏

(江蘇省地質(zhì)測(cè)繪院,江蘇 南京 211102)

0 引言

道路斷面測(cè)量是道路建設(shè)過(guò)程中的一項(xiàng)重要工作,斷面數(shù)據(jù)是工程設(shè)計(jì)、土方計(jì)算、邊樁放樣、橋涵等構(gòu)筑物設(shè)計(jì)的基礎(chǔ)。道路橫斷面是垂直于道路方向的地面斷面線,能描述道路中線兩側(cè)一定范圍內(nèi)的地面起伏變化情況。道路橫斷面測(cè)量一般情況下都是在道路中線兩側(cè)根據(jù)地形變化情況實(shí)測(cè)或從DEM模型上提取一些離散點(diǎn)三維點(diǎn),從而模擬地形特征[1-2]。在測(cè)繪行業(yè)中,一般都是使用AutoCAD作為圖形數(shù)據(jù)的處理平臺(tái)。AutoCAD在圖形繪制方面具有很大的優(yōu)勢(shì),但AutoCAD本身并沒(méi)有提供提取道路橫斷面的功能。AutoCAD具有十分豐富的二次開(kāi)發(fā)接口,能夠通過(guò)二次開(kāi)發(fā)實(shí)現(xiàn)道路橫斷面數(shù)據(jù)的自動(dòng)提取。為此,本文提出了一種利用VBA編程實(shí)現(xiàn)道路橫斷面自動(dòng)生成的方法。

1 橫斷面數(shù)據(jù)格式分析

道路橫斷面文件的格式種類(lèi)較多,專(zhuān)用的道路設(shè)計(jì)軟件都有其特殊的數(shù)據(jù)格式。本文介紹的格式是由江蘇省交通規(guī)劃設(shè)計(jì)院股份有限公司(中設(shè)設(shè)計(jì)集團(tuán)股份有限公司)提出的橫斷面格式。此橫斷面數(shù)據(jù)以微軟的Excel文件作為存儲(chǔ)載體,工作表的第一行為標(biāo)題行,用于標(biāo)識(shí)每列的用途。有效數(shù)據(jù)從工作表的第二行開(kāi)始,每一個(gè)斷面占3行,詳細(xì)格式要求如下:

第一行為中樁信息,從A列到E列分別填寫(xiě):線位名、中樁高程、中樁位置描述(即中樁的所處位置的地形特征,如溝邊、路邊、田中等)、位置、中樁樁號(hào)。

第二行為左側(cè)斷面數(shù)據(jù),從D列開(kāi)始填寫(xiě),D列填寫(xiě)“左”,用于標(biāo)識(shí)此行數(shù)據(jù)為左側(cè)中樁,后面填寫(xiě)斷面點(diǎn)距中樁的距離與高程值,兩個(gè)值為一組,依次向后由近及遠(yuǎn)填寫(xiě)。

第三列為右側(cè)斷面數(shù)據(jù),從D列開(kāi)始填寫(xiě),D列填寫(xiě)“右”,用于標(biāo)識(shí)此行數(shù)據(jù)為右側(cè)中樁,后面填寫(xiě)斷面點(diǎn)距中樁的距離與高程值,兩個(gè)值為一級(jí),依次向后由近及遠(yuǎn)填寫(xiě)。

表1 斷面數(shù)據(jù)格式示例

2 模塊功能分析

根據(jù)橫斷面數(shù)據(jù)格式的要求及AutoCAD軟件的特點(diǎn),設(shè)計(jì)了橫斷面提取工具的總體框架,其主要由4個(gè)模塊組成:參數(shù)配置、中樁導(dǎo)入、橫斷面線繪制、橫斷面表格導(dǎo)出。

2.1 參數(shù)配置

參數(shù)主要由中樁導(dǎo)入配置、橫斷面配置、高程點(diǎn)配置、導(dǎo)出配置等組成,如圖1所示。

1) 中樁導(dǎo)入配置:設(shè)置中樁表的線路名稱(chēng)、每列的用途、有效數(shù)據(jù)行;

2) 橫斷面配置:設(shè)置橫斷面線的圖層、搜索緩沖;

3) 高程點(diǎn)配置:設(shè)置高程的過(guò)濾表達(dá)式及取值表達(dá)式;

4) 導(dǎo)出配置:設(shè)置導(dǎo)出的數(shù)學(xué)精度。

圖1 參數(shù)配置模塊

2.2 中樁導(dǎo)入

中樁坐標(biāo)是在道路中線放樣時(shí)在外業(yè)實(shí)地測(cè)得的數(shù)據(jù),包括樁號(hào)、平面坐標(biāo)、高程及地形說(shuō)明等,保存于Excel文件中。中樁坐標(biāo)是生成橫斷面數(shù)據(jù)的基礎(chǔ),每個(gè)橫斷面都以中樁為中心進(jìn)行搜索獲得。讀取中樁坐標(biāo)使用開(kāi)源組件NPOI。NPOI是一個(gè)讀寫(xiě)Excel、Word等微軟OLE2組件文檔的項(xiàng)目,是Apache POI 項(xiàng)目在.NET 中的實(shí)現(xiàn),可以在不依賴(lài)于Microsoft Excel的情況下實(shí)現(xiàn)對(duì)Excel文件的讀寫(xiě)。使用此組件讀取中樁坐標(biāo)的關(guān)鍵步驟如下:

1)實(shí)例化工作簿

FileStream=File.OpenRead(FilePath)

Book=New HSSFWorkbook(FileStream) 或 Book=New XSSFWorkbook(FileStream)

2)獲取工作表

Sheet=Book.GetSheetAt(0)

3) 獲取某一行

Row=Sheet.GetRow(RowIndex)

4) 獲取單元格數(shù)據(jù)

Value=Row.GetCell(CellIndex).ToString()

2.3 橫斷面線繪制

圖2 橫斷面線繪制示意圖

2.4 橫斷面表格導(dǎo)出

在提取橫斷面線時(shí),從線路的起點(diǎn)開(kāi)始,依次選擇橫斷面線,詳細(xì)步驟如下:

1)以中樁值從小到大的順序遍歷道路中樁;

2)以中樁為中心選擇橫斷面線;

3)分別提取左、右高程點(diǎn);

4)重復(fù)步驟二。

在提取左、右高程點(diǎn)時(shí),可以使用式(1)來(lái)判斷:如果A值大于0表示點(diǎn)在中心線的左側(cè),A值小于0表示點(diǎn)在中心線的右側(cè),A值等于0則表示點(diǎn)在中心線上[3]。

A=(X1-X)* (Y2-Y) - (Y1-Y) *

(X2-X)

我嘴里說(shuō)著:“你們拿一把菜刀把我劈成兩半吧”,先替母親把不用的餐具放了上去,又幫著父親移動(dòng)書(shū)柜。移完書(shū)柜,我就屬于父親了。他拉住我,要我把他整理好的書(shū)籍一排一排地放到書(shū)架上。我的母親在廚房里叫我了,要我把剛才放上去的那一箱不用的餐具再搬下來(lái),她發(fā)現(xiàn)有一把每天都要用的勺子找不著了,她說(shuō)會(huì)不會(huì)放在那一箱不用的餐具里面,而這時(shí)候父親又把一疊書(shū)籍遞給了我,我說(shuō):“你們拿一把菜刀把我劈成兩半吧?!?/p>

(1)

式中:A表示方向判別值;X1、Y1表示當(dāng)前中樁點(diǎn)的平面坐標(biāo);X2、Y2表示下一個(gè)中樁點(diǎn)的平面坐標(biāo);X、Y表示某一高程點(diǎn)的平面坐標(biāo)。

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

道路橫斷面提取工具的開(kāi)發(fā)基于ObjectARX.Net框架,IDE選擇Visual Studio 2013,使用VisualBasic.Net作為編碼語(yǔ)言實(shí)現(xiàn)以上的全部功能。ObjectARX.Net是AutoCAD.Net API提供的托管程序集,方便開(kāi)發(fā)人員使用.Net Framework支持的任意一門(mén)語(yǔ)言進(jìn)行開(kāi)發(fā)。此工具的運(yùn)行流程,如圖3所示。

圖3 道路橫斷面提取程序運(yùn)行流程

本文基于AutoCAD2010來(lái)實(shí)現(xiàn)道路橫斷面提取工具的各個(gè)功能,主要有以下幾個(gè)步驟:

3.1 創(chuàng)建編程環(huán)境

在Visual Studio 2013中創(chuàng)建一個(gè)項(xiàng)目,語(yǔ)言選擇Visual Basic,類(lèi)型選擇類(lèi)庫(kù)。項(xiàng)目創(chuàng)建完畢后,引入AutoCAD安裝目錄中的acdbmgd.dll與acmgd.dll,并將“復(fù)制到本地”屬性設(shè)為False、“目標(biāo)CPU”屬性設(shè)為AnyCPU。

3.2 定制AutoCAD命令

在ObjectARX.Net開(kāi)發(fā)環(huán)境中,需要將類(lèi)中的方法添加Autodesk.AutoCAD.Runtime命名空間下的CommandMethodAttribute標(biāo)識(shí),程序加載后,就可以在AutoCAD命令行中輸入自定義的命令對(duì)方法進(jìn)行調(diào)用[4-5],關(guān)鍵代碼如下:

_

Public Sub Road_DLHDM()

Dim KeyValue As String=EditorKit.GetKeyWord("S:設(shè)置","I:導(dǎo)入中樁","D:繪制橫斷面", "E:導(dǎo)出橫斷面文件")

Select Case KeyValue

Case "S"

ConfigSet()'設(shè)置

Case "I"

ImportData()'導(dǎo)入中樁

Case "D"

DrawSectionLine()'繪制橫斷面線

Case "E"

ExportFile()'導(dǎo)出橫斷面文件

End Select

End Sub

3.3 加載程序文件

代碼經(jīng)調(diào)試、編譯后,使用AutoCAD提供的netload命令,選擇編譯好的DLL文件,即可完成加載任務(wù)。加載完畢后,在命令行中輸入自定義的道路橫斷面命令DLHDM后再輸入相應(yīng)的選項(xiàng)進(jìn)行道路橫斷面數(shù)據(jù)處理的各種操作。

4 應(yīng)用實(shí)例

在某條公路前期勘察過(guò)程中,作業(yè)人員首先根據(jù)設(shè)計(jì)單位提供的道路中線直曲表進(jìn)行實(shí)地放樣,確定中樁后同時(shí)測(cè)量了此中樁對(duì)應(yīng)的橫斷面高程點(diǎn)。在測(cè)量道路中樁時(shí)還記錄了中樁的地形特征。外業(yè)測(cè)量結(jié)束后,將測(cè)量的碎部點(diǎn)以高程點(diǎn)的方式展到AutoCAD中并在Excel中整理道路中樁坐標(biāo)。然后使用DLHDM命令進(jìn)行橫斷面數(shù)據(jù)處理,主要步驟如下:

1)進(jìn)行相關(guān)參數(shù)設(shè)置,主要設(shè)置橫斷面線的圖層、高程點(diǎn)的特征及搜索緩沖距離;

2)導(dǎo)入道路中樁坐標(biāo);

3)開(kāi)始自動(dòng)繪制橫斷面線,部分受到地形影響不規(guī)則的橫斷面可以通過(guò)手工干預(yù)進(jìn)行輔助繪制;

4)執(zhí)行提取橫斷面數(shù)據(jù)前的各項(xiàng)檢查;

5)檢查無(wú)誤后導(dǎo)出道路橫斷面文件。

繪制好的橫斷面線及導(dǎo)出的橫斷面文件,如圖4、圖5所示。

圖4 道路橫斷面圖(部分)

圖5 道路橫斷面文件(部分)

使用該程序提取橫斷面文件,主要的工作時(shí)間用于整理道路中樁坐標(biāo)文件,中樁文件整理完后,就可以使用此工具快速生成符合甲方要求的橫斷面文件。經(jīng)測(cè)試,如果采用手工方式生成道路橫斷面文件,處理完一條道路(約80個(gè)斷面)需要花費(fèi)約2天的時(shí)間,而使用道路斷面程序自動(dòng)提取,全程僅需要半個(gè)小時(shí)即可完成,而且不容易出現(xiàn)錯(cuò)誤,降低了質(zhì)量隱患。

5 結(jié)束語(yǔ)

本文提出的通過(guò)繪制道路橫斷面線的方式來(lái)自動(dòng)生成橫斷面文件能夠有效提升數(shù)據(jù)質(zhì)量并提高作業(yè)效率,從而減輕測(cè)量人員的數(shù)據(jù)處理工作量,保證勘察設(shè)計(jì)工期。該方法對(duì)于其它類(lèi)型的AutoCAD應(yīng)用也有一定的借鑒意義。

猜你喜歡
中樁平面坐標(biāo)橫斷面
奧維互動(dòng)地圖CAD中線坐標(biāo)精度分析
人民交通(2022年5期)2022-06-16 07:25:12
復(fù)變函數(shù)斜軸橢球變換法的銜接應(yīng)用
城市道路橫斷面設(shè)計(jì)研究
濮陽(yáng)市擬建立相對(duì)獨(dú)立的平面坐標(biāo)系統(tǒng)
土建工程中樁基礎(chǔ)的施工要點(diǎn)分析
廣州市健康體檢人群種植修復(fù)情況的橫斷面研究
建筑工程土建施工中樁基礎(chǔ)施工要點(diǎn)探討
2014年某院醫(yī)院感染橫斷面調(diào)查
關(guān)于公路測(cè)量中定線恢復(fù)若干問(wèn)題的探討
淺談建筑工程土建施工中樁基礎(chǔ)施工要點(diǎn)
清涧县| 昌宁县| 和硕县| 教育| 阆中市| 平远县| 龙泉市| 汽车| 来安县| 汉源县| 木兰县| 玉林市| 晋江市| 云浮市| 民丰县| 乌拉特中旗| 全州县| 二手房| 隆林| 砚山县| 吉隆县| 鄂温| 曲靖市| 南丹县| 德保县| 凤台县| 保山市| 徐汇区| 拉孜县| 远安县| 扶余县| 马龙县| 翁牛特旗| 景谷| 萍乡市| 永靖县| 准格尔旗| 资阳市| 旺苍县| 册亨县| 元谋县|