用Excel程序快速计算公路工程逐桩坐标

更新时间:2023-05-21 03:08:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

H

现代公路

IGHWAY

用Excel程序快速计算公路工程逐桩坐标

文/左 卿

引言

在公路工程设计及施工过程中,逐桩坐标的计算是一项必不可少的工作,尤其近些年随着全站仪的普及使用,坐标放样法因速度快、精度高而被广泛应用,逐桩坐标计算的工程量也因此而大大增加。例如:某高速公路某一合同段有20公里的路基,按照常规的设计及施工方法,不考虑曲线加桩,按每20m一个断面,每个断面左右幅2个点,则需要计算1000个点2000个坐标。如此大的计算量如果采用传统的计算器计算,不仅费时,还难免出错。笔者从事多年施工工作,针对这一情况,利用Microsoft Office中的Excel电子表格的编程计算功能,设计了一套包括直线、缓和曲线和圆曲线的坐标计算程序,该计算程序具有快速、精确、程序简单、使用方便等优点,较其他编程软件编制的计算程序更灵活、更适用。

坐标计算

直线段逐桩坐标

首先介绍函数Value(MIDB(“ZH”,2,n)&MIDB(“ZH”,n+3,7)),n表示公里数的位数,当里程公里数为1位数,则n=1,当公里数为2位数,n=2,当里程公里数为3位数时,n=3……。如ZH=K136+700,运行该函数,n=3,结果=136700,其目的为将K136+700文本数据(字符串)去掉“K”和“+”,并转换成数字格式。

则里程≤ZH的前直线上任意桩号坐标计算:

在Excel某一单元格中,坐标计算编辑公式为:X= Xj+(T+Value(MIDB(“ZH”,2,n)&MIDB(“ZH”,n+3,7))-Value(MIDB(“K”,2,n)&MIDB(“K”, n+3,7)))*cos((A1+180)*PI()/180)

Y= Yj+(T+Value(MIDB(“ZH”,2,n)&MIDB(“ZH”, n+3,7))-Value(MIDB(“K”,2,

程序设计

程序设计初步

打开Microsoft Office Excel2003,新建工作表book1,并将其命名为“公路工程逐桩坐标计算表”。

将设计的公路直曲线、主点桩号等参数输入该工作表内。

计算图示及参数的规定:如图1,交点坐标JD(Xj,Yj),转角值α,曲线半径R,缓和曲线长度Ls,切线长度T,计算方位角A。任意里程桩号为“K×××+×××”(简写为K),曲线上ZH/HZ(HY/YH)点里程为:“K×××+×××”(简写为ZH/HZ(HY/YH)),方位角A的单位为°。一般里程桩号书写格式为“K公里+米”,公里数一般为1~3位数,米数统一采用7位数(精确到小数点后3位)。同时,Excel中三角函数的参数单位为弧度。

n)&MIDB(“K”,n+3,7)))*sin((A1+180)*PI()/180)

里程K≥HZ的后直线上任意桩号坐标计算为:X= Xj +(T+Value(MIDB(“K”,2,n)&MIDB(“K”, n+3,7))-Value(MIDB(“HZ”,2,n)&MIDB(“HZ”, n+3,7)))*cos(A2*PI()/180);

Y= Yj +(T+Value(MIDB(“K”,2,n)&MIDB(“K”, n+3,7))-Value(MIDB(“HZ”,2,n)&MIDB(“HZ”, n+3,7)))*sin(A2*PI()/180)第一缓和曲线(ZH~HY)内任意点坐标

X= Xj +T*cos((A1+180)*PI()/180)+ ((VALUE(MIDB("k",2,n)&MIDB("k",n+3,7))-VALUE

(MIDB("ZH",2,n)&MIDB("ZH",n+3,7)))-(VALUE(MIDB("k",2,n)&MIDB("k",n+3,7))-VALUE(MIDB("ZH",2,n)&MIDB("ZH",n+3,7)))^5/(40*R^2*Ls^2)+(VALUE(MIDB("k",2,n)&MIDB("k",n+3,7))-VALUE(MIDB("ZH",2,n)&MIDB("ZH",n+3,7)))^9/(3456*R^4*Ls^4))/COS((VALUE(MIDB("k",2,n)&MIDB("k",n+3,7))-VALUE(MIDB("ZH",2,n)&MIDB("ZH",n+3,7)))^2/(6*R*Ls))*COS((A1±30*(VALUE

(MIDB("k",2,n)&MIDB("k",n+3,

84TRANSPOWORLD 2011No.17(Sep)

7))-VALUE(MIDB("ZH",2,n)&MIDB("ZH",n+3,7)))^2/(PI()*R*Ls))*PI()/180)

