999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VBA實現(xiàn)批量提取橫斷面數(shù)據(jù)

2016-06-09 08:53:50吳立軍
資源環(huán)境與工程 2016年6期

吳立軍

((湖北國土資源職業(yè)學院,湖北 武漢 430090)

基于VBA實現(xiàn)批量提取橫斷面數(shù)據(jù)

吳立軍

((湖北國土資源職業(yè)學院,湖北 武漢 430090)

隨著GPS RTK的普及和使用,野外斷面數(shù)據(jù)采集變得簡便、靈活,為快速實現(xiàn)由野外三維坐標格式到斷面數(shù)據(jù)格式,提出了實現(xiàn)批量提取斷面數(shù)據(jù)的方法及VBA相關(guān)代碼,使內(nèi)業(yè)計算變得簡單而準確。

斷面數(shù)據(jù);VBA;批量提取

由于GPS RTK數(shù)據(jù)采集十分簡便、靈活,所以現(xiàn)在無論是道路建設,還是水利工程,這些要求測量縱橫斷面的地方,在確定精度滿足設計要求的情況下,一般都會選用這一方法來采集斷面數(shù)據(jù)。本文提出了批量提取全線路橫斷面數(shù)據(jù)生成里程文件的實現(xiàn)方法及VBA相關(guān)代碼,即在提取數(shù)據(jù)之前,先繪縱斷面線(線型為“LWPolyline”);根據(jù)項目要求按一定的間距批量繪制橫斷面線,圖層為“dmx”,線型為“Line”;展繪野外采集的數(shù)據(jù),作適當?shù)耐晟浦?運行程序(圖1)。

圖1 操作界面圖Fig.1 Schematic diagram of section points projection

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

程序結(jié)構(gòu)見圖2所示。

圖2 程序結(jié)構(gòu)圖Fig.2 Structure diagram of program

2 源程序

ThisDrawing.Utility.GetEntity ent,pnt, ‘選擇縱斷面線[1]:

Set SSLn=ThisDrawing.SelectionSets.Add("SSLn") ‘創(chuàng)建一個選擇集

If err Then Set SSLn=ThisDrawing.SelectionSets.Add("SSLn ")

SSLn.Clear

gpCode(0)=-4

dValue(0)="

gpCode(1)=0

dValue(1)="line" ‘橫斷面線為line

gpCode(2)=8

dValue(2)="dmx" ‘斷面線圖層為"dmx"

gpCode(3)=-4

dValue(3)="AND>"

SSLn.Select acSelectionSetAll,,,gpCode,dValue ‘選擇了圖面上所有的橫斷面線

For Each objlin In SSLn

Set line1=objlin

Intpoints=Ent.IntersectWith(line1,acExtendNone) ‘求斷面線與縱斷面線交點

If UBound(Intpoints)=-1 Then GoTo LinNext ‘判斷是否相交

JDist=ObjCurve.GetDistanceAtPoint(Intpoints) ‘求橫斷面與縱斷面線之交點到縱斷面起點距離,即每條橫斷面對應的里程。

由直線起點、終點坐標及直線的角度,并根據(jù)野外點的離散程度,選擇一個合適的偏移距離OffDist(例如0.5 m)計算出一個矩形選擇框的四個坐標。

OffDist=Val(TextBox6.text) ‘選擇離散程度 例如0.5 m

LAng=line1.Angle + 3.1 415 926 / 2

Coord(0)=SP(0)+OffDist * Cos(LAng)

Coord(1)=SP(1)+ OffDist * Sin(LAng)

Coord(2)=0

Coord(3)=EP(0)+OffDist*Cos(LAng)

Coord(4)=EP(1)+ OffDist * Sin(LAng)

Coord(5)=0

Coord(6)=EP(0)-OffDist*Cos(LAng)

Coord(7)=EP(1)-OffDist*Sin(LAng)

Coord(8)=0

Coord(9)=SP(0)-OffDist*Cos(LAng)

Coord(10)=SP(1)-OffDist*Sin(LAng)

Coord(11)=0

用上述選擇框,結(jié)合下面的選擇條件,選擇每條橫斷面附近(左右偏移0.5 m)的高程塊,形成一個選擇集。

Set SSBk=ThisDrawing.SelectionSets.Add("SSBk ") ‘創(chuàng)建一個選擇集

If err Then Set SSBk=ThisDrawing.SelectionSets.Add("SSBk ")

SSBk.Clear

ftype(0)=-4

fdata(0)="

ftype(1)=0

fdata(1)="Insert" ‘選擇對象為塊

ftype(2)=8

fdata(2)="GCD" ‘選擇對象圖層為GCD

ftype(3)=-4

fdata(3)="AND>"

SSBk.SelectByPolygon acSelectionSetCrossingPolygon,Coord,ftype,fdata ‘選擇了斷面線兩側(cè)附近的高程點。

野外采集的數(shù)據(jù)點不一定都在橫斷面線上(圖3),因此在內(nèi)業(yè)處理過程中,將橫斷面線兩側(cè)一定距離(如0.5 m)范圍內(nèi)的點(P1、P2、P3,……)投影到直線上,用垂足(Q1、Q2、Q3,……)坐標計算平距,保證了斷面點平距的準確。

圖3 斷面點投影示意圖Fig.3 Projection schematic diagram of section points

在一定范圍內(nèi),可假定Q1點的高程近似等于P1點的高程(HQ≈HP),用下面這段代碼實現(xiàn)此功能。

For Each Obj In SSBk

Set pointXB=Obj

Pt(0)=pointXB.insertionPoint(0) ‘高程塊的坐標

Pt(1)=pointXB.insertionPoint(1) ‘高程塊的坐標

Pt(2)=0 ‘高程塊的坐標

Fp(0)=pt(0)+ Cos(LAng+ pi / 2)

Fp(1)=pt(1)+ Sin(LAng+ pi / 2)

Fp(2)=0

Set Lineobj=ThisDrawing.ModelSpace.AddLine(Pt,Fp) ‘生成一條過高程點且與橫斷面線垂直的直線。

returnPnt=Lineobj.IntersectWith(objline,acExtendThisEntity) ‘求垂足坐標

Qt(0)=returnPnt(0)

Qt(1)=returnPnt(1)

Qt(2)=pointXB.insertionPoint(2)

…… ‘對各斷面點進行排序,生成相應的斷面格式文件。

Next ‘高程點處理循環(huán)體

LinNext: ‘

Next ‘橫斷面線處理循環(huán)體

3 斷面格式文件為CASS格式

BEGIN,0∶1

-29.999,38.610

-10.877,37.560

-3.927,36.480

0.000,35.069

4.364,38.710

30.001,39.430

BEGIN,20∶2

-30.000,35.330

-6.069,36.620

0.000,34.180

3.760,35.780

30.000,37.540

BEGIN,40∶3

-30.000,35.110

-5.139,35.390

0.000,34.530

4.490,34.870

30.000,35.700

BEGIN,60∶4

-30.000,36.190

-5.483,35.050

0.000,34.610

5.060,34.920

30.000,34.970

……

4 結(jié)論

編程后橫斷面數(shù)據(jù)處理變得非常簡單,執(zhí)行程序前用戶需在程序設置對話框中輸入偏移寬度,然后執(zhí)行程序并選擇縱斷面線,等待數(shù)秒鐘后就可生成斷面里程文件,減少了大量手工輸入工作量和計算量,確保了成果的正確。

[1] 張帆,鄭立楷,王華杰 .AutoCAD VBA開發(fā)精彩實例教程[M] .北京:清華大學出版社,2004.

(責任編輯:陳文寶)

Batch Extraction of Cross-section Data Based on the VBA

WU Lijun

(HubeiLandResourcesVocationalCollege,Wuhan,Hubei430090)

With the popularity and use of total station and GPS RTK,the acquisition of cross-section data has become more simple and flexible. How to simplify the processing of convert the 3D coordinate field data to cross-section data? In this paper,a method and the related VBA scripts has been raised for batch extraction of cross-section data,to do simple and exact computation for the office work.

cross-section data; VBA; batch extraction

2016-08-29;改回日期:2016-10-12

吳立軍(1964-),男,副教授,測繪工程專業(yè),從事數(shù)字化成圖的教學和研究。E-mail:394343007@qq.com

TB22

B

1671-1211(2016)06-1012-03

10.16536/j.cnki.issn.1671-1211.2016.06.041

數(shù)字出版網(wǎng)址:http://www.cnki.net/kcms/detail/42.1736.X.20161109.1112.018.html 數(shù)字出版日期:2016-11-09 11:12

主站蜘蛛池模板: 日本日韩欧美| 在线观看网站国产| 另类欧美日韩| 国产国模一区二区三区四区| 99久久精品国产麻豆婷婷| 呦系列视频一区二区三区| 在线观看无码av五月花| 996免费视频国产在线播放| 制服丝袜在线视频香蕉| 精品91自产拍在线| 黄色网址免费在线| 欧美日在线观看| 成年免费在线观看| 国产凹凸视频在线观看| 台湾AV国片精品女同性| 日韩二区三区| 亚洲男女在线| 国产一二三区在线| 毛片久久久| 欧美成人亚洲综合精品欧美激情 | 99re热精品视频中文字幕不卡| 亚洲午夜18| 五月天丁香婷婷综合久久| 国产精品免费久久久久影院无码| 亚洲精品第1页| 国产精品女人呻吟在线观看| 色哟哟色院91精品网站| 国产精品永久不卡免费视频| 中国丰满人妻无码束缚啪啪| 亚洲 欧美 偷自乱 图片| 在线无码av一区二区三区| 精品国产成人国产在线| 日本人妻一区二区三区不卡影院| 伊人久久精品亚洲午夜| 国产精品原创不卡在线| 欧美色亚洲| 偷拍久久网| 自拍中文字幕| 亚洲无码电影| 中文字幕在线视频免费| 日韩福利视频导航| 亚洲午夜国产片在线观看| 国产91色在线| 麻豆精品视频在线原创| 国产迷奸在线看| 大香伊人久久| 日韩欧美成人高清在线观看| 97在线免费视频| 99精品免费在线| 国产电话自拍伊人| 国产精品黄色片| 欧美日韩亚洲国产主播第一区| 中文字幕人成人乱码亚洲电影| 青青草国产一区二区三区| 亚洲欧美日韩高清综合678| 国产91丝袜在线观看| 亚洲无码不卡网| 精品夜恋影院亚洲欧洲| 久草国产在线观看| 视频国产精品丝袜第一页| 国产青榴视频在线观看网站| 国产毛片基地| 四虎永久免费地址在线网站 | 久久综合一个色综合网| 久久香蕉国产线| 在线观看国产精品第一区免费| 丁香六月综合网| 精品成人免费自拍视频| 国产成人亚洲精品色欲AV| 欧美一区福利| 日本91在线| 色综合久久无码网| 精品亚洲麻豆1区2区3区 | 国产福利2021最新在线观看| 色成人亚洲| 日韩精品免费一线在线观看| 亚洲侵犯无码网址在线观看| 色成人亚洲| 日韩午夜福利在线观看| 日韩免费毛片| 国产97区一区二区三区无码| 亚洲一区网站|