汲姣,张永彬,汪金花,郭丽娜,杨少强,刘佳丽
(华北理工大学矿业工程学院,河北唐山063009)
基于AutoCAD VBA的导线平差程序设计
汲姣,张永彬,汪金花,郭丽娜,杨少强,刘佳丽
(华北理工大学矿业工程学院,河北唐山063009)
导线平差;程序设计;VBA;AutoCAD;Excel
在导线测量中,为了得到更为可靠的导线点坐标,必须对数据进行平差计算,而传统导线平差计算工作量大、过程繁琐,且易受人为因素影响。因此,根据导线的近似平差原理,以AutoCAD内置的菜单编程语言VBA为开发平台,设计程序进行导线平差计算,并在Auto-CAD中绘出平差结果及导线的几何图形,从而实现了可视化。
导线测量是平面控制测量中常用的方法之一,导线的线型简单,测量计算方便,所以得到了广泛的应用[1-3],也因而出现了许多测量平差程序设计,但大多采用C语言、Visual C++语言及Visual Basic语言进行程序的编制,这些语言在生成软件、进行封装等方面比较有优势[3-6]。然而,仅仅就实际应用的情况而言,在国内外广为流行使用的绘图工具AutoCAD却有着巨大的优势,而其自带的二次开发语言VBA也逐渐成为一门重要的语言,VBA不仅结合了AutoCAD和VB的功能,同时可实现与Office系列软件之间的互操作性,进而能够快速计算出满足用户要求的数据,提高用户工作的效率[7-10]。因此,该项目选择VBA为编程语言,通过Excel VBA和AutoCAD VBA进行交互式编程,实现导线近似平差的计算与导线网的绘制,方便用户结合实地地形做规划设计。
在导线的平差计算中,主要有严密平差和近似平差2种方法。严密平差比较繁琐,要进行多次的平差改正,而且其计算公式和方法也是相当复杂;而近似平差一般都是配附,在一般的测图作业、工程测量作业等项目中,近似平差是完全可行的。近似平差与精密平差的平差结果只相差在毫米级,但计算过程相对简单,可以大大减少工作量,提高工作效率[2]。而且当观测精度较高时,选用近似平差完全可以满足实际工程需要,因此近似平差有很高的实用价值。
导线测量的目的是获得各导线点的平面直角坐标,它是根据已知点坐标,以及观测角度和边长,用近似平差方法进行导线测量的计算。导线近似平差的基本思路是将角度误差和边长误差分别进行平差处理,先进行角度闭合差的分配,在此基础上再进行坐标闭合差的分配,通过调整坐标闭合差,以达到处理角度的剩余误差和边长误差的目的。导线主要包括:附和导线、闭合导线和支导线[11-12]。
2.1 程序设计思路
本程序充分利用Excel工作表强大的计算功能,计算得到导线点的坐标和连接角,然后利用AutoCAD实现Excel表格的绘制和导线网几何图形的绘制。根据平面控制导线平差的主要内容,设计了程序的总体框架图,如图1所示:
图1 导线平差程序总体框架图
2.2 关键程序的实现
导线近似平差计算与导线网绘制主要程序如下:(1)角度闭合差及方位角的计算
For i=5To n+3
Spreadsheet1.Cells(i,12).Value=Spreadsheet1.Cells(i-1,12).Value+
Spreadsheet1.Cells(i,9).Value-180
Next i
JDC=(Spreadsheet1.Cells(i,12).Value-B)*3600;%角度闭合差。
For i=4To n+3
Spreadsheet1.Cells(i,11).Value=Spreadsheet1.Cells(i,9).Value+fJD
Next i;%平差后的坐标方位角。
(2)坐标增量闭合差及坐标的计算
dx=ZJX-ZX
dy=ZJY-ZY;%坐标增量闭合差。
For i=4To n+2
Spreadsheet1.Cells(i,20).Value=Spreadsheet1.Cells(i-1,20).Value+
Spreadsheet1.Cells(i,18).Value
Spreadsheet1.Cells(i,21).Value=Spreadsheet1.Cells(i-1,21).Value+
Spreadsheet1.Cells(i,19).Value
Next i;%平差后的坐标值。
(3)Excel表格在AutoCAD中的绘制
ptLT(0)=ptInsert(0)+excelrg.Left-ranges.Left
ptLT(1)=ptInsert(1)-(excelrg.top-ranges.top)
ptLT(2)=0
Set objLine=ThisDrawing.ModelSpace.AddLine(ptLT,PtLB);%绘制表格的边框。
Dim objText As AcadText;%绘制表格中的文字。
(4)导线网几何图形在AutoCAD中的绘制
Set objLine=AddLineXY(x1,y1,x2,y2);%绘制导线。
Set AddDimAligned=ThisDrawing.ModelSpace.AddDimAligned(pt1,pt2,Position);%标注导线长度。
Set AddDimAngular=AddDimAngular(CenterPoint,FirstPoint,SecondPoint,TextPoint);%标注连接角。
VBA语言编程进行数据处理的特点和优点为近似平差计算提供了良好的平台,可以实现闭合导线、附合导线和支导线的近似平差计算,图2是程序的操作界面。
图2 导线近似平差操作界面
以石家庄市井陉县某项目观测的附合导线数据为例进行计算。表1为外业观测数据,其中A,B为已知点,坐标为(739728.2800,764871.8600),其地理坐标表示如图3所示。
图3 A(B)点地理坐标
表1 附合导线观测数据
程序解算流程为:
(1)按照提示把已知数据和观测数据导入到程序中,并选择导线等级和坐标精度保留格式。
(2)单击“平差计算”,即可在界面中直接读取平差结果,同时可以检核自己的测量结果是否符合规范要求,进而考虑是否需要重测。
(3)单击“平差结果”即可导出Excel表格文件,可以根据需要进行保存或者打印。
(4)单击“平差后图形”即可在AutoCAD中显示附合导线的几何图形,包括点号、连接角和导线长度,同时也可将(3)中的Excel表格绘制在AutoCAD中,方便用户结合实际情况目测判断自己的测量数据是否符合实际地形情况,也可用于碎部测量的检核。用户可根据需求将此结果一并保存或者打印,方便日后的再次利用。最终的可视化结果如图4所示,图4中左下角为附合导线平差计算结果图,放大后效果如表2所示。
图4 附合导线网形图
表2 附合导线平差结果图
(1)研究使用VBA开发平台,以面对对象的设计模式,并对平面控制测量中导线测量的近似平差计算进行了程序设计。大大减少了人工计算的工作量,提高了工作效率,并且通过实例验证其计算结果可满足要求,进而避免了人为计算中出现的错误。
(2)本程序最终可在工程绘图软件AutoCAD中实现可视化,既可方便用户实地踏勘检验使用,也可方便用户熟练进行其他操作,如检核碎部测量,具有很高的实用价值。然而本程序还未能实现高程问题的解算,这是本文后续研究的主要内容。
[1] 徐文.导线网平差系统的设计与实现[D].西安:西安电子科技大学,2011.
[2] 潘正风,程效军,成枢,等.数字测图原理与方法[M].武汉:武汉大学出版社,2004.
[3] 何尤刚.导线平差程序设计与应用[J].华南金融电脑,2009,(06):50-52.
[4] 张贺,徐茂林,宫雨生.基于Visual Basic的导线平差程序设计[J].辽宁科技大学学报,2014,37(05):504-508.
[5] 刘科,廖中平,余泽彬.Excel VBA在导线近似平差计算中的应用[J].地矿测绘,2015,32(02):31-34.
[6] 向继平,骆忠爱.Excel在导线平差计算中的应用[J].矿上测量,2012,(06):32-37.
[7] 李祥,李遥玉.基于Excel VBA与CAD VBA联合编程技术实现快速编制绘图程序[J].企业技术开发,2015,34(10):36-38.
[8] 张帆.AutoCAD VBA二次开发教程[M].北京:清华大学出版社,2006.
[9] 叶以农.AutoCAD2000Active与VBA参考手册[M].北京:中国电力,2009.
[10] Sutphin,Joe.AutoCAD 2006VBA:A Programmer's Reference[M].Apress,2014.
[11] 任国栋.导线平差程序设计[J].露天采矿技术,2015,(07):45-49.
[12] 李智勇.导线近似平差计算[J].全球定位系统,2014,39(03):97-99.
Program Design of Traverse Adjustment Based on AutoCAD VBA
JI Jiao,ZHANG Yong-bin,WANG Jin-hua,GUO Li-na,YANG Shao-qiang,LIU Jia-li
(College of Mining Engineering,North China University of Science and Technology,Tangshan Hebei 063009,China)
traverse adjustment;programming;VBA;AutoCAD;Excel
In order to get more reliable traverse point coordinates,the adjustment computation of data should be carried out in traverse survey,but the work of the traditional adjustment calculation of the traverse is too heavy,the process is too complicated,and it is more influenced by human factors.Therefore,according to the principle of approximate adjustment of the traverse,this program was designed with the VBA programming language,which is built in AutoCAD,as the development platform.Then the adjustment of the traverse was calculated and the adjustment results and the geometric figure were drawn out with AutoCAD software.Thus the visualization of result is realized.
P207+.2
A
2095-2716(2016)04-0032-06
2016-04-10
2016-07-14