当前位置:文档之家› 工程测量坐标正反算通用程序(终极篇)

工程测量坐标正反算通用程序(终极篇)

第五篇坐标正反算通用程序(终极篇)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 0K——计算点的里程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+S I)×90÷π→F第5行:F<0=>F+360→F: F>360=>F-360→F4. 数据库(命名为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 05800计算坐标计算程序1 A:R:C“LS”:D“JD(DK)”2 P=C∧2/24/R-C∧4/2688/R∧33 Q=C/2-C∧3/240/R∧24 B=90C/兀/R5 T=(R+P)tan(AbsA/2)+Q◢6 W=(R+P)/cos(A/2)-R◢7 L=((AbsA)-2B)兀R/180+2C◢8 G“ZH”=D-T◢9 H“HY”=G+C◢10 I“QZ”=G+L/2◢11 K“YH”=G+L-C◢12 M“HZ”=G+L◢13 N”X(JD)”:E”Y(JD)”:F”FWJ”: J14 A<0=>S=-1:≠=>S=1⊿ (提示:0为数字“0”)15 U=F+A/2+90S16 V=W+R17 B=N+VcosU18 O=E+VsinU (提示:O为字母“O”)1、A? 输入转角:左转为负,右转为正2、R? 输入圆曲线半径3、LS? 输入缓和曲线长度4、JD(DK)? 输入交点里程桩号5、X(JD)? 输入本交点X坐标6、Y(JD)? 输入本交点Y坐标7、FWJ? 输入待求点切线方位角9、J? 输入0程序计算中桩,输入1程序计算边桩10、Z? 输入里程桩号1. 任意角度坐标反算桩号和斜距主程序(命名为ZBFS2)第1行:”YOUJIAO=”? B:B=0=>90→B第2行:Lbl 1:”X1=”? C:”Y1=”?D: ”K1=”?K 第3行:Lbl 0:Prog “A”第4行:Pol(C-N,D-E):I(cos(J-F)-sin(J-F)tan(90-B))→S:K+S→K第5行:Abs(S)>0.0001=>Goto 0第6行:”K1=”:K◢第7行:”BIAN=”:Isin(J-F+90-B)→Z◢第8行:”α=”:B◢第9行:Goto 1YOUJIAO——斜交角度,取前右夹角X1——取样点的X坐标Y1——取样点的Y坐标K1——输入时为计算起始点(在线路内即可),输出时为反算点的桩号Z——偏距或斜距(左负右正)注:在9860或9960中需将第4行替换为Pol(C-N,D-E): List Ans[1]→I :List Ans[2]→J:I(cos(J-F)-sin(J-F)tan(90-B))→S:K+S→K,反算主程序所有输入赋值多加一赋值符号(→),其他所有除数据库外的程序均保持不变2. 计算坐标子程序(命名为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→F3. 数据库(命名为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)本篇程序基于本人创作的程序集中的第5篇改编,第5篇中反算主程序的第3、6行分别改写为本篇中的第4、7行,原第5篇部分变量符号已做调整。

(2)坐标计算子程序为通用程序,可自编程序随时调用,数据库可更改适合可变项目的测量数据。

(3)适用于任意线形:直线(0→P、0→Q)、圆曲线(圆半径倒数→P、圆半径倒数→Q)、缓和曲线(0或圆半径倒数→P、圆半径倒数或0→Q)、卵形曲线(接起点圆的半径倒数→P、接终点圆的半径倒数→Q),曲线左转多加一负号。

(4)程序规定,左偏曲线曲率输入负值,右偏曲线曲率输入正值,直线上点曲率输入0。

相关主题