5800交点法正反算程序
5800公路坐标正反算程序(线元法数据输入)

坐标正反算程序程序变量说明:D:选线。
E、F:置仪点坐X、Y。
K:待算点桩号。
B:待算点距离。
Q:待算点与线路交角(以顺时针方向)。
L:线元起点至待算点长度。
O:待算点方位角。
S:线元长度。
U:线元起点半径。
V:线元终点半径。
程序运行内容说明:开机运行程序后,1、进入主程序,选择正算或反算,1为正算,2为反算。
2、选择线路,1为第线。
2为第线。
3为第线等等。
3、如果上一次计算过的话提示是不更新数线路参数,十秒钟不操作更新,按EXE不更新。
如果上一次不是计算现在要计算的线路的话直接更新数据库(数据库更新会倒计时提示)。
3、正算。
提示入入置仪点坐标。
提示输入待算点桩号。
提示输入离中桩距离。
提示输入与线路方向夹角。
结果:坐标X、Y。
距置仪点距离和方位角。
再次提示输入待算点桩号。
反算。
提示输入实测点坐标X、Y。
结果:待算点桩号程距中桩距离。
再次提示输入实测点坐标X、Y。
程序特点:1、输入参数少,只要输入线路起点的桩号、半径、方位角、XY坐标以及各线元的桩号和半径(左+右-直线×1045)即可。
2、调用变量少,本程还有A、G、H、M、N、P、R、W字母变量未使用,可以用于其它程序而不会和本程序产生冲突。
3、数据库独立,更换工程时数据更换方便。
4、界面友好,尽量做到人人都容易上手,操作一学就会。
5、程序尽量运用5800计算器各种指令,使程序速度提高。
并能够起到帮助大家学习5800各指令工作原理,以便更好掌握编程。
卡西欧5800自改正反算程序(已经使用过)QD-ZBZFS交点法正反算程序

5800计算器交点法正反算程序(QD-ZFS)正算快,反算慢,不带高程程序(反算调试中)主程序:(QD-ZFS)Lb1 A ↙30→DIM Z :"1=ZS,2=FS"?Z ↙If Z=1:Then Goto B:IfEnd↙ (Z=1进入正算子程序)If Z=2:Then Prog"QD-FS"↙ (Z=2进入反算子程序)Lb1 B ↙Prog” QD-ZS” ↙子程序计算判别:(QD-JS)LB1 2 ↙(曲线要素计算)Z[6]/2- Z[6]^3/(240*R^2)+ Z[6]^5/(34560*R^4) →Z[8] ↙(M1)Z[7]/2- Z[7]^3/(240*R^2)+ Z[7]^5/(34560*R^4) →Z[9] ↙(M2)Z[6]^2/(24*R)- Z[6]^4/(2688*R^3) →Z[10] ↙(P1)Z[7]^2/(24*R)- Z[7]^4/(2688*R^3) →Z[11] ↙(P2)π*A*R/180+0.5*( Z[6]+ Z[7])→Z[25] ↙(曲线总长)90* Z[6]/(R*π) →Z[14] ↙ (第一缓和曲线总偏角)90* Z[7]/(R*π) →Z[15] ↙(第二缓和曲线总偏角,可以省略)Z[8]+(R+Z[10])Tan(A/2)-(Z[10]-Z[11] )/Sin( A) →Z[12]↙ (切线T1)Z[9]+(R+Z[11])Tan(A/2)+(Z[10]-Z[11] )/Sin (A)→Z[13]↙ (切线T2)B+ Z[12]*Cos (E+180)→ Z[16] ↙ (ZH点X)C+ Z[12]*Sin(E+180)→ Z[17] ↙ (ZH点Y)Z[1]- Z[25]→Z[3] ↙ (ZH点里程)Z[3]+ Z[6]→Z[4] ↙ (HY点里程)Z[1]- Z[7]→Z[5] ↙ (YH点里程)Goto 3 ↙LB1 3 ↙(判断里程点与曲线关系)if K≤Z[3] And K> Z[2] : Then Goto 4 : Ifend ↙if K≤Z[4] And K> Z[3] : Then Goto 5 : Ifend↙if K≤Z[5] And K> Z[4] : Then Goto 6 : Ifend ↙if K≤Z[1] And K> Z[5] : Then Goto 7 : Ifend ↙Lb1 4 ↙(里程小于直缓点直线独立坐标)K- Z[3] →Z[23] : 0→Z[24] : E→T : Goto 8↙Lb1 5 ↙(第一缓和曲线独立坐标)K- Z[3] →H ↙H-H^5/(40*(R^2)* Z[6]^2)+H^9/(3456*(R^4)* Z[6]^4) →Z[23] ↙H^3/(6*R* Z[6])-H^7/(336*(R^3)* Z[6]^3) →Z[24] ↙90*(H^2)/( R*π* Z[6]) →T ↙if O>0 :Then T +E→T : Eles E-T →T : T<0=>360+T→T : Ifend ↙Goto 8 ↙Lb1 6 ↙(圆曲线独立坐标)K- Z[4] →H ↙H*180/( R*π)+ Z[14]→T ↙R*Sin(T)+ Z[8]→Z[23] ↙R*(1-Cos(T))+ Z[10]→Z[24] ↙if O>0 :Then T +E→T : Eles E-T →T : T<0=>360+T→T : Ifend ↙Goto 8 ↙Lb1 7 ↙(第二缓和曲线独立坐标)Z[1] - K→H ↙H-H^5/(40*(R^2)* Z[7]^2)+H^9/(3456*(R^4)* Z[7]^4) →U↙H^3/(6*R* Z[7])-H^7/(336*(R^3)* Z[7]^3) →V ↙90*(H^2)/( R*π* Z[7]) →T ↙Z[13]Cos(A)+ Z[12]-U*Cos(A)-V*Sin(A)→Z[23] ↙Z[13]*Sin(A)-U*Sin(A)+V*Cos(A)→Z[24] ↙if O>0 :Then F-T→T : T<0=>360+T→T : Else F+T →T : Ifend ↙Goto 8 ↙Lb1 8 ↙if O<0 : Then - Z[24]→Z[24] : Ifend ↙Z[16]+Z[23]*Cos(E) -Z[24]*Sin(E)→Z[18] ↙Z[17]+Z[23]*Sin(E)+Z[24]*Cos(E)→Z[19] ↙Return↙正算子程序:(QD-ZS)Lb1 0 ↙“XHS="?G(后视点X):"YHS="?L(后视点Y):"XZJ="?M(置镜点X):"YZJ="?N(置镜点Y):Pol(G-M,L-N):"DH=":I(后视距)◢J<0=>J+360→J:"FH=":JDMS◢(后视方位角)Lb1 1↙“K=”?K :(输入所需计算里程)Prog" QD-SJK "↙XI : Z[18]↙YI : Z[19]↙Pol(Z[18]-M,Z[19]-N):"D=":I◢(放样距)J<0=>J+360→J:"F=":J DMS◢(放样方位角)“PJ=”?P↙ (输入桩与线路夹角)“PD=”?D↙ (输入桩距中线的距离)Z[18]+D*Cos(T+P) →Z[20] ↙Z[19]+D*Sin(T+P) →Z[21] ↙“X=”: Z[20] ◢ (放样坐标X)“Y=”: Z[21] ◢ (放样坐标Y)Pol(Z[20]-M,Z[21]-N):"D=":I◢(放样距)J<0=>J+360→J:"F=":JDMS◢(放样方位角)Goto 1↙反算子程序:(QD-FS)Lb1 1 ↙"XK="?X:"YK="?Y↙(输入任意测点的X、Y坐标)“K=”?K ↙(试算里程,任意输入标段内里程点即可,也可以输入大致的估算里程加快速度)Lb1 2 ↙Prog"QD-SJK":T-90→W:W<0=>360+W→W:Abs((Y-Z[19])*Cos(W)-(X-Z[18])*Sin(W))→S↙If S<0.0001:Then Goto 4:Else Goto 3:Ifend↙Lb1 3 ↙K+S→K:Prog"QD-SJK":T-90→W:W<0=>360+W→W:Abs((Y-Z[ 19])*Cos (W)-(X-Z[18])*Sin (W))→Q↙If Q<0.0001 :Then Q→S: Goto 4:Else if Q<S: ThenK+Q→K: Goto 2 :Else if Q>S :Then K-Q→K:Goto 2:Ifend:Ifend:Ifend↙Lb1 4 ↙Pol (X-Z[18],Y-Z[19]:"D=":( Z[19]-Y)/ Sin (W) →I◢(偏距,加此才能分辨左右{偏距少就+})"K=":K+S→K◢(里程)Goto 1↙数据库:(QD-SJK)if K<本段曲线终点里程And K≥上段曲线终点里程:Then 本段曲线终点里程→Z[1] : 上段曲线终点里程(第一段曲线输起点的里程)→Z[2] :1→O(注:左偏曲线输入-1→O,右偏曲线输入1→O): 半径→R :曲线偏角→A:第一缓和曲线→Z[6] :第二缓和曲线→Z[7] :交点X→B :交点 Y→C : 小里程向交点方位角→E : 交点向大里程方位角→F : Prog” QD-JS”:Return: Ifend↙if…………Prog” QD-JS”:Return:Ifend(曲线段分段输入)↙补充直线段输入如下 (只需输线路的最后一段直线数据)if K<本段直线终点里程 And K≥本段直线起点里程:Then 本段直线终点里程→Z[3]:终点X→Z[16]:终点Y→Z[17]:方位角→E: Z[16]+ (K- Z[3])*Cos(E)→Z[18]:Z[17]+ (K- Z[3])*Sin(E)→Z[19] : Return:Ifend↙。
卡西欧5800正反算程序

