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

?

AutoCAD二次開發(fā)在隧道斷面測量中的應(yīng)用

2015-01-12 05:57:47
山西建筑 2015年33期
關(guān)鍵詞:坐標(biāo)軸二次開發(fā)軸線

張 云 鵬

(中鐵電氣化勘測設(shè)計研究院勘測分院,天津 300250)

·測量·

AutoCAD二次開發(fā)在隧道斷面測量中的應(yīng)用

張 云 鵬

(中鐵電氣化勘測設(shè)計研究院勘測分院,天津 300250)

針對隧道斷面儀自帶軟件無法滿足繪圖要求的問題,采用AutoCAD二次開發(fā)技術(shù)編程對原始測量數(shù)據(jù)進行處理,實現(xiàn)了隧道斷面尺寸圖的自動繪制,并自動標(biāo)記鐵軌左右軌面的位置,極大的提高了繪圖效率。

二次開發(fā),AutoCAD,VBA語言,斷面測量

0 引言

隧道斷面測量是隧道設(shè)計施工中必不可少的一個階段。目前常用的隧道斷面測量方法主要有斷面儀法、全站儀法和三維激光掃描儀法三種。斷面儀法由于儀器價格低廉、操作簡便、精度較高等優(yōu)點,應(yīng)用最為廣泛。激光隧道斷面儀采用激光測距技術(shù)和數(shù)字測角技術(shù),根據(jù)極坐標(biāo)測量原理獲取隧道斷面尺寸,利用圖像后處理軟件能夠迅速得到隧道斷面尺寸圖。

然而,在具體工程實踐當(dāng)中,經(jīng)常要根據(jù)工程需求對隧道斷面數(shù)據(jù)進行后續(xù)處理,而斷面儀自帶軟件功能有限,往往不能滿足需求,需要另行編制數(shù)據(jù)處理程序。

本文結(jié)合京通鐵路電氣化改造項目中隧道斷面測量的實踐,詳細(xì)闡述了基于VBA的CAD二次開發(fā)技術(shù)在隧道斷面測量數(shù)據(jù)處理中的應(yīng)用。

1 VBA簡介

VBA全稱Visual Basic for Applications,是由微軟公司開發(fā)的一種標(biāo)準(zhǔn)宏語言,具有完整的高級語言特征。利用VBA語言對AutoCAD進行二次開發(fā)可以增加或直接修改AutoCAD中的命令、擴大圖形的編輯能力、建立數(shù)據(jù)庫和圖形庫,并能實現(xiàn)對當(dāng)前圖形的直接訪問或修改。此外,VBA所附的屬性數(shù)據(jù)操作更為簡便,可以直接讀取屬性文件,或者在VBA下或CAD圖上輸入。VBA實現(xiàn)了面向?qū)ο蟮拈_發(fā)技術(shù),改變了傳統(tǒng)的開發(fā)模式,使開發(fā)人員不用了解AutoCAD的內(nèi)核,即可利用當(dāng)前流行的可視化開發(fā)語言進行內(nèi)部開發(fā),極大地提高了開發(fā)效率,是AutoCAD二次開發(fā)的理想工具。

2 工程要求

京通鐵路電氣化改造項目初測時采用了BJSD-2E型激光隧道斷面測距儀對沿線隧道進行斷面測量。由于測量工作在既有鐵路上進行,在工作期間鐵路正常運行,而隧道中心軸線一般在鐵路左右軌之間,不便于在中軸線上架設(shè)儀器,因此,測量時將儀器直接架設(shè)在軌頂上,設(shè)置好采樣間隔及測量點數(shù)以后,由軟件控制儀器自動完成測量工作。根據(jù)工程需求,本次隧道斷面測量需要提供以隧道中心軸線為豎軸的隧道斷面實際尺寸圖,并在圖上標(biāo)記出隧道中心軸線及鐵路左右鐵軌的位置。

3 程序開發(fā)的主要功能模塊

