5800程序(改的输入了计算器)

合集下载

5800 计算程序

5800 计算程序

5800 计算程序Fx-5800 计算器程序QXJS-000 主程序Fix 3:Deg:Lbl 4:“1.SZ=>XY”:“2.XY=>SZ”: “ 1,2= ” ? →Q:” LICHENG= ” ? →S:Prog“QXJSSUB0” ↙Lbl 0:IfQ=1:Then Goto1:IfEnd:IfQ=2:ThenGoto2:IfEnd ↙Lbl 1:”OUT JL=”? → Z: “OUT JD=”?G:Prog“QXJSSUB1”:“XZB=”:N →N ◢“YZB=”:E →E ◢“QXFWJ=”:F →F:F ▲ DMS ◢Goto4 ↙Lbl 2: “XZB=”? →B: “YZB=”? →C:B→N:C→E:Prog“QXJSSUB2”: “LICHENG=”:S →S ◢“OUT JL=”:Z →Z ◢Goto4 ↙说明:Q: 代表正反算,其中 1 为正算, 2 为反算; S: 代表里程; Z :代表偏移距离; G :代表偏移角度(以线路前进方向为 X 方向,顺时针转为正; N : X 坐标; E : Y 坐标; F :切线方位角;QXJSSUB0 ( 数据库 )Goto1 ↙Lbl 1IF S<157687.528:THEN2884169.2517→U:471475.6573→V:157547.528→O:98 ° 32 ′ 43.08″ →A:140→L:10^45→P:10000→R: Return:IfEnd ↙IF S<157993.605:THEN2884148.1260→U:471614.0539→V:157687.528→O:98 ° 56 ′ 46.93″ →A:306.0771→L:10000→P:10000→R: Return:IfEnd ↙IF S<158133.605:THEN2884095.9086→U:471915.6318→V:157993.605→O:100 ° 42 ′ 0.22″ →A:140→L:10000→P:10^45→R: Return:IfEnd ↙IF S<163641.879:THEN2884069.2735→U:472053.0744→V:158133.605→O:101 ° 6 ′ 4.07″ →A:5508.274→L:10^45→P:10^45→R: Return:IfEnd ↙IF S<163781.879:THEN2883008.7030→U:477458.2815→V:163641.879→O:101 ° 6 ′ 4.08″ →A:140→L:10^45→P:10000→R: Return:IfEnd ↙IF S<164195.661:THEN2882981.4268→U:477595.5984→V:163781.879→O:101 ° 30 ′ 7.93″ →A:413.7833→L:10000→P:10000→R: Return:IfEnd ↙IF S<164335.661:THEN2882890.5519→U:477999.2492→V:164195.6623→O:103 ° 52 ′22.82 ″ →A:140→L:10000→P:10^45→R: Return:IfEnd ↙IF S<171831.142:THEN2882856.3502→U:478135.0069→V:164335.6623→O:104 ° 16 ′26.67 ″ →A:7495.481→L:10^45→P:10^45→R: Return:IfEnd ↙IF S<171961.1406:THEN2881008.2613→U:485399.0830→V:171831.1404→O:104 ° 16 ′26.65 ″ →A:130→L:-10^45→P:-11000→R: Return:IfEnd ↙IF S<172204.6898:THEN2880976.4567→U:485525.1322→V:171961.1406→O:103 ° 56 ′7.81 ″ →A:243.5492→L:-11000→P:-11000→R: Return:IfEnd ↙IF S<172334.6898:THEN2880920.4244→U:485762.1431→V:172204.6898→O:102 ° 40 ′0.93 ″ →A:130→L:-11000→P:-10^45→R: Return:IfEnd ↙说明: S :里程; 157547.528→O 为线元终点里程;2884169.2517→U 为线元起点 X 坐标; 471475.6573→V 为线元起点Y 坐标; 98 ° 32 ′ 43.08 ″ →A 线元起点切线方位角; 0^45→P 线元起点半径(左转为负右转为正); 10000→R 线元终点半径(左转为负右转为正)QXJSSUB1 正算子程序0.5 ( 1÷R-1÷P ) ÷L→D:S-O→X ↙U+∫(cos(A+(X÷P+DX2)×180÷π,0,X)→N ↙V+∫( sin(A+(X÷P+DX2)×180÷π,0,X)→E ↙A+(X÷P+DX2)×180÷π→F ↙N+Zcos(F+G) →N:E+Zsin(F+G) →EReturnQXJSSUB2 反算子程序Lbl 1:0→Z : 1→Q : Prog“QXJSSUB0”: 0.5 ( 1÷R-1÷P )÷L→D:S-O→X ↙U+∫(cos(A+(X÷P+DX2)×180÷π,0,X)→N ↙V+∫( sin(A+(X÷P+DX2)×180÷π,0,X)→E ↙A+(X÷P+DX2)×180÷π→F ↙N+Zcos(F+90) →N:E+Zsin(F+90) →E :Pol(N-B+10^(-46), E-C+10^(-46)):Isin(F-90-J) →W:S+W→S ↙IfAbs(W)>0.0001 :Then Goto1:IfEnd ↙Lbl 2: 0→Z : Prog“QXJSSUB1”:(C-E) ÷sin(F+90) →ZReturnH (高程主程序)Fix 3 : Lb1 3: ” LICHENG= ” ?Z: Prog“SQXZL”:(P-Q) ÷Abs(P-Q) →W ↙If Z<(H-T):Then(H-Z) × P →X:Goto 2:IfEnd ↙If Z ≥ (H-T) And Z<H:Then (H-Z) × P+(Z-H+T)2 ÷ (2WR)→X:Else (H+T-Z)2 ÷ (2WR)-(Z-H) × Q→X: Goto 2:IfEnd ↙Lb1 2: ” GAO CHENG= ” D-X →X ◢Goto 3SQXZL (竖曲线数据库)Goto 1Lb1 1If Z ≤ 157893.75:Then25000→R:93.75→T:157800→H:421.977→D:-0.0045→P:0.003→Q:Return:IfEnd ↙If Z ≤ 159000:Then25000→R:150→T:158850→H:425.127→D:0.003→P:0.015→Q:Return:IfEnd↙If Z ≤ 165017.5:Then25000→R:117.5→T:164900→H:515.877→D:0.015→P:0.0056→Q:Return:IfEnd ↙If Z ≤ 168207.5:Then25000→R:107.5→T:168100→H:533.797→D:0.0056→P:-0.003→Q:Return:IfEnd ↙If Z ≤ 172175:Then25000→R:75→T:172100→H:521.797→D:-0.003→P:0.003→Q:Return:IfEnd ↙说明: 157893.75 代表竖曲线终点里程, 25000→R 代表竖曲线半径; 93.75→T 代表竖曲线切长; 421.977→D 代表边坡点标高(未改正之前); -0.0045→P 代表前段坡度,上坡为正,下坡为负;0.003→Q 代表后段坡度,上坡为正,下坡为负;Fx-5800路线高程程序GCQX-000 主程序Lbl 1: Prog“GCQX-SUB000” ↙If R>10^8: Then B+(S-A)(D-B) ÷(C-A)→H: Goto2: IfEnd↙Pol(D-B,C-A):J-Sin-1(I÷2÷R)→F:B+R Cos(F+90)→X:A+RSin(F+90)→Y: Sin-1((S-Y) ÷R)→M:X+R Cos(M)→H: Goto2↙Lbl 2: “H=”:H: Goto1GCQX-000 数据库Goto0↙Lbl 0↙If S<***: Then ***→A(线元起点里程): ***→B(线元起点高程):***→R(线元半径左-右+): ***→C(线元终点里程): ***→D(线元终点高程): Return:IfEnd↙If S<***: Then ***→A: ***→B: ***→R: ***→C: ***→D: Return:IfEnd↙………………………..为了便于解读,每增加一个线元增加一行语句,每增加一条曲线增加一个Lbl,每增加一个工程增加一个文件。

5800计算器程序

5800计算器程序

CASIO fx—5800计算器工程测量与公路测量程序-1、坐标正算-〝X0=〞?X:〝Y0=〞?Y:〝I=〞?I:〝J=〞?J -X+ICos(J)→U:Y+ISin(J)→V ­〝X=〞:U (待求点的X坐标)-〝Y=〞:V (待求点的Y坐标)-说明:X0 Y0:已知点坐标I:两点的距离J:方位角-2、坐标反算-Lbl 0 -〝X1=〞?X:〝Y1=〞?Y:〝X2=〞?U:〝Y2=〞?V -Pol(U-X,V-Y): -J<0 J+360→J ­〝I=〞:I -〝J=〞:J DMS -GOTO 0-说明:X1Y1:第一点的坐标,X2Y2第二点的坐标,I:两点的距离,J:方位角-3、圆曲线-〝X0=〞?X: 〝Y0=〞?Y:〝FWJ=〞?D:〝QDHAO=〞?G: 〝ZDHAO=〞?C: 〝R=〞?R -Lbl 1 -〝DQHAO=〞?L -L<G Or L﹥C GOTO 2 -〝PY=〞?K -180(L-G)÷(πR) →E ­2RSin(0.5E) →F ­ReC(Abs(F),D+0.5E):Cls -〝X=〞:X+I+KCos(D+E+90) →A -〝Y=〞:Y+J+KSin(D+E+90) →B ­D+E→o:o<0 360+o→0o ­〝FWJ=〞:o DMS -Goto 1 -〝END〞-说明:X0Y0:起始点的坐标,FWJ:起始点的方位角,QDHAO:起点里程,ZDHAO终点里程,R:半径,DQHAO:待求点里程,PY:偏移量-4、竖曲线-〝QZHAO =〞?J: 〝H+B〞=?B:〝I1=〞?C:〝I2=〞?D:〝R=〞?R:〝T=〞?T: -((D-C)÷100) ÷Abs((D-C) ÷100)→A:Abs(0.5R(D-C) ÷100)→S ­〝T〞:S -J-T→X ­J+T→Y ­Lbl 0 -〝DQ=〞?L -If L<X:Then Goto 1:Else If L﹥Y:Then Goto 1:If End:If End -〝GC=〞:B+C(L-J) ÷100+A(L-J+T) ÷(2R) →H ­Goto 0 -Lbl 1 -〝END〞-说明:QZHAO:曲中点里程,H+B:曲中点高程,I1:第一坡度,I2:第二坡度,R:半径,T:切线长,DQ:待求点里程。

5800计算器程序

5800计算器程序

TYQXJS(主程序名)LbI 0:4→Dimz:Cls"1.SZ→XY""2.XY→SZ"?→N:Cls"XO"?U: "YO"?V: "SO"?O:"FO"?G: "LS"?H: "RO"?P:"RN"?R:?Q1÷P→C:(P-R)÷(2HPR) →D:180÷π→EN=2=>Goto 2LbI 1:Cls:?SS=0=>Goto 0 (注:當S輸入0時,程序會由LbI 0開始重新運行)Z:Abs(S-O)→WProg"SUB1":Cls"XS=":X◢"YS=":Y◢"FS=":F-90 ►DMS◢Goto 1LbI 2:Cls:?XX=0=>Goto 0 (注:當X輸入0時,程序由會LbI 0開始重新運行)Y:X→I:Y→JProg"SUB2":O+W→S:Cls"S=":S◢"Z=":Z◢Goto 2注:紅色部可以不要,亦可以要,它的作用是將S或X輸入0時,程序會重新由頭開始運行,(即是可以計算下段線元)SUB1(子程序名)0.→A:0.→B0.→K:0.→L1-L→F:1-K→MG+QEKW(C+KWD)→Z[1]G+QELW(C+LWD)→Z[2]G+QEFW(C+FWD)→Z[3]G+QEMW(C+MWD)→Z[4]A×cos(Z[1])→X (剩號可省略)X+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)→YSUB2(子程序名)G-90→T(Y-V)cos(T)-(X-U)sin(T)→WAbs(W)→W:0→ZLbI 4:Prog"SUB1"T+QEW(C+WD)→L(J-Y)cos(L)-(I-X)sin(L)→ZIf Abs(Z)<1E-6:Then 0→Z :Prog"SUB1" (J-Y)÷sin(F)→ZElse W+Z→W:Goto 4:IfEnd注:1E-6即是10的負6次方,亦即是等於0.輸入時按SHIFT---log---(-)---6亦可直接將If Abs(Z)<1E-6寫成If Abs(Z)<0.注意:本程序是根據yhhf編寫的4800P改寫而成,以下是源程序及算例大家有問題亦可在以下網址查看及向yshf發問/celiang/article_view.asp?id=380&author=yshf曲线任意里程中边桩坐标正反算(CASIO fx-4800P计算器)程序一、程序功能本程序由一个主程序(TYQXJS)和两个子程——正算子程序(SUB1)、反算子程序(SUB2)序构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。

最新卡西欧5800程序LG计算器

最新卡西欧5800程序LG计算器

卡西欧5800程序L G计算器一、坐标正算ZBZSLbl 0“X0=”?X:“Y0=”?Y:“I=”?I:“J=”?JX+Icos(J)→U:Y+Isin(J)→V“X=”:U◀“Y=”:V◀ Goto 0二、坐标反算ZBFSLbl 0“X1=”?X:“Y1=”?Y:“X2=”?U:“Y2=”?VPol(U-X,V-Y):J<0 => J+360→J“I=”:I◀“J=”J▶DMS◀ Goto 0三、圆曲线计算YQXJS“X0=”?X:“Y0=”?Y:“FWJ=”?D:“QDHAO=”?G:“ZDHAO=”?C:“R=”?R Lbl 1“DQHAO=”?LL<G Or L>C => Goto 2“PY=”?K180(L-G)÷(πR)→E2Rsin(0.5E)→FRec(Abs(F),D+0.5E)“X=”:X+I+Kcos(D+E+90)→A◀“Y=”:Y+J+Ksin(D+E+90)→B◀D+E→O:O<0 => 360+O→O“FWJ=”:O▶DMS◀ Goto 1Lbl 2:“END”四、1.竖曲线SQX“QZHAO=”?J:“HB=”?B:“I1=”?C:“I2=”?D:“R=”?R“T=”?T:(D-C)÷100→W:W÷Abs(W)→A:“T”:0.5Abs(W)→S◀J-T→X:J+T→YLbl 0“DQ=”?LIf L<X:Then Goto 1:Else If L>Y:Then Goto 1:IfEnd:IfEnd“GC=”:B+0.01C(L-J)+A(L-J+T)2÷(2R)→H◀ Goto 0Lbl 1:“END”2.标高计算BGJS(含横坡计算边桩)“QZHAO=”?J: “QDHAO=”?G: “ZDHAO=”?K: “HB=”?B: “SX=”?Q:“I1=”?C:“I2=”?D: “R=”?R“T=”?T:(D-C)÷100→W:W÷Abs(W)→A:“T”:0.5Abs(W)→S◀“YIGAO=”?OJ-T→X:J+T→YLbl 0“DQ=”?L:“PY=”?U: “HP=”?VIf L<X:Then Goto 1:Else If L>Y:Then Goto 2:IfEnd:IfEnd“HL=”:B+0.01C(L-J)+A(L-J+T)2÷(2R)+0.01UV+Q→H◀“H0=”:O-H→Z◀ Goto 0Lbl 1L<G => Goto 3“HL=”:B+0.01C(L-J)+0.01UV+Q→H◀“H0=”:O-H→Z◀ Goto 0Lbl 2L>K => Goto 3“HL=”:B+0.01D(L-J)+0.01UV+Q→H◀“H0=”:O-H→Z◀ Goto 0Lbl 3:“END”说明:输入时可包括竖曲线前后各一段的平直段,HL为中桩或边桩标高,H0为前视读数五、点到直线距离DDZXJLLbl 0“X0=”?A:“Y0=”?B:“X1=”?X:“Y1=”?Y:“X2=”?U:“Y2=”?VPol(U-X,V-Y)“L=”(B-Y)cos(J)-(A-X)sin(J)→L◀“S=”(B-Y)sin(J)+(A-X)cos(J)→S◀ Goto 0六、横坡渐变HPJB“QDHAO=”?A:“QDHP=”?B:“ZDHAO=”?C:“ZDHP=”?DLbl 0“DQHAO=”?E:E<A Or E>C => Goto 1(D-B)÷(C-A)→U“DQHP=”:B+U(E-A)→F◀Goto 0Lbl 1:“END”七、两直线交点LZXJDLbl 0:“X1=”?A:“Y1=”?B:“X2=”?C:“Y2=”?D:“X3=”?E“Y3=”?F:“X4=”?G:“Y4=”?H C-A→N:D-B→O:G-E→P:H-F→Q:QN-OP→K:NB-OA→U:PF-QE→V“X=”:(PU-NV)÷K→X◀“Y=”:(QU-OV)÷K→Y◀Goto 0八、前方交会QFJHLbl 0“X1=”?A:“Y1=”?B:“X2=”?C:“Y2=”?D:“C Y(1) N(0)”?ZIf Z=1:Then“X3=”?E:“Y3=”?F:IfEnd“∠A=”?O:“∠B=”?P: If Z=1:Then“∠C=”?Q:IfEnd1÷tan(O)→M:1÷tan(P)→N“X0=”:(AN+CM+D-B)÷(M+N)→X◀“Y0=”:(BN+DM+A-C)÷(M+N)→Y◀If Z=1:Then Pol(X-A,Y-B):ClsIf J<0:Then J+360→R:Else J→R:IfEndPol(E-A,F-B):ClsIf J<0:Then J+360→S:Else J→S:IfEndR-S→V: If V<0:Then V+360→V: IfEnd“JCJ=”:V▶DMS◀Q-V→W:“CHAZHI=”:W▶DMS◀ Else “NO C”:IfEndGoto 0说明:C为是否有第三个点作为检查角。

卡西欧计算器5800测量放样程序

卡西欧计算器5800测量放样程序

卡西欧5800程序(修改于湘桂)R(主程序,通过里程求中桩、边桩坐标,在输入测站坐标后并求极坐标放样要素)1→M :“NEWZ CIRCLE”?M : If M=-1: Then “JD”?U :“1-TR-1-TL” ? N : “AT ” ? O : “JX” ? S : “JY ” ? P : “L0 ” ? H : “R” ? R : “ZJ” ? A : IfEnd↙“OPP NAME ”?W : If W=-1 : Then “OPPX”?B : “OPPY”?C : Else Prog“CONTREL”:IfEnd↙Lbl 0: “C”?K : If Int(K÷1000)>0 : Then Int(K÷1000)→V :Else “V”?V :K+1000V→K:IfEnd↙If M=1:Then Prog“CIRCLE” IfEnd↙H÷2-H^(3)÷(240R2)+(R+H2÷(24R))tan(A÷2)→T:πR(A-180H÷π÷R)÷180+2H→L↙U-T→G:K→Q↙If Q≤G+L÷2:Then Q-G→Q: Else G+L-Q→Q: IfEnd↙If Q<0:Then Prog “L”:Goto1: IfEnd↙If Q≤H:Then Q-Q^(5)÷(40R2H2)→X:Q^(3)÷(6RH)-Q^(7)÷(336R^(3)H^(3)) →Y:90Q2÷(πRH) →F: Else 180(Q-H÷2)÷(πR) →F:Rsin(F)+H÷2-H^(3)÷(240R2) →X:R(1-Cos(F))+H2÷(24R) →Y: IfEnd↙Pol(T-X,Y) ↙If K≤G+L÷2:Then O-180-NJ→E:NF+O→F: “F=”:F▲DMS◢ ElseNA+NJ+ O→E: O+NA-NF→F: “F=”:F▲DMS◢IfEnd↙“X=”:S+Icos(E)→X◢“Y=”:P+Isin(E)→Y◢If F<0:Then 360+F→F: IfEnd↙If F≥360:Then F-360→F: IfEnd↙Lbl1: “÷1”?Z: If Z=1:Then Prog “I”: IfEnd↙If Z=2:Then Prog “LD”: IfEnd↙If Z=-1:Then Prog “Q”: “X=”:X◢“Y=”: Y◢IfEnd↙Prog “P”↙Goto 0↙P(子程序,受主程序R调用,求极坐标放样要素:方位角及平距)Pol(X-B,Y-C): “D=”:I◢If J<0:Then 360+J→J: Else 0+J→J: IfEnd↙“AQ=”:J▲DMS◢L(子程序,受主程序R调用,求直线上点位坐标及切线方位角)T-Q→Q:If K<G:Then O+180→E: O→F: “X=”:S+Qcos(E)→X◢“Y=”:P+Qsin(E) →Y◢ Else O+NA→F: “X=” S+Qcos(F) →X◢“Y=”:P+Qsin(F) →Y◢IfEnd↙I(子程序,受主程序R调用,求边桩坐标)“RA”?E:“D”?D:E+F→E: If E≥360:Then E-360→E: IfEnd↙X+Dcos(E)→X: Y+Dsin(E)→Y: “X=”: X◢“Y=”: Y◢E→F↙Q(子程序,受主程序R调用,求副线边桩坐标)“1A”?E:“1D”?D:E+F→E↙X+Dcos(E)→X: Y+Dsin(E)→Y:E→F↙“2R”?E: “2D”?D: E+F→E↙X+Dcos(E)→X: Y+Dsin(E)→Y↙E→F↙LD(子程序,受主程序R调用,通过坐标反求里程和偏距)40→DimZ↙O→Z[1]:U→Z[2]:S→Z[3]: P→Z[4] ↙H÷2-H^(3)÷(240R2)→M: H2÷(24R)-H^(4)÷(2688R^(3))→V:90H2÷(πR)→D:(R+V)Tan(A÷2)+M→T: πRA÷180+H→K:O+NA→J:Prog“JD”:J→Z[21]:U-T+K→Z[22]: S-Tcos(O)→Z[5]:P-Tsin(O)→Z[6]:Z[5]+Mcos(O)+(R+V)cos(O+90N)→Z[7]:Z[6]+Msin(O)+ (R+V)sin(O+90N)→Z[8] ↙H-H^(5)÷(40R2H2)→Z:H^(3)÷(6RH)-H^(7)÷(336R^(3)H^(3))→C: Pol(C,Z):90-J→J:Prog“JD”: O+JN→J:Prog“JD”↙Z[5]+Icos(J)→Z[9]:Z[6]+Isin(J)→Z[10]:S+Tcos(Z[21])→Z[11]: P+Tsin(Z[21])→Z[12] ↙Pol(Z[10]-Z[8],Z[9]-Z[7]):90-J→J:Prog“JD”:J→Z[13] ↙J+(A-2D)N→J: Prog“JD”: J→Z[14] ↙“CEDIAN”◢Lbl 0: ↙“B”?B:If B=0:Then Prog “R”: IfEnd↙“XN=”?X: “YN=”?Y:Pol(Y-Z[8],X-Z[7]) ↙90-J→J: Prog“JD”:J→W:J-Z[13]→J↙Prog“JD”:J→Z[15] ↙W-Z[14]→J↙Prog“JD”:J→Z[16] ↙If N=1:Then Goto 1: IfEnd↙If N=-1:Then Goto 2: IfEnd↙Lbl 1: ↙If Z[15]>180:Then Goto 3: IfEnd↙If Z[16]≤180:Then Goto 5:Else Goto 4 : IfEnd↙Lbl 2: ↙If Z[15]<180:Then Goto 3: IfEnd↙If Z[16] >180:Then Goto 5:Else Goto 4 : IfEnd↙Lbl 3: ↙“H1”◢Pol(Y-Z[6],X-Z[5]):90-J→J: Prog“JD”↙J-Z[1]+90→J: Prog“JD”↙Isin(J)→G↙If G>0:Then 0→L:Goto 6: IfEnd↙If G≤0:Then “DK=”:Z[2]-T+G→Z[19]◢If N=1:Then “LD=”:-NIcos(J)→Z[20]◢Else “LD=”:NIcos(J) →Z[20]◢IfEnd↙“SD=1,LD≠1”?D:If D=1:Then Prog “SDCQJC”: IfEnd↙Goto 0↙Lbl 4: ↙“Y”◢If N=-1:Then 360-Z[15]→Z[15]: IfEnd: “DK=”:Z[2]-T+H+πR(Z[15])÷180→Z[19]◢If N=1:Then “LD=”:-(I-R)→Z[20]◢Else “LD=” :I-R→Z[20]◢IfEnd↙“SD=1,LD≠1”?D:If D=1:Then Prog “SDCQJC”: IfEnd↙Goto 0↙Lbl 5: ↙“H2”◢Pol(Y-Z[12],X-Z[11]):90-J→J: Prog“JD”:J→W:Z[21]-90→J: Prog“JD”:W-J→J: Prog“JD”:Isin(J)→G:If G<0:Then 0→L: -G→G↙Goto 7: IfEnd↙If G≥0:Then “DK=”:Z[22]+G→Z[19]◢IfEnd: If N=1:Then “LD=”:-NIcos(J)→Z[20]◢Else “LD=”:NIcos(J)→Z[20]◢IfEnd↙“SD=1,LD≠1”?D:If D=1:Then Prog “SDCQJC”: IfEnd↙Goto 0↙Lbl 6: ↙L+G→L:L-L^(5)÷(40R2H2)→Z:L^(3)÷(6RH)-L^(7)÷(336R^(3)H^(3)) →C:Pol(C,Z):90-J→J: Prog“JD”:J→W:Z[1]+WN→J: Prog“JD”:Z[5]+Icos(J)→Z[17]: Z[6]+Isin(J) →Z[18] ↙J+2WN→J: Prog“JD”:J-90→J: Prog“JD”:J→W↙Pol(Y-Z[18],X-Z[17]):90-J→J: Prog“JD”↙J-W→J: Prog“JD”:Isin(J)→G:If Abs(G)>0.001:Then Goto 6: IfEnd↙“DK=”:Z[2]-T+L+G→Z[19]◢If N=1:Then “LD=”:-Ncos(J) →Z[20]◢Else“LD=”:NIcos(J) →Z[20]◢IfEnd↙“SD=1,LD≠1”?D:If D=1:Then Prog “SDCQJC”: IfEnd↙Goto 0↙Lbl 7: ↙L+G→L:L-L^(5)÷(40R2H2)→Z:L^(3)÷(6RH)-L^(7)÷(336R^(3)H^(3)) →C:Pol(C,Z):90-J→J: Prog“JD”:J→W:Z[21]-180-WN→J: Prog“JD”↙Z[11]+Icos(J)→Z[17]:Z[12]+Isin(J)→Z[18]:J-2WN→J: Prog“JD”↙J-90→J: Prog“JD”:J→W↙Pol(Y-Z[18],X-Z[17]):90-J→J: Prog“JD”↙J-W→J:Prog “JD”↙Isin(J)→G: If Abs(G)>0.001:Then Goto 7:IfEnd↙“DK=”:Z[22]-L-G→Z[19]◢If N=1:Then “LD=”:NIcos(J)→Z[20]◢Else“LD=”:-NIcos(J) →Z[20]◢IfEnd↙“SD=1,LD≠1”?D:If D=1:Then Prog “SDCQJC”: IfEnd↙Goto 0↙JD(子程序,受LD程序调用,计算角度归化值)If J<0:Then J+360→J: IfEnd↙If J≥360:Then J-360→J: IfEnd↙CIRCLE(子程序,线路平面曲线要素,受主程序R调用)If K≤缓直点里程:Then 交点里程→U:交点X坐标→S:交点Y坐标→P:转角值→A:-1(曲线段左偏)或1(曲线段右偏)→N:圆曲线半径→R:缓和曲线长→H:直线段起始方位角→O:Goto 1: IfEnd↙If K≤……(同上输完全部曲线要素为止)Lbl 1↙CONTREL(控制点坐标数据库子程序,受主程序R和ZBFS调用)If W=控制点点号:Then 控制点X坐标→B:控制点Y坐标→C: IfEnd↙If W=……(同上输完全部控制点数据为止)ZBFS(主程序,求两已知点方位角及平距,或已知两点求后方交会点坐标)Lbl 0:1→W: “NEW OPP”?W:If W=1:Then “OPPX”?X: “OPPY”?Y:Else Prog “CONTREL”:B→X:C→Y: IfEnd↙Lbl 1:-1→W: “NEW CPP”?W: If W=-1:Then “CPPX”?S: “CPPY”?T: Else Prog “CONTREL”:B→S:C→T: IfEnd↙Pol(S-X,T-Y): “D=”:I◢If J<0:Then J+360→J: Else 0+J→J: IfEnd↙“AQ=”:J▲DMS◢Lbl 2:0→W: “ZBFS=0,SQS≠0”?W:If W=0:Then Goto 1: Else Prog “SQS”: IfEnd↙Goto 0↙SQS(子程序,受主程序ZBFS调用,通过角度边长求交会点坐标值)Lbl 0: “S1=”?A: “J1=?M: “J2=”?N: “S2=?D:N-M→Q: If Q <0:Then Q+360→Q: IfEnd↙If Q<45°0′0″:Then “ERROR PLEASE REPEAT”◢Goto 0: IfEnd↙√(A2+D2-2ADos(Q))→E: “S3=”:E◢If Abs(A-D)≥60:Then “ERROR PLEASE REPEAT”◢Goto 0: IfEnd↙If Abs(I-E)<0.01:Then cos-1((A2+E2-D2)÷(2AE))→R: cos-1((D2+E2-A2) ÷(2DE))→G: Else “ERROR PLEASE REPEAT”◢Goto 0: IfEnd↙If J<0:Then J+360→J:IfEnd↙(X+Acos(J+R)+S+Dcos(J+180-G))÷2→F: “X=”:F◢(Y+Asin(J+R)+T+Dsin(J+180-G))÷2→P: “Y=”:P◢SQX(主程序,竖曲线求线路各里程点中桩设计高程)1→S:“NEWZ SQXK”?S: If S=-1:Then ?U:?R:?T:?N:?I:?F: “HB”?B: IfEnd↙Lbl 0: “C”?K : If Int(K÷1000)>0 : Then Int(K÷1000)→V :Else “V”?V :K+1000V→K:IfEnd↙If S≠-1:Then Prog “SQXK”: IfEnd↙U-T→G:K→Q: If Q≤G:Then Q-U→Q: Else Q-G→W: IfEnd↙If Q≤G:Then “H=”:B+QN÷1000→H◢Goto 1↙Else If Q≤U+T:Then “H=”:B+(Q-U)N÷1000+FW2÷(2R)→H◢Goto 1↙Else If Q≥U+T:Then “H=”:B+(Q-U)I÷1000→H◢Goto 1:IfEnd↙Lbl 1: “P”?P: “O=”:H-P→O◢Goto 0↙SQXK(子程序,受主程序SQX调用,竖曲线要素)If K≤竖曲线圆直点里程:Then 变坡点里程→U:变坡点设计高程→B:竖曲线圆曲线半径→R:竖曲线切线长→T:竖曲线直线段坡度常数(上、下坡有正负之分)→N:变坡点常数(凸为-1,凹为1)→F: Goto 0: IfEnd↙If K≤……(同上输完全部竖曲线要素为止)Lbl 0↙SDCQJC(子程序,受LD程序调用,采集隧道支护位置坐标高程数据一次性计算出该支护位置的超欠挖量)40→DimZ↙Lbl 0:Z[19]→Z[23]:Prog “SQXZ”↙Z[24]-Z[27]→Z[30]: Z[23]→Z[31] ↙If Z[31]≤Z[30]:Then Z[31]-Z[24]→Z[31]:Else Z[31]-Z[30] →Z[32]: IfEnd↙If Z[31]≤Z[30]:Then Z[25]+(Z[31])×(Z[28])÷1000→Z[33]: Goto 1↙Else If Z[31]≤Z[24]+Z[27]:Then Z[25]+(Z[31]-Z[24])×(Z[28])÷1000+(Z[29])×(Z[32])2÷(2×Z[26])→Z[33]: Goto 1↙Else If Z[31]≥Z[24]+Z[27]:Then Z[25]+(Z[31]-Z[24])×I÷1000→Z[33]: Goto 1: IfEnd↙Lbl 1: “H0=”:Z[33]+内轨面至圆心高差常数→Z[33]◢“HN”?K: “Δh=”:K-Z[33]→Z[34]◢If Z[20]≥隧道中心线与设计中心线的偏移量ω:Then Z[20]-ω→Z[35]:Else ω- Z[20]→Z[35] : IfEnd↙“RN=”:√((Z[34])2+(Z[35])2)→Z[36]◢“R0”?Z: “RCQ=”: Z[36]-Z→Z[37]◢SQXZ(子程序,受主程序SDCQJC调用,竖曲线要素)40→DimZ↙If Z[23]≤竖曲线圆直点里程:Then 变坡点里程→Z[24]:变坡点设计高程→Z[25]:竖曲线圆曲线半径→Z[26]:竖曲线切线长→Z[27]:竖曲线直线段坡度常数(上、下坡有正负之分)→Z[28]:变坡点常数(凸为-1,凹为1)→Z[29]:IfEnd↙If Z[23]≤……(同上输完全部竖曲线要素为止)Lbl 0↙。

CASIO4800计算程序改编5800程序

CASIO4800计算程序改编5800程序

TYQXJS(主程序名)LbI 0:4→Dimz:Cls"1.SZ→XY""2.XY→SZ"?→N:Cls"XO"?U: "YO"?V: "SO"?O:"FO"?G: "LS"?H: "RO"?P:"RN"?R:?Q1÷P→C:(P-R)÷(2HPR) →D:180÷π→EN=2=>Goto 2LbI 1:Cls:?SS=0=>Goto 0 (注:當S輸入0時,程序會由LbI 0開始重新運行)?Z:Abs(S-O)→WProg"SUB1":Cls"XS=":X◢"YS=":Y◢"FS=":F-90 ►DMS◢Goto 1LbI 2:Cls:?XX=0=>Goto 0 (注:當X輸入0時,程序由會LbI 0開始重新運行)?Y:X→I:Y→JProg"SUB2":O+W→S:Cls"S=":S◢"Z=":Z◢Goto 2注:紅色部可以不要,亦可以要,它的作用是將S或 X輸入0時,程序會重新由頭開始運行,(即是可以計算下段線元)SUB1(子程序名)0.1739274226→A:0.3260725774→B0.0694318442→K:0.330009482→L1-L→F:1-K→MG+QEKW(C+KWD)→Z[1]G+QELW(C+LWD)→Z[2]G+QEFW(C+FWD)→Z[3]G+QEMW(C+MWD)→Z[4]A×cos(Z[1])→X (剩號可省略)X+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)→YSUB2(子程序名)G-90→T(Y-V)cos(T)-(X-U)sin(T)→WAbs(W)→W:0→ZLbI 4:Prog"SUB1"T+QEW(C+WD)→L(J-Y)cos(L)-(I-X)sin(L)→ZIf Abs(Z)<1E-6:Then 0→Z :Prog"SUB1"(J-Y)÷sin(F)→ZElse W+Z→W:Goto 4:IfEnd注:1E-6即是10的負6次方,亦即是等於0.000001輸入時按SHIFT---log---(-)---6亦可直接將If Abs(Z)<1E-6寫成If Abs(Z)<0.000001注意:本程序是根據yhhf編寫的4800P改寫而成,以下是源程序及算例大家有問題亦可在以下網址查看及向yshf發問hrycly@曲线任意里程中边桩坐标正反算(CASIO fx-4800P计算器)程序一、程序功能本程序由一个主程序(TYQXJS)和两个子程——正算子程序(SUB1)、反算子程序( SUB2)序构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。

CASIO5800程序编辑说明

CASIO5800程序编辑说明

CASIO 5800程序编辑说明CASIO-5800P计算器程序编辑说明一(程序名称:直线坐标计算——Z-X-Z程序内容:1. “X=“,A : “Y=“,B : “Q=”,Q2. LbI 03. “N=”,N : “S=”,S : ”E=”,E4. A + N cos(Q) ?D : B + N sin(Q) ?F5. D + S cos(Q + E) ?6. F + S sin(Q + E) ?7. Goto 0内容说明:A 、 B——以知点即起算点的x,y坐标值;Q——直线段方位角;N——直线段距离;S——边桩距离;E——转向角;(左转为“,E”,右转为“E”) 二(程序名称:圆曲线任意坐标计算——ZY-YZ程序内容:1. “Q=”,Q : “ X= ”,W : “ Y= “,K : “R= ”,R:“F=”,F : “N=”,N : “U=”,U2. R tan(N?2) ? T3. Q–T ? A4. W+T cos(F+180) ?M : K+T sin(F+180) ?G5. LbI 06. “H=” ,H : ” S=” ?,S : “E=” ,E7. Abs(H - A) ? D8. 180 D?(Rπ) ?О9. R sin(О) ?C10. R (1-cos(О)) ?D11. M+C cos(F) ? I : G+C sin(F) ? J12. I+D cos(F+90U) ?X : J+D sin(F+90U) ? Y13. X+S cos(F+ОU+E) ?14. Y+S sin(F+ОU+E) ?15. Goto 0内容说明: Q——交点里程桩号;W 、K——交点X、Y坐标;R——圆曲线半径;F——前切线正方位角;N——偏角;(即转向角)U——控制偏角条件;(左偏角输入“,1”,右偏角输入“+1”)H——圆曲线上任意一点里程桩号;S——中桩至边桩距离;E——夹角;(左边桩输入“,E”,右边桩输入“E”) 三(程序名称:极坐标放样元素计算——J-Z-B-F-J程序内容: 1. “X=”,A : “Y=”,B : “X0=”,C :“Y0=”,D2. PoI ( C - A,D - B ) : CIs3. If J,0 : Then J+360?E : EIse J?E:IfEnd:E?DMS?4. I?5. LbI 06. “XN=”,U7. WhiIe U?0 (输入“0”即结束程序)8. “YN=”,V9. PoI(U-A,V-B):CIs10. If J,0:Then J+360?F:EIse J?F:IfEnd:F?DMS?11. I?12. F – E ? H13. If H,0:Then H+360?H:IfEnd : H?DMS?14. Goto 0内容说明: A、B——测站点坐标C、D——0方向点坐标E——计算出的测站点至0方向点的方位角I——计算出的测站点至0方向点的距离U,V——N方向点坐标F——计算出的测站点至N方向点的方位角I——计算出的测站点至N方向点的距离H——计算出的0方向与N方向的水平夹角表格:点号 X坐标 Y坐标距离方位角起止点号夹角测站点0点 0?01点 0?12点 0?2四(程序名称:有缓和曲线的圆曲线上点位坐标计算 F-Y-X-Y 程序内容:1(“Q=”,Q :“J=”,J :“K=”,K :“R=”,R :“F=”,F :“N=”,N :“I =”,I :“U=”,U2(6 ? Dim Z3(90 I?(Rπ) ? G (切线角,即缓和曲线角计算)3 24 4(I?(24R) - I?(2688R) ? P (内移距)32 5(I?2 - I?(240R) ? M (切线增值)6((R+P) tan (N?2)+M ? T (切线长)7(πRN ? 180 + I ? L (曲线长)8(Q – T ? A : A + I ? B :A + L ? D : D – I ? C9(J + T cos(F+180) ? Z[1] : K + T sin (F+180) ? Z[2]10(LbI 011(“H=”,H :“S=”,S :“E=”,E12(H – A – I ? Z13(180 Z?(Rπ) + G ? О14(R sin(О) + M ? X15(R (1 –cos(О)) + P ? Z16(Z[1]+ Xcos( F ) ? Z[3] : Z[2] + X sin( F )? Z[4]17(Z[3]+ Z cos (F + 90U ) ? Z[5] :Z[4] + Z sin(F + 90U )? Z[6]18(Z[5]+ S cos ( F +ОU + E ) ?19. Z[6] + S sin( F+ОU + E ) ?20(Goto 0内容说明: Q——交点里程桩号;J 、K——交点X、Y坐标;R——圆曲线半径;F——前切线正方位角;N——偏角;(即转向角)I——缓和曲线长;U——控制偏角条件;(左偏角输入“,1”,右偏角输入“+1”) H——有缓和圆曲的线圆曲线上任一点里程桩号;S——中桩至边桩距离;E——夹角;(左边桩输入“,E”,右边桩输入“E”)第9项——ZH点坐标;五(程序名称:缓和曲线段上点位坐标计算 F-H-X-Y程序内容:1 (“Q=”,Q :“J=”,J :“K=”,K :“R=”,R : “F=”,F :“N=”,N :“I =”,I :“U=”,U2(12 ? Dim Z32 3(I?2 - I?(240R) ? M (切线增值)3 24 4(I?(24R) - I?(2688R) ? P (内移距)5(πRN ? 180 + I ? L (曲线长)6(M+ (R+P) tan (N?2) ? T (切线长)7(Q – T ? A : A + I ? B : (ZH : HY)A + L ? D : D – I ? C (HZ:YH)8(J + T cos(F+180) ? Z[1] : K + T sin (F+180) ? Z[2] 9. J + T cos(F+NU) ? Z[3] : K + T sin (F+NU) ? Z[4] 10(LbI 011(“H=”,H :“S=”,S :“E=”,E12. H,B? Goto 113. H,D? Goto 214(LbI 115(Abs(H - A) ? Z216(90 Z?(πR I ) ?О229445 17(Z - Z?(40 RI) + Z?(3456 RI) ? X 7331155318(Z?(6 RI) – Z?(336 RI) + Z?(42240 RI) ? Z 19(Z[1]+ Xcos( F ) ? Z[5] : Z[2] + X sin( F )? Z[6] 20(Z[5]+ Z cos (F + 90U ) ? Z[7] :Z[6] + Z sin(F + 90U )? Z[8]21(Z[7]+ S cos ( F +ОU + E ) ?22. Z[8] + S sin( F+ОU + E ) ?23(Goto 024. LbI 225. D - H ? Z226(90 Z?(πR I ) ?О229445 27(Z - Z?(40 RI) + Z?(3456 RI) ? X 7331155328(Z?(6 RI) – Z?(336 RI) + Z?(42240 RI) ? Z 29(Z[3]+ X cos( F + NU+180 ) ? Z[9] :Z[4] + X sin( F + NU+180)? Z[10]30(Z[9]+ Z cos (F + NU+180 - 90U ) ? Z[11] :Z[10] + Z sin(F + NU+180 - 90U )? Z[12]31(Z[11]+ S cos ( F +NU+180 - ОU -(180 – E)) ?32. Z[12] + S sin( F+ NU+180 - ОU -(180 - E)) ?33. Goto 0内容说明: Q——交点里程桩号;J 、K——交点X、Y坐标;R——圆曲线半径;F——前直线段正方位角;N——偏角;(即转向角)I——缓和曲线长;U——控制偏角条件;(左偏角输入“,1”,右偏角输入“+1”) H——缓和曲线段上任一点里程桩号;S——中桩至边桩距离;E——夹角;(左边桩输入“,E”,右边桩输入“E”)第8项——ZH点坐标第9项——HZ点坐标。

卡西欧计算器5800测量放样程序

卡西欧计算器5800测量放样程序

卡西欧5800程序(修改于湘桂)R(主程序,通过里程求中桩、边桩坐标,在输入测站坐标后并求极坐标放样要素)1→M :“NEWZ CIRCLE”?M : If M=-1: Then “JD”?U :“1-TR-1-TL” ? N : “AT ” ? O : “JX” ? S : “JY ” ? P : “L0 ” ? H : “R” ? R : “ZJ” ? A : IfEnd↙“OPP NAME ”?W : If W=-1 : Then “OPPX”?B : “OPPY”?C : Else Prog“CONTREL”:IfEnd↙Lbl 0: “C”?K : If Int(K÷1000)>0 : Then Int(K÷1000)→V :Else “V”?V :K+1000V→K:IfEnd↙If M=1:Then Prog“CIRCLE” IfEnd↙H÷2-H^(3)÷(240R2)+(R+H2÷(24R))tan(A÷2)→T:πR(A-180H÷π÷R)÷180+2H→L↙U-T→G:K→Q↙If Q≤G+L÷2:Then Q-G→Q: Else G+L-Q→Q: IfEnd↙If Q<0:Then Prog “L”:Goto1: IfEnd↙If Q≤H:Then Q-Q^(5)÷(40R2H2)→X:Q^(3)÷(6RH)-Q^(7)÷(336R^(3)H^(3)) →Y:90Q2÷(πRH) →F: Else 180(Q-H÷2)÷(πR) →F:Rsin(F)+H÷2-H^(3)÷(240R2) →X:R(1-Cos(F))+H2÷(24R) →Y: IfEnd↙Pol(T-X,Y) ↙If K≤G+L÷2:Then O-180-NJ→E:NF+O→F: “F=”:F▲DMS◢ ElseNA+NJ+ O→E: O+NA-NF→F: “F=”:F▲DMS◢IfEnd↙“X=”:S+Icos(E)→X◢“Y=”:P+Isin(E)→Y◢If F<0:Then 360+F→F: IfEnd↙If F≥360:Then F-360→F: IfEnd↙Lbl1: “÷1”?Z: If Z=1:Then Prog “I”: IfEnd↙If Z=2:Then Prog “LD”: IfEnd↙If Z=-1:Then Prog “Q”: “X=”:X◢“Y=”: Y◢IfEnd↙Prog “P”↙Goto 0↙P(子程序,受主程序R调用,求极坐标放样要素:方位角及平距)Pol(X-B,Y-C): “D=”:I◢If J<0:Then 360+J→J: Else 0+J→J: IfEnd↙“AQ=”:J▲DMS◢L(子程序,受主程序R调用,求直线上点位坐标及切线方位角)T-Q→Q:If K<G:Then O+180→E: O→F: “X=”:S+Qcos(E)→X◢“Y=”:P+Qsin(E) →Y◢ Else O+NA→F: “X=” S+Qcos(F) →X◢“Y=”:P+Qsin(F) →Y◢IfEnd↙I(子程序,受主程序R调用,求边桩坐标)“RA”?E:“D”?D:E+F→E: If E≥360:Then E-360→E: IfEnd↙X+Dcos(E)→X: Y+Dsin(E)→Y: “X=”: X◢“Y=”: Y◢E→F↙Q(子程序,受主程序R调用,求副线边桩坐标)“1A”?E:“1D”?D:E+F→E↙X+Dcos(E)→X: Y+Dsin(E)→Y:E→F↙“2R”?E: “2D”?D: E+F→E↙X+Dcos(E)→X: Y+Dsin(E)→Y↙E→F↙LD(子程序,受主程序R调用,通过坐标反求里程和偏距)40→DimZ↙O→Z[1]:U→Z[2]:S→Z[3]: P→Z[4] ↙H÷2-H^(3)÷(240R2)→M: H2÷(24R)-H^(4)÷(2688R^(3))→V:90H2÷(πR)→D:(R+V)Tan(A÷2)+M→T: πRA÷180+H→K:O+NA→J:Prog“JD”:J→Z[21]:U-T+K→Z[22]: S-Tcos(O)→Z[5]:P-Tsin(O)→Z[6]:Z[5]+Mcos(O)+(R+V)cos(O+90N)→Z[7]:Z[6]+Msin(O)+ (R+V)sin(O+90N)→Z[8] ↙H-H^(5)÷(40R2H2)→Z:H^(3)÷(6RH)-H^(7)÷(336R^(3)H^(3))→C: Pol(C,Z):90-J→J:Prog“JD”: O+JN→J:Prog“JD”↙Z[5]+Icos(J)→Z[9]:Z[6]+Isin(J)→Z[10]:S+Tcos(Z[21])→Z[11]: P+Tsin(Z[21])→Z[12] ↙Pol(Z[10]-Z[8],Z[9]-Z[7]):90-J→J:Prog“JD”:J→Z[13] ↙J+(A-2D)N→J: Prog“JD”: J→Z[14] ↙“CEDIAN”◢Lbl 0: ↙“B”?B:If B=0:Then Prog “R”: IfEnd↙“XN=”?X: “YN=”?Y:Pol(Y-Z[8],X-Z[7]) ↙90-J→J: Prog“JD”:J→W:J-Z[13]→J↙Prog“JD”:J→Z[15] ↙W-Z[14]→J↙Prog“JD”:J→Z[16] ↙If N=1:Then Goto 1: IfEnd↙If N=-1:Then Goto 2: IfEnd↙Lbl 1: ↙If Z[15]>180:Then Goto 3: IfEnd↙If Z[16]≤180:Then Goto 5:Else Goto 4 : IfEnd↙Lbl 2: ↙If Z[15]<180:Then Goto 3: IfEnd↙If Z[16] >180:Then Goto 5:Else Goto 4 : IfEnd↙Lbl 3: ↙“H1”◢Pol(Y-Z[6],X-Z[5]):90-J→J: Prog“JD”↙J-Z[1]+90→J: Prog“JD”↙Isin(J)→G↙If G>0:Then 0→L:Goto 6: IfEnd↙If G≤0:Then “DK=”:Z[2]-T+G→Z[19]◢If N=1:Then “LD=”:-NIcos(J)→Z[20]◢Else “LD=”:NIcos(J) →Z[20]◢IfEnd↙“SD=1,LD≠1”?D:If D=1:Then Prog “SDCQJC”: IfEnd↙Goto 0↙Lbl 4: ↙“Y”◢If N=-1:Then 360-Z[15]→Z[15]: IfEnd: “DK=”:Z[2]-T+H+πR(Z[15])÷180→Z[19]◢If N=1:Then “LD=”:-(I-R)→Z[20]◢Else “LD=” :I-R→Z[20]◢IfEnd↙“SD=1,LD≠1”?D:If D=1:Then Prog “SDCQJC”: IfEnd↙Goto 0↙Lbl 5: ↙“H2”◢Pol(Y-Z[12],X-Z[11]):90-J→J: Prog“JD”:J→W:Z[21]-90→J: Prog“JD”:W-J→J: Prog“JD”:Isin(J)→G:If G<0:Then 0→L: -G→G↙Goto 7: IfEnd↙If G≥0:Then “DK=”:Z[22]+G→Z[19]◢IfEnd: If N=1:Then “LD=”:-NIcos(J)→Z[20]◢Else “LD=”:NIcos(J)→Z[20]◢IfEnd↙“SD=1,LD≠1”?D:If D=1:Then Prog “SDCQJC”: IfEnd↙Goto 0↙Lbl 6: ↙L+G→L:L-L^(5)÷(40R2H2)→Z:L^(3)÷(6RH)-L^(7)÷(336R^(3)H^(3)) →C:Pol(C,Z):90-J→J: Prog“JD”:J→W:Z[1]+WN→J: Prog“JD”:Z[5]+Icos(J)→Z[17]: Z[6]+Isin(J) →Z[18] ↙J+2WN→J: Prog“JD”:J-90→J: Prog“JD”:J→W↙Pol(Y-Z[18],X-Z[17]):90-J→J: Prog“JD”↙J-W→J: Prog“JD”:Isin(J)→G:If Abs(G)>0.001:Then Goto 6: IfEnd↙“DK=”:Z[2]-T+L+G→Z[19]◢If N=1:Then “LD=”:-Ncos(J) →Z[20]◢Else“LD=”:NIcos(J) →Z[20]◢IfEnd↙“SD=1,LD≠1”?D:If D=1:Then Prog “SDCQJC”: IfEnd↙Goto 0↙Lbl 7: ↙L+G→L:L-L^(5)÷(40R2H2)→Z:L^(3)÷(6RH)-L^(7)÷(336R^(3)H^(3)) →C:Pol(C,Z):90-J→J: Prog“JD”:J→W:Z[21]-180-WN→J: Prog“JD”↙Z[11]+Icos(J)→Z[17]:Z[12]+Isin(J)→Z[18]:J-2WN→J: Prog“JD”↙J-90→J: Prog“JD”:J→W↙Pol(Y-Z[18],X-Z[17]):90-J→J: Prog“JD”↙J-W→J:Prog “JD”↙Isin(J)→G: If Abs(G)>0.001:Then Goto 7:IfEnd↙“DK=”:Z[22]-L-G→Z[19]◢If N=1:Then “LD=”:NIcos(J)→Z[20]◢Else“LD=”:-NIcos(J) →Z[20]◢IfEnd↙“SD=1,LD≠1”?D:If D=1:Then Prog “SDCQJC”: IfEnd↙Goto 0↙JD(子程序,受LD程序调用,计算角度归化值)If J<0:Then J+360→J: IfEnd↙If J≥360:Then J-360→J: IfEnd↙CIRCLE(子程序,线路平面曲线要素,受主程序R调用)If K≤缓直点里程:Then 交点里程→U:交点X坐标→S:交点Y坐标→P:转角值→A:-1(曲线段左偏)或1(曲线段右偏)→N:圆曲线半径→R:缓和曲线长→H:直线段起始方位角→O:Goto 1: IfEnd↙If K≤……(同上输完全部曲线要素为止)Lbl 1↙CONTREL(控制点坐标数据库子程序,受主程序R和ZBFS调用)If W=控制点点号:Then 控制点X坐标→B:控制点Y坐标→C: IfEnd ↙If W=……(同上输完全部控制点数据为止)ZBFS(主程序,求两已知点方位角及平距,或已知两点求后方交会点坐标)Lbl 0:1→W: “NEW OPP”?W:If W=1:Then “OPPX”?X: “OPPY”?Y:Else Prog “CONTREL”:B→X:C→Y: IfEnd↙Lbl 1:-1→W: “NEW CPP”?W: If W=-1:Then “CPPX”?S: “CPPY”?T: Else Prog “CONTREL”:B→S:C→T: IfEnd↙Pol(S-X,T-Y): “D=”:I◢If J<0:Then J+360→J: Else 0+J→J: IfEnd↙“AQ=”:J▲DMS◢Lbl 2:0→W: “ZBFS=0,SQS≠0”?W:If W=0:Then Goto 1: ElseProg “SQS”: IfEnd↙Goto 0↙SQS(子程序,受主程序ZBFS调用,通过角度边长求交会点坐标值)Lbl 0: “S1=”?A: “J1=?M: “J2=”?N: “S2=?D:N-M→Q: If Q <0:Then Q+360→Q: IfEnd↙If Q<45°0′0″:Then “ERROR PLEASE REPEAT”◢Goto 0: IfEnd↙√(A2+D2-2ADos(Q))→E: “S3=”:E◢If Abs(A-D)≥60:Then “ERROR PLEASE REPEAT”◢Goto 0: IfEnd↙If Abs(I-E)<0.01:Then cos-1((A2+E2-D2)÷(2AE))→R: cos-1((D2+E2-A2) ÷(2DE))→G: Else “ERROR PLEASE REPEAT”◢Goto 0: IfEnd↙If J<0:Then J+360→J:IfEnd↙(X+Acos(J+R)+S+Dcos(J+180-G))÷2→F: “X=”:F◢(Y+Asin(J+R)+T+Dsin(J+180-G))÷2→P: “Y=”:P◢SQX(主程序,竖曲线求线路各里程点中桩设计高程)1→S:“NEWZ SQXK”?S: If S=-1:Then ?U:?R:?T:?N:?I:?F: “HB”?B: IfEnd↙Lbl 0: “C”?K : If Int(K÷1000)>0 : Then Int(K÷1000)→V :Else “V”?V :K+1000V→K:IfEnd↙If S≠-1:Then Prog “SQXK”: IfEnd↙U-T→G:K→Q: If Q≤G:Then Q-U→Q: Else Q-G→W: IfEnd↙If Q≤G:Then “H=”:B+QN÷1000→H◢Goto 1↙Else If Q≤U+T:Then “H=”:B+(Q-U)N÷1000+FW2÷(2R)→H◢Goto 1↙Else If Q≥U+T:Then “H=”:B+(Q-U)I÷1000→H◢Goto 1:IfEnd↙Lbl 1: “P”?P: “O=”:H-P→O◢Goto 0↙SQXK(子程序,受主程序SQX调用,竖曲线要素)If K≤竖曲线圆直点里程:Then 变坡点里程→U:变坡点设计高程→B:竖曲线圆曲线半径→R:竖曲线切线长→T:竖曲线直线段坡度常数(上、下坡有正负之分)→N:变坡点常数(凸为-1,凹为1)→F: Goto 0: IfEnd↙If K≤……(同上输完全部竖曲线要素为止)Lbl 0↙SDCQJC(子程序,受LD程序调用,采集隧道支护位置坐标高程数据一次性计算出该支护位置的超欠挖量)40→DimZ↙Lbl 0:Z[19]→Z[23]:Prog “SQXZ”↙Z[24]-Z[27]→Z[30]: Z[23]→Z[31] ↙If Z[31]≤Z[30]:Then Z[31]-Z[24]→Z[31]:Else Z[31]-Z[30] →Z[32]: IfEnd↙If Z[31]≤Z[30]:Then Z[25]+(Z[31])×(Z[28])÷1000→Z[33]: Goto 1↙Else If Z[31]≤Z[24]+Z[27]:Then Z[25]+(Z[31]-Z[24])×(Z[28])÷1000+(Z[29])×(Z[32])2÷(2×Z[26])→Z[33]: Goto 1↙Else If Z[31]≥Z[24]+Z[27]:Then Z[25]+(Z[31]-Z[24])×I÷1000→Z[33]: Goto 1: IfEnd↙Lbl 1: “H0=”:Z[33]+内轨面至圆心高差常数→Z[33]◢“HN”?K: “Δh=”:K-Z[33]→Z[34]◢If Z[20]≥隧道中心线与设计中心线的偏移量ω:Then Z[20]-ω→Z[35]:Else ω- Z[20]→Z[35] : IfEnd↙“RN=”:√((Z[34])2+(Z[35])2)→Z[36]◢“R0”?Z: “RCQ=”: Z[36]-Z→Z[37]◢SQXZ(子程序,受主程序SDCQJC调用,竖曲线要素)40→DimZ↙If Z[23]≤竖曲线圆直点里程:Then 变坡点里程→Z[24]:变坡点设计高程→Z[25]:竖曲线圆曲线半径→Z[26]:竖曲线切线长→Z[27]:竖曲线直线段坡度常数(上、下坡有正负之分)→Z[28]:变坡点常数(凸为-1,凹为1)→Z[29]:IfEnd↙文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. If Z[23]≤……(同上输完全部竖曲线要素为止)Lbl 0↙。

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

1. 主程序(TYQXJS)
Lbl 4:"1.SZ => XY":"2.XY => SZ":?N:?S:Prog“SUB0”↙1÷P→C: (P-R)÷(2HPR) →D:180÷∏→E:N=1 => Goto1:Goto2:↙
Lbl 1:? Z:Abs(S-O) →W:Prog "SUB1":"XS=":X◢
"YS=":Y◢F-90→F:“FS=”:F▲DMS◢Goto4↙
Lbl 2:?X:?Y:X→I:Y→J:Prog“SUB2”:O+W→S:“S=”:S◢“Z=”:Z◢Goto4↙
2. 正算子程序(SUB1)
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→F:X+Zcos(F)→X:Y+Zsin(F)→Y 2. 反算子程序(SUB2)
G-90→T:Abs((Y-V)cosT-(X-U)sinT) →W:0→Z:Lbl 0:Prog "SUB1":
T+QEW(C+WD) →L:(J-Y)cos(L)-(I-X)sin(L)→Z:IF Abs(Z)<1E-6:Then0→Z:Prog "SUB1" :(J-Y)÷sin(F)→Z:(这里的两个冒号是自己加的)
Else W+Z→w:Goto0:IfEnd
SUB0 数据库子程序
Goto1↙同时保存多个曲线时的指针
Lbl 1:IF S<***(线元终点里程):Then***→G(线元起点方位角):***→O(线元起点里程):***→U(线元起点X):***→V(线元起点Y):***→P(线元起点曲率半径):***→R(线元终点曲率半径): ***→H(线元起点至终点长度):0或1、-1→Q:Return:IfEnd↙
Lbl 1:IF S<***(线元终点里程):Then***→G(线元起点方位角):***→O(线元起点里程):***→U(线元起点X):***→V(线元起点Y):***→P(线元起点曲率半径):***→R(线元终点曲率半径): ***→H(线元起点至终点长度):0或1、-1→Q:Return:IfEnd
……………..
为了便于解读,每增加一个线元增加一行语句,每增加一条曲线增加一个Lbl,每增加一个工程增加一个文件。

三、使用说明
(本程序和原程序区别建立了数据库能够反算能够计算出计算点的
切线方位角,十分感谢网友半支烟和夏夜的指点使得本程序更加实用和简洁。


1、规定1E-6就是1×10^(-6)
(1) 以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0。

(2) 当所求点位于中线时,Z=0;当位于中线左铡时,Z取负值;当位于中线中线右
侧时,Z取正值。

(3) 当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次代替。

(4) 当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆弧的半径。

(5) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45
次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。

止点与直线相接时,曲率半
径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。

(6) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的
值;与圆曲线相接时,曲率半径等于圆曲线的半径。

止点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。

2、输入与显示说明
输入部分:
1. SZ => XY
2. XY = > SZ
N ? 选择计算方式,输入1表示进行由里程、边距计算坐标;输入2表示由坐标反算里程和边距。

S ?正算时所求点的里程,反算时为所求点的近似里程,反算时输入的近似里程不能夸线元,若夸线元的话,需进行第二次反算,并以第一次的结果做为近似里程,否则反算的里程及边距不对,Z ?正算时所求点距中线的边距(左侧取负,值右侧取正值,在中线上取零) X ?反算时所求点的X坐标
Y ?反算时所求点的Y坐标
显示部分:
XS=×××正算时,计算得出的所求点的X坐标
YS=×××正算时,计算得出的所求点的Y坐标
FS=×××正算时,所求点对应的中线点的切线方位角
S=×××反算时,计算得出的所求点的里程
Z=×××反算时,计算得出的所求点的边距。

相关文档
最新文档