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

?

基于AutoCAD VBA的公路施工橫斷面圖的繪制和土方量計(jì)算

2010-04-19 07:00:50紀(jì)凱
城市勘測 2010年4期
關(guān)鍵詞:平面坐標(biāo)橫斷面土方

紀(jì)凱

(安徽交通職業(yè)技術(shù)學(xué)院土木系,安徽合肥 230051)

基于AutoCAD VBA的公路施工橫斷面圖的繪制和土方量計(jì)算

紀(jì)凱?

(安徽交通職業(yè)技術(shù)學(xué)院土木系,安徽合肥 230051)

路基斷面圖和土石方量是施工單位工程計(jì)量的重要依據(jù),本文針對施工特點(diǎn),闡述了在AutoCAD平臺下如何使用VBA開發(fā)適合施工單位的橫斷面圖繪制和土方計(jì)算程序的一些問題。開發(fā)的程序使用方便,計(jì)算精度高。

施工;橫斷面;土方量;AutoCAD

1 概 述

目前我國交通建設(shè)發(fā)展迅猛,特別是隨著公路交通和高速公路的增加,舊有公路不斷拓寬和改建,在公路施工過程中,由于一些客觀的原因,設(shè)計(jì)文件中的路基土石方的數(shù)量誤差較大,特別是地形起伏變化大的地方更是如此。究其原因:一是設(shè)計(jì)部門在勘測時(shí),由于現(xiàn)場復(fù)雜,特別是雜草叢生、樹木較多通視條件差的地方,測量誤差大;二是有些地方無法精確詳細(xì)測量,如遇河塘;三是斷面測量間距受到限制,不可能很小,否則對于設(shè)計(jì)單位來說,勘測工作量很大。因此各施工單位進(jìn)入現(xiàn)場后,都要對各自施工的路段的路基土石方進(jìn)行復(fù)核。主要包括:一是公路線路原地面復(fù)測;二是繪制橫斷面圖和土石方量計(jì)算。這兩項(xiàng)工作量都較大。繪制橫斷面圖和土石方量計(jì)算在設(shè)計(jì)單位目前全部采用計(jì)算機(jī)軟件自動完成,而在施工單位主要采用在方格厘米紙上用人工方法完成或在AutoCAD用Command命令繪制。勞動強(qiáng)度大,效率差,精度低,而橫斷面圖和土石方量是業(yè)主對施工單位路基工程計(jì)量的重要依據(jù)。本文討論結(jié)合施工的特點(diǎn),開發(fā)適合施工單位使用的路基施工橫斷面圖繪制和土方計(jì)算的程序。

2 公路施工測量斷面的特點(diǎn)

2.1 原地表

(1)同一樁號的斷面比勘測設(shè)計(jì)階段準(zhǔn)確。這是由于施工單位進(jìn)場后投入人力對原地表進(jìn)行了處理,如清表、砍伐植物等,為精確測量提供了條件。

(2)斷面間距縮短。我們知道,土方量計(jì)算的精度與斷面的間距有很大的關(guān)系,間距越小,精度越高。由于每個施工單位施工的標(biāo)段里程有限,因此,施工單位為了提高土方量的精度,橫斷面的間距都較小,在土方成本大的地方,甚至5 m測量一個斷面。

2.2 標(biāo)準(zhǔn)斷面

(1)對于復(fù)測后的斷面與原設(shè)計(jì)單位勘測的相差不大的情況,對施工單位來說,標(biāo)準(zhǔn)斷面都是由設(shè)計(jì)圖紙確定,施工單位不得變更。(而設(shè)計(jì)階段的標(biāo)準(zhǔn)斷面可以自由確定)

(2)對于復(fù)測后的斷面與原設(shè)計(jì)單位勘測的相差大的情況,標(biāo)準(zhǔn)斷面如果不能滿足要求,應(yīng)重新設(shè)計(jì)。

3 AutoCAD VBA編程介紹

Visual Basic for Application(VBA)是Microsoft面向最終用戶的應(yīng)用軟件編程語言。它最早出現(xiàn)于Microsoft的Excel和Project中,如今VBA已成為VB和所有Office產(chǎn)品的組件。常用的繪圖軟件AutoCAD也已支持VBA作為二次開發(fā)工具。

VBA最大特點(diǎn)和最大優(yōu)點(diǎn)是利用面向?qū)ο?OOP)的ActiveX Automation技術(shù),使語言的引擎在技術(shù)上與開發(fā)環(huán)境分離。它的功能在很大程度上依賴于它的客戶顯露的Automation接口。同時(shí),由于VBA是基于ActiveX Automation技術(shù),它可以使用任何Automation技術(shù)的應(yīng)用程序共同工作。