本程序是針對BJSD-2E型激光隧道斷面儀的測量數(shù)據(jù)開發(fā)的。BJSD-2E型激光隧道斷面儀的原始測量數(shù)據(jù)可以導(dǎo)出為txt數(shù)據(jù)文件,文件格式如表1所示。

表1 BJSD-2E型激光隧道斷面儀原始數(shù)據(jù)文件 m

程序可以實現(xiàn)的功能主要有斷面測點的展繪,測點連線,計算隧道中心軸線位置及鐵軌位置。以下對各項功能的開發(fā)做詳細(xì)論述。

3.1 計算隧道中心軸線位置

BJSD-2E型激光隧道斷面儀測量的數(shù)據(jù)以設(shè)站位置為測量坐標(biāo)系原點,而工程要求以隧道中心軸線為豎軸,因此需要先計算出隧道中心軸線的位置,然后以隧道中心軸線為豎軸將測點坐標(biāo)進行平移。

為了便于數(shù)據(jù)存儲,需要先定義一個數(shù)據(jù)結(jié)構(gòu)用于存儲每個測點,代碼如下:

Public Type ppoint

id As Integer

localtion(1 To 3) As Double

End Type

上述數(shù)據(jù)結(jié)構(gòu)ppoint包括兩個屬性,其中id用于存儲測點點號,location(1 To 3)用于存儲每個測點的坐標(biāo)。由于AutoCAD中默認(rèn)的坐標(biāo)格式是三維坐標(biāo),因此要給每個測點的location(3)賦值0。需要指出的是,原始數(shù)據(jù)中的z坐標(biāo)是測量坐標(biāo)系中的z,讀入CAD時是當(dāng)作繪圖坐標(biāo)系中的y坐標(biāo)讀入的,對應(yīng)數(shù)據(jù)結(jié)構(gòu)中l(wèi)ocation(2)。

由于鐵路隧道斷面形狀比較規(guī)則,表面也較為光滑,因此隧道斷面中心軸線位置可以根據(jù)斷面測量點x坐標(biāo)的最大值和最小值進行計算:

(1)

其中,xh為隧道中心軸線的x坐標(biāo);xmin,xmax分別為斷面測點x坐標(biāo)的最小值和最大值。

由式(1)可知,要計算隧道中心軸線位置需要先求出測點x坐標(biāo)的最大值和最小值。

求x最大值的子過程代碼如下:

Public Sub xmax(a() As ppoint)′求x最大值

Dim i As Integer, j As Integer, pmax As Double

pmax=a(1).localtion(1)

For i=2 To UBound(a)

If a(i).localtion(1)>pmax Then

pmax=a(i).localtion(1)

End If

Next i

xxmax = pmax

End Sub

代碼中的xxmax即為x的最大值,求x的最小值代碼與之類似。求出x坐標(biāo)的最大值和最小值后就可按照式(1)計算隧道中心軸線位置。

3.2 斷面測點展繪

求出隧道中心軸線x坐標(biāo)后,即可將原始測量坐標(biāo)平移到以隧道中心軸線為豎軸的坐標(biāo)系中。

平移過程按式(2)進行:

(2)

其中,x′,y′分別為平移后測點的x坐標(biāo)和y坐標(biāo);x0,z0均為測點的原始測量坐標(biāo);xh為隧道中心軸線的x坐標(biāo)。平移后原始測量數(shù)據(jù)中的z坐標(biāo)轉(zhuǎn)換為AutoCAD繪圖坐標(biāo)系下的y坐標(biāo)。坐標(biāo)平移的過程可以通過以下代碼實現(xiàn):

p1(i).localtion(1) = p1(i).localtion(1)-xh

代碼中的localtion(1)為測點的x坐標(biāo)。經(jīng)過平移后的測點坐標(biāo)可直接用于展繪。繪制測點可以使用VBA中的Addpoint方法,具體代碼如下:

Set pointObj = ThisDrawing.ModelSpace.AddPoint(p1(i).localtion)

