1-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 (正算-输入待求点里程K=、输入待求点偏距P=、显示待求点里程X=、显示待求点里程Y=、显示待求点里程设计高程H=) Lbl 2: “K(L)=”? S: “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 4 (反算- 输入反算点大概里程K(L)=、输入实测点X=、 输入实测点Y=、显示实测点里程K=、显示实测点偏距P=、显示实测点的设计高程H=) Lbl 3: “K(L)=”? S: “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°◢ Prog“SJ-CQW” ◢ Goto4 (超欠挖-输入实测点X=、输入实测点Y=、显示实测点里程K=、显示实测点偏距P=、显示实测点的设计高程H=、输入实测高程H1=、显示超欠挖值及第几圆心上CQ→Y?=)
SJ--PM(子程序名-平面线形数据库)
JD1前直线段要素输入) If S ≥121000(线元起点里程):Then 1064587.393→U(线元起点X坐标):523392.492→V(线元起点Y坐标):121000→O(线元起点里程):710 06’07”→G(线元起点方位角):864.718 →H(线元长度):1×1045→P(线元起点曲率半径):1×1045→R(线元终点曲率半径):0 →Q(线元左右偏标志:左-1右1直0):IfEnd (JD1第一缓和曲线要素输入) If S ≥121864.718(线元起点里程):Then 1064867.459→U(线元起点X坐标):524210.598→V(线元起点Y坐标):121864.718→O(线元起点里程):71006’07”→G(线元起点方位角):90 →H(线元长度):1×1045→P(线元起点曲率半径):1200→R(线元终点曲率半径):1 →Q(线元左右偏标志:左-1右1直0):IfEnd (JD1圆曲线要素输入) If S ≥121954.718(线元起点里程):Then 1064895.540→U(线元起点X坐标):524296.100→V(线元起点Y坐标):121954.718→O(线元起点里程):73015’02”→G(线元起点方位角):425.529 →H(线元长度):1200→P(线元起点曲率半径):1200→R(线元终点曲率半径):1 →Q(线元左右偏标志:左-1右1直0):IfEnd (JD1第二缓和曲线要素输入) If S ≥122380.246(线元起点里程):Then 1064944.123→U(线元起点X坐标):524716.604→V(线元起点Y坐标):122380.246→O(线元起点里程):93034’05”→G(线元起点方位角):90 →H(线元长度):1200→P(线元起点曲率半径):1×1045→R(线元终点曲率半径):1 →Q(线元左右偏标志:左-1右1直0):IfEnd (两交点夹直线要素) If S ≥122470.246(线元起点里程):Then 1064936.279→U(线元起点X坐标):524806.256→V(线元起点Y坐标):122470.246→O(线元起点里程):95043’00”→G(线元起点方位角):1571.776 →H(线元长度):1×1045→P(线元起点曲率半径):1×1045→R(线元终点曲率半径):0 →Q(线元左右偏标志:左-1右1直0):IfEnd (JD2第一缓和曲线要素输入) If S ≥124042.022(线元起点里程):Then 1064779.711→U(线元起点X坐标):526370.215→V(线元起点Y坐标):124042.022→O(线元起点里程):95043’00”→G(线元起点方位角):90 →H(线元长度):1×1045→P(线元起点曲率半径):1200→R(线元终点曲率半径):-1 →Q(线元左右偏标志:左-1右1直0):IfEnd (JD2圆曲线要素输入) If S ≥124132.022(线元起点里程):Then 1064771.867→U(线元起点X坐标):526459.867→V(线元起点Y坐标):124132.022→O(线元起点里程):93034’05”→G(线元起点方位角):116.56 →H(线元长度):1200→P(线元起点曲率半径):1200→R(线元终点曲率半径):-1 →Q(线元左右偏标志:左-1右1直0):IfEnd (JD2第二缓和曲线要素输入) If S ≥124248.582(线元起点里程):Then 1064770.269→U(线元起点X坐标):526576.370→V(线元起点Y坐标):124248.582→O(线元起点里程):88000’10”→G(线元起点方位角):90 →H(线元长度):1200→P(线元起点曲率半径):1×1045→R(线元终点曲率半径):-1 →Q(线元左右偏标志:左-1右1直0):IfEnd (JD2后直线要互输入) If S ≥124338.582(线元起点里程):Then 1064775.653→U(线元起点X坐标):526666.203→V(线元起点Y坐标):124338.582→O(线元起点里程):85051’15”→G(线元起点方位角):5201.860 →H(线元长度):1×1045→P(线元起点曲率半径):1×1045→R(线元终点曲率半径):0 →Q(线元左右偏标志:左-1右1直0):IfEnd (注:有多个平面线形,依照上面的依次变更, 每多一个,就增加一个。每次只需要修改以上的数据或增加一个判断。)
SJ-GC-(子程序名-竖曲线数据库)
(起点为直坡) 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≥(121700-98/2) And S<(122050-85/2):Then1120.53→A:121700→B:0.0168→C:0.007→D:10000→R: Prog“SUB3-GC”︰IfEnd If S≥(122050-85/2)And S<(122550-50/2):Then1122.98→A: 122050→B: 0.007→C:-0.0015→D:10000→R: Prog“SUB3-GC”︰IfEnd If S≥(122550-50/2)And S<(123250-45/2):Then1122.23→A: 122550→B: -0.0015→C:-0.0065→D:10000→R:Prog“SUB3-GC”︰IfEnd If S≥(123250-45/2)And S<(123650-120/2):Then1117.68→A: 123250→B: -0.0065→C:-0.011→D:10000→R:Prog“SUB3-GC”︰IfEnd 后面的没有输了 (注:1.有多个竖曲线,依照上面的依次变更,每多一个,就增加一个。
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圆心) (注:隧道断面有多个圆心,依照上面的依次变更, 每多一个,就增加一个。每次只需要修改以上的数据或增加一个判断。) 图见个人像册
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+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
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:ElseS-B+T→K:IfEnd:IfEnd A-(B-S)C-K2÷(2R)→H Return
说明:(正算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
还木有评论哦,快来抢沙发吧~