Y= Yj +T*sin((A1+180)*PI()/180)+ ((VALUE(MIDB("k",2,n)&MIDB("k",n+3,7))-VALUE(MIDB("ZH",2,n)&MIDB("ZH",n+3,7)))-(VALUE(MIDB("k",2,n)&MIDB("k",n+3,7))-VALUE(MIDB("ZH",2,n)&MIDB("ZH",n+3,7)))^5/(40*R^2*Ls^2)+(VALUE(MIDB("k",2,n)&MIDB("k",n+3,7))-VALUE(MIDB("ZH",2,n)&MIDB("ZH",n+3,7)))^9/(3456*R^4*Ls^4))/COS((VALUE(MIDB("k",2,n)&MIDB("k",n+3,7))-VALUE(MIDB("ZH",2,n)&MIDB("ZH",n+3,7)))^2/(6*R*Ls))*sin((A1±30*(VALUE(MIDB("k",2,n)&MIDB("k",n+3,7))-VALUE(MIDB("ZH",2,n)&MIDB("ZH",n+3,7)))^2/(PI()*R*Ls))*PI()/180)

计算式中的“±”取舍为,当路线右转时取“+”,左转时取“-”。

第二缓和曲线(HZ-YH)内任意点坐标

X= Xj +T*cos(A2*PI()/180)+ ((VALUE(MIDB("HZ",2,n)&MIDB("HZ",n+3,7))-VALUE(MIDB("K",2,n)&MIDB("K",n+3,7)))-(VALUE(MIDB("HZ",2,n)&MIDB("HZ",n+3,7))-VALUE(MIDB("K",2,n)&MIDB("K",n+3,7)))^5/(40*R^2*Ls^2)+(VALUE(MIDB("HZ",2,n)&MIDB("HZ",n+3,7))-VALUE(MIDB("K",2,n)&MIDB("K",n+3,7)))^9/(3456*R^4*Ls^4))/COS( (VALUE(MIDB("HZ",2,n)&MIDB("HZ",n+3,7))-VALUE(MIDB("K",2,n)&MIDB("K",n+3,7)))^2/(6*R*Ls))*COS((A2+180±30*(VALUE(MIDB("HZ",2,n)&MIDB("HZ",n+3,7))-VALUE(MIDB("K",2,n)&MIDB("K",n+3,7)))^2/(PI()*R*Ls))*PI()/180)

Y= Yj +T*sin(A2*PI()/180)+ ((VALUE(MIDB("HZ",2,n)&MIDB("HZ",n+3,7))-VALUE(MIDB("K",2,n)&MIDB("K",n+3,7)))-(VALUE(MIDB("HZ",2,n)&MIDB("HZ",n+3,7))-VALUE(MIDB("K",2,n)&MIDB("K",n+3,7)))^5/(40*R^2*Ls^2)+(VALUE(MIDB("HZ",2,n)&MIDB("HZ",n+3,7))-VALUE(MIDB("K",2,n)&MIDB("K",n+3,7)))^9/(3456*R^4*Ls^4))/COS( (VALUE(MIDB("HZ",2,n)&MIDB("HZ",n+3,7))-VALUE(MIDB("K",2,n)&MIDB("K",n+3,7)))^2/(6*R*Ls))*sin((A2+180±30*(VALUE(MIDB("HZ",2,n)&MIDB("HZ",n+3,7))-VALUE(MIDB("K",2,n)&MIDB("K",n+3,7)))^2/

(PI()*R*Ls))*PI()/180)

计算式中的“±”取舍为,当路线右转时取“-”,左转时取“+”。圆曲线内任意点坐标

从HY~YH方向计算时

X=Xj+T*cos((A1+180)*PI()/180)+(Ls-Ls^3/(40*R^2)+Ls^5/(3456*R^4))/COS(Ls/(6*R))*COS((A130*Ls/(PI()*R))*PI()/180)+2*R*sin( (value(midb(“K”2n)&midb(“K”n+37))-value(midb(“HY”,2,n)&midb(“HY”,n+3,7)))/(2*R))*cos((A1±90*((value(midb(“K”,2,n)&midb(“K”,n+3,7))-value(midb(“HY”,2,n)&midb(“HY”,n+3,7)))+Ls)/(PI()*R))*PI()/180)

