基于EXCEL VBA的隧道断面超欠挖自动成图分析
2020-03-30唐友强中铁十一局集团第五工程有限公司重庆400030
唐友强 (中铁十一局集团第五工程有限公司,重庆 400030)
1 批量绘图流程
1.1 超欠挖数据计算
使用计算程序将外业使用全站仪采集的平面坐标数据转换为对应的里程、偏距值,取偏距和高程到内轨顶的差值为采集点在断面坐标系中的横、纵坐标,并以此坐标与各个图元的相对位置找到与之对应的图元,计算点到对应图元的垂点坐标得到超欠挖数据。
1.2 EXCEL与AutoCAD的通信
EXCEL具有强大的数据处理能力,而AutoCAD具有完善的绘图功能。通过建立EXCEL与AutoCAD的通信将两者的优点结合起来,可以把大量数据中所蕴涵的信息提取出来,以非常直观的方式进行展示。EXCEL与AutoCAD的通信是基于ActiveX自动化界面技术,这种完全面向对象的技术为应用程序提供了一个数据中转站,可实现多种程序之间的数据共享[1]。
1.3 批量绘图计算
根据断面图的图元组成类型及对应的图元数据,如半径、角度、距离等确定绘制标准断面的AutoCAD命令。断面图绘制时需要将相近里程的采集点绘制在同一断面上,并在图上标注里程。由此,可使用EXCEL VBA判断语句,根据计算得到的里程得出需要绘制的标准断面的数量以及每个断面的平均里程。利用EXCEL VBA循环命令按次序将标准断面图的横坐标递增一合适常数,进而画出间距相等的多个标准断面图。同理,可将由超欠挖数据生成的标注命令绘制在对应的标准断面图上。
2 程序实现
2.1 超欠挖数据计算
超欠挖标注是标注出点到标准断面的垂直距离,为实现批量操作需使用AutoCAD中的对齐式线性标注[2],此方法需根据标准断面计算出垂点坐标。标准断面通常是由圆弧与直线组成的轴对称图形。对于圆弧,可比较采集点、圆弧起点、圆弧终点到圆心连线的斜率,来判断与点对应的圆弧。对于直线段,可根据点到直线段所在直线的的垂点是否在直线段上进行判定。
若与采集点对应的为圆弧,则可由式(1)、(2)得到点到圆弧的垂点坐标:
式中:XC,YC是垂点的横纵坐标;
XR,YR是圆弧圆心的横纵坐标;
X,Y,是实测点的横纵坐标;
R是圆弧半径,S是实测点到圆心的圆心距。若对应图元为直线则先根据直线两端点坐标求出直线方程,再根据式(3),(4)求出点在直线段上的垂点坐标:
式中:XC,YC是垂点的横纵坐标;
X,Y是实测点的横纵坐标;
a、b、c分别为直线方程中X,Y的系数和常数项。
2.2 EXCEL与AutoCAD的通信
EXCEL与AutoCAD的通信是把AutoCAD类型库加载到EXCEL VBA程序中[3]。其具体操作是打开EXCEL VBA 程序编辑界面,点击[工具]/[引用],勾选[AutoCAD 2018 Type Library],如图 1。
勾选完成后需要使用如下代码打开AutoCAD:
Set acadApp=GetObject(,"AutoCAD.Application")'为EXCEL分配一个AutoCAD应用
图1
2.3 超欠挖断面图批量生成
断面批量生成流程为:
①将数据按里程大小排序,根据里程差值确定断面数量;
②画出对应数量的标准断面,并标注相关信息;
③求出每个断面的平均里程,并按顺序标注在标准断面图上;
④以对齐线性标注形式将计算得到的超欠挖数据按里程标注在对应的标准断面图上。
因篇幅所限现将部分代码展示如下:
3 实例分析
渝怀二线铁路新圆梁山隧道全长11172m,是渝怀二线铁路头号控制性工程,隧道最大埋深约774m,穿越3处溶洞,5条断层,地质构造异常复杂,施工难度大。施工过程中为了在保证施工质量的前提下降低施工成本,需要在隧道初期支护完成后进行断面超欠挖绘图,并根据所绘图形制定下一步施工计划。
首先根据隧道里程确定衬砌类型为Ⅲb-W,将衬砌的标准断面数据录入到EXCEL表格中,其中主要有三个圆弧的半径与圆心角,两条直线段由起点到终点的坐标差。然后将外业使用全站仪采集的初期支护断面数据导入EXCEL表格,截取部分数据,如图2所示,点击“超欠挖批量成图”得到超欠挖断面图,部分断面超欠挖图如图3所示。
与现有方法相比,此方法具有以下优点:
①成图效率高,根据里程,一次可自动生成多个超欠挖断面图;
②超欠挖直观,使用“点位标注”和“对齐线性标注”,能直观的反应出断面的超欠挖情况;
③断面信息完整。使用“文字注记”将各种信息自动标注在断面图上,便于查阅使用。
图3