excel竖曲线高程计算表
- 格式:xls
- 大小:42.00 KB
- 文档页数:78
竖曲线高程计算(fx-4800)(1)Lbl 0:H:B:R:I:J:{L}:T=R Abs(J-I) ÷2←C=B-L←I<J=>F=1:≠=>I>J=>F=-1△△←L≦0=>{HRBIJ}:Goto 0≠=>L<B-T=>Z=0:P=I≠=>L<B=>Z=1:P=I:≠=>L<B+T=>Z=1:P=J:≠=>Z=0:P=J△△△G=H-CP+ZF(T-Abs C) ²÷2÷R▲Goto 0说明:H:变坡点高程B:变坡点里程L:线路上所求点里程I:前纵坡J:后纵坡T:竖曲线切线长竖曲线半径本程序可及计算范围(前竖曲线的终点至后竖曲线的起点),当L=0时可重新输入起算要素(H,B,R,I,J)进行下一段竖曲线和直线的高程计算。
边桩及路面以下任意厚度高程计算:变量变为:{LNM }主公式变为:G=H-N-CP+ZF(T-Abs C)²÷2÷R▲V=G+ME▲Goto 0N:路面至各施工层的厚度(m)M:中桩至边桩的距离E:路拱(路面横坡)V:左右边桩高程竖曲线高程计算(2)Lbl 1:{N }:N=1=>Goto 3:≠=>N=2=>Goto 4△←Lbl 2:{L}:T=R Abs(J-I) ÷2←C=B-L←I<J=>F=1:≠=>I>J=>F=-1△△←L<3090=>Goto 1:≠=>L<B-T=>Z=0:P=I:≠=>L<B=>Z=1:P=I:≠=>L<B+T=>Z=1:P=J:≠=>Z=0:P=J△△△G=H-CP+ZF(T-Abs C) ²÷2÷R▲Goto 1←Lbl 3:L≧3090=>H=563.532:B=3860:R=55000:I=0.025:K=4526:L=0.0175←L≧K=>H=580.157:B=4810:R=16000:I=0.0175:K=5503.582:L=-0.018←L≧K=>H=564.137:B=5700:R=10100:I=-0.018:K=6204:L=0.02089←L≧K=>H=579.599:B=6440:R=121193.615:I=0.02089:K=6676:L=0.017←L≧K=>H=589.119:B=7000:R=16000:I=0.017:K=7324:L=-0.0235←Goto 2←Lbl 4:L≧3090=>H=563.532:B=3860:R=56000:I=0.025:K=4649:L=0.0175←L≧K=>H=581.382:B=4880:R=12000:I=0.0175:K=5464.117:L=-0.021←L≧K=>H=564.162:B=5700:R=11100:I=-0.021:K=6204:L=0.0215←L≧K=>H=580.073:B=6440:R=104856.927:I=0.0215:K=6676:L=0.017←L≧K=>H=589.593:B=7000:R=16000:I=0.017:K=7324:L=-0.0235←Goto 2←。
Excel表格制作标高计算程序新建一个Excel文件,把Sheet1表重命名为“竖曲线”,把Sheet2表重命名为“设计标高”。
(1)在竖曲线表中的A1-E1(合并)单元格输入线路名称,在A2-E2单元格中分别输入“变坡点编号”、“变坡点里程”、“变坡点标高”、“曲线半径”和“切线长”,从第三行开始输入对应数据,(2)打开VB编辑器(Alt+F11),双击工程资源管理器中“设计标高”表图标,复制以下程序到界面上,保存后返回Excel窗口,在“设计标高”表中的第一列,从第二行开始输入要计算的里程桩号,完成后,在任一单元格中双击单元格,即可看见输入结果(在第二列),本程序默认遇到桩号列空单元格时不再向下计算。
Dim K As DoubleDim H As DoubleDim P1 As Double, P2 As Double, P3 As DoubleDim H1 As Double, H2 As DoubleDim R1 As Double, R2 As DoubleDim T1 As Double, T2 As DoubleDim D1 As Double, D2 As DoubleDim G1 As Long, G2 As LongPrivate Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) On Error Resume NextDim i As LongDim hang As LongDim celln = 0For Each cell In Sheets("竖曲线").Range("a3:a65536")If cell.Value <> "" Thenn = n + 1ElseExit ForEnd IfNexti = 2flag:P2 = 0P3 = 0hang = 3If Sheets("设计标高").Cells(i, 1) <> "" ThenK = Val(Cells(i, 1))canshu:P1 = P2D1 = Val(Sheets("竖曲线").Cells(hang + 1, 2))D2 = Val(Sheets("竖曲线").Cells(hang + 2, 2))H1 = Val(Sheets("竖曲线").Cells(hang + 1, 3))H2 = Val(Sheets("竖曲线").Cells(hang + 2, 3))P3 = (H2 - H1) / (D2 - D1)D1 = Val(Sheets("竖曲线").Cells(hang, 2))D2 = Val(Sheets("竖曲线").Cells(hang + 1, 2))H1 = Val(Sheets("竖曲线").Cells(hang, 3))H2 = Val(Sheets("竖曲线").Cells(hang + 1, 3))R1 = Val(Sheets("竖曲线").Cells(hang, 4))R2 = Val(Sheets("竖曲线").Cells(hang + 1, 4))T1 = Val(Sheets("竖曲线").Cells(hang, 5))T2 = Val(Sheets("竖曲线").Cells(hang + 1, 5))P2 = (H2 - H1) / (D2 - D1)If K < D1 Then Sheets("设计标高").Cells(i, 3) = "超出": i = i + 1: GoTo flag If K > D2 And hang < n + 3 Thenhang = hang + 1GoTo canshuElseCall biaogaoSheets("设计标高").Cells(i, 2) = Round(H, 3)End IfElseEndEnd Ifi = i + 1GoTo flagEnd SubFunction biaogao() As DoubleOn Error Resume NextG1 = -1If P2 - P1 > 0 Then G1 = 1G2 = -1If P3 - P2 > 0 Then G2 = 1H = 0If K < D1 + T1 ThenH = H1 + (K - D1) * P2 + G1 * (D1 + T1 - K) ^ 2 / (2 * R1)ElseIf K <= D2 - T2 ThenH = H1 + (K - D1) * P2ElseIf R2 <> 0 ThenH = H2 - (D2 - K) * P2 + G2 * (K - (D2 - T2)) ^ 2 / (2 * R2)ElseH = H2 - (D2 - K) * P2End IfEnd IfEnd Function本程序只计算单一线路的中桩标高,若想把多个线路的参数放在同一个表中时,只需对以上程序稍加改动即可。
利用Excel表格进行全线线路竖曲线的统一计算高速公路纵断面线型比较复杂,竖曲线数量比较多。
由于相当多的竖曲线分段造成了设计高程计算的相对困难,为了方便直接根据里程桩号计算设计高程,遂编制此计算程序。
程序原理:1、根据设计图建立竖曲线参数库;2、根据输入里程智能判断该里程位于何段竖曲线上;3、根据得到的竖曲线分段标志调取该分段的曲线参数到计算表格中;4、把各曲线参数带入公式进行竖曲线高程的计算;5、对程序进行优化和简化,去掉中间环节,进行直接计算;6、防止计算过程中的误操作,对计算表进行相应的保护。
竖曲线的高程计算原理公式:H=G+B*A+(-1)^J*X2÷(2R)H: 计算里程的设计高程K: 计算点里程D: 竖曲线交点里程G: 竖曲线交点的高程R: 竖曲线半径T: 切线长M: 前坡度I1P: 后坡度I2A: A=Abs(K-D)X: A>T => X=0; A<T => X=T-AJ: M-P<0 => J=0; M-P>=0 => J=1B: K<=D =>B=-M ; K>D => B=P程序特色:1、可以无限添加竖曲线,竖曲线数据库不限制竖曲线条数;2、直接输入里程就可以计算设计高程,不需考虑该里程所处的竖曲线分段;3、对计算公式进行保护,表格中不显示公式,不会导致公式被错误修改或恶意编辑。
程序的具体编制步骤:1、新建Excel工作薄,对第一第二工作表重新命名为“参数库”和“计算程序”,根据设计图建立本标段线路竖曲线的参数库,需要以下条目:(1)、竖曲线编号;(2)、竖曲线的前后坡度(I1、I2)不需要把坡度转换为小数;(3)、竖曲线半径、切线长(不需要考虑是凸型或凹型);(4)、竖曲线交点里程、交点高程;(5)、竖曲线起点里程、终点里程(终点里程不是必要参数,只作为复核检测用);如图1所示:图12、进行计算准备:(1)、根据输入里程判断该里程所处的曲线编号:需要使用lookup函数,函数公式为“LOOKUP(A2,参数库!H3:H25,参数库!A3:A25)”。