null隧道超欠挖程序隧道超欠挖程序null1-JIN YU(主程序)
Lbl 4: “1→ZS,2→FS,3→CQW”?N(选择计算模式,1为正算,2为反算,3为超欠挖) N=1=>Goto 1:N=2=>Goto 2:N=3=>Goto 3
Lbl 1: “K=”? S:“P=”? Z:Prog “SJ-PM”: Abs(S-O) → W:Prog “SUB1-ZS”: “X=”:Locate4,4,X: “Y=”:Locate4,4,Y:F-90→F:S→ K:Prog“SJ-GC”:“H=”:Locate4,4,H:“W=”: Locate4,4,F°◢
Goto 4
Lbl 2:“X=”? X:“Y=”? Y:Prog“SJ-PM”: X→ I: Y→ J:Prog "SUB2-FS":O+W→S: “K=":Locate4,4, S :“P=":Locate4,4, Z:S→ K:Prog“SJ-GC” :“H=”:Locate4,4, H:F-90→F: “W=”: Locate4,4,F°◢
Goto 4nullLbl 3: “X=”?X:“Y=”?Y:Prog“SJ-PM”: X→ I: Y→ J:Prog "SUB2-FS":O+W→S: “K=":Locate4,4, S :“P=":Locate4,4, Z:S→ K:Prog“SJ-GC” :“H=”:Locate4,4, H◢
Prog“SJ-CQW” ◢
Goto4
SJ-PM(子程序名-平面线形数据库)
If S ≥59227.681:Then 2599818.013→U:496887.918→V:59227.681→O:208028’39”→G:100 →H:1×1045→P:1×1045→R:0 →Q:IfEnd
If S ≥59327.681:Then 2599730.112→U:496840.237→V:59327.681→O:208028’39”→G:90 →H:1×1045→P:750→R:-1 →Q:IfEnd
(注:有多个平面线形,依照上面的依次变更, 每多一个,就增加一个。每次只需要修改以上的数据或增加一个判断。)nullSJ-GC(子程序名-竖曲线数据库)
If S<And S≥:Then→A:→B:→O:变坡点高度→G:半径→R:Prog“SUB3-GC”:IfEnd (注:1.有多个竖曲线,依照上面的依次变更,每多一个,就增加一个。每次只需要修改以上的数据或增加一个判断。2.如整条线只有一个纵坡比喻为2﹪,那么程序应为If S<终点里程And S≥起点里程:Then 0.02→A:0.02→B:起点里程→O:起点高程→G:1×1045→R:Prog“SUB3-GC”:IfEnd)
SJ-CQW (子程序名-隧道数据库)
“H1=”?F
If F-H>5.845:Then √((Abs (Z))2+(F-H-0.45)2 )-7.45→W: “CQ→Y1=”:W: IfEnd:(显示超欠和第1圆心)
If F-H≤5.845 And F-H>-1.169: Then √((Abs (Z)-1)2+( Abs (F-H-1.5)) 2)-6→W : “CQ→Y2=”:W:IfEnd: (显示超欠和第2圆心)
If F-H≤-1.169: Then √((Abs (Z)) 2+(H-F+14.05) 2)-16.5→W: “CQ→Y3=”:W: IfEnd: (显示超欠和第3圆心) null(注:隧道断面有多个圆心,依照上面的依次变更, 每多一个,就增加一个。每次只需要修改以上的数据或增加一个判断。)详细数据见下图:
nullSUB1-ZS(正算子程序)
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: 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
SUB2-FS(反算子程序)
G-90→T: Abs((Y-V)cos(T)-(X-U)sin(T)) → W: 0→ Z:Lbl 0:Prog "SUB1-ZS": T+QEW(C+WD) →L: (J-Y)cos(L)-(I-X)sin(L) → Z:If Abs(Z)<1E-6(注:此处1E-6可输入0.000001):then Goto1:Else W+Z → W:Goto 0:IfEnd
Lbl 1: 0→ Z:Prog "SUB1-ZS": (J-Y)÷sin(F)→ Z nullSUB3-GC(高程子程序)
O-S→L:A-B→W:Abs(R*W÷2) →T:O-T→M:O+T→P If S≤M:ThenG-L*B→H:Goto5:Else If S≤O:Then Goto3:Else If S≤P:Then Goto4:IfEnd: IfEnd: IfEnd Lbi3 If W>O:Then G+(M-S)2÷2÷R-L*B→H:Goto5: Else If W<O: Then G-(M-S)2÷2÷R-L*B→H:Goto5: IfEnd: IfEnd Lbi4 If W>O:Then G+( S-P)2÷2÷R-L*A→H:Goto5: Else If W<O: Then G-( S-P)2÷2÷R-L*A→H:Goto5: IfEnd: IfEnd Lbi5 H→H: Return
说明:(正算1秒,反算和超欠挖5秒完成)
所有程序名。不同线路,只需改动SJ-PM,SJ-GC,SJ-CQW三个子程序里的内容,其它不变。
1为正算,2为反算,3为超欠挖.
K= 正算时,输入所求点里程。 反算时得出里程结果
X=,Y= 正算时得出结果。 反算时输入实测坐标
P= 正算时输入偏距。 反算时得出偏距
H= 正算时得出高程。 反算时得出高程
H1= 超欠挖时输入实测高程
CQ→Y?= 得出超欠挖值及第几圆心上