3-EXCEL程序批量计算路线坐标及高程

合集下载

怎样计算高速公路路线坐标及高程

怎样计算高速公路路线坐标及高程

一个excle模板的制作在当今社会,excle的使用已经是越来越来频繁了,几乎涉及所有的行业,路桥施工也不例外。

我在某路桥公司曾经负责过某项目部的测量工作。

大家都知道,测量最主要的就是计算了,如坐标、高程、横坡度等.我现在给大家推荐一款我自己编制的关于测量计算的excel 模板。

首先我会跟大家介绍一下模板的作用,然后再一一讲解此模板的制作过程。

首先给大家看一下此模板的界面如下:也许大家咋一看,切~ 这算啥,我也会做这张表格,实在是太简单了。

不错,如果仅仅是靠手动输入这样子的数字,也许只要懂一点点excle的人都会制作出这张表格吧。

不过,这张表格并不是你表面所看到的仅仅是几个数字而已,其内在的公式才是它的亮点。

也许这样讲大家还不是很清楚,我继续给大家截个图,看看它里面的公式是什么。

大家注意到上面的公式了吗,并不是仅仅是输入数字就完事的,它是一个自定义函数zbx(),那么后面的都是一样吗?完全正确,后面的都是自定义函数,它们分别是zby()、sqx()、hpz()、hpy()。

也许大家会问,恩,是不错,但是有什么用呢?那让我先给大家简述一下这个自定义函数的用法。

竟然是一个函数,那么它就必须要有一个自变量,这几个函数的自变量又是什么呢?其实这个模板里面所有函数的自变量只有一个,就是桩号。

什么意思?就是只要你给出任意一个桩号,都能得到其对应的坐标、中桩高程和横坡度。

假设我们要K38+000~K38+200段落内每隔20M一个断面所有点的坐标、中桩高程、以及左右横坡。

我就用这个模板给大家演示一下(此模板暂时数据只针对黄祁高速公路六标项目部)。

先在桩号那一列把K38+000~K38+200输入进去,可不要真的把字母“K”和加号“+”给输进去,只用输入纯数字就行了,否则计算会出错,之所以在模板里显示的是那样子,只不过是自定义的单元格式而已。

第二步剩下的仅仅就是拖动公式了,后面的都是公式,所以可以一起拖下来,先选定后面的所有单元格,然后向下直接拖动至最后,那么你需要的数据就全部出来了。

Excel函数进行测量坐标批量计算的编程应用

Excel函数进行测量坐标批量计算的编程应用

Excel函数进⾏测量坐标批量计算的编程应⽤Excel函数进⾏测量坐标批量计算的编程应⽤陈兵何红玲(中国⼀冶集团有限公司,湖北武汉430080)关键词Excel函数测量坐标坐标计算1前⾔提起Excel电⼦表格,我们往往想起它在办公管理、统计财经、⾦融等众多领域的应⽤,可以进⾏各种数据的处理、统计分析和辅助决策操作,然⽽Excel中函数对于测量⾏业也能发挥不⼩的作⽤,⽐如在⾼速公路项⽬中,要花费⼤量时间对线路放样坐标进⾏逐桩计算和校核,采⽤传统的⽅法去计算这些坐标,很是费时费⼒,⽽且效率不⾼,⽽运⽤Excel电⼦表格中的函数功能编缉公式,实现逐桩坐标批量计算,可⼤⼤提⾼⼯作效率,减少计算错误,实现便捷化⼯作模式。

2测量坐标计算依据2.1 ⽅位⾓与象限⾓的关系由坐标纵轴的北端或南量⾄直线的锐⾓,称为该直线的象限⾓,⽤R表⽰,其⾓值范围为0?~90?。

如图1所⽰,直线01、02、03和04的象限⾓分别为北东R01、南东R02、南西R03和北西R04,则直线⽅位⾓和象限⾓的位置关系如图2,坐标⽅位⾓与象限⾓的换算关系如表1:图1 象限⾓表1 ⽅位⾓与象限⾓的换算关系象限坐标增量由象限⾓求⽅位⾓由⽅位⾓求象限⾓Ⅰ北东△x >0,△y >0 α01=R 01 R 01=α01 Ⅱ南东△x <0,△y >0 α02=180-R 02 R 02=180-α02 Ⅲ南西△x <0,△y <0 α03=180+R 03 R 03=α03-180 Ⅳ北西△x >0,△y <0α04=360-R 04R 04=360-α042.2 坐标正算和反算 2.2.1.坐标正算根据已知点的坐标,已知边长及该边的坐标⽅位⾓,计算未知点的坐标的⽅法,称为坐标正算。

如图3所⽰,A 点为已知点,坐标为X A 、Y A ,已知AB 边长D AB ,坐标⽅位⾓为αAB ,要求B点坐标X B 、Y B 。

由图3可知 X B =X A +△X AB Y B =Y A +△Y AB 其中△X AB = D AB cos αAB△Y AB = D AB sin αAB上⾯式中sin 和cos 的函数值随着α所在象限的不同有正、负之分,因此,坐标增量同样具有正、负号。

Excel批量反算桩号

Excel批量反算桩号

新建一个Excel表,按ALT+F11进入Excel VB编辑器。

依次点击——插入——模块,将下面的内容全部复制到右边的空白窗口里面(曲线元素请自行修改,下面有说明)。