基于AutoCAD的VBA應(yīng)用程序就是高級程序語言的計(jì)算功能與AutoCAD的繪圖功能結(jié)合,使用VBA程序語句來控制對AutoCAD圖形的操作。VBA作為一個集成的開發(fā)環(huán)境,它提供了高質(zhì)量的用戶化編程能力,能夠使AutoCAD數(shù)據(jù)與其他的VBA應(yīng)用程序,如Microsoft Excel軟件直接共享,實(shí)現(xiàn)無縫連接,交換數(shù)據(jù)非常方便。

VBA的兩種重要的基礎(chǔ)是宏和集合對象。宏是執(zhí)行特定操作的一系列命令,可以只是完成任務(wù)的按鈕記錄,也可以是復(fù)雜的命令,例如,AutoLISP,DIESEL和ActiveX編程代碼等的組合。宏的定義方式與VB中的過程(SUB)的定義是一致的,一般用來實(shí)現(xiàn)某一些特定的功能,也可作為VBA的啟動過程。在Auto-CAD的“宏”對話框的宏列表中,僅會顯示ThisDrawing或者標(biāo)準(zhǔn)模塊的宏。ThisDrawing模塊中無法創(chuàng)建全局變量,可以放置AutoCAD事件處理的代碼,而標(biāo)準(zhǔn)模塊則與之相反。

進(jìn)入VBA的編程環(huán)境可以有兩種方法:第一種方法是在AutoCAD中,選擇“工具”→“宏”→“VISUAL BASIC編輯器”。第二種方法是在AutoCAD的命令中輸入命令“VBAIDE”。

4 公路橫斷面繪制的方法

為了在AutoCAD中繪制公路橫斷面圖需要解決3個問題:第一是從Excel中讀取斷面數(shù)據(jù)的問題;第二是坐標(biāo)轉(zhuǎn)換的問題,也即是把斷面的坐標(biāo)轉(zhuǎn)換成Auto-CAD的地圖坐標(biāo);第三是設(shè)計(jì)橫斷面的坡度線與原地面線段求交點(diǎn)的問題。

4.1 從Excel讀取數(shù)據(jù)的方法

在Microsoft Excel中,與表對應(yīng)的對象是工作表(Sheet或Worksheet),與每一個表格方格對應(yīng)的對象是單元格區(qū)域(range),它可以僅包括一個單元格(cell),也可以由多個單元格合并而成。工作表對象中的 cells屬性,在單元格的選擇方面可以達(dá)到與range相同的效果。它是以行(row)和列(col)作為參數(shù)的,對于行和列的選擇可以采用變量的形式。

在AutoCAD中,沒有與表對應(yīng)的對象,但可以根據(jù)表中前后樁號定義水平距離,根據(jù)地面高程定義垂直距離,將表中數(shù)據(jù)理解為線條與文字對象的集合。這樣,通過讀取Microsoft Excel文件中的最小對象-單元格區(qū)域[cells(i,,j)]的主要信息,利用VBA建立AutoCAD與Excel的通信,然后在AutoCAD文件里指定的圖層、位置畫線條,書寫文字。通過循環(huán),遍歷所有單元格區(qū)域[cells(i,,j)],邊讀邊寫,最終完成縱斷面地面線的繪制及樁號的書寫。

4.2 橫斷面數(shù)據(jù)的坐標(biāo)轉(zhuǎn)換方法

為了把橫斷面數(shù)據(jù)繪制在AutoCAD中,需要將橫斷面數(shù)據(jù)轉(zhuǎn)化成AutoCAD的平面坐標(biāo)。由于數(shù)據(jù)的格式不同,可分為設(shè)計(jì)斷面線的平面坐標(biāo)數(shù)據(jù)轉(zhuǎn)換和原地面線的平面坐標(biāo)的轉(zhuǎn)換。

(1)設(shè)計(jì)橫斷面線數(shù)據(jù)的平面坐標(biāo)計(jì)算問題

如圖1所示:已經(jīng)知道起點(diǎn)A在AutoCAD平面坐標(biāo)系中的平面坐標(biāo)為(x0,y0),該設(shè)計(jì)線的長度為L和坡度為i,點(diǎn)B的平面坐標(biāo)為:

當(dāng)B在右側(cè)的時(shí)候,式(1)取加號,當(dāng)B在左側(cè)的時(shí)候,式(1)取減號。

為了計(jì)算出各設(shè)計(jì)坡度變化點(diǎn)的平面坐標(biāo),可以先算出設(shè)計(jì)中樁的平面坐標(biāo),然后依次求解出各坡度變化點(diǎn)的平面坐標(biāo)。

圖1 設(shè)計(jì)坡度變化點(diǎn)坐標(biāo)求解

圖2 原地面點(diǎn)平面坐標(biāo)計(jì)算

(2)原地面數(shù)據(jù)的平面坐標(biāo)計(jì)算問題