測點展繪完后還需要將測點依次連接起來,可通過以下代碼實現(xiàn):

For i=2 To t

Set lineobj=ThisDrawing.ModelSpace.AddLine(p1(i - 1).localtion, p1(i).localtion)

Next i

Set lineobj=ThisDrawing.ModelSpace.AddLine(p1(t).localtion, p1(1).localtion)

上述代碼中先利用一個For循環(huán)依次從第一點連接到最后一點,最后再將最后一點同第一點連接,使圖形閉合。

展繪結(jié)果見圖1。

由于繪圖時對原始測量坐標(biāo)進行了平移,為了便于讀圖還需要繪制坐標(biāo)軸。繪制坐標(biāo)軸時首先根據(jù)坐標(biāo)的最大值和最小值確定坐標(biāo)軸線的起點和終點,然后將坐標(biāo)軸以相同間隔等分,并標(biāo)注刻度。

將坐標(biāo)軸等分時可以利用窮舉法來確定等分份數(shù),確定豎軸正半軸等分份數(shù)的代碼如下:

Do While 0.5*n3 < zzmax

n3=n3+1

Loop

上述代碼中以0.5 m為間隔對豎軸正半軸進行等分。zzmax為測點z坐標(biāo)的最大值,n3為豎軸正軸等分份數(shù),當(dāng)0.5*n3的值大于zzmax時,n3即為豎軸正半軸等分份數(shù)。確定等分份數(shù)以后,再依次繪制坐標(biāo)軸刻度線并進行標(biāo)注。坐標(biāo)軸刻度線本質(zhì)上是一列短直線,因此繪制刻度線時可以采用AddLine方法,添加刻度值可以采用AddText方法。

繪制豎軸的核心代碼如下:

Set line1obj = ThisDrawing.ModelSpace.AddLine(sp2, ep2)′繪制豎軸

For i = 1 To n3

txtp(1) = 0.15

txtp(2) = 0.5 * i

txtp(3) = 0

txtr = i * 0.5

Set txtobj = ThisDrawing.ModelSpace.AddText(txtr, txtp, 0.1)

sp1(1) = 0.12

sp1(2) = i * 0.5

sp1(3) = 0

ep1(1) = xh-xh

ep1(2) = i * 0.5

ep1(3) = 0

Set line2 = ThisDrawing.ModelSpace.AddLine(sp1, ep1)

Next i

上述代碼中,sp2和ep2分別為豎軸的起點和終點,用于繪制豎軸。txtp為文字插入點的坐標(biāo),txtr為刻度數(shù)值,用于標(biāo)注坐標(biāo)軸刻度值。繪制橫軸的過程與橫軸類似。

坐標(biāo)軸繪制效果見圖2。

3.3 鐵軌軌面位置標(biāo)注

在隧道的改造過程中,鐵軌軌面的位置十分重要,因此需要在圖上明確標(biāo)記出鐵軌左右軌的位置。

由于現(xiàn)場作業(yè)條件的限制,斷面掃描儀只能架設(shè)在鐵軌的軌頂上,因此原始測量坐標(biāo)系的原點在左軌或者右軌上。由于京通鐵路是單線鐵路,沿線隧道中只有一條軌道,因此隧道中心軸線位置大致位于鐵路中心。隧道中心軸線位置xh可根據(jù)式(1)算出。根據(jù)xh的正負(fù)可以判斷出左軌和右軌的位置:若xh>0則原點為左軌,根據(jù)式(2)左軌x坐標(biāo)為-xh,左軌x坐標(biāo)加上標(biāo)準(zhǔn)軌寬1.435 m即為右軌x坐標(biāo);若xh<0則原點為右軌,右軌x坐標(biāo)為-xh,左軌x坐標(biāo)為-xh-1.435 m。

4 結(jié)語