保存后就可以在这个新建的Excel表里用了(如果出现#NAME?请百度“Excel启用宏”)。

中桩X =XPS(DKI,1)中桩Y =XPS(DKI,2)中桩方位角=XPS(DKI,3)中桩高程=SHU(DKI)坐标反算桩号=ZHUANG(X,Y,1)坐标反算距中桩距离=ZHUANG(X,Y,2)从下面开始复制到结束***************************Function XPS(DKI, Z)'辛普森公式,5800程序改编Dim QX As VariantDim A, B, C, D, E, F, G As DoubleDim P, Q, I, J, M, N, K As Double'曲线元素,请自行更改'ElseIf DKI<终点桩号THEN' QX=Array(起点桩号,终点桩号,起点X,起点Y,起点方位角(弧度),起点半径,终点半径)If DKI < 20058.839 ThenQX = Array(0, 0, 0, 0, 0, 0, 0)ElseIf DKI < 20238.839 ThenQX = Array(20058.839, 20238.839, 4201152.834, 465521.276, 5.65395484192746, 0, 1500)ElseIf DKI < 20816.464 ThenQX = Array(20238.839, 20816.464, 4201300.426, 465418.29, 5.71395484980653, 1500, 1500)ElseIf DKI < 20996.464 ThenQX = Array(20816.464, 20996.464, 4201834.24, 465207.124, 6.09903818731417, 1500, 0)ElseIf DKI < 21116.464 ThenQX = Array(20996.464, 21116.464, 4202012.345, 465181.272, 6.15903858304419, 0, -1244.01)ElseIf DKI < 21538.232 ThenQX = Array(21116.464, 21538.232, 4202131.155, 465164.502, 6.11080747575542, -1244.01, -1244.01)ElseIf DKI < 21658.232 ThenQX = Array(21538.232, 21658.232, 4202526.61, 465023.77, 5.77176839646516, -1244.01, 0)ElseIf DKI < 21850.133 ThenQX = Array(21658.232, 21850.133, 4202629.304, 464961.713, 5.72353724069503, 0, 0) ElseIf DKI < 21970.133 ThenQX = Array(21850.133, 21970.133, 4202791.929, 464859.835, 5.72353724069503, 0, 1252.482)ElseIf DKI < 22050.81 ThenQX = Array(21970.133, 22050.81, 4202894.615, 464797.767, 5.77144211685777, 1252.482, 1252.482)ElseIf DKI < 22310.81 ThenQX = Array(22050.81, 22310.81, 4202966.18, 464760.552, 5.83585582000829, 1252.482, 2900)ElseIf DKI < 23162.892 ThenQX = Array(22310.81, 23162.892, 4203208.994, 464668.271, 5.98447753865125, 2900, 2900)ElseIf DKI < 23418.664 ThenQX = Array(23162.892, 23418.664, 4204048.252, 464539.886, 6.27829891856905, 0, 0) ElseIf DKI < 23843.077 ThenQX = Array(23418.664, 23843.077, 4204304.021, 464538.637, 6.27829887008768, -3000, -3000)ElseIf DKI < 24987.311 ThenQX = Array(23843.077, 24987.311, 4204726.868, 464506.599, 6.13682786235288, 0, 0) ElseIf DKI < 25107.311 ThenQX = Array(24987.311, 25107.311, 4205858.869, 464339.73, 6.1368282986852, 0, -1000)ElseIf DKI < 25597.197 ThenQX = Array(25107.311, 25597.197, 4205977.194, 464319.862, 6.07682829080613, -1000, -1000)ElseIf DKI < 25717.197 ThenQX = Array(25597.197, 25717.197, 4206413.637, 464108.336, 5.58694229503935, -1000, 0)ElseIf DKI < 26198.491 ThenQX = Array(25717.197, 26198.491, 4206502.543, 464027.767, 5.52694228716029, 0, 0) ElseIf DKI < 26318.491 ThenQX = Array(26198.491, 26318.491, 4206852.646, 463697.506, 5.5269428689367, 0, -1250)ElseIf DKI < 26668.593 ThenQX = Array(26318.491, 26668.593, 4206938.599, 463613.786, 5.47894287232972, -1250, -1250)ElseIf DKI < 26788.593 ThenQX = Array(26668.593, 26788.593, 4207143.201, 463331.103, 5.19886125757867, -1250, 0)ElseIf DKI < 27337.747 ThenQX = Array(26788.593, 27337.747, 4207195.875, 463223.295, 5.15086126097169, 0, 0) ElseIf DKI < 27487.747 ThenQX = Array(27337.747, 27487.747, 4207429.022, 462726.09, 5.15086174578537, 0, 1000)Else: QX = Array(0, 0, 0, 0, 0, 0, 0)End If'以下不用更改A = QX(2)B = QX(3)C = QX(4)If QX(5) <> 0 Then D = 1 / QX(5) Else D = 0 'D = QX(5)If QX(6) <> 0 Then E = 1 / QX(6) Else E = 0 'E = QX(6)F = QX(0)G = QX(1)P = (E - D) / Abs(G - F)Q = Abs(DKI - F)I = P * QJ = C + (I + 2 * D) * Q / 2M = C + (I / 4 + 2 * D) * Q / 8N = C + 3 * (3 * I / 4 + 2 * D) * Q / 8K = C + (I / 2 + 2 * D) * Q / 4If Z = 1 Then XPS = A + Q * (Cos(C) + 4 * (Cos(M) + Cos(N)) + 2 * Cos(K) + Cos(J)) / 12If Z = 2 Then XPS = B + Q * (Sin(C) + 4 * (Sin(M) + Sin(N)) + 2 * Sin(K) + Sin(J)) / 12If Z = 3 Then XPS = JEnd FunctionFunction shu(L)Dim SQX As VariantDim A, B, C, D, R, T, E, F, H, X, Y As Double'曲线元素,请自行更改'ElseIf L<终点桩号THEN' SQX=Array(变坡点,H,R,T,E,I1,I2)If L < 20483 ThenSQX = Array(0, 0, 0, 0, 0, 0, 0)ElseIf L <= 21225 ThenSQX = Array(20740, 785.679, 12000, 129, 0.693, 0.0035, 0.025)ElseIf L <= 22009.19 ThenSQX = Array(21360, 801.179, 30000, 135, 0.304, 0.025, 0.034)ElseIf L <= 22797.109 ThenSQX = Array(22160, 828.379, 14160.563, 150.81, 0.803, 0.034, 0.0127) ElseIf L <= 23636.923 ThenSQX = Array(22980, 838.793, 7075.103, 182.891, 2.364, 0.0127, -0.039) ElseIf L <= 24692.69 ThenSQX = Array(23740, 809.153, 12884.625, 103.077, 0.412, -0.039, -0.023) ElseIf L <= 25717.197 ThenSQX = Array(24840, 783.853, 6137.917, 147.31, 1.768, -0.023, 0.025) ElseIf L <= 26467.197 ThenSQX = Array(25820, 808.353, 14686.143, 102.803, 0.36, 0.025, 0.039) ElseIf L <= 27320 ThenSQX = Array(26570, 837.603, 5860.362, 218.591, 4.077, 0.039, -0.0356) Else: SQX = Array(0, 0, 0, 0, 0, 0, 0)End If'以下不用更改A = SQX(1)B = SQX(0)C = SQX(5)D = SQX(6)R = SQX(2)T = SQX(3)E = SQX(4)If (C - D) >= 0 Then F = 1 Else F = -1 'F=ABS(C-D)/(C-D)X = B - TY = B + TIf L < X ThenH = A - (B - L) * CElseIf L < B ThenH = A - (B - L) * C - F * (L - X) ^ 2 / (2 * R)ElseIf L = B ThenH = A - F * EElseIf L < Y ThenH = A - (B - L) * C - F * (L - X) ^ 2 / (2 * R)ElseIf L > Y ThenH = A - (B - L) * DEnd Ifshu = HEnd FunctionFunction ZHUANG(X, Y, Z)Dim W, L, J, DKI As Double'坐标反算,只需更改DKI=路线起点桩号DKI = 20058.839'以下不用更改DoL = ((XPS(DKI, 1) - X) ^ 2 + (XPS(DKI, 2) - Y) ^ 2) ^ 0.5If L = 0 Then Exit DoJ = Sin(XPS(DKI, 3) - 1.5707963267949 - Application.WorksheetFunction.Atan2((XPS(DKI, 1) - X), (XPS(DKI, 2) - Y)))If Application.WorksheetFunction.IsErr(W) Then Exit DoW = L * JIf Abs(W) < 10 ^ (-8) Then Exit DoIf Application.WorksheetFunction.IsErr(W) Then Exit DoDKI = DKI + WLoopIf Z = 1 Then ZHUANG = DKI Else ZHUANG = LEnd Function。

小白自学ExcelVBA道路坐标高程计算程序流程

小白自学ExcelVBA道路坐标高程计算程序流程

小白自学ExcelVBA道路坐标高程计算程序流程1声明1.1 本人是个工作时间不长测量施工员。

1.2听说想轻松愉快的干好测量得学门编程,又听说ExcelVBA是个简单的可视化的常用的……1.3 本人很懒,面对厚厚的全是“昏天暗地”代码的ExcelVBA教科书籍,实在是没心没力。

其实俺还是懂点儿VB编程的(学校学过“=”是赋值,if、while、end的意思,嘿嘿,还有画窗体图框,其他的就都还给老师了)。

1.4 谷歌、度娘,是咱的好帮手。

1.5 仰望的存在,神一般的存在,无私的化身!道路中边桩坐标计算程序120424.xls(王中伟”教授”QQ:595077)曲线坐标计算程序VBA 4.6.xls(陈超”中铁”QQ:295188316)陈师傅的VBA代码乍一看感觉比王老师的让人头痛,怎么说咱们也是个有理想有目标的人,要啃就啃硬骨头!就选~~~嘿嘿~~~王老师的程序吧!1.6 道路中边桩坐标计算程序120424.xls代码获取。

王老师、陈师傅担心不懂编程的人,不小心修改代码导致程序错误,设置了vba密码(个人认为),其次我跟他们不熟,没有正大光明的要的密码,于是求助谷歌度娘,这个关于VBA 密码破解,于是很不厚道的得到了密码,为了方便本次学习,又很不厚道的把道路中边桩坐标计算程序120424.xls的密码贴出来(df750726),神人勿怪呀!2 代码理解ing…我们通过密码打开vba代码窗口,大家可以先把每个表格打开浏览一下代码,是不是感觉很短呀,感觉应该是超级链接的意思,嘿嘿,主要的代码在模块“lx”里,打开下,代码多吧,这就是咱们要肯的骨头。

现在咱们冲呀!2.1 第一段代码理解貌似第一段代码是定义的意思“定义π值”、'定义桩号点”、“'定义坡段”、“'定义基本曲线”①Public Const PI As Double = 3.14159265358979谷歌翻译:Public Const PI As Double公共常量PI 作为双精度浮点型百度百科:双精度浮点数双精度浮点数(Double)用来表示带有小数部分的实数,一般用于科学计算,用8个字节(64位)存储空间,其数值范围为1.7E-308~1.7E+308,双精度浮点数最多有15或16位十进制有效数字,双精度浮点数的指数用“D”或“d”表示。

EXCEL计算坐标

EXCEL计算坐标

Excel在导线计算中的应用李海军摘要:目前在一些小地区的大比例尺测图中,做控制用的较多的是导线测量的方法。

由于全站仪的广泛应用给导线的外业测量带来不少方便,但导线的内业计算如采用手工计算工作量大,本文就介绍用Ecxcl进行导线计算的方法。

关键词:Excel 导线计算1前言Execl是目前最为流行的电子表格制作软件,它是微软公司开发的在Windows下运行的一个重要应用软件,一般也称Microsoft Execl。

它同MicrosoftWord、 Microsoft PowerPoint、Microsoft FrontPage等合称Microsoft office。

Execl具有强大的运算功能,它能按照用户的意图进行各种复杂的运算(包括编写公式、调用函数等)。

Execl同样具有强大的数据管理和处理功能,能够根据用户的要求将输入的数据生成各种各样的图表,可以对数据按照各种复杂的条件进行排序、查找、替换、编辑和筛选。

最后,Execl能把用户制作的文件保存起来,用户可以随时调出来进行补充和修改,也方便打印和复制。

2 Execl在导线计算中的应用目前,随着测绘技术的不断发展,在一些小地区的大比例尺测图中,做控制应用较多的依然是导线测量的方法。

在导线测量中,野外数据的采集用全站仪可以说方便快捷,但是其内业的计算用手工却比较麻烦,而且费时费力。

本文就着重介绍一下Excel在导线计算方面的应用。

3.实例现在就以某一测区测得一条附合导线为例,讲解用Excel对其进行计算的方法。

导线图如下所示:已知A,B,C,D四点的坐标,在测量时测出了导线的左转折角以及相邻导线点之间的水平距离。

现在我们就看如何用Excel快速计算出1,2,3,4点的坐标。

计算各导线点的坐标3.1.1输入首先我们在A列输入点号,然后在B列输入观测角(在这里我们观测的是左角),以度分秒的格式输入,度和分之间用小数点隔开,在S2T2单元格中输入B点的x,y坐标,S3T3单元格中输入A点的x,y坐标, S8T8单元格中输入C点的x,y坐标, S9T9单元格中输入D点的x,y坐标,最后在H列输入各条导线边的长度。

自动批量生成公路道路测量资料EXCELWPS表格水准测量平面放线

自动批量生成公路道路测量资料EXCELWPS表格水准测量平面放线

自动批量生成公路道路测量资料EXCELWPS表格水准测量平面放线暂无格式错误,但是第一段话中的“更高效更准确的功能操作”和“实用程序”有点重复,可以改为“提供了更高效、更准确的测量功能,让用户轻松完成各种记录表的制作。

该程序包含导线点、水准点、平曲线(线元法)、纵断面、横坡超高计算等多个功能,能够快速记录、录入和管理测量资料。

”测量资料的使用说明:1.导线点记录在导线点记录中,用户可以输入导线点的编号、坐标、高程等信息,方便后续的测量工作。

2.水准点记录水准点记录可以帮助用户记录水准点的编号、高程等信息,方便后续的测量和计算。

3.平曲线(线元法)计算平曲线计算是测量中常用的功能之一,用户可以输入起点、终点、曲线半径等信息,程序会自动计算出曲线的各项参数。

4.纵断面计算纵断面计算可以帮助用户计算出地形的高程变化情况,用户可以输入各个点的高程值,程序会自动绘制出纵断面图。

5.横坡超高计算横坡超高计算可以帮助用户计算出道路或铁路的横向高差,用户可以输入各个点的高程值和距离,程序会自动计算出横坡超高值。

总之,测量资料程序是一款功能强大、实用方便的测量工具,能够帮助用户快速记录、计算和管理测量资料,提高工作效率和准确性。

一)、功能特色该软件具有以下功能特色:1.支持多种数据格式的导入和导出,方便与其他软件进行数据交换。