Y=Yj+T*sin((A1+180)*PI()/180)+(Ls-Ls^3/(40*R^2)+Ls^5/(3456*R^4))/COS(Ls/(6*R))*sin((A130*Ls/(PI()*R))*PI()/180)+2*R*sin( (value(midb(“K”2n)&midb(“K”n+37))-value(midb(“HY”,2,n)&midb(“HY”,n+3,7)))/(2*R))*sin((A1±90*((value(midb(“K”,2,n)&midb(“K”,n+3,7))-value(midb(“HY”,2,n)&midb(“HY”,n+3,7)))+Ls)/(PI()*R))*PI()/180)

计算式中的“±”取舍为,当路线右转时取“+”,左转时取“-”,式中2个“±”同号。

从YH~HY方向计算时

X=Xj+T*cos(A2*PI()/180)+(Ls-Ls^3/(40*R^2)+Ls^5/(3456*R^4))/COS(Ls/(6*R))*COS((A2+18030*Ls/(PI()*R))*PI()/180)+2*R*sin( (value(midb(“YH”2n)&midb(“YH”n+37))-value(midb(“K”,2,n)&midb(“K”,n+3,7)))/(2*R))*cos((A2+180±90*((value(Midb(“YH”,2,n)&midb(“YH”,n+3,7))-value(midb(“K”,2,n)&midb(“K”,n+3,7)))+Ls)/(PI()*R))*PI()/180)

Y= Yj +T*sin(A2*PI()/180)+ (Ls-Ls^3/(40*R^2)+ Ls^5/(3456*R^4))/COS(Ls/(6*R))*sin((A2+180±30*Ls/(PI()*R)) *PI()/180)+2*R*sin( (value(midb(“YH”,2,n)&midb(“YH”,n+3,7))-value(midb(“K”,2,n)&midb(“K”,n+3,7)))/(2*R))*sin((A2+180±90*((value(Midb(“YH”,2,n)&midb(“YH”,n+3,7))-value(midb(“K”,2,n)&midb(“K”,n+3,7)))+Ls)/(PI()*R))*PI()/180)

计算式中的“±”取舍为,当路线右转时取“-”,左转时取“+”,式中2个“±”同号。

2011年第17期

(9月上)

85

H

现代公路

IGHWAY

32行的B32、C32,即可完成JD31前直线的坐标计算。

JD31平曲线逐桩坐标计算成果见表1。

建立逐桩坐标对应表,对ZH、HY、QZ、YH、HZ里程

计算示例

桩号单元格用红色、黄色及青绿色分别填充,便宜区分。

计算。以前直线坐标计算为例:在单元格B10、C10中分别输入“= 3093764.726+(529.342+VALUE(MIDB("K137+123.010"23)&MID("K137+123.010"67))-VALUE(MIDB(A1023)&MID(A1067)))*COS((252.6978889+180)*PI()/180)”、“=494588.181+(529.342+VALUE(MIDB("K137+123.010"23)&MID("K137+123.010",6,7))-VALUE(MIDB(A10,2,3)&MID(A10,6,7)))*SIN((252.6978889+180)*PI()/180)”。回车或按下Enter键即可,得到里程K136+700的X坐标=3094047.965,Y坐标=495497.439。选中单元格B10、C10,将鼠标指针放到C10单元格的右下角,待指针显示为“+”时向下拖动鼠标至第

结论

道路逐桩坐标是高等级公路工程设计、施工过程中的重要资料,尤其在山岭重丘区,高等级公路穿越高山峡谷,平曲线、交点较多,逐桩坐标计算量大,数据冗繁,在实际工作中输入路线设计的直曲线参数后利用此程序即可快速计算各里程桩号的坐标,公式的编辑操作简便,浅显易懂,未涉及复杂的编辑语言,只要熟悉Excel中几个运算函数即可,并利用Excel本身强大的计算功能,使得逐桩坐标计算快速,准确。

作者单位:贵州路桥集团有限公司

86TRANSPOWORLD 2011No.17(Sep)

本文来源:https://www.bwwdw.com/article/bn14.html

Top