如圖2所示,已經(jīng)知道點(diǎn)A的平面坐標(biāo)(x0,y0),點(diǎn)A,B的高程分別為H0和H,A與B的橫坐標(biāo)增量為△XAB,則

當(dāng)B在右側(cè)的時(shí)候,式(2)取加號,當(dāng)B在左側(cè)的時(shí)候,式(2)取減號。

為了計(jì)算出各原地面點(diǎn)的平面坐標(biāo),可以先算出中樁的平面坐標(biāo),然后求解出各原地面點(diǎn)的平面坐標(biāo)。

4.3 設(shè)計(jì)橫斷面的坡度線跟原地面線段求交點(diǎn)的方法

如圖3所示,設(shè)計(jì)橫斷面的坡度線AB的起點(diǎn)A的平面坐標(biāo)為(xa,ya),B為該坡度線AB上的一點(diǎn),其平面坐標(biāo)為(xb,yb),CD為原地面的一段線段,點(diǎn)C和點(diǎn)D的平面坐標(biāo)分別為(xc,yc)和(xd,yd)。則AB的參數(shù)方程為:

其中t>0,同理可得線段CD的參數(shù)方程為:

其中0<s<1,由式(3)、式(4)聯(lián)合解參數(shù)t和s可得:

圖3 設(shè)計(jì)橫斷面的坡度線跟原地面線交點(diǎn)的求解

使用式(5)、式(6)參數(shù)求解法,先求出t和s。如果t>0并且0<s<1的時(shí)候,則存在交點(diǎn),將t代入式(3),或者將s代入式(4),即可求得AB和線段CD的交點(diǎn)。

5 橫斷面圖的繪制程序設(shè)計(jì)

本程序以AutoCAD 2004為平臺,在VBA的編程環(huán)境開發(fā)出適合于施工和監(jiān)理單位的土石方計(jì)算與繪圖程序,以VBA語言編制程序,采用Active-X Automation技術(shù)控制AutoCAD對象。斷面圖全部在AutoCAD自動生成,土方量的計(jì)算可以由AutoCAD提供的求面積的工具求得。

程序要求輸入的原始數(shù)據(jù)有:原地面測量和設(shè)計(jì)橫斷面數(shù)據(jù)文件,由施工單位測量和圖紙上所得,其格式:

對于設(shè)計(jì)線,其中Li,Ii分別表示第i個點(diǎn)的跟前一個點(diǎn)i-1的距離和該設(shè)計(jì)線的橫坡度,最后一個數(shù)據(jù)i表示設(shè)計(jì)線的最后坡度線的坡度。對于原地面線,其中Li,hi分別表示第i個點(diǎn)跟前一個點(diǎn)i-1的距離和第i個點(diǎn)的高程。

5.1 在AutoCAD中創(chuàng)建Excel應(yīng)用程序和Excel數(shù)據(jù)的讀取問題

要編寫存取Excel的應(yīng)用程序,必須通過VBA將Excel中的對象能夠讓用戶使用,這就需要參考Excel對象的數(shù)據(jù)庫。其具體步驟如下。

(1)打開 AutoCAD的 VBA編輯器(命令: VBAIDE);

(2)選擇“工具”\“引用”項(xiàng),在彈出的“引用”對話框的“可使用的引用”列表框內(nèi),選擇“Microsoft Excel 8.0 Object Library”項(xiàng);

(3)單擊“確定”按鈕;

(4)接下來使用下列代碼可創(chuàng)建完整的應(yīng)用程序?qū)ο髮?shí)例

其中FileName為Excel的包括路徑的文件名。這樣就可以通過excelSheet.Cells(i,j).Value來獲取第i行和第j列的值了。

5.2 繪制橫段面圖

通過不斷讀取Excel中的數(shù)據(jù),并且計(jì)算出各點(diǎn)的地圖坐標(biāo),利用AutoCAD中的繪制線段的Addline方法,該方法的具體語法是:

其中LineObject為Acadline對象,SPoint和EPoint分別為線段的起點(diǎn)和終點(diǎn)坐標(biāo)。

為了方便使用AutoCAD命令來調(diào)用已編制完成的斷面繪制程序“dmhz.dvb”,首先找到AutoCAD2004.lsp文件,它一般是在AutoCAD的安裝目錄中的SUPPOTR文件夾下,文件AutoCAD2004.lsp的文件名中的2004會隨AutoCAD的版本號的不同而有所不同。在Auto-CAD2004.lsp文件的后面增加如下內(nèi)容:

該段程序中hdmhz是用戶自定義的命令,“c:\dmhz.dvb”為含路徑的工程文件名,每當(dāng)CAD程序啟動后,AutoCAD2004.lsp會自動讀入并運(yùn)行,這樣當(dāng)在AutoCAD的命令行中輸入dmhz命令,就會執(zhí)行宏命令dmhz。