2.提供了多种数据处理方法,包括平曲线、竖曲线、断链等,能够满足不同的测量需求。

3.可以自动生成水准点成果表、导线点成果表、原始数据表等多种报表,方便用户查看和使用。

4.提供了超高数据表和标准路面参数表等实用工具,方便用户进行道路设计和施工。

二)、平曲线平曲线是道路设计中常用的一种曲线类型,其特点是曲率变化平缓,适合用于大半径曲线的设计。

该软件提供了平曲线的自动计算功能,用户只需输入起点、终点和设计要求等参数,即可自动生成平曲线的坐标点和曲线参数。

为了保证计算精度,该软件还提供了多种平曲线计算方法,包括三点式、五点式、七点式等,用户可以根据实际情况选择不同的计算方法。

EXCEL快速计算任何难度的道路中线、边线坐标

EXCEL快速计算任何难度的道路中线、边线坐标

EXCEL快速计算任何难度的道路中线、边线坐标主程序Public i As IntegerPublic pi As DoubleSub TP()Dim ii As IntegerDim k(1000) As DoubleDim xzq, yzq, kq, xzh, yzh, kzh, xjd, yjd, kjd, khy, kyh As Double'直线区域pi = 3.14159265358979xzq = 71862.642yzq = 63474.651kq = 0 '因为直线连接终点为ZH点,与圆曲线起点为同一点,所以在直线区域不定义ZH点参数'直线区域'曲线区域xzh = 71858.3267yzh = 63375.2684kzh = 99.4763xhz = 71909.3687yhz = 63283.8076 '曲线区域定义内容有:ZH(坐标、里程)、HZ(坐标、里程)、JD(坐标、里程)khz = 212.3392 'R(半径)、LS(缓和曲线长度)、HY(里程)、YH(里程)xjd = 71855.658yjd = 63313.806kjd = 160.9966ls = 30r = 75khy = 129.4763kyh = 182.3385'曲线区域i = 2 '从第二格开始读取数据所以定义I=2ii = 1 '桩号从第一个开始启用,所以定义II=2Dok(ii) = Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 1) '定义桩号等于读取数据If Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 1) = "" Then Exit Do '当没有数据读取时退出循环If k(ii) < kq Then '若计算点超过计算起点给予提示并退出程序MsgBox ("猪啊!!你的输入的桩号居然超过计算起点桩号")Exit SubElseIf k(ii) <= kzh Then '若计算点在ZH点前,则进入直线程序Call zx(xzq, yzq, kq, xzh, yzh, kzh, k(ii))ElseIf kzh < k(ii) And k(ii) <= khy Then '若计算点在ZH和HY之间则调入前段缓和曲线程序Call qhhqx(xzh, yzh, kzh, xhz, yhz, khz, xjd, yjd, kjd, ls, r, k(ii))ElseIf khy < k(ii) And k(ii) <= kyh Then '若计算点在HY和YH之间则调入圆曲线程序Call yqx(xzh, yzh, kzh, xhz, yhz, khz, xjd, yjd, kjd, ls, r, k(ii))ElseIf kyh < k(ii) And k(ii) <= khz Then '若计算点在YH和HZ之间则调入后段缓和曲线程序Call hhhqx(xzh, yzh, kzh, xhz, yhz, khz, xjd, yjd, kjd, ls, r, k(ii))ElseMsgBox ("笨啊!!数据已超出计算范围了") '若出现超出范围的桩号则给与提示并退出程序Exit SubEnd Ifi = i + 1ii = ii + 1LoopEnd Sub直线模块Sub zx(ByV al xzq As Double, ByV al yzq As Double, ByV al kq As Double, ByV al xzh As Double, ByV al yzh As Double, ByV al kzh As Double, ParamArray k())fw = fwj(xzh, xzq, yzh, yzq) '首先调入方位角程序计算直线方位角x = xzq + (k(ii) - kq) * Cos(fw) '然后根据桩号和长度计算出坐标值y = yzq + (k(ii) - kq) * Sin(fw)zdfm = dfm(fw) '将弧度形式的前进方位角转换度分秒形式'输出坐标值以弧度和度分秒形式的前进方位角Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 2) = xWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 3) = yWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 4) = fwWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 5) = zdfmEnd Sub圆曲线模块Sub yqx(ByV al xzh As Double, ByV al yzh As Double, ByV al kzh As Double, ByV al xhz As Double, ByV al yhz As Double, ByV al khz As Double, ByV al xjd As Double, ByV al yjd As Double, ByV al kjd As Double, ByV al ls As Double, ByV al r As Double, ParamArray k())l = Abs(k(ii) - kzh) '计算ZH点(因为以直缓点起算)到待求桩号的弧度长度ly = l - ls / 2 '计算圆弧长度p = ls ^ 2 / 24 / r - ls ^ 4 / 2688 / r ^ 3 '曲线内移值m = ls / 2 - ls ^ 3 / 240 / r ^ 2 '曲线切线长增量u = r * Sin(ly / r) + m '偏量坐标计算v = r * (1 - Cos(ly / r)) + p'调入方位角fwq = fwj(xjd, xzh, yjd, yzh) '计算ZH点方位角fwh = fwj(xhz, xjd, yhz, yjd) '计算HZ点方位角(此角作用是用来推算曲线是左偏还是右偏)'调入偏角判定nq = n(fwq, fwh) '计算偏角方向,左偏为-1右偏为1'计算坐标x = u * Cos(fwq) - nq * v * Sin(fwq) + xzhy = u * Sin(fwq) + nq * v * Cos(fwq) + yzhd = (90 * (2 * l - ls) / pi / r) * pi / 180 '计算圆曲线上的偏角(此句要点为角度必须转换为弧度即:pi/180)fw = fwq + d * nq '计算前进方位角zdfm = dfm(fw) '将弧度形式的前进方位角转换度分秒形式'输出坐标值以弧度和度分秒形式的前进方位角Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 2) = xWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 3) = yWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 4) = fwWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 5) = zdfmEnd Sub前缓和段Sub qhhqx(ByV al xzh As Double, ByV al yzh As Double, ByV al kzh As Double, ByV al xhz As Double, ByV al yhz As Double, ByV al khz As Double, ByV al xjd As Double, ByV al yjd As Double, ByV al kjd As Double, ByV al ls As Double, ByV al r As Double, ParamArray k())l = Abs(k(ii) - kzh) '计算测点到ZH点的距离u = l - l ^ 5 / 40 / r ^ 2 / ls ^ 2 + l ^ 9 / r ^ 4 / ls ^ 4 / 3456 '计算偏量v = l ^ 3 / 6 / r / ls - l ^ 7 / 336 / r ^ 3 / ls ^ 3'用公式二则以下两计算可省略(圆曲线和后缓和曲线也同理)Rem t = Atn(v / u)Rem s = Sqr(u ^ 2 + v ^ 2)'调入方位角计算fwq = fwj(xjd, xzh, yjd, yzh) '计算ZH点方位角fwh = fwj(xhz, xjd, yhz, yjd) '计算HZ点方位角(此角作用是用来推算曲线是左偏还是右偏)'调入偏角判定nq = n(fwq, fwh) '计算偏角方向,左偏为-1右偏为1'结果计算Rem x = xzh + s * Cos(fwq + nq * t)Rem y = yzh + s * Sin(fwq + nq * t)x = u * Cos(fwq) - nq * v * Sin(fwq) + xzh '经过测试,计算结果中的两种公式计算结果是一样的y = u * Sin(fwq) + nq * v * Cos(fwq) + yzhd = (90 * l * l / pi / r / ls) * pi / 180 '计算缓和曲线上的偏角(此句要点为角度必须转换为弧度即:pi/180)fw = fwq + d * nq '计算前进方位角zdfm = dfm(fw) '将弧度形式的前进方位角转换度分秒形式'输出坐标值以弧度和度分秒形式的前进方位角Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 2) = xWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 3) = yWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 4) = fwWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 5) = zdfmEnd Sub后缓和段模块Sub hhhqx(ByV al xzh As Double, ByV al yzh As Double, ByV al kzh As Double, ByV al xhz As Double, ByV al yhz As Double, ByV al khz As Double, ByV al xjd As Double, ByV al yjd As Double, ByV al kjd As Double, ByV al ls As Double, ByV al r As Double, ParamArray k())l = Abs(k(ii) - khz) '计算测点到HZ点的距离(后缓和曲线是以HZ点为起点)u = l - l ^ 5 / 40 / r ^ 2 / ls ^ 2 + l ^ 9 / r ^ 4 / ls ^ 4 / 3456 '计算偏量v = l ^ 3 / 6 / r / ls - l ^ 7 / 336 / r ^ 3 / ls ^ 3Rem t = Atn(v / u)Rem s = Sqr(u ^ 2 + v ^ 2)'调入方位角计算fwq = fwj(xjd, xzh, yjd, yzh) '计算ZH点方位角fwh = fwj(xhz, xjd, yhz, yjd) '计算HZ点方位角(此角作用是用来推算曲线是左偏还是右偏)'调入偏角判定nh = n(fwh, fwq) '计算偏角方向,左偏为-1右偏为1(注意:因为是从后HZ点起算,所以必须将HZ点方位角放在前ZH放在后)'结果计算Rem x = xzh + s * Cos(fwq + nq * t)Rem y = yzh + s * Sin(fwq + nq * t)x = xhz - (u * Cos(fwh) - nh * v * Sin(fwh)) '经过测试,计算结果中的两种公式计算结果是一样的y = yhz - (u * Sin(fwh) + nh * v * Cos(fwh))d = (90 * l * l / pi / r / ls) * pi / 180 '计算缓和曲线上的偏角(此句要点为角度必须转换为弧度即:pi/180)fw = fwh + d * nh '计算前进方位角zdfm = dfm(fw) '将弧度形式的前进方位角转换度分秒形式'输出坐标值以弧度和度分秒形式的前进方位角Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 2) = xWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 3) = yWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 4) = fwWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 5) = zdfmEnd Sub偏角模块Function n(ByV al fw1 As Double, ByV al fw2 As Double) As Doublepj = fw1 + pi - fw2 '前进的右角pjIf pj - pi > 0 Then '当右角pj-pi 〉0时为左偏否则为右偏n = -1Else: n = 1End IfEnd Function方位角模块Function fwj(ByV al x1 As Double, ByV al x2 As Double, ByV al y1 As Double, ByV al y2 As Double) As Double'计算增量x0 = x1 - x2y0 = y1 - y2'由增量判断方位角所在象限,不同象限取不同的值If x0 = 0 And y0 > 0 Thenfwj = pi / 2 '当在大地坐标中偏量在X轴上的值时ElseIf x0 = 0 And y0 < 0 Thenfwj = 3 * pi / 2 '当在大地坐标中偏量在负X轴上的值时ElseIf x0 < 0 Thenfwj = Atn(y0 / x0) + pi '当在大地坐标中偏量在第二第三象限上的值时ElseIf x0 > 0 And y0 < 0 Thenfwj = Atn(y0 / x0) + 2 * pi '当在大地坐标中偏量在第四象限上的值时Elsefwj = Atn(y0 / x0) '当在大地坐标中偏量在第一象限上的值时End IfEnd Function度分秒模块Function dfm(ByV al ao As Double) As V ariantao = ao * 180 / pi '将弧度转化为度jd = Int(ao) '计算度jf = Int(ao * 60 - jd * 60) '计算分jmx = (ao - jd - jf / 60) * 3600 '计算秒jm = Left(jmx, 8) '因为拆分出来的秒数经常占到十多位,所以只取秒数的前八位dfm = jd & "°" & jf & "′" & jm & "″" '连接度分秒End Function边桩公式(此公式在电子表格中直接输入):=B2+J2*COS(D2+RADIANS(L2)+PI()) =C2+J2*SIN(D2+RADIANS(L2)+PI()) =B2+K2*COS(D2+RADIANS(M2)) =C2+K2*SIN(D2+RADIANS(M2))=B3+J3*COS(D3+RADIANS(L3)+PI()) =C3+J3*SIN(D3+RADIANS(L3)+PI()) =B3+K3*COS(D3+RADIANS(M3)) =C3+K3*SIN(D3+RADIANS(M3))=B4+J4*COS(D4+RADIANS(L4)+PI()) =C4+J4*SIN(D4+RADIANS(L4)+PI()) =B4+K4*COS(D4+RADIANS(M4)) =C4+K4*SIN(D4+RADIANS(M4))=B5+J5*COS(D5+RADIANS(L5)+PI()) =C5+J5*SIN(D5+RADIANS(L5)+PI()) =B5+K5*COS(D5+RADIANS(M5)) =C5+K5*SIN(D5+RADIANS(M5))=B6+J6*COS(D6+RADIANS(L6)+PI()) =C6+J6*SIN(D6+RADIANS(L6)+PI()) =B6+K6*COS(D6+RADIANS(M6)) =C6+K6*SIN(D6+RADIANS(M6))=B7+J7*COS(D7+RADIANS(L7)+PI()) =C7+J7*SIN(D7+RADIANS(L7)+PI()) =B7+K7*COS(D7+RADIANS(M7)) =C7+K7*SIN(D7+RADIANS(M7))=B8+J8*COS(D8+RADIANS(L8)+PI()) =C8+J8*SIN(D8+RADIANS(L8)+PI()) =B8+K8*COS(D8+RADIANS(M8)) =C8+K8*SIN(D8+RADIANS(M8))=B9+J9*COS(D9+RADIANS(L9)+PI()) =C9+J9*SIN(D9+RADIANS(L9)+PI()) =B9+K9*COS(D9+RADIANS(M9)) =C9+K9*SIN(D9+RADIANS(M9))=B10+J10*COS(D10+RADIANS(L10)+PI()) =C10+J10*SIN(D10+RADIANS(L10)+PI()) =B10+K10*COS(D10+RADIANS(M10)) =C10+K10*SIN(D10+RADIANS(M10))=B11+J11*COS(D11+RADIANS(L11)+PI()) =C11+J11*SIN(D11+RADIANS(L11)+PI()) =B11+K11*COS(D11+RADIANS(M11)) =C11+K11*SIN(D11+RADIANS(M11))=B12+J12*COS(D12+RADIANS(L12)+PI()) =C12+J12*SIN(D12+RADIANS(L12)+PI()) =B12+K12*COS(D12+RADIANS(M12)) =C12+K12*SIN(D12+RADIANS(M12))=B13+J13*COS(D13+RADIANS(L13)+PI()) =C13+J13*SIN(D13+RADIANS(L13)+PI()) =B13+K13*COS(D13+RADIANS(M13)) =C13+K13*SIN(D13+RADIANS(M13))=B14+J14*COS(D14+RADIANS(L14)+PI()) =C14+J14*SIN(D14+RADIANS(L14)+PI()) =B14+K14*COS(D14+RADIANS(M14)) =C14+K14*SIN(D14+RADIANS(M14))=B15+J15*COS(D15+RADIANS(L15)+PI()) =C15+J15*SIN(D15+RADIANS(L15)+PI()) =B15+K15*COS(D15+RADIANS(M15)) =C15+K15*SIN(D15+RADIANS(M15))=B16+J16*COS(D16+RADIANS(L16)+PI()) =C16+J16*SIN(D16+RADIANS(L16)+PI()) =B16+K16*COS(D16+RADIANS(M16)) =C16+K16*SIN(D16+RADIANS(M16))=B17+J17*COS(D17+RADIANS(L17)+PI()) =C17+J17*SIN(D17+RADIANS(L17)+PI()) =B17+K17*COS(D17+RADIANS(M17)) =C17+K17*SIN(D17+RADIANS(M17))=B18+J18*COS(D18+RADIANS(L18)+PI()) =C18+J18*SIN(D18+RADIANS(L18)+PI()) =B18+K18*COS(D18+RADIANS(M18)) =C18+K18*SIN(D18+RADIANS(M18))=B19+J19*COS(D19+RADIANS(L19)+PI()) =C19+J19*SIN(D19+RADIANS(L19)+PI()) =B19+K19*COS(D19+RADIANS(M19)) =C19+K19*SIN(D19+RADIANS(M19))=B20+J20*COS(D20+RADIANS(L20)+PI()) =C20+J20*SIN(D20+RADIANS(L20)+PI()) =B20+K20*COS(D20+RADIANS(M20)) =C20+K20*SIN(D20+RADIANS(M20))=B21+J21*COS(D21+RADIANS(L21)+PI()) =C21+J21*SIN(D21+RADIANS(L21)+PI()) =B21+K21*COS(D21+RADIANS(M21)) =C21+K21*SIN(D21+RADIANS(M21))=B22+J22*COS(D22+RADIANS(L22)+PI()) =C22+J22*SIN(D22+RADIANS(L22)+PI()) =B22+K22*COS(D22+RADIANS(M22)) =C22+K22*SIN(D22+RADIANS(M22))=B23+J23*COS(D23+RADIANS(L23)+PI()) =C23+J23*SIN(D23+RADIANS(L23)+PI()) =B23+K23*COS(D23+RADIANS(M23)) =C23+K23*SIN(D23+RADIANS(M23))呵呵,这个就是传说已久的EXCEL自动计算曲线坐标.给大家研究研究.欢迎在此基础上开发增加新模块。

