5800坐标正反算通用程序
- 格式:docx
- 大小:18.70 KB
- 文档页数:4
坐标正反算通用程序(终极篇)
1. 坐标正算主程序(命名为ZBZS)
第1行:Lbl 0:”K=”?K:”BIAN=”? Z:”α=”?B
第2行:Prog “A”
第3行:”X=”:N+Zcos(F+B)◢
第4行:”Y=”:E+Zsin(F+B)◢
第5行:”F=”:F►DMS◢
第6行:Goto 0
K——计算点的里程
BIAN——计算点到中桩的距离(左负右正)
α——取前右夹角为正
2. 坐标反算桩号和偏距主程序(命名为ZBFS)
第1行:”X1=”? C:”Y1=”?D: ”K1=”?K
第2行:Lbl 0:Prog “A”
第3行:Pol(C-N,D-E):Icos(F-J)→S:K+S→K
第4行:Abs(S)>0.0001=>Goto 0
第5行:”K1=”:K◢
第6行:”BIAN=”:Isin(J-F)→Z◢
X1——取样点的X坐标
Y1——取样点的Y坐标
K1——输入时为计算起始点(在线路内即可),输出时为反算点的桩号
Z——偏距(左负右正)
注:在9860或9960中需将第3行替换为Pol(C-N,D-E): List Ans[1]→I :List Ans[2]→J:Icos(J-F)→S:K+S→K,正反算主程序所有输入赋值多加一赋值符号(→),其他所有除数据库外的程序均保持不变3. 计算坐标子程序(命名为XYF)
为了简洁,本程序由数据库直接调用,上述中的正反算主程序不直接调用此程序
第1行:K-A→S:(Q-P)÷L→I
第2行:N+∫(cos(F+X(2P+XI)×90÷π),0,S)→N
第3行:E+∫(sin(F+X(2P+XI)×90÷π),0,S)→E
第4行:F+S(2P+SI)×90÷π→F
第5行:F<0=>F+360→F: F>360=>F-360→F
4. 数据库(命名为A)
第1行:K≤175.191=>Stop(超出后显示Done)
第2行:175.191→A:428513.730→N:557954.037→E:92°26′40″→F:0→P:1/240→Q:70.417→L:
K≤A+L =>GoTo 1(第一缓和曲线)
第3行:245.607→A: 428507.298→N:558024.092→E: 100°50′
59.4″→F: 1/240→P:1/240→Q:
72.915→L: K≤A+L =>Goto 1(圆曲线)
第4行:318.522→A: 428482.988→N:558092.538→E: 118°15′
25.2″→F: 1/240→P: 0→Q: 55.104
→L: K≤A+L =>Goto 1(第二缓和曲线)
第5行:373.627→A:428453.283→N:558138.912→E:124°50′4.5″→F:0→P:-1/180→Q:67.222→L: K≤A+L=>Goto 1:Stop(下一曲线的第一缓和曲线,示例为S型曲线,超出后显示Done)
第6行:Lbl 1:Prog “XYF”
A——曲线段起点的里程
N——曲线段起点的x坐标
E——曲线段起点的y坐标
F——曲线段起点的坐标方位角
P——曲线段起点的曲率(半径倒数,直线为0,左负右正)
Q——曲线段终点的曲率(半径倒数,直线为0,左负右正)
L——曲线段长度(尽量使用长度,为计算断链方便)
说明:
(1)正算主程序可以计算一般边桩的坐标,如要计算类似涵洞端墙的坐标需增加两个变量,具体方法参考本程序集中的第1篇辛普生公式的坐标计算通用程序
(2)适用于任意线形:直线(0→P、0→Q)、圆曲线(圆半径倒数→P、圆半径倒数→Q)、缓和曲线(0或圆半径倒数→P、圆半径倒数或0→Q)、卵形曲线(接起点圆的半径倒数→P、接终点圆的半径倒数→Q),曲线左转多加一负号。
(3)本程序精度较高,不受曲线半径大小影响,即使极小半径的螺旋曲线等误差仅为万分之一(0.1mm),可以忽略。
(4)若是从大里程向小里程的反方向计算,则曲率取正方向时的负值,方位角减去(或加上)180度。
(5)有多个匝道的项目,可随时更改正反算主程序中的红色字体部分来调用其它线路的数据
(6)反算桩号偏差为1mm
(7)反算程序中,若计算坐标为边桩点的坐标,则可更改程序中第1、8和9行代码,第1行中增加变量T和B的输入,第8、9行改为正算主程序中的第3、4行即可
(8)本程序可以计算任意线型(直线、圆曲线、缓和曲线、卵形曲线)的坐标
5. 坐标计算通用程序(命名为ZB)
本程序与上述中的几个程序无关,是在计算坐标时采用输入曲线元参数模式下的程序,为临时使用方便。
第1行:”K0=“? A:”X0=“? N:”Y0=“?E:”F0=“?F:”1÷R1=“?P:”1÷R2=“?Q:“L0=“?L
第2行:Lbl 0:”K=”?K:”BIAN=”? Z:”α=”?B
第3行:Abs(K-A)→S:(Q-P)÷L→I
第4行:N+∫(cos(F+X(2P+XI)×90÷π),0,S)→N
第5行:E+∫(sin(F+X(2P+XI)×90÷π),0,S)→E
第6行:”F=”:F+S(2P+SI)×90÷π→F►DMS◢(可省掉)
第7行:”X=”:N+Zcos(F+B)◢
第8行:”Y=”:E+Zsin(F+B)◢
第9行:Goto 0
(原图片版中的部分变量做了调整,此处为最新调整,调整后程序集中所有篇变量不再调整,各个程序间变量不冲突,可随时调用任何一个程序使用)。