通用fx5800测量程序使用说明.docx
《通用fx5800测量程序使用说明.docx》由会员分享,可在线阅读,更多相关《通用fx5800测量程序使用说明.docx(25页珍藏版)》请在冰豆网上搜索。
通用fx5800测量程序使用说明
fx5800测量程序使用说明
一、程序使用流程
本程序数据和主程序是分开的,编程时将不同的工程数据存放到不同的数据文件里,如A匝道,文件名为A,将匝道A所有的曲线线元参数输入A文件里。
运行时只要运行文件名A的程序就可以了,具体运行流程见下图:
二、数据文件的编写
(一)交点法数据文件编辑
交点法编写数据文件必须是对称型的,即直线段→缓和曲线段→圆曲线段→缓和曲线段→直线段,(如果任意一端没有直线段,则把直线段长度看做是0),另外圆曲线两侧缓和曲线的旋转常数必须相等,并且和直线段连接处的半径必须是无穷大。
交点法数据文件编写一般是根据设计图纸提供的平面曲线参数一览表提供的参数来编写,每个弯道包括:
弯道起点方位角(C),交点X坐标(D),交点Y坐标(E),缓和曲线长度(F,当没有设缓和曲线时,F=0),交点转交(G,向左转弯,G为负值,向右转弯,G取正值),交点桩号(H),弯道圆曲线半径(R)。
下图是一段市政道路设计参数数据。
根据上图提供的数据,可以编辑成如下的数据文件:
文件名:
CHLNR
3→DimZ“X0”?
A:
”Y0”?
B:
“Ln”?
L:
Abs(L)-Int(Abs(1000L))/1000→Z[3]:
Lbl0:
IfZ[3]≠0.0001:
Then?
L:
Else“Xp”?
X:
”Yp”?
Y:
X→Z[1]:
Y→Z[2]:
IfEnd:
Lbl1:
IfL>0:
Then98°39°35.12°→C:
4474.384→D:
2415.861→E:
140→F:
31°17°23°→G:
410.007→H:
600→R:
IfEnd:
IfL>1060Then129°56°58.19°→C:
4206.421→D:
3093.946→E:
70→F:
-33°50°48°→G:
1285.437→H:
600→R:
IfEnd:
Prog”XLJS”:
IfZ[3]≠0.0001:
ThenGoto0:
Else(Z[1]-X)cos(O)+(Z[2]-Y)sin(O)→N:
L+N→L:
-(Z[1]-X)sin(O)+(Z[2]-Y)cos(O)→K:
IfAbs(N)≥0.001:
ThenGoto1:
Else“L=“:
L◢
“K=”:
K◢
IfEnd:
Goto0:
IfEnd
在面程式中,有两个条件转移语句即IfL>0:
Then98°39°35.12°→C:
4774.384→D:
2415.861→E:
140→F:
31°17°23°→G:
410.007→H:
600→R:
IfEnd
IfL>1060:
Then129°56°58.19°→C:
4206.421→D:
3093.946→E:
70→F:
-33°50°48°→G:
1285.437→H:
600→R:
IfEnd
……
如果还有其他弯道,可以继续完后加。
在这些存放设计参数的语句前后的程序表达式是固定的。
说明:
编辑曲线参数时,每个曲线参数放在一个IfL>***.***(两个弯道中间直线段上的任意桩号):
Then***°**°**.**°→C(弯道起点方位角):
****.***→D(交点X坐标):
****.****→E(交点Y坐标):
***.***→F(缓和曲线长度:
**°**°**°→G(转角,向左转为负值,向右转为正值):
***.***→H(交点里程桩号):
***→R(圆曲线半径):
IfEnd条件式语句里,如果有多个弯道,一直按上述形式编下去,
变量说明:
1、L>***.***
弯道参数的起点范围,可以是弯道起点,也可以是弯道前直线段里的任意点桩号
2、***°**°**.**°→C弯道起点方位角
3、****.***→D、****.****→E
交点X坐标、Y坐标
4、***.***→F
缓和曲线长度,如果没设置缓和曲线,则缓和曲线长度看做0
5、**°**°**°→G转角,向左转为负值,向右转为正值
6、***.***→H、交点里程桩号
7、***→R圆曲线半径
注意,运行程序时,第一部是输入测站坐标X0,Y0,然后输入近似桩号,主要是为了加快收敛,输入时注意当根据桩号和距中距离计算所求点坐标时,请不要把小数点第四位输入0.0001,如K21+369.0921,请把桩号输入21369.092即可,相反,当根据坐标反算桩号和距中距离时,请在输入时把第四位小数数位0.0001,如K21+200,输入时请输入21200.0001。
(二)线元法数据文件编辑
线元法数据文件编辑适合于各种各样的线型组合,特别是在大型立交区或者是不规则的线型组合地方,如小区道路、重丘区山路等有特别明显的有点,本程序为了减少使用者设计参数的输入,特别把直线与缓和曲线以及圆曲线连接的地方只要输入缓和曲线参数就可以了,这样可以减少输入很多设计参数,同时节约大量的内存。
看下图,
该图是一个半喇叭型的互通立交,一共是5条匝道,我们以D匝道为例,来看看线元法数据文件的建立。
下表是D匝道的线元表:
线元名称
起点桩号
偏向
半径或缓和曲线旋转常数A
线元长度(m)
线元起点坐标、方位角
X(m)
Y(m)
方位角
缓和曲线
DK0+000.00
右偏
55
39.289
494341.902
478027.825
260°38′55.7″
圆曲线
DK0+039.289
右偏
40
39.216
494347.926
477989.873
302°18′26.0″
缓和曲线
DK0+078.504
右偏
65
105.625
494380.677
477971.271
358°28′45.9″
D匝道线元数据分析:
从上表中可以看出,D匝道由三个线元组成,第一段是缓和曲线段,根据上表判断,该缓和曲线属于第一段缓和曲线,其最小半径处桩号为J=K0+039.289,该处坐标X=494347.926,Y=477989.873,半径为R=40米,方位角W=302°18′26.0″,缓和曲线旋转常数P=55,在缓和曲线终点K0+039.289处,有一圆曲线与其相连接,长度I=39.216。
第二段是圆曲线,第三段又是一段缓和曲线,根据上表判断,该曲线属于第二缓和曲线,曲线最小半径位于与园曲线连接处,桩号J=K0+78.504,坐标为X=494380.677,Y=477971.271,方位角W=358°28′45.9″,最小半径R=40,缓和曲线旋转常数P=-65(为了判断是第一段还是第二缓和曲线,我们通过P的正负来判断,第一缓和段P统一用正数表示,第二缓和段统一用负号表示。
起点处相连的圆曲线长度I可以看做0,也可以看做是39.216.由此我们整理下。
从整个线型全部是向右转向,所以R全部取正数。
具体如下:
第一段缓和曲线线元参数:
最小半径处坐标X=494347.926Y=477989.873
最小半径R=40
最小半径处方位角:
W=302°18′26.0″
缓和曲线旋转常数P=55
与之相连的圆曲线长度I=39.216
最小半径处桩号J=39.289
此段数据计算范围可以从K0+000~K0+78.504
第二段缓和曲线线元参数
最小半径处坐标X=494380.677Y=477971.271
最小半径R=40
最小半径处方位角:
W=358°28′45.9″
缓和曲线旋转常数P=65
与之相连的圆曲线长度I=39.216
最小半径处桩号J=W=358°28′45.9″
此段数据计算范围可以从K0+78.504到匝道结束。
当桩号L位于K0+000~K0+78.504时,曲线参数按第一段编写,当L>78.504时,按第二段缓和曲线编写,当然第二段缓和曲线计算范围也可以从圆曲线起点K0+039.289到K0+78.504中间任意桩号开始。
下面是D匝道的数据程序文件(文件名“DZD”):
3→DimZ:
X0”?
A:
”Y0”?
B:
“Ln”?
L:
Abs(L)-Int(Abs(1000L))/1000→Z[3]:
Lbl0:
IfZ[3]≠0.0001:
Then?
L:
Else“Xp”?
X:
”Yp”?
Y:
X→Z[1]:
Y→Z[2]:
IfEnd:
Lbl1:
IfL≥0:
Then494347.926→X:
477989.873→Y:
40→R:
302°18°26°→W:
55→P:
39.216→I:
39.289→J:
IfEnd:
IfL≥78.504:
Then494380.677→X:
477971.271→Y:
40→R:
358°28°45.9°→W:
-65→P:
39.216→I:
78.504→J:
IfEnd:
Prog”FDCH”:
Prog”XLJS”:
IfZ[3]≠0.0001:
ThenGoto0:
Else(Z[1]-X)cos(O)+(Z[2]-Y)sin(O)→N:
L+N→L:
-(Z[1]-X)sin(O)+(Z[2]-Y)cos(O)→K:
IfAbs(N)≥0.001:
ThenGoto1:
Else“L=“:
L◢
“K=”:
K◢
IfEnd:
Goto0:
IfEnd
在上面程式中,每个缓和曲线的线元参数放在一个If…Then……IfEnd循环语句中,If后面紧跟计算的起点范围,终点范围从下段的起点范围结束。
变量定义:
1、X、Y输入缓和曲线半径最小处的X、Y坐标
2、R缓和曲线最小半径,当线路左转时,半径数据前面加“-”号,以判断线路转向。
3、W输入缓和曲线半径最小处的方位角
4、P缓和曲线旋转常数,第一缓和曲线长度为正数,第二缓和曲线常数为负数。
当不设缓和曲线时,P=0
5、I与缓和曲线最小半径端连接的圆曲线长度。
6、J缓和曲线小半径段的桩号。
再看看E匝道数据文件编辑
E匝道线元设计数据表
线元名称
起点桩号
偏向
半径或缓和曲线旋转常数A
线元长度(m)
线元起点坐标、方位角
X(m)
Y(m)
方位角
直线
EK0+000.00
71.296
494360.619
477706.293
79°49′57.0″
缓和曲线
EK0+071.296
右偏
120
72
494373.205
477776.470
79°49′57.0″
圆曲线
EK0+143.296
右偏
200
60.070
494381.631
477847.870
90°08′44.6″
缓和曲线
EK0+203.366
右偏
95
45.125
494372.527
477907.018
107°21′16.3″
缓和曲线
EK0+248.491
左偏
75
64.841
494355.878
477948.932
113°49′05.6″
圆曲线
EK0+313.333
左偏
86.75
17.800
494337.373
478010.658
92°24′19.0″
在E匝道线元表中,我们可以看出,E匝道式由一段直线段→缓和曲线段→圆曲线段→缓和曲线段→缓和曲线段→圆曲线段连接起来的。
值得注意的是,在位于K0+248.491处,是两段反向的缓和曲线连接点,在编写数据程序文件时,分三段编写,第一段从K0+000到K0+203.366,第二段从K0+203.366到K0+248.919,第三段从K0+248.919到线路终点K0+331.13。
具体文件如下:
(文件名“EZD”)
3→DimZ:
X0”?
A:
”Y0”?
B:
“Ln”?
L:
Abs(L)-Int(Abs(1000L))/1000→Z[3]:
Lbl0:
IfZ[3]≠0.0001:
Then?
L:
Else“Xp”?
X:
”Yp”?
Y:
X→Z[1]:
Y→Z[2]:
IfEnd:
Lbl1:
IfL≥0:
Then494381.6316→X:
477847.870→Y:
200→R:
90°08°44.6°→W:
120→P:
60.07→I:
143.296→J:
IfEnd:
IfL≥203.366:
Then494372.527→X:
477948.932→Y:
200→R:
107°21°16.3°→W:
-95→P:
60.07→I:
203.366→J:
IfEnd:
IfL≥248.491:
Then494337.373→X:
478010.658→Y:
86.75→R:
92°24°19°→W:
75→P:
17.8→I:
313.333→J:
IfEnd:
Prog”FDCH”:
Prog“XLJS”:
IfZ[3]≠0.0001:
ThenGoto0:
Else(Z[1]-X)cos(O)+(Z[2]¬-Y)sin(O)→N:
L+N→L:
Int(1000L)÷1000+0.0001→L:
-(Z[1]-X)sin(O)+(Z[2]-Y)cos(O)→K:
IfAbs(N)≥0.001:
ThenGoto1:
Else“L=“:
L◢
“K=”:
K◢
IfEnd:
Goto0:
IfEnd
为了让使用者熟悉掌握数据程序文件的编写线元法的数据程序文件,现在将C、F、G等匝道的线元数据列出来,供使用者练习。
C匝道数据
线元名称
起点桩号
偏向
半径或缓和曲线旋转常数A
线元长度(m)
线元起点坐标、方位角
X(m)
Y(m)
方位角
圆曲线
CK0+000.00
右偏
32
56.876
495005.991
478056.677
56°19′42.3″
直线
CK0+056.876
21.277
494991.262
478104.123
158°09′54.4″
缓和曲线
CK0+078.153
右偏
65
30.179
494971.511
478112.036
158°09′54.4″
圆曲线
CK0+108.332
右偏
140
30.431
494943.127
478122.242
164°20′25.7″
缓和曲线
CK0+138.763
右偏
65
30.179
494913.167
478127.219
176°47′40.6″
直线
CK0+168.941
右偏
85
422.023
494883.008
478126.740
182.°58′11.8″
缓和曲线
CK0+590.964
右偏
85
85
494461.552
478104.874
182.°58′11.8″
圆曲线
CK0+675.964
右偏
85
72.739
494379.485
478086.681
211°37′04.2″
线元名称
起点桩号
偏向
半径或缓和曲线旋转常数A
线元长度(m)
线元起点坐标、方位角
X(m)
Y(m)
方位角
直线
FK0+000.00
111.525
494591.311
478420.033
252°32′00.2″
缓和曲线
FK0+111.505
右偏
100
90.909
494557.835
478313.650
252°32′00.2″
圆曲线
FK0+202.434
右偏
110
101.114
494542.812
478224.689
276°12′33.6″
缓和曲线
FK0+303.548
右偏
120
130.909
494595.310
478142.420
328°52′35.7″
F匝道数据
G匝道数据
线元名称
起点桩号
偏向
半径或缓和曲线旋转常数A
线元长度(m)
线元起点坐标、方位角
X(m)
Y(m)
方位角
缓和曲线
GK0+000.000
右偏
175
133.152
494718.802
478112.963
182°58′11.8″
圆曲线
GK0+133.152
右偏
230
149.124
494587.600
478093.368
199°33′17.5″
缓和曲线
GK0+282.286
右偏
190
149.72
494472.335
478002.890
236°42′21.1″
三、道路计算程序
道路计算程序是核心程序,但是道路计算程序是固定的,使用者不需要做任何修改,也不直接运行道路计算程序分为两部分,第一部分是常规的对成型线型组合计算的程序(文件名:
XLJS),利用交点法编辑的数据文件可以直接调用;第二部分是适用于非对称的线型组合计算文件(文件名:
FDCH),在数据文件调用完“FDCH”文件后,还要调用“XLJS”文件。
线路计算程序(XLJS)
Deg:
Fix4:
G÷Abs(G)→V:
F2÷(24R)-F^(4)÷(2688R^(3))+F^(6)÷(506880R^(5))-F^(8)÷(154828800R^(7))→P:
F÷2-F^(3)÷(240R2)+F^(5)÷(34560R^(4))-F^(7)÷(8386560R^(6))+F^(9)÷(3158507520R^(8))→Q:
Q+(R+P)Vtan(G÷2)→T:
πRGV÷180+F→I:
IFL≤H-T:
ThenL-H→J:
Goto1:
IfEnd:
IfLThenL-H+T→J:
C→Z:
1→S:
Goto2:
IfEnd:
IfL≤H-T+I-F:
ThenL-H+T→J:
C→Z:
1→S:
Goto3:
IfEnd:
IfLThenH-T+I-L→J:
C+G→C:
-1→S:
Goto2:
IfL≥H-T+I:
ThenL-H-I+2T→J:
C+G→C:
Goto1:
IfEnd:
Lbl1:
D+JcosC→X:
E+JsinC→Y:
C→O:
GotoC:
Lbl2:
(J-J^(5)÷40(RF)2+J^(9)÷(3456(RF)^(4))-J^(13)÷(599040(RF)^(6))+J^(17)÷(175472640(RF)^(8))-T)S→M:
(J^(3)÷(6RF)-J^(7)÷(336(RF)^(3))+J^(11)÷(42240(RF)^(5))-J^(15)÷(9676800(RF)^(7))+J^(19)÷(3530097000(RF)^(9)))V→N:
C+90J2SV÷πRF→O:
GotoB
Lbl3:
180(J-0.5F)÷πR→O:
Q+Rsin(O)-T→M:
(P+R(1-cos(O)))V→N:
C+VO→O:
GotoB
LblB:
D+Mcos(C)-Nsin(C)→X:
E+Msin(C)+Ncos(C)→Y:
GotoC:
LblC:
IfZ[3]≠0.0001:
Then?
K:
"M"?
U:
K<0=>180-U→U:
O+U×Abs(K)÷(K+10^(-10))→Z:
X+Abs(K)×cos(Z)→X◢
Y+Abs(K)×sin(Z)→Y◢
tan-1((Y-B)÷(X-A+10^(-10))→W
X-A<0=>W+180→W:
W<0=>W+360→W:
√((X-A)2+(Y-B)2)→S
"DIS":
S◢
"FW":
W>DMS◢
IfEnd
非对称线型组合计算程序(FDCH)
Abs(P+10^(-10))÷(P+10^(-10))→S:
Abs(R)÷R→V:
Abs(R)→R:
P2÷R→F:
180(I+F)V÷(πR)→G:
90FSV÷(πR)→O:
IfS=1:
ThenW-O→C:
ElseIfS=-1:
ThenW-O-G→C:
IfEnd:
IfEnd:
IfC<0:
ThenC=C+360→C:
IfEndIfC>360:
ThenC-360→C:
IfEnd:
F2÷(24R)-F^(4)÷(2688R^(3))+F^(6)÷(506880R^(5))-F^(8)÷(154828800R^(7))→P:
F÷2-F^(3)÷(240R2)+F^5÷(34560R^(4))-F^(7)÷(8386560R^6)+F^9÷(3158507520R^(8))→Q:
Q+(R+P)Vtan(G÷2)→T:
IfS=1:
ThenJ-F+T→H:
C→Z:
IfS=-1:
ThenJ-I-F+T→H:
C+G→Z:
IfEnd:
IfEnd:
(F-F^(3)÷(40R2)+F^(5)÷(3456R^(4))-F^(7)÷(599040R^(6))+F^(9)÷(175472640R^(8))-T)S→M:
(F2÷(6R)-F^(4)÷(336R^(3))+F^(6)÷(42240R^(5))-F^(8)÷(9676800R^(7))+F^(10)÷(3530097000R^(9)))V→N:
X-Mcos(Z)+Nsin(Z)→D:
Y-Msin(Z)-Ncos(Z)→E
四、程序执行
程序运行分为两种,第一种是根据根据使用者输入的桩号和距中距离计算出所求点的坐标和测站点到该点的方位角和水平距离,可以直接利用计算器提供的距离和方位角进行极坐标放样。
另一种是根据使用者输入的实测坐标计算出该点的桩号和距中距离,可以根据桩号和距中距离进行高边坡、隧道断面点的设计高程、以及进行路面高程控制计算方面很方便。
(一)、根据桩号和距中距离计算所求点的坐标、及方位角和水平距离。
要进行程序的线路计算,直接运行数程序文件就可以了,不需要理会计算程序。
如果计算某桩号L距离中线K处的坐标X,Y和该点到测站点的距离和方位角,运行提示如下:
X0?
提示输入测站点X坐标
Y0?
提示输入测站点Y坐标
(测站点的位数和数据程序文件里坐标取位要一致)
Ln?
计算点近似桩号
近似桩号输入第四位小数后不能等于0.0001,
L?
输入计算点准确桩号
近似桩号输入第四位小数后不能等于0.0001,
K?
提示输入距离中桩的桩号
如果计算点位于线路的左幅,则在数据前加入“-”号,如果是计算中桩坐标,则输入0
M?
输入该点与线路的前进方向的按顺时针转过的角度,常于斜交的涵洞,桥梁等构造物。
X显示所求点的X坐标
Y显示所求点的Y坐标
FW显示所求点至测站点的方位角
DIS显示所求点至测站点的距离
要继续计算则从L?
开始,计算新点的坐标。
具体流程见程序流程图的左边部分。
例:
要计算D匝道的DK0+020中桩坐标、DK0+080左边5.3米的坐标、Dk0+240斜交75°58′11.8″、距中右侧5米处的坐标,并计算出该点至坐标为X=495005.991,Y=478056.677控制点的水平距离和方位角,运行文件“DZD”提示如下:
X0?
495005.991测站X坐标
Y0?
478056.677测站Y坐标
Ln?
0输入小输点第四位起不等于0.0001的桩号
L?
20输入所求点桩号
K?
0输入距中距离
M?
90输入斜交角度
X=494341.482显示所求点X坐标
Y=478007.903显示所求点Y坐标
DIS666.2959显示所求点至测站平距
FW184°11′52.42″显示所求点至测站方位角
L?
80输入下点的桩号
K?
-5.3
M?
90
X=494382.2290
Y=477965.9594
DIS630.324
FW188°16′29.5″
L?
24