Excel测量坐标计算程序(附带计算器程序)

Excel测量坐标计算程序(附带计算器程序)

缓和曲线角 β2
0.056
切线长ቤተ መጻሕፍቲ ባይዱT1
476.548
JD至HZ方位 角
(弧度)
(弧度)
HZ至JD方位角 (度)
(度)
HY至JD方位角 (弧度)
3.63453181 0.49293916 28.24333333 28°14′36″ 3.322837339
桩号、坐标结果表
QZ桩号
YH桩号
HZ桩号
40306.803
GotoA LblD(第二缓和曲线) Abs(M-(N+T+L+V))→W W-W5÷(40R2V2)+W9÷(3456R4V4)→C-------------------------------支距X坐标 W3÷(6RV)-W7÷(336R3V3)+W11÷(42240R5V5)→D------------支距Y坐标 90W2÷(πRV)→O-----------------------------------------------------------------缓和曲线角 E+CcosQ-BDsinQ+Scos(Q+BO+90)→X◢ F+CsinQ+BDcosQ+Ssin(Q+BO+90)→Y◢ Pol((X-P),(Y-Z)):Cls----------------------------------------------------方位角和距离程序 IfJ<0:ThenJ+360 →J:ElseJ →J:Ifend:I◢J ►DMS◢
204.408414 1.42360245 204.413372 0.02089324
164.414334 0.74077489 164.416002 0.013516541

