5800 隧道测量程序
5800线路及中边桩正反算程序
王玉生 2009-04-26
本程序是的4800程序的修改版,用于5800计算器
文件名 (坐标程序)ZBCX
Do:Deg:Norm 1:Cls: "JX"?M:"JY"?R:"0-END 1-Z 2-F"?V:Fix 3://输入置仪坐标,正反算选项 While V=1: Goto 1:WhileEnd//循环正算流程
While V=2: Goto 2:WhileEnd//循环反算流程(
LpWhile V≠0:Cls:"END"//里程超限时返回程序起点,选项为0则退出程序
Lbl 1:“K=”? K: Prog “ZS ”: “X=”:X◢“Y=”:Y◢ “O=”:O DMS ◢
Prog “SQX ”: “H=”:H◢(红色是计算标高的,当不求标高时可不输入)
Lbl 0:“W=”?W:If W=0: Then Goto 1: IfEnd: “AI=”?J: “X1=”:X+Wcos(O+J)→M ◢
“Y1=”:Y+Wsin(O+J) →R ◢
Goto 0
Lbl 2:Prog “FS ”: “K=”:K ◢“W=”:W◢ Goto 2
文件名 (正算程序) ZS
Prog “SJK ”: ( K-S ) / 4→N: 90/π→F : 2NF/ I→D: NNF(1/T-1/I)/(L-S )→U: C+V( D+ U)→E:
C+V(2D+4U)→Q:
C+V(3D+9U)→G:
C+V(4D+16U) →O:
A+N/3*(cosC+4(cosG+cosE)+2cosQ+cosO) →X :
B+N/3*(sinC+4(sinG+sinE)+2sinQ+sinO) →Y :
文件名 (反算程序) FS
“XO=”?M:“Y0=”?R:Lbl 0: Prog “ZS”: O -90 →Z: (R-Y)cosZ-(M-X) sinZ →P : K+P→K:
If AbsP≥0.001:Then GOTO 0 : IfEnd: GOTO 1 ←┘
Lbl 1: (R-Y)cosO-(M-X) sinO →W :
文件名 (数据库) SJK
If K线路终点: Then“K=”? K:Return: IfEnd
If K <L: Then **→S : **→A : **→B : **→C : **→L : **→I : **→T :±1→V: Goto A: IfEnd
If K <L: Then **→S : **→A : **→B : **→C : **→L : **→I : **→T :±1→V: Goto A: IfEnd
IfK <L :Then **→S : **→A : **→B : **→C : **→L : **→I : **→T :±1→V: Goto A: IfEnd
„„„„„„„„„„„„„„„
IfK <L :Then **→S : **→A : **→B : **→C : **→L : **→I : **→T :±1→V: Goto A: IfEnd
LblA:Return
(注:如有多个曲线元要素继续添加入数据库SJK 中)
变量说明:
S „„.. 起点里程 A „.. 起点X 坐标 B „. 起点Y 坐标 C „. 起点方位角
I „. 起点半径 L „.. 终点里程 T „终点半径 K „. 计算点里程 V „. 曲线方向
J „输入左右(左-,右+)角度, W „. 中桩到边桩的距离
注意:1:计算中桩坐标W,J 等于零。
2:建立线路数据库子程序
3:这里的方位角是指 “线元起点” 的方位角
例如:(ZY , YZ , ZH , HY , YZ)每个点都是 起点 所以特别注意
1、规定
(1) 以道路中线的前进方向(即里程增大的方向)区分左右;当线元向右偏时,V=+1;当线元向左偏时V=-1。
(2) 当所求边桩点位于中线时,W,J=0;当位于中线左侧时,J 取负值;当位于中线右侧时,J 取正值(斜交时输入右交角)。
(3) 当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次代替。
(4) 当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆弧的半径。
(5) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。
(6) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。
2、输入与显示说明
(1)输入部分:
V ?———输入1 正算,2是反算,0是退出
K ?———. 计算点里程
W ?———边桩至中桩的距离
AI ?———边桩中桩切线的角度(左偏JD=-角度,右偏JD=角度,)
X0?:Y0?———反算时已知点坐标
(2)显示部分:
X=×××Y=××× 正算时所求点的X Y 坐标
FWJ= ××× 正算时所求点的切线方位角
X1=×××Y1=×××所求边桩点的X Y 坐标
K=××× 反算时所求点的里程
W=××× 反算时所求点离中线的距离
竖曲线程序
(带数据库可全线贯通使用)
主程序名:SQX
Lbi1:“K=”?K: Prog"SJK1":C-D →F : Abs(RF÷2→T : R Abs(F)÷F →R If K≤B-T : Then 0→G :Goto2: IfEnd: K-B+T →G:
Lbi2: A-(B-K )C-G 2÷(2R) →H :“H=”:H◢
Goto1
―――――子程序:SJK1
If K≤第一竖曲线终点桩号(5569.108): Then第一竖曲线交点高程(820.968)→A :第一竖曲线交点桩号(4980)→B :第一竖曲线前坡度(.03)→C :第一竖曲线后坡度(-.02902)→D :第一竖曲线半径(13000)→R: GotoA: IfEnd If K≤第二竖曲线终点桩号(7174.4): Then第二竖曲线交点高程(798.331)→A :第二竖曲线交点桩号(5760)→B :第二竖曲线前坡度(-.02902)→C :第二竖曲线后坡度(.0187)→D :第二竖曲线半径(8000)→R: GotoA: IfEnd LblA:Return