為了能在 AutoCAD中啟動的時(shí)候能自動加載VBA程序,先把新建的編好的VBA工程dmhz.dvb拷貝到AutoCAD安裝目錄下的SUPPOTR文件夾中,并修改文件acad.lsp,該文件一般在用戶的目錄下的Application Data\Autodesk\AutoCAD 2004\R16.0\chs\Support文件夾下,其中AutoCAD 2004和R16.0會隨著安裝的AutoCAD的版本不同而不同,如果找不到該文件,則在該文件夾下增加該文件。在該文件后面增加如下內(nèi)容:

這樣只要用戶在AutoCAD的命令行中輸入hdmhz命令,就可自動執(zhí)行編好工程dmhz.dvb的宏。

本程序的界面以及利用AutoCAD的面積查詢功能編輯生成的橫斷面圖分別如圖4和圖5所示。

圖4 程序界面圖

圖5 橫斷面圖的生成

6 結(jié) 語

利用本文提供的施工橫斷面圖的繪制和土方計(jì)算方法開發(fā)程序,可以迅速畫出施工橫斷面圖,然后利用AutoCAD提供求面積的工具可以很容易求出施工橫斷面圖的土方量。作者在多年的公路測量中,已經(jīng)使用該程序在安徽大顧店到葉集高速、周六高速、合六高速以及新疆和-鐵-托等公路中得到了實(shí)踐,有效地提高了施工單位和監(jiān)理單位的工作效率。

[1]符鋅砂.公路計(jì)算機(jī)輔助設(shè)計(jì)[M].人民交通出版社,1999年4月第一版,P189

[2]龔健雅.地理信息系統(tǒng)基礎(chǔ)[M].科學(xué)出版,2001年2月第一版,P156~P157

[3]張帆.AutoCAD VBA二次開發(fā)教程[M].清華大學(xué)出版社,2006年1月第一版,P386

[4]李鳳華.AutoCAD2002/2004 VBA開發(fā)指南[M].清華大學(xué)出版社,2001年4月第一版,P2、P15、P426

[5]王衛(wèi)東,蔣紅斐.道路與鐵道工程技算機(jī)輔助設(shè)計(jì)[M].機(jī)械工業(yè)出版社,2004年1月第一版,P146~P149

Shallowly Discussed The Cross Section and Calculaton of Earthwork′s Volume of Road Construction Based on AutoCAD VBA

Ji Kai
(Anhui communications Technology Institute,Hefei 230051,China)

The graph of cross section and the volume of earthwork is the important base of construction′s measurement,This paper discusses the problems of drawing of cross section and calculating of earthwork′s volume in the plateforme of onAutoCAD.The program is convenient for applying in practice and the calculating accuracy is high.

construction;cross section;earthwork′s volume;AutoCAD

1672-8262(2010)04-133-04

P209

B

2009—10—31

紀(jì)凱(1979—),男,講師,在職研究生;研究方向:變形監(jiān)測和測量教學(xué)。

猜你喜歡
平面坐標(biāo)橫斷面土方
奧維互動地圖CAD中線坐標(biāo)精度分析
人民交通(2022年5期)2022-06-16 07:25:12
復(fù)變函數(shù)斜軸橢球變換法的銜接應(yīng)用
測繪工程(2021年5期)2021-09-13 09:01:38
城市道路橫斷面設(shè)計(jì)研究
濮陽市擬建立相對獨(dú)立的平面坐標(biāo)系統(tǒng)
廣州市健康體檢人群種植修復(fù)情況的橫斷面研究
2014年某院醫(yī)院感染橫斷面調(diào)查
中醫(yī)院醫(yī)院感染橫斷面調(diào)查分析
土方計(jì)算在工程實(shí)例中的應(yīng)用
長大連續(xù)梁上CPIII控制點(diǎn)實(shí)時(shí)坐標(biāo)計(jì)算方法研究*
深基坑土方開挖在高層建筑中的應(yīng)用分析
河南科技(2014年5期)2014-02-27 14:08:44
灯塔市| 新昌县| 边坝县| 洛扎县| 襄汾县| 红安县| 英吉沙县| 新昌县| 年辖:市辖区| 宝丰县| 襄城县| 白朗县| 新竹市| 视频| 射阳县| 嘉祥县| 吉水县| 东明县| 汾西县| 固安县| 亚东县| 西乌珠穆沁旗| 星座| 江门市| 洞头县| 彭水| 团风县| 抚远县| 玉树县| 珠海市| 西盟| 禹州市| 金秀| 浙江省| 安西县| 霍林郭勒市| 酒泉市| 石河子市| 皋兰县| 巴楚县| 天柱县|