自动批量生成公路道路测量资料EXCELWPS表格水准测量平面放线

自动批量生成公路道路测量资料EXCELWPS表格水准测量平面放线

测量资料使用说明测量资料程序是一款简单实用的测量程序,为用户提供了一个更高效更准确的功能操作,帮助用户轻松完成《水准仪测量记录表》、《全站仪平面位置检测表》、《全站仪放线记录表》等的制作,包含导线点、水准点、平曲线(线元法)、纵断面、横坡超高计算等多个方面,实用程序,用户可以快速进行测量资料的记录、表格数据录入、表格管理等操作,方便快捷。

目录(一) 、功能特色 (2)(二) 、平曲线 (3)(三) 、断链 (5)(四) 、竖曲线(纵断面) (5)(五) 、超高数据表 (6)(六) 、标准路面参数表 (7)(七) 、水准点成果表 (7)(八) 、导线点成果表 (8)(九) 、原始数据表(进入正题) (9)(十) 、自动计算 (10)(十一) 重复九、十自动生成记录表 (11)(一)、功能特色1、本程序利用EXCEL、WPS电子表格,自动生成水准仪测量记录表、平面位置检测记录表、全站仪放线记录表。

2、适用于任何版本的EXCEL、WPS,无需安装,直接使用。

3、自动转点、自动计算坐标、自动偏差。