1.主程序(1-ZB ZFS)Deg:Fix 6Lbl 9:”I”:”2.YOU JIN”:”MI MA =”?C: Goto 1↙”Lbl 4:"3.ZH =>BG":”1.ZH =>XY”2.XY =>ZH ":”3.ZH =>BG 4.TF =>JS ”:"N="?N↙If N =3;Then Prog “BG JS 20M”: IfEnd↙If N =4: Then Prog “4-TFJS”; IfEnd↙If N ≥5: Then Cls:Stop; IfEnd↙Lbl 9:”ZH=”?S:Prog “1.1-ZFS”:If N=1:Then Goto3:IfEnd↙If N=2:Then Goto2:IfEnd↙Lbl3:”Z=”?Z:”J=”?J:Abs(S-O)→W:Prog”1.2-ZFS”:X+Zcos(F +J)→X:Y+Zsin(F+J) →Y↙If Z=0(带下划线的0为数字0):Then “X=”:X◢"Y=":Y◢F-90→F:“F WJ=”:F▼DMS◢(5800里面的度分秒的)Prog “123”:“BG =>Z”:D◢Goto4: IfEnd↙If Z=1: Then”(Y)X=”: X◢“(Y)Y=”:Y◢F-90→F:“F WJ=”:F▼DMS◢(5800里面的度分秒的)Prog “123”:“BG =>Z”:D◢Goto4: IfEnd↙If Z=-1: Then”(Z)X=”: X◢“(Z)Y=”:Y◢F-90→F:“F WJ=”:F▼DMS◢(5800里面的度分秒的)Prog “123”:“BG =>Z”:D◢Goto4: IfEnd↙If Z>1: Then”(Y)X=”: X◢“(Y)Y=”:Y◢F-90→F:“F WJ=”:F▼DMS◢(5800里面的度分秒的)Prog “123”:“BG =>Z”:D◢Goto4: IfEnd↙If Z<1: Then”(Z)X=”: X◢“(Z)Y=”:Y◢F-90→F:“F WJ=”:F▼DMS◢(5800里面的度分秒的)Prog “123”:“BG =>Z”:D◢Goto4: IfEnd↙Lbl 2:“(Q)X =”?X:“(Q)Y=” ?Y:X →I:Y →J: Prog"1.3-ZFS":O+W→S:“(SQ)ZH=”:S◢“(SQ)Z=”:Z◢Goto 4↙Lbl 1:If C=1989:Then Goto 4:0→C:Else Stop:IfEnd↙(密码符号段把原来的密码调到后面去了 )2. 正算子程序(1.2-ZFS )0.1739274226→A:0.3260725774→B:0.0694318442→K:0.3300094782→L:1-L→F:1-K→M:U+W(Acos(G+QEKW(C+KWD))+Bcos( G+QELW(C+LWD))+Bcos(G+QEFW(C+FWD))+Acos(G+QEMW(C+MWD))→X:V +W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+Asin(G+QEMW(C+MWD)) →Y:G+QEW(C+WD)+90→F3. 反算子程序(1.3-ZFS)G-90→T:Abs((Y-V)cos(T)-(X-U)sin(T)) →W:0→Z:Lbl 0:Prog "1.2-ZFS":T+QEW(C+WD)→L:(J-Y)cos(L)-(I-X)sin(L)→Z:If Abs(Z)< -6:Then Goto1: Else W+Z→W:Goto 0↙Lb1 1:0→Z:Prog"1.2-ZFS":(J-Y)÷sin (F)→Z↙4. 数据库子程序(1.1-ZFS)If S<***:Then Cls:Stop:IfEnd(全线路的起点里程桩号如:If S<1497534.054:Then Cls:Stop:IfEnd小于1497534.054的全部失败)If S〉*****:Then Cls:Stop:IfEnd↙(同上)If S≦***(线元终点里程):Then***→U(线元起点X):***→V(线元起点Y): ***→O(线元起点里程):***→G(线元起点方位角): ***→H(线元起点至终点长度):***→P(线元起点曲率半径,在这里声明下,如果是直线段的话输1.×10+45就是输1. +45):***→R(线元终点曲率半径同上): 0或1、-1→Q:Goto 1 :IfEnd ↙If S≦……………………………………………:Goto 1 :IfEnd ↙………………[注意:输入方法:ZH-HY(ZH点注意P输入1.×10+45就是输1.+45,HY R按照曲线要素半径),HY-YH(P和R都按照曲线要素输入半径),YH-HZ(YH P按照曲线要素半径,R输1.×10+45),HZ-ZH(P和R 都输1.×10+45) Q为转角值看曲线上是左转角-1还是右转角1HZ-ZH Q为0]最后结尾记得一定要输入Lbl 1:1÷P→C:(P-R)÷(2HPR)→D:180÷π→E:Return↙5.BG JS 20M (子程序)Deg; Fix3↙Lbl1:”ZH=”?:Prog“BG SJK”:”Z=”?Z↙If Z=0:Then A→D:”(0)BG =>Z”:D◢Goto1: IfEnd↙If Z=1:Then A→D:”(Y)BG =>Z”:D◢Goto1: IfEnd↙If Z=-1:Then A→D:”(Z)BG =>Z”:D◢Goto1: IfEnd↙If Z>1:Then A+(Z-1)(C/100)→D:”(Y)BG =>Z”:D◢Goto1: IfEnd↙If Z<-1:Then A+(-Z-1)(-B/100)→D:”(Z)BG =>Z”:D◢Goto1: IfEnd↙6.BG SJK(标高数据库)If S =K: Then H→A:i(Z)→B: i(Y)→C: IfEnd↙注:K 为桩号里程,H为中桩高程,i(Z)为左横坡,i(Y)为右横坡。
Casio5800交点法与线元法(积木法)匝道坐标正反算放样程序