在工程實踐當(dāng)中,一臺斷面儀日均測量斷面40個~50個,斷面尺寸圖的繪制工作量巨大,若完全由人工完成耗時較長。采用基于VBA的AutoCAD二次開發(fā)技術(shù)編程對測量數(shù)據(jù)進行處理,可以實現(xiàn)繪圖工作的自動完成,繪圖人員只需將原始測量數(shù)據(jù)導(dǎo)入繪圖程序即可,極大地提高了工作效率。由此可以看出,將AutoCAD的二次開發(fā)技術(shù)應(yīng)用于測繪工作中可以極大的提高數(shù)據(jù)處理準(zhǔn)確性及工作效率,具有重要的現(xiàn)實意義。

[1] 廖胤齊.地鐵隧道結(jié)構(gòu)斷面測量方法及對比分析.北京測繪,2014(4):84-86.

[2] 唐志煒.基于Visual Lisp的AUTOCAD的二次開發(fā).長春:吉林大學(xué),2008.

[3] 康保成.Auto LISP 程序在 AutoCAD 中的應(yīng)用實例.山西建筑,2002,28(3):157-158.

[4] 牟 航.基于VBA的CAD二次開發(fā)無縫線路配軌系統(tǒng)研究.蘭州:蘭州交通大學(xué),2013.

[5] 黃 武.基于Lisp的CAD二次開發(fā)在排水?dāng)?shù)據(jù)處理中的應(yīng)用.地理空間信息,2014(10):137-139.

[6] 李與權(quán).論AutoCAD的二次開發(fā).電腦編程技巧與維護,1995(3):42-45.

[7] 陸柏樹,劉云彪,李同林.AutoCAD VBA 在滑坡穩(wěn)定性計算方面的應(yīng)用.資源環(huán)境與工程,2007(3):331-334.

Application of AutoCAD secondary development in the tunnel section measuring

Zhang Yunpeng

(SurveyBranchInstitute,ChinaRailwayElectrificationSurveyDesignandResearchInstitute,Tianjin300250,China)

In order to solve the problem that the sofrware of tunnel laser profiler offered by manufacturer can not meet the the requirements of engineering drawings, this paper processes the original measurement data using the program compiled by AutoCAD secondary development technology. This program can draw the tunnel section size chart automatically, and marker the position of the rail tracks, which greatly improves the efficiency of drawing.

secondary development, AutoCAD, VBA language, section measuring

2015-09-14

張云鵬(1987- ),男,碩士,助理工程師

1009-6825(2015)33-0201-03

U452.14

A

猜你喜歡
坐標(biāo)軸二次開發(fā)軸線
用坐標(biāo)軸平移妙解斜率和(或積)為定值問題
曲軸線工件劃傷問題改進研究
淺談基于Revit平臺的二次開發(fā)
甘肅科技(2020年20期)2020-04-13 00:30:02
淺談Mastercam后處理器的二次開發(fā)
模具制造(2019年3期)2019-06-06 02:11:02
西門子Easy Screen對倒棱機床界面二次開發(fā)
基于回歸分析的水電機組軸線曲折預(yù)判斷分析
巧用仿射變換妙解高考解析幾何題
行書章法淺析(十五)書寫應(yīng)把握行軸線
凸輪軸孔軸線與止推面垂直度超差問題研究
河南科技(2014年16期)2014-02-27 14:13:21
基于Pro/E二次開發(fā)的推土鏟參數(shù)化模塊開發(fā)
遂昌县| 罗江县| 日照市| 五河县| 武平县| 武安市| 都兰县| 龙陵县| 甘南县| 上林县| 博爱县| 普定县| 额尔古纳市| 固安县| 莆田市| 江津市| 措勤县| 陵川县| 海门市| 孝昌县| 昭觉县| 称多县| 遵义县| 万载县| 新丰县| 新干县| 杭锦后旗| 沽源县| 青海省| 甘孜县| 新巴尔虎左旗| 介休市| 凭祥市| 泰州市| 泸水县| 金寨县| 克什克腾旗| 旬邑县| 汉阴县| 高雄市| 徐汇区|