资源描述
5800坐标正反算以及隧道开挖线放样程序
1-JIN YU(主程序)
Lbl 4:"1→ZS,2→FS,3→CQW"?N
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◢
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◢
Goto 4
Lbl 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(线元起点X坐标):496887.918→V(线元起点Y坐标):59227.681→O(线元起点里程):208028’39”→G(线元起点方位角):100 →H(线元长度):1×1045→P(线元起点曲率半径):1×1045→R(线元终点曲率半径):0 →Q(线元左右偏标志:左-1右1):IfEnd
If S ≥59327.681(线元起点里程):Then 2599730.112→U(线元起点X坐标):496840.237→V(线元起点Y坐标):59327.681→O(线元起点里程):208028’39”→G(线元起点方位角):90 →H(线元长度):1×1045→P(线元起点曲率半径):750→R(线元终点曲率半径):-1 →Q(线元左右偏标志:左-1右1):IfEnd
……
……
SJ-GC¬(子程序名-竖数据库)
If S<变坡终点里程And S≥变坡起点里程:Then大里程坡度→A:小里程坡度→B:变坡点里程→O:变坡点高度→G:半径→R:Prog“SUB3-GC”:IfEnd
VB源码彩色显示 注:在[code]...[/code]内就以下面格式显示文字,双击源码拷贝到剪切板
(注: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: IfEnd:
If F-H≤5.845 And F-H>-1.169: Then √((Abs (Z)-1)2+( Abs (F-H-1.5)) 2)-6→W :IfEnd:
If F-H≤-1.169: Then √((Abs (Z)) 2+(H-F+14.05) 2)-16.5→W: IfEnd:
…
…
“+CQ,-CQ=”: W
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(高程子程序)
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
VB源码彩色显示 注:在[code]...[/code]内就以下面格式显示文字,双击源码拷贝到剪切板
说明:(正算1秒,反算和超欠挖5秒完成)
所有程序名。不同线路,只需改动SJ-PM,SJ-GC,SJ-CQW三个子程序里的内容,其它不变。注意0和O的区别
1为正算,2为反算,3为超欠挖.
K= 正算时,输入所求点里程。 反算时得出里程结果
X=,Y= 正算时得出结果。 反算时输入实测坐标
P= 正算时输入偏距。 反算时得出偏距
H= 正算时得出高程。 反算时得出高程
H1= 超欠挖时输入实测高程
+CQ,-CQ= 得出超欠挖值
注,超欠挖输入时显示里程,编距,设计高程,不需输入。只输入实测量高程H1
展开阅读全文