5800正反算,超欠挖 (最终版)
1-YIN D C(主程序)
Lbl 4: Cls
“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:
“H(CG) =”? → Z[3]:
Cls
“1→RD,2→,CD,3→ZD,4→YD”? →Z[1]
Z[1]=1=> Prog “SJ—PMRD”:
Z[1]=2=> Prog “SJ—PMCD”:
Z[1]=3=> Prog “SJ—PMZD”:
Z[1]=4=> Prog “SJ—PMYD”:
Abs(S-O) → W:
Prog “SUB1-ZS”:
“X=”:Locate4,4,X:
“Y=”:Locate4,4,Y:
F-90→F:S→ K:
Z[1]→Z[2]
Z[2]=1=> Prog “SJ—GCRD”:
Z[2]=2=> Prog “SJ—GCCD”:
Z[2]=3=> Prog “SJ—GCZD”:
Z[2]=4=> Prog “SJ—GCYD”:
H- Z[3] →H:
“H=”:Locate4,4,H:
“W=”: Locate4,4,F°◢
Goto 4
(正算-输入待求点里程K=、输入待求点偏距P=、显示待求点里程X=、显示待求点里程Y=、显示待求点里程设计高程H=)
Lbl 2:
“K(L)=”? S:
“H(CG) =”? → Z[3]:
“X=”? X:
“Y=”?Y:
Lbl 3:
Cls
“1→RD,2→,CD,3→ZD,4→YD”? →Z[1]
Z[1]=1=> Prog “SJ—PMRD”:
Z[1]=2=> Prog “SJ—PMCD”:
Z[1]=3=> Prog “SJ—PMZD”:
Z[1]=4=> Prog “SJ—PMYD”:
X→ I: Y→ J:Prog "SUB2-FS":
O+W→S:
“K=":Locate4,4, S :
“P=":Locate4,4, Z:
S→ K:
Z[1]→Z[2]:
“1→RD,2→,CD,3→ZD,4→YD”? →Z[2]
Z[2]=1=> Prog “SJ—GCRD”:
Z[2]=2=> Prog “SJ—GCCD”:
Z[2]=3=> Prog “SJ—GCZD”:
Z[2]=4=> Prog “SJ—GCYD”:
H- Z[3] →H:
“H=”:Locate4,4, H :
F-90→F:
“W=”: Locate4,4,F°◢
“H(CG) =”? → Z[3]:
H- Z[3] →H:
“H=”:Locate4,4,H◢
Goto4
(反算- 输入反算点大概里程K(L)=、输入实测点X=、 输入实测点Y=、显示实测点里程K=、显示实测点偏距P=、显示实测点的设计高程H=)
Lbl 3: “K(L)=”? S: “X=”?X:“Y=”?Y:
Cls
“1→RD,2→,CD,3→ZD,4→YD”? →Z[1]
Z[1]=1=> Prog “SJ—PMRD”
Z[1]=2=> Prog “SJ—PMCD”
Z[1]=3=> Prog “SJ—PMZD”
Z[1]=4=> Prog “SJ—PMYD”
X→ I: Y→ J:Prog "SUB2-FS":O+W→S:
"K=":Locate4,4, S :
"P=":Locate4,4, Z:S→ K
Z[1]→Z[2]
Z[2]=1=> Prog “SJ—GCRD”
Z[2]=2=> Prog “SJ—GCCD”
Z[2]=3=> Prog “SJ—GCZD”
Z[2]=4=> Prog “SJ—GCYD”
“H=”:Locate4,4, H:F-90→F: “W=”: Locate4,4,F°◢
Prog“SJ-CQW” ◢
Goto4
(超欠挖-输入实测点X=、输入实测点Y=、显示实测点里程K=、显示实测点偏距P=、显示实测点的设计高程H=、输入实测高程H(SC)=、显示超欠挖值及第几圆心上CQ→Y?=)
SUB1-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+QEMW(C+MW
D))+Acos(G+QEFW(C+FWD)))→ X V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Bsin(G+QEMW(C+MW
D))+Asin(G+QEFW(C+FWD)))→ 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:
Do:W+Z→W:Prog "SUB1-ZS":
T+QEW(C+WD) →L: (J-Y)cos(L)-(I-X)sin(L) → Z:
LpWhile Abs(Z)>10^(-6):
(J-Y)÷sin(F)→ Z
SUB3-GC(高程子程序)
C-D→Q
Abs (RQ÷2)→T
R(Abs (Q)÷Q)→R:If S≤B-T:Then 0→K:Else If S≥B+T:Then 0→K:D→C:
Else S-B+T→K:IfEnd:IfEnd
A-(B-S)C-K2÷(2R)→H
Return
SJ--PMRD(子程序名-平面线形数据库)
SJ--PMCD
SJ--PMZD
SJ--PMYD
(JD1前直线段要素输入)
If S ≥0(线元起点里程):Then 24163.6449→U(线元起点X坐标):21069.7772→V(线元起点Y坐标):0→O(线元起点里程):2°00′58.5″→G(线元起点方位角):70.2756 →H(线元长度):10^(45)→P(线元起点曲率半径):10^(45)→R(线元终点曲率半径):0 →Q(线元左右偏标志:左-1右1直0):IfEnd
(JD1第一缓和曲线要素输入)
If S ≥70.2756(线元起点里程):Then 24233.8770→U(线元起点X坐标):21072.2497→V(线元起点Y坐标):70.2756→O(线元起点里程):2°00′58.5″→G(线元起点方位角):60 →H(线元长度):10^(45)→P(线元起点曲率半径):500→R(线元终点曲率半径):-1→Q(线元左右偏标志:左-1右1直0):IfEnd
(JD1圆曲线要素输入)
If S ≥130.2756(线元起点里程):Then 24293.8605→U(线元起点X坐标):21073.1610→V(线元起点Y坐标):130.2756→O(线元起点里程):358°34′42.6″→G(线元起点方位角):41.525 →H(线元长度):500→P(线元起点曲率半径):500→R(线元终点曲率半径):-1 →Q(线元左右偏标志:左-1右1直0):IfEnd
(JD1第二缓和曲线要素输入)
If S ≥171.8005 (线元起点里程):Then 24335.2821→U(线元起点X坐标):21070.4093→V(线元起点Y坐标):171.8005→O(线元起点里程):353°49′12.4″→G(线元起点方位角):60 →H(线元长度):500→P(线元起点曲率半径):10^(45)→R(线元终点曲率半径):-1 →Q(线元左右偏标志:左-1右1直0):IfEnd
(两交点夹直线要素)
If S ≥231.8005 (线元起点里程):Then 24394.6180→U(线元起点X坐标):21061.5714→V(线元起点Y坐标):231.8005→O(线元起点里程):350°22′56.5″→G(线元起点方位角):334.132 →H(线元长度):500→P(线元起点曲率半径):10^(45)→R(线元终点曲率半径):0 →Q(线元左右偏标志:左-1右1直0):IfEnd
(JD2第一缓和曲线要素输入)
If S ≥565.9321 (线元起点里程):Then 24724.0533→U(线元起点X坐标):
21005.7473→V(线元起点Y坐标):565.9321→O(线元起点里程):350°22′56.5″→G(线元起点方位角):45→H(线元长度):10^(45)→P(线元起点曲率半径):1000→R(线元终点曲率半径):1 →Q(线元左右偏标志:左-1右1直0):IfEnd
(JD2圆曲线要素输入)
If S ≥610.9321 (线元起点里程):Then 24768.4749→U(线元起点X坐标):20998.5621→V(线元起点Y坐标):610.9321→O(线元起点里程):351°40′17.5″→G(线元起点方位角):61.505 →H(线元长度):1000→P(线元起点曲率半径):1000→R(线元终点曲率半径):1 →Q(线元左右偏标志:左-1右1直0):IfEnd
(JD2第二缓和曲线要素输入)
If S ≥672.4372 (线元起点里程):Then 24829.5668→U(线元起点X坐标):20991.5298→V(线元起点Y坐标):672.4372→O(线元起点里程):355°11′43.8″→G(线元起点方位角):45 →H(线元长度):1000→P(线元起点曲率半径):10^(45)→R(线元终点曲率半径):1 →Q(线元左右偏标志:左-1右1直0):IfEnd
(两交点夹直线要素输入)
If S ≥717.4372 (线元起点里程):Then 24874.4592→U(线元起点X坐标):20988.4338→V(线元起点Y坐标):717.4372→O(线元起点里程):356°29′04.8″→G(线元起点方位角):62.767 →H(线元长度):10^(45)→P(线元起点曲率半径):10^(45)→R(线元终点曲率半径):0 →Q(线元左右偏标志:左-1右1直0):IfEnd
(JD3第一缓和曲线要素输入)
If S ≥780.2044 (线元起点里程):Then 24937.1083→U(线元起点X坐标):20984.5852→V(线元起点Y坐标):780.2044→O(线元起点里程):356°29′04.8″→G(线元起点方位角):60 →H(线元长度):10^(45)→P(线元起点曲率半径):200→R(线元终点曲率半径):1 →Q(线元左右偏标志:左-1右1直0):IfEnd
(JD3圆曲线要素输入)
If S ≥840.2044 (线元起点里程):Then 24997.0444→U(线元起点X坐标):20983.9041→V(线元起点Y坐标):840.2044→O(线元起点里程):5°04′44.5″→G(线元起点方位角):258.124→H(线元长度):200→P(线元起点曲率半径):200→R(线元终点曲率半径):1 →Q(线元左右偏标志:左-1右1直0):IfEnd
(JD3第二缓和曲线要素输入)
If S ≥1098.3286(线元起点里程):Then 25175.6814→U(线元起点X坐标):21145.0467→V(线元起点Y坐标):1098.3286→O(线元起点里程):79°01′34.2″→G(线元起点方位角):60 →H(线元长度):200→P(线元起点曲率半径):10^(45)→R
(线元终点曲率半径):1 →Q(线元左右偏标志:左-1右1直0):IfEnd
(JD3后直线要素输入)
If S ≥1158.3286(线元起点里程):Then 25181.1594→U(线元起点X坐标):21204.7358→V(线元起点Y坐标):1158.3286→O(线元起点里程):87°37′13.9″→G(线元起点方位角):0 →H(线元长度):10^(45)→P(线元起点曲率半径):10^(45)→R(线元终点曲率半径):0 →Q(线元左右偏标志:左-1右1直0):IfEnd
(注:有多个平面线形,依照上面的依次变更, 每多一个,就增加一个。每次只需要修改以上的数据或增加一个判断。)
SJ-GCRD(子程序名-竖曲线数据库)
SJ-GCCD
SJ-GCZD
SJ-GCYD
(起点为直坡)
If S ≥起点里程And S<下一竖曲线起点:Then起点高程 →A:起点里程→B: 坡度(+或-)→C:A+(S-B)C→H:IfEnd
If S ≥121000And S<(121700-98/2):Then1108.766 →A:121000→B: 0.0168→C:A+(S-B)C→H:IfEnd
(以下为竖曲线要素)
If S≥本竖曲线起点And S<后一竖曲线起点里程段:Then交点高程→A: 交点里程→B:交点前坡(+或-)→C: 交点后坡(+或-)→D:交点半径→R: Prog“SUB3-GC”︰IfEnd
If S≥0 And S<224:Then360.329→A:0→B:-0.2%→C: A+(S-B)C→H:IfEnd
If S≥224And S<276:Then359.829→A: 250→B: -0.2%→C:-2.8%→D:2000→R: Prog“SUB3-GC”︰IfEnd
If S≥276And S<456.769:Then359.101→A: 276→B: -2.8%→C: A+(S-B)C→H:IfEnd
If S≥456.769And S<583.321:Then352.269→A: 520→B: -2.8%→C:
3.5321%→D:2000→R:Prog“SUB3-GC”︰IfEnd
If S≥583.321And S<984.679:Then354.506→A: 583.321→B: 3.5321%→C:
A+(S-B)C→H:IfEnd
If S≥984.679And S<1055.321:Then369.93→A: 1020→B:
3.5321%→C:0→D:2000→R:Prog“SUB3-GC”︰IfEnd
If S≥1055.321 And S<1160:Then369.93→A: 1055.321→B: 0→C: A+(S-B)C→H:IfEnd
后面的没有输了
(注:1.有多个竖曲线,依照上面的依次变更,每多一个,就增加一个。
SJ-CQW (子程序名-隧道数据库)
“H(SC)=”?F
If F-H>圆心到层底高度:Then √((Abs (Z))2+(F-H-分段高度)2 )-半径→W: “CQ→Y1=”:W: IfEnd:(显示超欠和第1圆心)
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圆心)
(注:隧道断面有多个圆心,依照上面的依次变更, 每多一个,就增加一个。每次只需要修改以上的数据或增加一个判断。)
说明:(正算1秒,反算和超欠挖5秒完成)
所有程序名。不同线路,只需改动SJ-PM**,SJ-GC**,SJ-CQW**两个子程序里的内容,其它不变。
1为正算,2为反算,3超欠挖
K= 正算时,输入所求点里程。 反算时得出里程结果
X=,Y= 正算时得出结果。 反算时输入实测坐标
P= 正算时输入偏距。 反算时得出偏距
H= 正算时得出高程。 反算时得出高程
H1= 超欠挖时输入实测高程
CQ→Y?= 得出超欠挖值及第几圆心上
算例
超欠挖
K(L)大概里程122070
实测坐标,X:1064921.422 Y:524398.1162
得出结果K=122060 P=0 H=1122.9122 W=78-16-38.64
实测高程:1120.5
得出超欠挖为CQ-Y3=-0.0378
5800正反算,超欠挖 (最终版)
1-YIN D C(主程序)
Lbl 4: Cls
“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:
“H(CG) =”? → Z[3]:
Cls
“1→RD,2→,CD,3→ZD,4→YD”? →Z[1]
Z[1]=1=> Prog “SJ—PMRD”:
Z[1]=2=> Prog “SJ—PMCD”:
Z[1]=3=> Prog “SJ—PMZD”:
Z[1]=4=> Prog “SJ—PMYD”:
Abs(S-O) → W:
Prog “SUB1-ZS”:
“X=”:Locate4,4,X:
“Y=”:Locate4,4,Y:
F-90→F:S→ K:
Z[1]→Z[2]
Z[2]=1=> Prog “SJ—GCRD”:
Z[2]=2=> Prog “SJ—GCCD”:
Z[2]=3=> Prog “SJ—GCZD”:
Z[2]=4=> Prog “SJ—GCYD”:
H- Z[3] →H:
“H=”:Locate4,4,H:
“W=”: Locate4,4,F°◢
Goto 4
(正算-输入待求点里程K=、输入待求点偏距P=、显示待求点里程X=、显示待求点里程Y=、显示待求点里程设计高程H=)
Lbl 2:
“K(L)=”? S:
“H(CG) =”? → Z[3]:
“X=”? X:
“Y=”?Y:
Lbl 3:
Cls
“1→RD,2→,CD,3→ZD,4→YD”? →Z[1]
Z[1]=1=> Prog “SJ—PMRD”:
Z[1]=2=> Prog “SJ—PMCD”:
Z[1]=3=> Prog “SJ—PMZD”:
Z[1]=4=> Prog “SJ—PMYD”:
X→ I: Y→ J:Prog "SUB2-FS":
O+W→S:
“K=":Locate4,4, S :
“P=":Locate4,4, Z:
S→ K:
Z[1]→Z[2]:
“1→RD,2→,CD,3→ZD,4→YD”? →Z[2]
Z[2]=1=> Prog “SJ—GCRD”:
Z[2]=2=> Prog “SJ—GCCD”:
Z[2]=3=> Prog “SJ—GCZD”:
Z[2]=4=> Prog “SJ—GCYD”:
H- Z[3] →H:
“H=”:Locate4,4, H :
F-90→F:
“W=”: Locate4,4,F°◢
“H(CG) =”? → Z[3]:
H- Z[3] →H:
“H=”:Locate4,4,H◢
Goto4
(反算- 输入反算点大概里程K(L)=、输入实测点X=、 输入实测点Y=、显示实测点里程K=、显示实测点偏距P=、显示实测点的设计高程H=)
Lbl 3: “K(L)=”? S: “X=”?X:“Y=”?Y:
Cls
“1→RD,2→,CD,3→ZD,4→YD”? →Z[1]
Z[1]=1=> Prog “SJ—PMRD”
Z[1]=2=> Prog “SJ—PMCD”
Z[1]=3=> Prog “SJ—PMZD”
Z[1]=4=> Prog “SJ—PMYD”
X→ I: Y→ J:Prog "SUB2-FS":O+W→S:
"K=":Locate4,4, S :
"P=":Locate4,4, Z:S→ K
Z[1]→Z[2]
Z[2]=1=> Prog “SJ—GCRD”
Z[2]=2=> Prog “SJ—GCCD”
Z[2]=3=> Prog “SJ—GCZD”
Z[2]=4=> Prog “SJ—GCYD”
“H=”:Locate4,4, H:F-90→F: “W=”: Locate4,4,F°◢
Prog“SJ-CQW” ◢
Goto4
(超欠挖-输入实测点X=、输入实测点Y=、显示实测点里程K=、显示实测点偏距P=、显示实测点的设计高程H=、输入实测高程H(SC)=、显示超欠挖值及第几圆心上CQ→Y?=)
SUB1-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+QEMW(C+MW
D))+Acos(G+QEFW(C+FWD)))→ X V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Bsin(G+QEMW(C+MW
D))+Asin(G+QEFW(C+FWD)))→ 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:
Do:W+Z→W:Prog "SUB1-ZS":
T+QEW(C+WD) →L: (J-Y)cos(L)-(I-X)sin(L) → Z:
LpWhile Abs(Z)>10^(-6):
(J-Y)÷sin(F)→ Z
SUB3-GC(高程子程序)
C-D→Q
Abs (RQ÷2)→T
R(Abs (Q)÷Q)→R:If S≤B-T:Then 0→K:Else If S≥B+T:Then 0→K:D→C:
Else S-B+T→K:IfEnd:IfEnd
A-(B-S)C-K2÷(2R)→H
Return
SJ--PMRD(子程序名-平面线形数据库)
SJ--PMCD
SJ--PMZD
SJ--PMYD
(JD1前直线段要素输入)
If S ≥0(线元起点里程):Then 24163.6449→U(线元起点X坐标):21069.7772→V(线元起点Y坐标):0→O(线元起点里程):2°00′58.5″→G(线元起点方位角):70.2756 →H(线元长度):10^(45)→P(线元起点曲率半径):10^(45)→R(线元终点曲率半径):0 →Q(线元左右偏标志:左-1右1直0):IfEnd
(JD1第一缓和曲线要素输入)
If S ≥70.2756(线元起点里程):Then 24233.8770→U(线元起点X坐标):21072.2497→V(线元起点Y坐标):70.2756→O(线元起点里程):2°00′58.5″→G(线元起点方位角):60 →H(线元长度):10^(45)→P(线元起点曲率半径):500→R(线元终点曲率半径):-1→Q(线元左右偏标志:左-1右1直0):IfEnd
(JD1圆曲线要素输入)
If S ≥130.2756(线元起点里程):Then 24293.8605→U(线元起点X坐标):21073.1610→V(线元起点Y坐标):130.2756→O(线元起点里程):358°34′42.6″→G(线元起点方位角):41.525 →H(线元长度):500→P(线元起点曲率半径):500→R(线元终点曲率半径):-1 →Q(线元左右偏标志:左-1右1直0):IfEnd
(JD1第二缓和曲线要素输入)
If S ≥171.8005 (线元起点里程):Then 24335.2821→U(线元起点X坐标):21070.4093→V(线元起点Y坐标):171.8005→O(线元起点里程):353°49′12.4″→G(线元起点方位角):60 →H(线元长度):500→P(线元起点曲率半径):10^(45)→R(线元终点曲率半径):-1 →Q(线元左右偏标志:左-1右1直0):IfEnd
(两交点夹直线要素)
If S ≥231.8005 (线元起点里程):Then 24394.6180→U(线元起点X坐标):21061.5714→V(线元起点Y坐标):231.8005→O(线元起点里程):350°22′56.5″→G(线元起点方位角):334.132 →H(线元长度):500→P(线元起点曲率半径):10^(45)→R(线元终点曲率半径):0 →Q(线元左右偏标志:左-1右1直0):IfEnd
(JD2第一缓和曲线要素输入)
If S ≥565.9321 (线元起点里程):Then 24724.0533→U(线元起点X坐标):
21005.7473→V(线元起点Y坐标):565.9321→O(线元起点里程):350°22′56.5″→G(线元起点方位角):45→H(线元长度):10^(45)→P(线元起点曲率半径):1000→R(线元终点曲率半径):1 →Q(线元左右偏标志:左-1右1直0):IfEnd
(JD2圆曲线要素输入)
If S ≥610.9321 (线元起点里程):Then 24768.4749→U(线元起点X坐标):20998.5621→V(线元起点Y坐标):610.9321→O(线元起点里程):351°40′17.5″→G(线元起点方位角):61.505 →H(线元长度):1000→P(线元起点曲率半径):1000→R(线元终点曲率半径):1 →Q(线元左右偏标志:左-1右1直0):IfEnd
(JD2第二缓和曲线要素输入)
If S ≥672.4372 (线元起点里程):Then 24829.5668→U(线元起点X坐标):20991.5298→V(线元起点Y坐标):672.4372→O(线元起点里程):355°11′43.8″→G(线元起点方位角):45 →H(线元长度):1000→P(线元起点曲率半径):10^(45)→R(线元终点曲率半径):1 →Q(线元左右偏标志:左-1右1直0):IfEnd
(两交点夹直线要素输入)
If S ≥717.4372 (线元起点里程):Then 24874.4592→U(线元起点X坐标):20988.4338→V(线元起点Y坐标):717.4372→O(线元起点里程):356°29′04.8″→G(线元起点方位角):62.767 →H(线元长度):10^(45)→P(线元起点曲率半径):10^(45)→R(线元终点曲率半径):0 →Q(线元左右偏标志:左-1右1直0):IfEnd
(JD3第一缓和曲线要素输入)
If S ≥780.2044 (线元起点里程):Then 24937.1083→U(线元起点X坐标):20984.5852→V(线元起点Y坐标):780.2044→O(线元起点里程):356°29′04.8″→G(线元起点方位角):60 →H(线元长度):10^(45)→P(线元起点曲率半径):200→R(线元终点曲率半径):1 →Q(线元左右偏标志:左-1右1直0):IfEnd
(JD3圆曲线要素输入)
If S ≥840.2044 (线元起点里程):Then 24997.0444→U(线元起点X坐标):20983.9041→V(线元起点Y坐标):840.2044→O(线元起点里程):5°04′44.5″→G(线元起点方位角):258.124→H(线元长度):200→P(线元起点曲率半径):200→R(线元终点曲率半径):1 →Q(线元左右偏标志:左-1右1直0):IfEnd
(JD3第二缓和曲线要素输入)
If S ≥1098.3286(线元起点里程):Then 25175.6814→U(线元起点X坐标):21145.0467→V(线元起点Y坐标):1098.3286→O(线元起点里程):79°01′34.2″→G(线元起点方位角):60 →H(线元长度):200→P(线元起点曲率半径):10^(45)→R
(线元终点曲率半径):1 →Q(线元左右偏标志:左-1右1直0):IfEnd
(JD3后直线要素输入)
If S ≥1158.3286(线元起点里程):Then 25181.1594→U(线元起点X坐标):21204.7358→V(线元起点Y坐标):1158.3286→O(线元起点里程):87°37′13.9″→G(线元起点方位角):0 →H(线元长度):10^(45)→P(线元起点曲率半径):10^(45)→R(线元终点曲率半径):0 →Q(线元左右偏标志:左-1右1直0):IfEnd
(注:有多个平面线形,依照上面的依次变更, 每多一个,就增加一个。每次只需要修改以上的数据或增加一个判断。)
SJ-GCRD(子程序名-竖曲线数据库)
SJ-GCCD
SJ-GCZD
SJ-GCYD
(起点为直坡)
If S ≥起点里程And S<下一竖曲线起点:Then起点高程 →A:起点里程→B: 坡度(+或-)→C:A+(S-B)C→H:IfEnd
If S ≥121000And S<(121700-98/2):Then1108.766 →A:121000→B: 0.0168→C:A+(S-B)C→H:IfEnd
(以下为竖曲线要素)
If S≥本竖曲线起点And S<后一竖曲线起点里程段:Then交点高程→A: 交点里程→B:交点前坡(+或-)→C: 交点后坡(+或-)→D:交点半径→R: Prog“SUB3-GC”︰IfEnd
If S≥0 And S<224:Then360.329→A:0→B:-0.2%→C: A+(S-B)C→H:IfEnd
If S≥224And S<276:Then359.829→A: 250→B: -0.2%→C:-2.8%→D:2000→R: Prog“SUB3-GC”︰IfEnd
If S≥276And S<456.769:Then359.101→A: 276→B: -2.8%→C: A+(S-B)C→H:IfEnd
If S≥456.769And S<583.321:Then352.269→A: 520→B: -2.8%→C:
3.5321%→D:2000→R:Prog“SUB3-GC”︰IfEnd
If S≥583.321And S<984.679:Then354.506→A: 583.321→B: 3.5321%→C:
A+(S-B)C→H:IfEnd
If S≥984.679And S<1055.321:Then369.93→A: 1020→B:
3.5321%→C:0→D:2000→R:Prog“SUB3-GC”︰IfEnd
If S≥1055.321 And S<1160:Then369.93→A: 1055.321→B: 0→C: A+(S-B)C→H:IfEnd
后面的没有输了
(注:1.有多个竖曲线,依照上面的依次变更,每多一个,就增加一个。
SJ-CQW (子程序名-隧道数据库)
“H(SC)=”?F
If F-H>圆心到层底高度:Then √((Abs (Z))2+(F-H-分段高度)2 )-半径→W: “CQ→Y1=”:W: IfEnd:(显示超欠和第1圆心)
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圆心)
(注:隧道断面有多个圆心,依照上面的依次变更, 每多一个,就增加一个。每次只需要修改以上的数据或增加一个判断。)
说明:(正算1秒,反算和超欠挖5秒完成)
所有程序名。不同线路,只需改动SJ-PM**,SJ-GC**,SJ-CQW**两个子程序里的内容,其它不变。
1为正算,2为反算,3超欠挖
K= 正算时,输入所求点里程。 反算时得出里程结果
X=,Y= 正算时得出结果。 反算时输入实测坐标
P= 正算时输入偏距。 反算时得出偏距
H= 正算时得出高程。 反算时得出高程
H1= 超欠挖时输入实测高程
CQ→Y?= 得出超欠挖值及第几圆心上
算例
超欠挖
K(L)大概里程122070
实测坐标,X:1064921.422 Y:524398.1162
得出结果K=122060 P=0 H=1122.9122 W=78-16-38.64
实测高程:1120.5
得出超欠挖为CQ-Y3=-0.0378