精简5800三维程序
正反算选择程序:ZS-FS
Deg:
“1LZ=>XY,2XY=>LZ”?U: //正反算选择,正算选1,反算选2
If U=1: ThenProg”ZS-XH”:IfEnd: //进入正算循环主程序
IfU=2:Then Prog”FS-XH”:IfEnd: //进入反算循环主程序
正算循环主体程序ZS-XH
“QX=1,QX=2“?U: //选择线路
Lbi0:”L(=0=>stop:)”?L:L=0=>stop: //输入桩号
Porg”ZS-XH-1“:Goto0:IfEnd: //运行正算循环子程序
正算循环子程序ZS-XH-1
U=1=>Prog”HUO-DA-XIAN”: //进入平面线路选择程序对线路线元进行选择
(P-R)/(2HPR)→D:
L-O→O: OD→D:
1/P→C:
U=1=>Prog”X2”
(P-R)/(2HPR)→D:
L-O→O: OD→D:
1/P→C:
U=1=>Prog”GC1”
U=2=>Prog”GC2”
Prog”GC”: //进入高程部分提取中桩高程
:Prog”ZS-XS”: //进入正算显示程序,提取正算三维结果
正算显示ZS-XS
FIX4:“FWJ=”:locate6,4,Int(Q)+0.01Int(60Frac(Q))+0.006Frac(60Frac(Q)): FIX3:
“Xp=”: locate6,4,X //显示中线X坐标
“Yp=”: locate6,4,Y //显示中线Y坐标
“Gp=”: locate6,4, I ◢ //显示中桩高程
90-àW:”ANGLE”?W:”BIANZHU”?Z
:X+Zcos(Q+W) →G: //计算出边桩X坐标
Y+ZSin(Q+W) →M: //计算出边桩Y坐标
I-0.015ZàO 0.015为设计横坡
“B-X”: locate6,4,G //显示边桩X坐标
“B-Y”: locate6,4, M //显示边桩Y坐标
“B-GC”: locate6,4,O◢ //显示边桩高程
反算循环主体程序FS-XH
0→Z:“1àU: “QX=1,QX=2“?U: //选择线路 1~N
Lbi0:
“L”?L:“Xc=”?T:“Yc=”?S: //输入起算假定桩号,实测X Y
Prog”GL-FS”: /进入公路反算程序
Prog”FS-XS”: //进入反算显示程序
Goto0:
反算显示FS-XS
“L”: locate6,4,L //显示计算里程
“Z”: locate6,4,J //显示计算边距
中桩高程计算程序GC
If I-A<0:Then1→H:IfEnd: //开口向上部分赋值
IfI-A=0:ThenGoto1: IfEnd: //无竖曲线部分赋值
IfI-A>0:Then-1→H:IfEnd: //开口向下时赋值
(L-C)I+K+(L-C)^2/(2E)H→I: //计算得出竖曲线部分中桩高程
Goto2:Lbi1:
K+(L-C)I→I: //计算得出无竖曲线部分中桩高程
Lbi2:
一号线路高程GC1;
If L≤96563.333;该段止点里程:Then(前坡 例0。01)-.0033→I:(后坡 例-0。034).0013→A:(竖曲线半径)10000→E:((起点高程)63..377→K:(起点桩号)96516.667→C:止点桩号96563.333→D:Return:Ifend
If L≤96579.931;该段止点里程:Then(前坡 例0。01).0013→I:(后坡 例-0。034).0013→A:(竖曲线半径)63..33→K:(起点桩号)96563.333→C:止点桩号96579.931→D:Return:Ifend
If L≤96620.069;该段止点里程:Then(前坡 例0。01).0013→I:(后坡 例-0。034)-.0009→A:(竖曲线半径)18000→E:((起点高程)63..352→K:(起点桩号)96579.931→C:止点桩号96620.069→D:Return:Ifend
直线段不需要输入半径,直线段的前后坡度I等于A,输入本坡值
公路反算程序GL-FS
Do:U=1=>Porg”HUO-DA-XIAN”:
U=2=>Porg”X2”
(P-R)/(2HPR)→D:
L-O→O: OD→D:
1/P→C:
Porg”GL-ZS”: //进入公路正算4节点程序
T-X→I:S-Y→J: //试算点与测点X,Y距离差
Pol(I,J):J-Q→J: //方位角转换为接近试算点到测点的值:
Rec(I,J): //计算出X差和Y差(X里程,J边)
L+I→L: //修改后的里程
Abs(I) →I: //修改值的绝对值
LpWhile I>0.001: //小于一毫米通过,大于一毫米循环计算
坐标正算程序GL-ZS
.1739274226→I:.3260725774→J:
.0694318442→K:.3300094782→E : //四节点法计算系数录入
1-E→F:1-K→M:
Q+KrO(C+KD) →K: //数据库要用X、Y、Q作为起点坐标方位角
Q+ErO(C+ED) →E: //r是弧度,输入方法FUNCTION 选5
Q+FrO(C+FD) →F:
Q+MrO(C+MD) →M:
X+O(ICos(K)+JCos(E)+JCos(F)+ICos(M)) →X: //计算出X坐标
Y+O(ISin(K)+JSin(E)+JSin(F)+ISin(M)) →Y: //计算出Y坐标
Q+Or(C+D) →Q: //计算出算点方位角,O是字母,r是弧度:
(数据库)活大线HUO-DA-XIAN
线路起点里程→A:线路终点里程→B:
If L≤96560.28第一线元止点里程:Then 起点X坐标3078.7→X:起点Y坐标4410.649→Y:
起点半径(左-,右+)-10^45→P:止点半径(左-,右+)-151.5→R:本线元长度50→H:
线元起点桩号96510.28→O:起点方位角309d46’9.09”m→Q:Return:IfEnd:
If L≤96580.2第一线元止点里程:Then 起点X坐标3108.487→X:起点Y坐标4370.567→Y:
起点半径(左-,右+)-151.5→P:止点半径(左-,右+)-151.5→R:本线元长度69.92→H:
线元起点桩号96560.28→O:起点方位角300d18’54.36”m→Q:Return:IfEnd:
If L≤96630.2第一线元止点里程:Then 起点X坐标3117.384→X:起点Y坐标4352.76→Y:
起点半径(左-,右+)-151.1→P:止点半径(左-,右+)-10^45→R:本线元长度50→H:
线元起点桩号96580.2→O:起点方位角292d46’53.61”m→Q:Return:IfEnd:
If L≤第二线元止点里程:。。。 。。。Return:
平曲线:JDX;3117.5478,JDY;4363.971,交点桩号:96571.01,偏角-26d26’24.02”,r=151.5,LH=50,T=60.728,L=119.912
上一交点:DX;3044.3539,JDY;4451.9174,交点桩号:96457.43,偏角-20d11’48.53”,r=206,LH=35,T=54.228,L=107.615
纵曲线;R=10000,T=23.333,E=0.027,I=-.0033,A=.0013.KJD=96540
下一纵曲线;;R=18000,T=20.069,E=0.011,I=.0013,A=-.0009.KJD=96600