Casio5800交点法与线元法(积木法)匝道坐标正反算放样程序(XUFENG 2011.2.14)本人一直以来想找一个交点法与线元法相结合的坐标正反算程序,在网上找了很久很久,没能找到一个较为满意的,有幸在测量空间看到大歪哥的《Casio5800交点法程序》与《线元法(积木法)匝道坐标正反算放样程序》,根据歪哥意见“需要的自行修改结合XY框架自己修改为数据库反算程序等”,本人不才,采用最笨的办法将两个程序综合了一下,使之能既能进行交点法正反算,又能进行线元法正反算。
在此特别感谢大歪哥!将程序发上来,愿与大家一同交流学习欢迎大家吐口水,只要能进步就行!程序由一个主程序ZBZFS和8个子程序(JS、XY-A、XY-B、JDYS、1、2、3、4)构成,运行时只需运行主程序即可!本程序适用于单交点对称型、不对称型、无缓和曲线单圆曲线型一个交点范围内(含交点前后有直线段时)的曲线要素核对和坐标正反算,手工输入要素,对设计图纸的“直线、曲线转角表”中交点数据进行复核验证,并能对单一线元进行坐标正反算。
1主程序名:ZBZFS(功能:进入计算主程序)65→Dimz↙Deg:Fix 3↙"1.JD ZFS 2. ZHADAO ZFS"? I: I→Z[61]: "1.ZHONG SHU JS 2. JS"? I↙If I=1: Then Goto1: Else Goto2:IfEnd↙LbI 1 :If Z[61]=1: Then Prog"JDYS":Else Cls:"K0"?A:"KN"?L :"X0"?U :"Y0"?V :"F0"?W :"R0"?P :"RN"?Q:"ZX:-1,+1,0"?G:IfEnd↙LbI 2 :Prog"JS"2子程序名:JS(功能:选择正算或反算模式)Cls:"XC"?H:"YC"?Z↙Cls:"1.ZS 2.FS"? I: I=2=>Goto 3↙LbI 1 : Cls: If Z[61]=1: Then"JD ZS KX+XXX"?K :Prog"4": Else "ZHADAO ZS KX+XXX"?K :IfEnd↙LbI 2: Cls:90→B: Cls:"RJ Or 0 To K"?B:B=0 =>Goto 1:"Z"?T↙Prog "XY-A"↙X+Tcos(M+B)→X↙Y+Tsin(M+B)→Y↙360Frac((M+360)÷360→M↙Pol(X-H,Y-Z : 360Frac((J+360)÷360→J↙2→O: Prog "XY-B":Goto 2↙LbI 3 : Cls: If Z[61]=1: Then"JD FS KN+"?K:"X"?C:"Y"?D:Prog"4":Else Cls: "ZHADAO FS":"X"?C:"Y"?D:IfEnd↙LbI 4 :Prog "XY-A"↙(D-Y)sin(M)+(C-X)cos(M)→H↙If Abs(H)>X10-3 :Then K+H→K:Goto 4:IfEnd↙(D-Y)÷cos(M)→T↙3→O: Prog "XY-B":Goto 3↙3子程序名: XY-A(功能:坐标计算程序)5→N: G(Q-1-P-1)÷Abs(L-A)→F: Abs(K-A)÷N→R: 90R÷π→S:W+(FNR+2GP-1)NS→M:1→E↙U+R÷6×(Cos (W)+Cos (M) +4∑(Cos (W+((E+0.5)FR+2GP-1)×(E+0.5)S),E,0,(N-1))+2∑(Cos (W+((EFR+2GP-1)ES,E,1,(N-1)))V+R÷6×(sin (W)+sin (M) +4∑(sin (W+((E+0.5)FR+2GP-1)×(E+0.5)S),E,0,(N-1))+2∑(sin (W+((EFR+2GP-1)ES,E,1,(N-1)))→Y↙4子程序名: XY-B(功能:显示正算或反算结果)If O=2:Then↙Cls :"K×××=":"Z=":"X=":"Y=": Locate 6,1, K : Locate 4, 2, T : Locate 4,3, X : Locate 4,4, Y◢If T=0 :Then Cls :"QF(Z)=": Locate 8,1, M:M▼DMS◢I fEnd↙Cls :"K×××=":"S=": Locate 6,1, K : Locate 4, 2, I :"F=":J:J▼DMS◢IfEnd↙If O=3:Then "X=":"Y=":"K×××=":"Z=": Locate 4,1,C: Locate 4, 2, D : Locate 6,3,K :Locate 4,4,T◢IfEnd:Cls↙5子程序名:4(功能:将交点参数转为线元计算参数)LbI 1: IF Z[48]<0 :Then -1→Z[62] : Else:1→Z[62]:IfEndLbI 2: If K≥Z[57]:Then Z[57]→A:Z[1]→L:Z[23]→U:Z[24]→V : Z[31]→W : 10^45→P:10^45→Q : 0→G:IfEnd↙LbI 3:If K≥Z[1]:Then Z[1]→A : Z[2]→L : Z[19]→U : Z[20]→V:Z[29]→W : 10^45→P:Z[46]→Q : Z[62]→G: IfEnd↙LbI 4:If K≥Z[2]:Then Z[2]→A: Z[4]→L:Z[25]→U : Z[26]→V:Z[32]→W : Z[46]→P: Z[46]→Q : Z[62]→G: IfEnd↙LbI 5:f K≥Z[4]:Then Z[4]→A : Z[5]→L : Z[27]→U:Z[28]→V : Z[33]→W : Z[46]→P: 10^45→Q : Z[62]→G: IfEnd↙LbI 6:If K≥Z[5]:Then Z[5]→A : Z[5]+1000→L:Z[21]→U : Z[22]→V : Z[30]→W:10^45→P :10^45→Q : 0→G : IfEnd↙6子程序名:JDYS(功能:输入交点要素、显示交点要素及主点Cls : "BP"?H:H→Z[57]:"K(JD)"?K:K→Z[41] :"X (JD)"?X :X→Z[42]:"Y(JD)"?Y:Y →Z[43]:"LS1"?B:B→Z[44] :"LS2"?C:C →Z[45]: ?R:R →Z[46]:"(ZH)FWJ°"?M:M→Z[47] : "α(Z-,Y+)°"?O:O→Z[48] : Z[47]+Z[48]→Z[49]: Prog "1":Prog "2"↙Cls :"T1=":"T2=":"L=":"LY=": Locate 4,1, Z[50] : Locate 4,2, Z[51]: Locate 4,3, Z[52] : Locate 4,4, Z[53]◢Cls :"E=": Locate 7,1, Z[54]Cls :"K(QD)=": "X=": "Y=": "FWJ="Locate 7,1,Z[57] :Locate 7,2, Z[23] :Locate 7,3, Z[24] :Locate 7,4, Z[31] ◢Cls :"K(ZH)=": "X=": "Y=": "FWJ=":Locate 7,1,Z[1] : Locate 7,2, Z[19] :Locate 7,3, Z[20] :Locate 7,4, Z[29]◢Cls : "K(HY)=": "X=": "Y=": "FWJ=": Locate 7,1,Z[2] : Locate 7,2, Z[25] :Locate 7,3, Z[26] :Locate 7,4, Z[32]◢Cls :"K(QZ)=": Locate 7,1,Z[3]◢Cls :"K(YH)=": "X=": "Y=": "FWJ=": Locate 7,1,Z[4] : Locate 7,2, Z[27] :Locate 7,3, Z[28] :Locate 7,4, Z[33]◢Cls :"K(HZ)=": "X=": "Y=": "FWJ=": Locate 7,1,Z[5] : Locate 7,2, Z[21] :Locate 7,3, Z[22] :Locate 7,4, Z[30]◢7子程序名: 1(功能:计算交点要素)If Z[48]<0 :Then -1→Z[55] : Else 1→Z[55] : IfEnd : Z[55]* Z[48]→Z[56] ↙Z[44] 2 ÷24÷Z[46]- Z[44]^(4)÷2688÷Z[46] ^(3) →Z[6] ↙Z[45] 2 ÷24÷Z[46]- Z[45]^(4)÷2688÷Z[46] ^(3) →Z[7] ↙Z[44]÷2-Z[44]^(3)÷240÷Z[46]2 →Z[8] ↙Z[45]÷2-Z[45]^(3)÷240÷Z[46]2 →Z[9] ↙Z[8]+(( Z[46]+Z[7]-( Z[46]+Z[6])cos(Z[56]))÷sin(Z[56]))→Z[50]↙Z[9]+(( Z[46]+Z[6]-( Z[46]+Z[7])cos(Z[56]))÷sin(Z[56]))→Z[51]↙Z[46]* Z[56]π÷180+( Z[44]+ Z[45]) ÷2→Z[52]↙Z[46]* Z[56]π÷180-( Z[44]+ Z[45]) ÷2→Z[53]↙(Z[46]+(Z[6]+Z[7])÷2)÷cos(Z[56]÷2)- Z[46]→Z[54]↙Z[41]-Z[50]→Z[1] ↙↙Z[1]+Z[44]→Z[2] ↙↙Z[2]+Z[53]÷2→Z[3]↙Z[1]+Z[52]-Z[45]→Z[4]↙Z[4]+Z[45]→Z[5]↙8子程序名: 2(功能:计算主点坐标及切线方位角)Z[42]-Z[50]cos(Z[47])→Z[19]: (直缓坐标)Z[43]-Z[50]sin(Z[47])→Z[20]↙Z[47]→Z : 360Frac((Z+360)÷360→Z[29] (方位角)Z[42]+Z[51]cos(Z[49])→Z[21]: (缓直坐标)Z[43]+Z[51]sin(Z[49])→Z[22]↙Z[49]→Z: 360Frac((Z+360)÷360→Z[30] (方位角)Z[1]-Z[57]→L↙(H→Z[57]为前直线起点桩号)Z[42]-( Z[50]+L)cos(Z[47])→Z[23]↙ (前直线起点坐标)Z[43]-( Z[50]+L)sin(Z[47])→Z[24]↙Z[47]→Z : 360Frac((Z+360)÷360→Z[31]↙(方位角)Z[44]→Z[12]:Z[44]→Z[13]:Prog"3"↙Z[4]-Z[1]→L:90(2L-Z[44])÷Z[46]÷π→Z[11]↙Z[46]sin(Z[11])+Z[8]→Z[14]:Z[46](1-cos(Z[11]))+Z[6]→Z[15]↙Z[19]+Z[14]cos(Z[47])-Z[55]Z[15]sin(Z[47])]→Z[27]↙(圆缓点坐标)Z[20]+Z[14]sin(Z[47])+Z[55]Z[15]cos(Z[47])]→Z[28]↙Z[47]+Z[55]Z[11]→Z: 360Frac((Z+360)÷360→Z[33]↙(方位角)Z[2]-Z[1]→L:90(2L-Z[44])÷Z[46]÷π→Z[58]↙Z[46]sin(Z[58])+Z[8]→Z[14]:Z[46](1-cos(Z[58]))+Z[6]→Z[15]↙Z[19]+Z[14]cos(Z[47])-Z[55]Z[15]sin(Z[47])]→Z[25]↙(缓圆点坐标)Z[20]+Z[14]sin(Z[47])+Z[55]Z[15]cos(Z[47])]→Z[26]↙Z[47]+Z[55]Z[58]→Z: 360Frac((Z+360)÷360→Z[32]↙(方位角)9子程序名: 3(主点坐标计算辅助程序)If Z[12]=0 :Then 0→Z[14]: 0→Z[15]:Else↙Z[12]- Z[12]^(5)÷40÷(Z[46]*Z[13])2+ Z[12]^(9)÷3456÷(Z[46]*Z[13])^(4) →Z[14]↙Z[12]^(3)÷6÷(Z[46]*Z[13])-Z[12]^(7)÷336÷(Z[46]*Z[13])^(3)+ Z[12]^(11) ÷42240÷(Z[46]*Z[13])^(5)→Z[15] ↙IfEnd↙程序说明:1、进入程序:1.JD ZFS 2. ZHADAO ZFS? 选1为交点法正反算(以后操作均为交点法计算),选2为线元法正反算(以后操作均为线元法计算)2、ZHONG SHU JS 2. JS?选1重输参数,选2直接进入交点法或线元法正反算(参数为已输过的参数)3、参数输入:一、交点法已知数据输入:BP?上一交点ZH桩号K(JD)?交点桩号X(JD)?交点X坐标Y(JD)?交点Y坐标LS1 ?第一缓和曲线长度LS2 ?第二缓和曲线长度R ? 圆曲线半径(ZH)FWJ°?交点前(即前交点至本交点也即ZH点)的正切线方位角α(Z-,Y+)?本交点处线路转角(左转为负,右转为正,度分秒输入)交点法计算要素显示:T1=第一切线长T2=第二切线长L=曲线总长LY=圆曲线长E=曲线外距K(ZH)=直缓点桩号K(HY)=缓圆点桩号K(QZ)=曲中点桩号K(YH)=圆缓点桩号K(HZ)=缓直点桩号二、线元法已知数据输入:K0? KN? R0? RN?F0?X0? Y0?ZX? 分别为线元起点桩号、终点桩号、起点半径、终点半径、起点切线方位角、起点X坐标、起点Y 坐标、线元转向。
非常好的5800坐标正反算程序

5800坐标正反算程序“1.If SZThen XY”:“2. If XYThen SZ”:“N=”?→N:起点X→U:起点Y →V:起点里程→O:起点方位角→G:曲线长度→H:起点曲率半径→P:终点曲率半径→R:(左偏-1;直线0;右偏1)→Q:1÷P→C:(P-R)÷(2HPR)→D:180÷π→E:If 1→N:Then Goto 1:Else Goto 2:IfEnd←Lbl 1:“S=”?→S:“Z=”?→Z:Abs(S-O)→W:Prog “SUB1”:X→X▲Y→Y▲Lbl 2:“X=”?→X:“Y=”?→Y:X→I:Y→J:Prog “SUB2”:O+W→S▲Z→Z▲Goto 2正算子程序SUB10.1739274226→A:0.3260725774→B:0.0694318442→K:0.3300094782→L:1-L→F:1-K→M:U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+ Bcos(G+QEFW(C+FWD))+A cos(G+QEMW (C+MWD)))→X:V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Bsin(G+QEFW(C+FWD)) +Asin(G+QEMW+(C+MWD)))→Y:G+QEW(C+WD)+90→F:X+ZcosF→X:Y+ZsinF→Y←反算子程序SUB2G-90→T:Abs((Y-V)cosT-(X-U)sinT)→W:0→Z:Lbl 0:Prog “SUB1”:T+QEW(C+WD) →L:(J-Y)cosL-(I-X)sinL→Z:If AbsZ<0.000001:Then Goto1:Else W+Z→W:Goto0:IfEnd←Lbl 1:0→Z:Prog“SUB1”:(J-Y)÷sinF→Z5800坐标反算程序Lbl 0:“X=”?→X:“Y=”?→Y:焦点X→N:焦点Y→E:转向角→A:半径→R:缓和曲线长→C:切线长→T:直缓点里程→G:缓直点里程→M:方位角→F:If G<M:Then 1→P:F→U:Else -1→P:F+A→U:IfEnd←If A>0:Then 1→Z:Else -1→Z:IfEnd←Pol(X-N,Y-E) ←G+PT+Rec(I,J-U)→S:J→D←If G>M:Then Goto3:IfEnd←If S≤G :Then S→K▲ZD→Q▲Goto 0←Else Goto4:IfEnd←Lbl 3←If S≥G:Then S→K▲ZD→Q▲Goto 0←Lbl 4←C2÷24÷R-C4÷2688÷R3→W:C÷2-C3÷240÷R2→V:90C÷R÷π→B:←Pol(P(S-G) -V,ZD-R-W) ←If J≥B-90:Then Goto 5:IfEnd←P(S-G)+P(S-G)5÷40÷R2÷C2→Z←Z3÷(6RC) →H←If A>0:Then D-H→W:Else -D-H→ W:IfEnd←If RC≤2WC:Then RC÷W→Z:Else(RC-√(R2C2-2RCWZ)) ÷W→Z:IfEnd←G+PZ→K▲K-PZ5÷(40R2C2) →V:Z3÷(6RC) →H←If A<0:Then -1→Z:Else 1→Z:IfEnd←√((S-V)2+(ZD-H)2) →W←If ZD≥H:Then W→Q▲Else -W→Q▲IfEnd←Goto 0←Lbl 5←(90+J)π÷180-C÷2R→J←If RJ≥P(M-G) -2C:Then Goto 6:IfEnd←G+P(C+JR) →K▲R-I→Q▲Goto 0←Lbl 6←Pol(P(S-G) -T,ZD) ←M-P(T-Rec(I,J-AbsA)) →O←If G>M:Then Goto 7:IfEnd←If O>M:Then O→K▲J→O▲Goto 0←Else Goto 8:IfEnd←Lbl 7←If O≤M:Then O→K▲J→Q▲IfEnd←Goto 0←Lbl 8←P(M-O)+P(M-O)5÷(40R2C2) →Z←Z3÷(6RC)) →H←J-H→W←If RC≤2WZ:Then RC÷W→Z:Else(RC-√(R2C2-2RCWZ)) ÷W→Z:IfEnd ←M-PZ→K▲K+PZ5÷(40R2C2) →V:Z3÷(6RC) →H:√((O-V)2+(J-H)2)→W←If J≥H:Then W→Q▲Else -W→QIfEnd←Goto 0←。
5800计算器曲线任意里程坐标正反算

1.主程序"1.SZ → XY,2.XY → SZ "?N:Lbl 1:”S=”?S:Prog "SUB0":N≥2=>Goto 2:Abs(S-O)→W:”Z=”?Z:Prog "SUB1":"XS=”:X→X◢"YS=”:Y→Y◢"FS=”:(F-90) →F:F△DMS◢Lbl 2:”CX=”?X: X→I:”CY=”?Y: Y→J:Prog "SUB2":"S=":(O+W) →S◢"Z=":Z◢Goto 22正算子程序Lbl 1: 1÷P→C:(P-R)÷(2HPR) →D:180÷π→E:0.1739274226 →A:0.3260725774→B:0.0694318442→K:0.3300094782→L:(1-L) →F:(1-K)→M:G+QEKW(C+KWD→Z[1]: G+QELW(C+LWD→Z[2]: G+QEFW (C+FWD) →Z[3]:G+QEMW(C+MWD) →Z[4]Acos(Z[1])→XX+Bcos(Z[2]) →XX+Bcos(Z[3]) →XX+Acos(Z[4]) →XU+WX→XAsin(Z[1]) →YY+Bsin(Z[2]) →YY+Bsin(Z[3]) →YY+Asin(Z[4]) →YV+WY→YG+QEW(C+WD)+90→FX+Zcos(F) →XY+Zsin(F) →Y3反算子程序G-90→T:(Y-V)cos(T)-(X-U)sin(T) →W:Abs(W) →W:0→ZLbl 0:Prog "SUB1"T+QEW(C+WD) →L:(J-Y)cos(L)-(I-X)sin(L)→Z:IF Abs(Z)<0.000001:Then 0→Z:Prog "SUB1"(J-Y)÷sin(F)→ZElse W+Z→WGoto 0:IfEnd4 Z-SQX(竖曲线)O-S→L:A-B→W:Abs(R*W÷2) →T:O-T→M:O+T→PIf S≤M:ThenG-L*B→H:Goto 5:Else If S≤O:Then Goto 3:Else If S≤P:Then Goto 4:IfEnd: IfEnd: IfEndLbl3If W>0:Then G+(M-S)2÷2÷R-L*B→H:Goto5: Else If W<0: Then G-(M-S)2÷2÷R-L*B→H:Goto5: IfEnd: IfEndLbl4If W>0:Then G+( S-P)2÷2÷R-L*A→H:Goto 5: Else If W<0: Then G-( S-P)2÷2÷R-L*A→H:Goto 5: IfEnd: IfEndLbl 5 :H→H:”H”:H◢(为所求的高度)SQX(程序名)If S<下一竖曲线前变坡桩号And S≥前一竖曲线后变坡桩号:Then大里程坡度→A:小里程坡度→B:交点里程→O:交点高度→G:半径→R:Prog“Z-SQX”:IfEnd有多个竖曲线,依照上面的依次变更,每多一个,就增加一个。
FX5800线元积分正反算计算程序(可用)

FX5800线元积分正反算计算程序(桔梗花验证)(非本人原创)H 主程序“C ZX”? →W:“C ZY”? →T↙“NEW=0,Z1 =1” ?Z↙If Z=0: Then “X0=”?A: “Y0=”?B: “C0=”?C: “1/R0=”?D: “1/RI=” ?E: “QDK=”?F: “ZDK=” ?G:Ifend:↙"1.ZS,2.FS" ?→Q↙Q=2=>Goto 2↙Lbl 1 :“DK?=,<0 Stop”?H:H<0=>Stop:“PJ=”?O:“PI=”?L↙Lbl Z:Z=1=>Prog“H1”Z:Z =2=>Prog“H2”↙H- F→X:0.5(E-D)÷(G-F)→N↙C+(XD+NX2)*180÷π→P:P<0=>P+360→P:P>360=>P-360→P↙A+∫(cos(C+(XD+NX2)*180÷π),0,X)+Lcos(P+O)→U↙B+∫(sin(C+(XD+NX2)*180÷π),0,X)+Lsin(P+O)→V↙Q=2=>Goto 4:Cls:Fix 3↙“FWJ=”:P▶DMS◢显示方位角,"XP=":Locate 4,3,U:"YP=": Locate 4,4,V:Pol(U-W,V-T):J<0 => J+360→J:"J=":J▶DMS◢"I=":I◢Norm 2:Cls:Goto 1↙Lbl 2:“XD=,<0,STOP”?R:R<0=>Stop:“YD=”?S↙“DK=”?H :90→O:0→L:Goto Z ↙(H线路范围内的大约里程)Lbl 4:Pol(R-U,S-V):J<0 => J+360→J↙While abs(Icos(J-P))≤0.001:P-J>180=> J+360→J:P-J<-180=> P+360→P:IF P-J>0:then -I→L:else I→L Ifend↙Goto 3: Whileend:H+Icos(J-P)→H:Goto Z↙Lbl 3:Cls:Fix 3↙“KM=”: Locate 4,1,H:“PY=”: Locate 4,2,L◢Norm 2:Cls:Goto 2↙H1(第一条线路数据库子程序)If H<=第一曲线终点桩号:then 第一曲线起点X→A:第一曲线起点Y→B:第一曲线起点方位角→C:起点曲率→D:终点曲率→E:起点桩号→F:终点桩号→G:return:ifendH2(第二条线路数据库子程序)If H<=第一曲线终点桩号:then 第一曲线起点X→A:第一曲线起点Y→B:第一曲线起点方位角→C:起点曲率→D:终点曲率→E:起点桩号→F:终点桩号→G:return:ifend。
5800交点法计算中边桩坐标程序

交点法正反算程序主程序JD—NELBI 1:"JDk="?C:"JDμ="?D:"Li"?L:"R="?R:"JDX="?U:"JDY="?V:"JDA="?A:"(+1R,-1L)"?M:"Z(+R,—L)"?B:"K="?P:Prog:"JD—NE1":"X="?X"▲Y="?Y▲"F="?F▲Goto 1↙子程序JD—NE1((R+L²÷(24R))tan(D÷2)+L÷2—L³÷(240R²)→T↙C—T→I↙I+L→J↙J+πDR÷180—L→H↙H+L→K↙If P<I:Then U+(C-P)cos(A+180°)+Bcos(A+90°)→X ↙V+(C-P)sin(A+180°)+Bsin(A+90°)→Y↙A→F:Return:IfEnd↙If P>I And P<J :Then A+M×30°×(P—I)²÷(πRL)→O↙(P—I)—(P—I)²÷(90R²)→G↙U+Tcos(A+180°)+Gcos(O)→X↙V+Tsin(A+180°)+Gsin(O)→Y↙90°×(P—I)²÷(πRL)→W↙X+Bcos(A+MW+90°)→X↙Y+Bsin(A+MW+90°)→Y↙A+MW→F:Return:IfEnd↙If P>J And P<H :Then A+M×90°×(L+P—J)÷(πR)→O↙2Rsin((P—J)×90°÷(πR))→G↙U+Tcos(A+180°)+(L—L³÷(90R²))cos(A+M(30°×L)÷(πR))+Gcos(O)→X↙V+Tsin(A+180°)+(L—L³÷(90R²))sin(A+M(30°×L)÷(πR))+Gcsin(O)→X↙90°×(P—J)÷(πR)→W↙X+Bcos(O+MW+90°)→X↙Y+Bsin(O+MW+90°)→Y↙O+MW→F:Return:IfEnd↙If P>HAnd P<K :Then A+MD+180°—M×30°×(P—K)²÷(πRL)→O↙K—P—(K—P)³÷(90R²)→G↙U+Tcos(A+MD)+Gcos(O)→X↙V+Tsin(A+MD)+Gsin(O)→Y↙(P—K)²×90°÷(πRL)→W↙X+Bcos(A+MD—MW+90°)→X↙Y+Bsin(A+MD—MW+90°)→Y↙A+MD—MW→F:Return:IfEnd↙If P>K :Then U+(T+P—K)cos(A+MD)+Bcos(A+MD+90°)→X↙V+(T+P—K)sin(A+MD)+Bsin(A+MD+90°)→Y↙A+MD→F:Return:IfEnd↙变量说明:JDk——交点桩号CJDμ——交点转角DLi——缓和曲线长度LR——圆曲线半径RJDX——交点X坐标UJDY——交点Y坐标VJDA——交点方位角A(+1R,—1L)——偏向MZ(+R,—L)——(边桩到中桩距离)BK——待求桩号PX——待求点X坐标Y——待求点Y坐标F——待求点的方位角本程序已经测试通过,第二缓和曲线起点附近有时会有1公分误差,是公式简化过程中产生的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
If N=1: T hen Goto 5: Else prog
“ Z:SXH”
Goto 6: If end ↙
LbI5: “ X” ?M: “ YP”rog?Z “ FSXH” : Goto 7: If en↙d选择反算后输入测点的 X,Y 假设里 程与正算输入一起,无需另输入 LbI6 : “ W” ?W求边桩输入边距 左=”◢:X显示所求 X 值 Y+WSin(P+90) → Y: “ Y=”◢ :Y显示所求 Y 值 P<0 => P+360 → P: “ FW=◢” :P显示所求点切线方位角 Goto 4 LbI7: “ KCD=” :◢K 显示反算出的里程 “ W=” :W◢ 显示反算出的边距 Goto 4↙
子程序 “C” X+Z[1]*cos( O) →X↙ Y+Z[1]*sin( O) →Y↙ Return↙
圆曲线要素计算子程序 “D” L*180 ÷ ( ∏ R) →↙N 2R*sin(N ÷ 2) → Z[1↙] P+(Abs(S) ÷ S)(N ÷ 2O)↙→ P+Abs(S) ÷ S→↙P Return↙。。。。。
反算循环子程序 “FSXH” LbI 0: prog “ ZSX↙H” PoL((M-X),(Z-Y)) ↙ I*cos(J- P) →N↙ I*sin(J- P) →W↙ If N<0.00 1: Then N+K → K:Return: Else K+N → K:Goto 0: If e↙nd Return↙
主程序 “ZS FS”
20→ Dim Z
“ 1→ NEW,2→ OLD”? Z ↙
IF Z=1:Then Goto 1: Else Goto 2 if end ↙ 选择输入 选一手动输入曲线要数 选二提取数 据库
LbI 1: ” JDX” ?T: “ JDY输”入?交B 点 X,Y
“ T1” ?C: ” T2”输入?D切线 1, 2 的长
子程序正算循环 “ZSXH” R(Abs(S)- 90E÷ ( ∏ R-9) 0F÷ ( ∏ R)) ∏÷ 18↙0→J If K<=( 说明:小于等于号 )E+G+J: Then Goto 1: Else Goto 3: If end↙ LbI1: Q → H:-TC*Cos(H) → X:B-C*Sin(H) → Y:根号 (R ∏ ) →A↙ If K<=G+E:Then K- G→ L:prog “ B” :P → P:prog “ C” :Goto 6: Else E → L: prog “ B” :P → P: prog “ C” :X → X:Y → Y:Goto 2: If end↙ LbI2: K-G- E→ L: prog “ D” :P → P: prog “ C”↙: Goto 6 LbI3: Q+S → H:T+D*Cos(H) → X:B+D*Sin(H) →根Y号: (RF) →A↙ If K<=G+E+J+F: Then G+E+J+F- K→ L: prog “ B”:
“ L1” ?E: “ L2输”入?前F 后缓和曲线的长
“ ZHL” ?G输入直缓里程
“ FWJ” Q输入直缓点切线方位角
“-PJ+” ?S输入偏角左负右正
?R: 输入圆曲线半径
Goto 4↙
LbI2:prog “ SJK” :go↙to 4
LbI4: “ KCD” ?K:↙?N 输入观测点里程 输入 N 值 1 为正算 其他为反算
5800 交点法 正反算 程序
自编 5800 支距及偏角法正反算程序
该程序使用支距偏角法,正算速度一般,反算速度较辛普森公式反算速度稍快
计算范围从直缓到缓直,如若缓直后为直线则无需输入变量直接继续计算
此程序在正算循环里程超限上占用字节较多,适用公路路基临时输入变量放样
运行只需从主程序进入,请各位高手多多指正
子程序 缓和段计算 “B” L- L^(5) ÷ (40A^(4))+L^(9) ÷ (3456A^(8)) ↙ →U L^(3) ÷(6A^(2))- L^(7) ÷ (336A^(6))+L^(11) ÷ (42240A^(10))↙ →(V该公式参照课本) 根号 (U^(2)+V^(2)) →Z[1] ↙ Tan-1(V- U) →N↙ H+Abs(S)*N ÷ S→O↙ H+Abs(S)*90*L^( 2) ÷ (S ∏ A^(2)) →↙P Return
O- 2Abs(S)N ÷ S→O: P-180L^(2)A bs(S) ÷ ( ∏ A^(2)S) → P: -Z[1] → Z[1]: prog “ C” : Goto 6: Else T → X:BO→: Y:H→ D+K-G-E-J- F→ Z[1]: H → P: prog “ C” : Goto 6: I↙f end LbI6: Return