FX5800计算器测量程序集2.0 版.doc
CASIO fx-5800P计算器测量程序设计2.0版 作者汤海波 QQ13119703 FX5800计算器测量程序集2.0 版 一、程序功能 主要功能计算多条线路坐标正反算,可算任意复杂线型及立交匝道,包括C型,S型、卵型、回头曲线等;极坐标放样,全线路基边坡开挖口及坡脚放样计算、路基任意点设计高程、横坡、设计半幅宽度.隧道欠超挖放样计算。 新版本特点1、优化原所有主程序,所有参变量(如导线点置仪点坐标、正反算选择、偏角、线路选择等),全部在程序头次显示一次,以后运行不需输入。运行中也可以返回再次选择线路、可以直接以矩阵形式调出线路参数。 2、坐标计算考虑了线元法与交点法相结合,即是一条线路也可以一段用线元法,一段用交点法。参数置放矩阵中,输入和可读性极好。 3、新增隧道断面欠超挖值放样计算 4、高程程序中考虑了初次输入线路选择、计算面与设计面高差,输出中加入显示本桩号路基标准宽度。 二、源程序 1.主程序1一般放样正反算程序①正算坐标、放样点至置仪点方位角及距离;②反算桩号及距中距离 程序名1ZD-XY Lb1 Q Norm 214→DimZ1→FProg"DX" Lb1 XProg"QX"90→B"PJ"BB→Z[1] Lb1 0 Norm 2 “KM”ZIf Z-1Then Goto XElse If Z-2 Then 2→F Goto 0 Else If Z-3 Then Goto 9IfEnd Prog"KM"If F1Then DElse “X0”X“Y0”Y IfEnd Prog"THB"If F1 Then Goto 1 Else Goto 2 Lb1 1Fix 3" X"Locate 6,4,X◢ " Y="Locate 6,4,Y◢ Prog"6JS”Goto 0 Lb1 2Fix 3" KM="Locate 6,4,Z◢ " D="Locate 6,4,D◢ Goto 0 Lbl 9Mat F◢ Goto Q 2.主程序2高程、横坡、宽度程序计算设计任意点高程、横坡及路基设计标准宽度 程序名2GC 14→DimZLbI 0Norm 2 Prog"QX"0→B”H-B”BB→Z[9] LbI H Norm 2 “KM”ZZ-1 Goto 0DProg”H” Fix 3” H”Locate 6,4,H◢ “ I” Locate 6,4,I◢ Prog"GD"“SJLG” Locate 6,4,L◢ Goto H 3.主程序3涵洞放样程序(输入置仪点坐标。选择线路、输入路线右夹角、前进方向偏角、由涵中心桩号计算出各涵角坐标、计算放样点至置仪点方位角及距离 程序名3JH-XY 14→DimZProg"DX"LbI XNorm 2 Prog"QX"90→B"PJ1"BB→C "PJ2"C B→Z[1]C→Z[8] LbI 0Norm 21→F “KM”ZIf Z-1Then Goto X DProg”THB”0→L“L0”LZ[2]Z[1]-Z[8] →E XLcosE →XYLsinE →Y Fix 3" X"Locate 6,4,X◢ " Y="Locate 6,4,Y◢ Prog"6JS”Goto 0 4.主程序4路基开挖边线及填方坡脚线放样程序(输入填方放宽值、大概桩号及测量坐标、地面标高计算出偏移距离、桩号、距中距离、填挖高度) 程序名4FBX 17→DimZLbI BNorm 2 Prog"QX"0.5→B“TH-GD”BB→Z[17]LbI 0Norm 2 2→F90→Z[1] “KM”ZIf Z-1Then Goto B “X0”X“Y0”Y 0→M“M0”MM→Z[4]Prog”THB”D→PProg”GD”If DZ[8]Then Goto 2Else Goto 3IfEnd LbI 1LZ[10]Z[11]Z[12]G-AZ[7]Z[9]Z[6]Z[8]Z[5] →SGoto Z LbI 2LZ[10]Z[11]G-Z[8]Z[6]Z[8]Z[5] →SGoto Z LbI 3LZ[10]GZ[5] →SGoto Z LbI TLZ[17]→TIf GZ[15]Then TZ[16]G-Z[15]Z[14]Z[15]Z[13]→SGoto ZElse TGZ[13]→SGoto Z LbI ZFix 2AbsP-S→K” L0” Locate 6,4,K◢ Fix 3" KM="Locate 6,4,Z◢ " D="Locate 6,4,P◢ Z[4]0Z[4]IT-L →Z[4] “ TW” Locate 6,4,Z[4]◢ Goto 0 5.主程序5.隧道超欠挖值计算放样程序(输入隧道线路,大概桩号、输入测量三维坐标,计算准确桩号及位置、计算欠超挖值) 程序名5SD 15→DimZLbI BNorm 2 Prog"QX"LbI 0Norm 2 2→F90→Z[1] “KM”ZIf Z-1Then Goto B Prog“XD1”” X0”X“Y0”Y 0→M“M0”MM→Z[8]Prog“THB” D→Z[10]0→DProg“H”CosZ[10]*Z[4] →E HZ[5] →Z[5] HZ[7] →Z[7] EZ[5] →Z[10]If Z[8]Z[10]Then Goto RElse Goto SIfEnd LbI R √D-Z[9] 2Z[8]-Z[5] 2 - Z[4] →LGoto L LbI S Z[4]-Z[6] →S √S 2-Z[7]-Z[5] 2 →TAbsD-Z[9]-T→T√T 2Z[8]-Z[7] 2 - Z[6] →LGoto L LbI L Fix 2” L0” Locate 6,4,L◢ Fix 3" KM="Locate 6,4,Z◢ " D="Locate 6,4,D◢ “ H0” Locate 6,4,Z[8]-H◢ Goto 0 6极坐放样计算程序计算放样点至置仪点方位角及距离 程序名6JS XY Z[11]→K置仪点X坐标 Z[12]→L(置仪点Y坐标) PolX-K, Y-LIF J0Then J360→JIntJ0.01Int60FracJ0.006Frac60FracJ →J不习惯小数点后四位为角度显示的,也可以用命令J◢DMS◢来直接显示 Fix 4” FWJ” Locate 6,4,J◢ Fix 3” S”Locate 6,4,I◢ 7.路基宽度次程序6路基标准半幅宽度计算程序对于设计有加宽渐变的有用,如路基宽度无变化,则把此程序直接输入半幅宽度值至L 程序名 GD 1→SIf Z[3]1Then Prog “G1”Goto 1Else Prog “G2”Goto 1 IfEnd LbI 1Z-C→EB-A*E/SA→L 8.坐标计算次程序(THB) 程序名THB If Q2Then Goto J1P→C P-R2HPR →S180/Π→EIf F1Then AbsZ-0 →WProg “A“Goto 2ElseX→IY→JProg "B"O+W→ZD→DGoto 2 IfEnd LbI J If F1Then Prog “Z“Goto 1Else Prog "ZX"Goto 2 IfEnd LbI 1ID*COSZ[2]Z[1] →X JD*SinZ[2]Z[1] →Y LbI 2 9. 线元法正算子程序A 程序名A 0.1184634425→A 0.2393143352→B0.2844444444→N 0.046910077→K 0.2307653449→L0.5→M UWAcosGQEKWCKWSBcosGQELWCLWSNcosGQEMWCMWSBcosGQE1-LWC1-LWSAcosGQE1-KWC1-KWS →X VWAsinGQEKWCKWSBsinGQELWCLWSNsinGQEMWCMWSBsinGQE1-LWC1-LWSAsinGQE1-KWC1-KWS →Y GQEWCWS→Z[2]XDcos(Z[2] Z[1])→X YDsin(Z[2] Z[1])→Y 10. 线元法反算子程序B 程序名B G-90→T AbsY-VcosT-X-UsinT →W 0→DLbl 0Prog “A“ TQEWCWS →L J-YcosL-I-XsinL→DIF AbsD0.01Then Goto 1Else WD→WGoto 0 IfEnd←┘ Lbl 10→DProg “A“J-YsinZ[2]90 →D 11. 交点法正算子程序Z 程序名Z H2/R/24-H∧4/2688/R∧3→AH/2-H∧3/240/R2→BRAtanAbsP/2B→TO-T→CCH→LLΠR*AbsP/180→NN-H→EP/AbsP →W0→M If ZLThen 180Z-L0.5H/R/Π→S H/2-H∧3/240/R2RsinS→AH2/R/24-H∧4/2688/R∧3R1-CosS→BR→MGWS→Z[2]Goto 4 IfEnd Z-C→SProg “HX”GWK→Z[2] LbI 4UA-TcosG-WBsinG→IVA-TSinGWBcosG →J Goto 3 LbI 2UScosZ[2]→IVSsinZ[2] →J LbI 3 12. 交点法缓和段转化子程序HX 程序名HX S-S∧5/40/R2/H2S∧9/3456/R∧4/H∧4→AS∧3/6/R/H-S∧7/336/R∧3/H∧3S∧11 /42240/R∧5/H∧5→B90S2/Π/R/H→KRH/S→M 13. 交点法反算子程序ZX 程序名ZX Z0→DLbI 0Prog “Z”PolX-I,Y-JJ-Z[2] →JIsinJ →SIcosJ →IIf AbsI0.1Then ZI→ZS→DGoto 2Else Goto 1 LbI 1If M0Then ZI→ZGoto 0Eles PolM-WS,IJMΠ/180→IZI→ZGoto 0IfEnd LbI 2 14.高程计算子程序(H) 程序名H Prog “S1”C-T→FZ-F→SCT→EG-TI→QIf TOThen QSI→HGoto 0Else If ZFThen QSI→HGoto 0Else If Z≤EThen QSIS22R→HGoto 0 LbI 0HIf D0Then Goto IElse Prog “I”HV→HLbI I 15.高程超高计算程序(I) 程序名I If Z[3]1Then Prog “I1”Goto 1Else Prog “I2”Goto1 IfEnd LbI 1 If W1ThenGoto ZElseGoto X IfEnd LbI ZIf S0Then AbsDM→VGoto 2Else AbsDN-MZ-CSM→VGoto 2IfEnd LbI XIf S0Then AbsDM→VGoto 2Else AbsD3Z-CS2-2Z-CS∧3N-MM→VGoto 2IfEnd LbI 2AbsD→EVE→IIE-K→V 16.导线点子程序(DX) 程序名DX Z[11] →KZ[12] →L“XZ”K”YZ”LK→Z[11]L→Z[12] 17.线路选择子程序线路选择输入0时。则手工输入曲线参数(QX) 程序名QX 1→A”QX0,X11,X22”AA→Z[3] If A0Then Goto 1Else Goto 2 IfEnd LbI 1”ZO”O”XO”U”YO”V”FW”G”LS”HPR”J2,X0,1,-1”QGoto 2 LbI 2 18.线路中线元段判别子程序(KM) 程序名KM If Z[3]0Then Goto 0Else If Z[3]1Then Prog “X1”Goto 0Else Prog “X2”Goto 0 IfEnd LbI 0 19.坐标计算参数转化子程序(F) 程序名F Mat F[1,1]→O Mat F[1,2]→U Mat F[1,3]→V Mat F[1,4]→G Mat F[1,5]→H Mat F[1,6]→P Mat F[1,7]→R Mat F[1,8]→Q 20.数据子程序附后示例 ①-1程序名X1(线路1坐标计算要素程序) If Z≤26615.555Then [[25900,11587.421,1847.983, 101。09’23.1”,715.555,11045, 11045, 0]]→Mat FGoto 0 IfEnd If Z≤26915.555Then[[26615.555,11448.97,2550.016,101。09’23.1”,300,11045,1800,1]]→Mat FGoto 0IfEnd LbI 0 Prog”F” ①-2程序名X2(线路2坐标计算要素程序) If Z≤616.951Then [[316.951,11230.669,3213.086, 118。42’28.42”,300,180045, 11045, 1]]→Mat FGoto 0 IfEnd If Z≤4050Then[[3089.766,9708.017,5530.185,123。28’57.1”,300,-44。39’38”,2200,2]]→Mat FGoto 0IfEnd LbI 0Prog”F” 程序字母说明O-线元起点桩号交点桩号;U-起点X坐标(交点X);V-起点Y坐标(交点Y);G-线元起点桩号切线方位角(交点前一交点至现交点方位角); H-线元长度(缓和曲线长度),P-线元起点曲率半径(偏角为正负,左偏为负,右偏为正),R-线元终点曲率半径(圆半径),Q-线元判别以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,Q-1;当线元往右偏时,Q1;当线元为直线时,Q0(交点法取值2)说明括内为交点法子母代表意思。。 ②-1程序名S1线路1高程竖曲线要素子程序 If Z[3]1Then Goto 1 Else Prog “S2”Goto 0 IfEnd LbI 1If Z≤26157.8Then -200000→R157.8→T26000→C37.1→G0.01222→IGoto 0IfEnd If Z≤27421.915Then 300000→R171.915→T27250→C32.65→G-0.00356→IGoto 0IfEnd If Z≤27889.029Then 1000000→R134.029→T27755→C36.64→G0.0079→IGoto 0IfEnd LbI 0 ②-2程序名S2线路2高程竖曲线要素子程序 If Z≤183.007Then 1365→R20.475→T162.532→C46.1→G0.003→IGoto 0IfEnd If Z≤321.264Then -1200→R38.732→T282.532→C50.175→G0.033→IGoto 0IfEnd LbI 0 程序字母说明C-竖曲线交点桩号;G-交点桩号高程(未竖曲线调整的);T-竖曲线切线长;R-竖曲线半径(分正负凹曲线为正,凸曲线为负);I-竖曲线前纵坡 ③-1程序名I1(线路1高程超高参数子程序) 1.5→K2→WIf D0Then Goto LElse Goto RIfEnd LbI LIf Z≤26615.555Then 0→S-0.02→MGoto 0IfEnd If Z≤26735.555Then 120→S26615.555→C-0.02→M0.02→NGoto 0IfEnd If Z≤26795.555Then 60→S26735.555→C0.02→M0.04→NGoto 0IfEnd LbI R If Z≤26735.555Then 0→S-0.02→M Goto 0IfEnd If Z≤26795.555Then 60→S26735.555→C-0.02→M-0.04→NGoto 0IfEnd If Z≤27436.951Then 0→S-0.04→M Goto 0IfEnd LbI 0 ③-2程序名I2(线路2高程超高参数子程序) 0.5→K1→WIf D0Then Goto LElse Goto RIfEnd LbI LIf Z≤100Then 0→S-0.015→MGoto 0IfEnd If Z≤110Then 10→S100→C-0.015→M-0.02→NGoto 0IfEnd If Z≤343.665Then 0→S -0.02→M Goto 0IfEnd LbI R If Z≤100Then 0→S-0.015→M Goto 0IfEnd If Z≤110Then 10→S100→C-0.015→M-0.02→NGoto 0IfEnd If Z≤375.665Then 0→S-0.02→M Goto 0IfEnd LbI 0 字程序中字母表示说明 K-中央分隔带半幅宽(中桩标高至中桩中线距离,无分隔带则为0);W-超高方式参数(W1为一般直线方式超高,W2为三次抛物线方式超高);S-超高渐变段距离(不是渐变段则输入0);C-超高渐变段起点桩号(不是渐变段,无需输入);M-超高段起点横坡,N-超高渐变段终点横坡(不是渐变段,无需输入)。 ④-1程序名G1线路1路基标准半幅宽度参数子程序 If D0Then Goto LElse Goto RIfEnd LbI LIf Z≤28110.727Then Z→C17.25→AGoto 0IfEnd If Z≤28200.727Then 28110.727→C17.25→A21.25→B90→SGoto 0IfEnd LbI R Z≤27927.478Then Z→C17.25→A Goto 0IfEnd If Z≤28172Then 27927.478→C17.25→A27.031→B244.522→SGoto 0IfEnd LbI 0 ④-2程序名G2线路2路基标准半幅宽度参数子程序 If D0Then Goto LElse Goto RIfEnd LbI LIf Z≤69.998Then Z→C28.25→AGoto 0IfEnd If Z≤82.402Then 69.998→C28.25→A25.545→B12.404→SGoto 0IfEnd LbI R Z≤69.998Then Z→C17.45→A Goto 0IfEnd If Z≤80.367Then 69.998→C17.45→A16.787→B10.369→SGoto 0IfEnd LbI 0 字程序中字母表示说明 C-宽度渐变段起点桩号(不是渐变段CZ);A-宽度渐变段起点宽度; B-宽度渐变段终点宽度(不是渐变段,无需输入);S-宽度渐变段距离(不是渐变段,无需输入)。 ⑤-1程序名XD1线路1隧道参数子程序 If Z[3]1Then Goto 1 Else Prog “XD2”Goto 0IfEnd LbI 18.75→Z[4]-1.1→Z[5]4.77→Z[6]1.47→Z[7]-0.25→Z[9] 51。28’57.1”→Z[10] LbI0 ⑤-2程序名XD2线路2隧道参数子程序 8.5→Z[4]-1.15→Z[5]4.5→Z[6]1.52→Z[7] 0.25→Z[9] 55。20’51.6”→Z[10] 字程序中字母表示说明 Z[4]-隧道上拱半径;Z[5]-隧道上拱圆心至设计面高度;Z[6]-隧道中腰部半径;Z[7]-中腰圆心至设计面高度;Z[9]-设计隧道中线与设计路基中线偏移值,左为负数,右为正数;Z[10]-上部拱跨隧道半幅角度; ⑥-1程序名W1线路1路基填挖边坡参数子程序 If Z[3]1Then Goto 1 Else Prog “W2”Goto 0IfEnd LbI 10.75→Z[5]1→Z[6]1.25→Z[7]10→Z[8]10→Z[9]2.6→Z[10]2→Z[11]2→Z[12] 1.5→Z[13]1.75→Z[14]8→Z[15]2→Z[16] LbI0 ⑥-2程序名W2线路2路基填挖边坡参数子程序 1→Z[5]1→Z[6]1.25→Z[6]10→Z[8]10→Z[9]2.6→Z[10]1.5→Z[11]1.5→Z[12] 1.5→Z[13]1.75→Z[14]8→Z[15]2→Z[16] 字程序中字母表示说明 Z[5]-挖方第一阶边坡边率;Z[6]-挖方第二阶边坡边率;Z[7]-挖方第三阶边坡边率;Z[8]-挖方第一阶高度;Z[9]-挖方第二阶高度;Z[10]-挖方路基碎落台及水沟宽度;Z[11]-挖方第二台阶平台宽度;Z[12]-挖方第三台阶平台宽度; Z[13]-填方第一阶边坡边率;Z[14]-填方第二阶边坡边率; Z[15]-填方第一阶高度;Z[16]-填方第二台阶平台宽度。(注本程序只做出挖方三个台阶,填方二个台阶,如需增加,先需在程序THB和4FBZ程序中增加变量。再如一标段有坡率及坡高不一样时,可以照其它参数程序一样,用判别语句。) 三、使用说明 1、规定 1 “KM”为所求点桩号,反算时为输入大概桩号 2 当所求点位于中线时,D0;当位于中线左铡时,D取负值;当位于中线中线右侧时,D取正值。 3 当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次代替。(在用交点法时,此字母代表偏角) 4 当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆弧的半径。(交点法为圆半径) 5 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。 6 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。 7 Q值是判别用采用线元法还是交点法。交点法值为2。线元法,根据线元段取值,直线段取0,缓和段和圆曲线段,根据左偏取-1,右偏取1. 8 为了区别字母O及数子0,特把字母0加粗。 2、输入与显示说明 输入部分 1.XZYZ 为置仪点坐标,第一次运行输一次,以下运行不需再输入,下次再运行此程序调上次输值,如需改,则输入,不需改,则按确认键。 2 .QXX11,X22”选择经路,坐标计算中输入0值,变为输入线元段曲线要素。输1为第一条线路。输2为第二条线路,本程序暂设计实例为2条线路。 3.PJ路线中线与右边线夹角,默认为90度。 4.KM正算时所求点的里程(反算输入大概桩号)输入-1,返回输入选择线路,输入-2,返回输入大概桩号、坐标反算桩号及距离,输入-3,调出本段线元参数,以矩阵显示,再运行从头开始。 D 正算时所求点距中线的边距左侧取负,值右侧取正值,在中线上取零 X0 反算时所求点的X坐标(放样程序中实测X坐标) Y0 反算时所求点的Y坐标(放样程序中实测Y坐标) 显示部分 L 涵洞放样程序中涵距中心桩号前后距离,前为正,后为负. M0 边坡放样程序中原地面标高输入 H-B计算面至路面高差(默认路面为0) PJ1 PJ2 涵洞计算中第一个夹角同PJ。第二夹角为边线至路前进方向夹角。 TH-GH边坡放样中填方超放宽值,默认值为0.5m. 输出部分 X***正算时,计算得出的所求点的X坐标 Y***正算时,计算得出的所求点的Y坐标 FWJ*** 正算时,计算得出的所求点的至置仪点方位角 S*** 正算时,计算得出的所求点的至置仪点距离 KM***反算时,计算得出的所求点的里程 D***反算时,计算得出的所求点的边距 H*** 所求点位置设计路面顶标高 I*** 所求点位置设计路面横坡 SJLG*** 所求点位置路基设计半幅标准宽度 L0*** 边桩放样程序中实测点至设计边坡点距离,正向内移,负向外移。隧道程序中为超欠挖值,正为超挖,负为欠挖 TW*** 边桩放样程序中,实测放样边坡点至止桩号设计顶填挖高度值 H0*** 隧道放样程序中测量点至设计面高度 四、结束语 1、本套程序实例线路暂给二条,如标段像匝道有多条线时,同理增加。 2、由于本人没做过隧道,隧道程序只是参照本项目另一个标的图纸所做,如有不同,可以调整参数。原理应是一样的。 3、为了更好的开发计算器程序,本人特建一QQ群,欢迎各位测友加入,QQ群号是24817026。 4、所有对程序有建议或问题的,加本人QQ后可以直接留言,由于工作原因,可能不能马上给予答复,敬请谅解加QQ为好友时请注明计算器程序 20