4、自动计算路面高程,减少数据输入。

5、支持交点法、线元法。

6、支持断链。

7、可以根据需求修改属于你自己项目的记录表。

8、除断链桩号前可以加”*”,其余桩号都应输入数字。

(二)、平曲线1、在空白处输入平曲线参数:(点号、交点坐标、交点桩号、半径、缓和曲线长度)备注:输入数据须为数字;没有缓和曲线,输入0。

2、点击“计算”按钮,自动计算(转角值、圆曲线长、切线长、主点桩号)(三)、断链在空白处输入断链桩号(备注:长链的断链重复桩号,在后断链桩号前加”*”)断链表(四)、竖曲线(纵断面)1、在空白处输入竖曲线参数:(桩号、标高、半径)2、点击“计算”按钮,自动计算(切线长、外距、竖曲线起点桩号、竖曲线终点桩号、转坡角、纵坡)(五)、超高数据表在空白处输入超高参数(桩号、横坡值、超高方式)备注:1、输入横坡变化点桩号处数据2、函数Lx(“缓和曲线长”, “超高横坡”, “路拱横坡”)计算路基由正常路拱横坡到单向路拱横坡时的长度;(六)、标准路面参数表在空白处输入标准路面构造参数备注:”中桩(判断路面宽度)”列为该段路面变化点终点桩号(七)、水准点成果表在空白处输入该线路全部的水准点参数备注:函数fszh(“X坐标”,”Y坐标”),计算XY对应的桩号(八)、导线点成果表在空白处输入该线路全部的导线点参数备注:函数fszh(“X坐标”,”Y坐标”),计算XY对应的桩号导线点成果表(九)、原始数据表(进入正题)该表是生成记录表的依据1、在”桩号”、”偏距”、”高程”、”工程部位”列,输入数据①函数lmgc0(“桩号”,”偏距”),计算路面高程;②“工程部位”单元格以下内容为空白,视为一段工程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档