卡西欧FX5800计算器公路测量全线中边桩正反算交点法程序修改版
1.主程序:一般坐标计算及放样程序-----交点法
程序名:1-JD
Lal 0:10→DimZ:Norm 2:1→A: "A: XY=1,KMD=2"? A:A=1=>Goto 1:A=2=>Goto 2: (选择正算还是反算)Lal 1:Lal A:Prog"QX": 90→B "PJ"?B:B→Z[1]: (默认与道路切线方向90度)Lal B:"KM"?Z:Z=-1=>Stop:Z=-2=>Break: Prog"K":?D:(输入正算计算里程,输入-1则停止,输 入- 2转反算),偏距默认中桩0,左为-,右为+,)
程序名:1-JD
Lal 0:10→DimZ:Norm 2:1→A: "A: XY=1,KMD=2"? A:A=1=>Goto 1:A=2=>Goto 2: (选择正算还是反算)Lal 1:Lal A:Prog"QX": 90→B "PJ"?B:B→Z[1]: (默认与道路切线方向90度)Lal B:"KM"?Z:Z=-1=>Stop:Z=-2=>Break: Prog"K":?D:(输入正算计算里程,输入-1则停止,输 入- 2转反算),偏距默认中桩0,左为-,右为+,)
Porg"Z":I+Dcos(Z[2]+Z[1]→X:J+Dsin(Z[2]+Z[1]→Y:Fix 3: "X=":Locate 6,4,X: "Y=":Locate 6,4,Y: "FWJ"=:Locate 6,4,Z[2]◢(显示坐标,切线方位角)
Prog “S-Z”: Prog “3-GC”: “H=”:H◢(高程计算并显示,如不需要高程此部分可以省略)
Prog"5-SD":"-CW +QW=":M◢ (隧道超欠挖,如不需要此部分可以省略)
Prog"5-SD":"-CW +QW=":M◢ (隧道超欠挖,如不需要此部分可以省略)
LpWhile Z≠-1(Goto B此处也可以用这个命令)
Lal 2 Prog"QX": (选线,默认(线路1) X1=1,(线路2) .)
Lal 2 Prog"QX": (选线,默认(线路1) X1=1,(线路2) .)
Lal C:Do:"KM"?Z:Z=-1=>Stop:Z=-2=>Break: (反算时输入大概桩号,输入-1则停止,输入-2正算)Prog"K": "X0"?X: "Y0"?Y: Porg"B"Fix 3: "KM":Lcoate 6,4,Z: "D=":Locate 6,4,D◢
Prog “S-Z”: Prog “3-GC”: “H=”:H◢
Prog"5-SD":"-CW +QW=":M◢
Prog"5-SD":"-CW +QW=":M◢
LpWhile Z≠-1(Goto C此处也可以用这个命令)
2.线路中线元段判别子程序(K)
程序名:K
If Z[3]=0:Then Return: IfEnd:If Z[3]=1:Then Prog “X1”:Return:IfEnd:If Z[3]=2:Then Prog “X2”:Return:IfEnd:If Z[3]=n:Then Prog “Xn”:(后面可以增加N条线路!!但需要在QX程序里面 "QX:?=0,X1=1,X2=2,Xn=n"做更改)。
程序名:K
If Z[3]=0:Then Return: IfEnd:If Z[3]=1:Then Prog “X1”:Return:IfEnd:If Z[3]=2:Then Prog “X2”:Return:IfEnd:If Z[3]=n:Then Prog “Xn”:(后面可以增加N条线路!!但需要在QX程序里面 "QX:?=0,X1=1,X2=2,Xn=n"做更改)。
3.线路选择子程序(线路选择输0时。则输曲线参数(QX)
程序名:QX
程序名:QX
1→A: "QX:?=0,X1=1,X2=2"?A:A→Z[3]:
If A=0:Then ”JDKM”?O:”XJ”?U:”YJ”?V:”FWJ”?G:”ZJ”?P
:”LS1”?H:”LS2”?N:?R:IFEnd
If A=0:Then ”JDKM”?O:”XJ”?U:”YJ”?V:”FWJ”?G:”ZJ”?P
:”LS1”?H:”LS2”?N:?R:IFEnd
4.交点法正算子程序(Z)
程序名:Z
H2÷R÷24-H∧(4)÷2688÷R∧(3)+H ∧(6)÷506880÷R∧(5)- H ∧(8)÷154828800÷R∧(7)→A:
H÷2-H∧(3)÷240÷R2+H∧(5)÷34560÷R∧(4)-H∧(7)÷8386560÷R∧(6)+H ∧(9)÷3158507520÷R∧(8)→B:
(H2-N2)÷24÷R÷sin(Abs(P))-(H∧(4)-N∧(4))÷2688÷R∧(3)÷sin(Abs(P→E:
(R+A)tan(Abs(P)÷2)+B-E→T:
P÷Abs(P→W:H→C:0→M: (R+N2÷R÷24-N∧(4)÷2688÷R∧(3)÷tan(Abs(P)÷2))+N÷2-N∧(3) ÷240÷R2+E→Z[6]:O-T+ΠR×Abs(P)÷180+H÷2-N÷2→Z[7]:
If Z≤O-T:Then Z-O→S:G→Z[2]:Goto 1: IfEnd:
If Z≤O-T+H:Then Z-O+T→S:Prog “HX”:G+WK→Z[2]:A-T→A:G→E:Goto 2:IfEnd:
If Z≤Z[7]: Then 180(Z-O+T-0.5H)÷R÷Π→S :A+R(1-Cos(S→B:H÷2 -H ∧(3) ÷R2÷240+Rsin
程序名:Z
H2÷R÷24-H∧(4)÷2688÷R∧(3)+H ∧(6)÷506880÷R∧(5)- H ∧(8)÷154828800÷R∧(7)→A:
H÷2-H∧(3)÷240÷R2+H∧(5)÷34560÷R∧(4)-H∧(7)÷8386560÷R∧(6)+H ∧(9)÷3158507520÷R∧(8)→B:
(H2-N2)÷24÷R÷sin(Abs(P))-(H∧(4)-N∧(4))÷2688÷R∧(3)÷sin(Abs(P→E:
(R+A)tan(Abs(P)÷2)+B-E→T:
P÷Abs(P→W:H→C:0→M: (R+N2÷R÷24-N∧(4)÷2688÷R∧(3)÷tan(Abs(P)÷2))+N÷2-N∧(3) ÷240÷R2+E→Z[6]:O-T+ΠR×Abs(P)÷180+H÷2-N÷2→Z[7]:
If Z≤O-T:Then Z-O→S:G→Z[2]:Goto 1: IfEnd:
If Z≤O-T+H:Then Z-O+T→S:Prog “HX”:G+WK→Z[2]:A-T→A:G→E:Goto 2:IfEnd:
If Z≤Z[7]: Then 180(Z-O+T-0.5H)÷R÷Π→S :A+R(1-Cos(S→B:H÷2 -H ∧(3) ÷R2÷240+Rsin
(S→A:R→M:G+WS→Z[2]:A-T→A:G→E:Goto 2: IfEnd:
If Z≤Z[7]+N:Then Z[7]+N-Z→S:Z[6]→T:N→H:Prog “HX”:G+P→E:E-WK→Z[2]:T-A→A:C→H:Goto 2:IfEnd:
Z- Z[7]-N+ Z[6]→S:G+P→Z[2]:
LbI 1:U+Scos(Z[2]→I:V+Ssin(Z[2]→J:Return:
LbI 2:U+Acos(E)-WBsin(E→I:V+Asin(E)+WBcos(E→J
If Z≤Z[7]+N:Then Z[7]+N-Z→S:Z[6]→T:N→H:Prog “HX”:G+P→E:E-WK→Z[2]:T-A→A:C→H:Goto 2:IfEnd:
Z- Z[7]-N+ Z[6]→S:G+P→Z[2]:
LbI 1:U+Scos(Z[2]→I:V+Ssin(Z[2]→J:Return:
LbI 2:U+Acos(E)-WBsin(E→I:V+Asin(E)+WBcos(E→J
5. 交点法反算子程序(B)
程序名:B
0→D:Do:Z+D→Z:Prog”Z”:Pol(X-I,Y-J+×10-9:J-Z[2] →J:Isin(J→S:Icos(J→D:If M≠0:Then Pol(M-WS,D:JMΠ÷180→D:IfEnd: LpWhile Abs(D>.001:Z+D→Z:S→D
程序名:B
0→D:Do:Z+D→Z:Prog”Z”:Pol(X-I,Y-J+×10-9:J-Z[2] →J:Isin(J→S:Icos(J→D:If M≠0:Then Pol(M-WS,D:JMΠ÷180→D:IfEnd: LpWhile Abs(D>.001:Z+D→Z:S→D
6. 计算缓和曲线段坐标增量及偏角子程序(HX)
程序名:HX
S-S∧(5)÷40÷R2÷H2+S∧(9)÷3456÷R∧(4)÷H∧(4)-S∧(13)÷599040÷R∧(6)÷H∧(6)+S∧(17)÷1
程序名:HX
S-S∧(5)÷40÷R2÷H2+S∧(9)÷3456÷R∧(4)÷H∧(4)-S∧(13)÷599040÷R∧(6)÷H∧(6)+S∧(17)÷1
75472640÷R∧(8)÷H∧(8)→A:
S∧(3)÷6÷R÷H-S∧(7)÷336÷R∧(3)÷H∧(3)+S∧(11)÷42240÷R∧(5)÷H∧(5)-S∧(15)÷9676800÷R∧(7)÷H∧(7)+S∧(19)÷3530097000÷R∧(9)÷H∧(9)→B:
90S2÷Π÷R÷H→K:If S=0:Then 0→M:Else RH÷S→M:IfEnd
7.坐标参数矩阵调用程序(F)
程序名:F
Mat F[1,1]→O: Mat F[1,2]→U: Mat F[1,3]→V: Mat F[1,4]→G:
S∧(3)÷6÷R÷H-S∧(7)÷336÷R∧(3)÷H∧(3)+S∧(11)÷42240÷R∧(5)÷H∧(5)-S∧(15)÷9676800÷R∧(7)÷H∧(7)+S∧(19)÷3530097000÷R∧(9)÷H∧(9)→B:
90S2÷Π÷R÷H→K:If S=0:Then 0→M:Else RH÷S→M:IfEnd
7.坐标参数矩阵调用程序(F)
程序名:F
Mat F[1,1]→O: Mat F[1,2]→U: Mat F[1,3]→V: Mat F[1,4]→G:
Mat F[1,5]→H: Mat F[1,6]→H: Mat F[1,7]→P: Mat F[1,8]→R:
8.线路1坐标计算要素程序
程序名:X1(线路1坐标计算要素程序)
If Z≤241.086:Then [[336.478,2600441.639,514392.519, 280。20’28.78”, 106.667,81.667,203。08’28.32”,60]]→Mat F:Prog”F”: Return:IfEnd
线路1坐标计算要素程序
9.程序名:X2(线路2坐标计算要素程序)
程序名:X1(线路1坐标计算要素程序)
If Z≤241.086:Then [[336.478,2600441.639,514392.519, 280。20’28.78”, 106.667,81.667,203。08’28.32”,60]]→Mat F:Prog”F”: Return:IfEnd
线路1坐标计算要素程序
9.程序名:X2(线路2坐标计算要素程序)
If Z≤273.006:Then [[171.674,2600784.547,514635.863,58。49’17.2”, 93.889,125,68。09’,26.91”,180]]→Mat F:Prog”F”: Return: IfEnd
说明:1、交点法:If Z≤计算交点段终点桩号:Then[[交点桩号,交点X坐标,交点Y坐标,起点至交点方位角,交点前段缓和曲线长度,交点后段缓和曲线长度,交点转角,圆半径]] →Mat F: Prog”F”: Return: IfEnd
(转角则为交点段终点方位角减起点方位角,分正负,左偏为负,右偏为正)如整条线无曲线,全为直线段,则交点为终点桩号,XY为终点坐标,方位角为起点方位角,转角和圆半径为1,其它全为0。
(转角则为交点段终点方位角减起点方位角,分正负,左偏为负,右偏为正)如整条线无曲线,全为直线段,则交点为终点桩号,XY为终点坐标,方位角为起点方位角,转角和圆半径为1,其它全为0。
10.程序名:S-Z
Z→S:D→Z(转换Z和S,D和Z进行高程计算,超欠挖计算)
Z→S:D→Z(转换Z和S,D和Z进行高程计算,超欠挖计算)
使用说明
1、规定
(1) 坐标计算以交点方式计算,一般情况下一个交点计算一段线是:直线+缓和曲线+圆曲
1、规定
(1) 坐标计算以交点方式计算,一般情况下一个交点计算一段线是:直线+缓和曲线+圆曲
线+缓和曲线+直线。在匝道中先根据实际线来调整,可以单独计算一段不完整的缓和曲线+圆曲线。也可以单独计算一段缓和曲线或一段圆曲线。无缓和曲线时,缓和长度输0。
(2) 程序中:×10-9 为10的负9次方即0.000000001; Π为圆周率即3.1415926; √为根号;" X=":
2、输入与显示说明
输入提示部分:
“QX:X1=1,X2=2”?选择经路,坐标计算中输入0值,变为输入线元段曲线要素。输1为第一条线路。输2为第二条线路,本程序暂设计实例为2条线路。
KM?正算时所求点的里程(反算输入大概桩号)输入-1,返回输入选择计算类型,输入-2,返回选择线路。
(2) 程序中:×10-9 为10的负9次方即0.000000001; Π为圆周率即3.1415926; √为根号;" X=":
2、输入与显示说明
输入提示部分:
“QX:X1=1,X2=2”?选择经路,坐标计算中输入0值,变为输入线元段曲线要素。输1为第一条线路。输2为第二条线路,本程序暂设计实例为2条线路。
KM?正算时所求点的里程(反算输入大概桩号)输入-1,返回输入选择计算类型,输入-2,返回选择线路。
D ?正算时所求点距中线的边距(左侧取负值,右侧取正值,在中线上取零)
X0 ?反算时所求点的X坐标(放样程序中实测X坐标)
Y0 ?反算时所求点的Y坐标(放样程序中实测Y正则化相位跟随代码坐标)
X0 ?反算时所求点的X坐标(放样程序中实测X坐标)
Y0 ?反算时所求点的Y坐标(放样程序中实测Y正则化相位跟随代码坐标)
显示部分:
PJ?。夹角为边线至路前进方向夹角,默认值均为90度.
X=*** 正算时,计算得出的所求点的X坐标
Y=*** 正算时,计算得出的所求点的Y坐标
FWJ=*** 正算时,计算得出的所求点的至置仪点方位角
D=*** 正算时,计算得出的所求点的至道路中线距离
KM=*** 反算时,计算得出的所求点的里程
D=*** 反算时,计算得出的所求点的边距
H=*** 所求点位置设计计算面顶标高
-CW +QW= 超欠挖高度
四、结束语
1、本套程序实例线路给二条,如标段像匝道有多条线时,同理增加。
2、为了更好的开发计算器程序。
附后为坐标计算参数子程序X1、X2和高程计算子程序S1、S2数据来源(X1、S1为C线,X2、S2为I线)。
上图为SD1程序中Z[4]=1时隧道断面参数数据的图。
X=*** 正算时,计算得出的所求点的X坐标
Y=*** 正算时,计算得出的所求点的Y坐标
FWJ=*** 正算时,计算得出的所求点的至置仪点方位角
D=*** 正算时,计算得出的所求点的至道路中线距离
KM=*** 反算时,计算得出的所求点的里程
D=*** 反算时,计算得出的所求点的边距
H=*** 所求点位置设计计算面顶标高
-CW +QW= 超欠挖高度
四、结束语
1、本套程序实例线路给二条,如标段像匝道有多条线时,同理增加。
2、为了更好的开发计算器程序。
附后为坐标计算参数子程序X1、X2和高程计算子程序S1、S2数据来源(X1、S1为C线,X2、S2为I线)。
上图为SD1程序中Z[4]=1时隧道断面参数数据的图。
1、附带坐标计算面积小程序 程序名:XY-S
0→Q:Norm 2:1→I:?N:〞X1〞?X:〞Y1〞?Y:X→A:Y→B:X→E:Y→F:Do:“XN〞?X:〞YN〞?Y:Q+(XF-YE)÷2→Q:X→E:Y→F:I+1→I:Lpwhile I≠N:Q+(AF-BE)÷2→S:〞MIAN JI= 〞:Abs(S◢
(运行后N?,输入点数,然后输入第一点坐标,再着输入2点一直输入N点后就出来面积)
2、另附一个导线点数据库程序:
先修改原DX子程序:程序名:DX
Z[5]→K:Z[6]→L:“XZ”?K:If K=0:Then Prog”DX1”:Goto 0:IfEnd:”YZ”?L:LbI 0:K→Z[5]:L→Z[6]
导线点坐标存储程序
程序名:DX1
0→A:Do:”PH:A(1),B(2),C(3),D(4)”?A:If A=11:Then 11468.425→K:2275.035→L:Goto 0:IfEnd: If A=21:Then 11800.525→K:4275.135→L:Goto 0:IfEnd: If A=31:Then 10500.05→K:4575.635→L:Goto 0:IfEnd: If A=41:Then 9500.05→K:3575.635→L:Goto 0:IfEnd:LbI 0:” XZ=”Locate 6,4,K: ” YZ=”Locate 6,4,L:0→B:”OK”?B:LpWhile B≠0
说明:在输导线点坐标时,X输0则调出导线点存储程序,输入编号的数,则出来对应的XY坐标,(编号可按字母用数子排)
0→Q:Norm 2:1→I:?N:〞X1〞?X:〞Y1〞?Y:X→A:Y→B:X→E:Y→F:Do:“XN〞?X:〞YN〞?Y:Q+(XF-YE)÷2→Q:X→E:Y→F:I+1→I:Lpwhile I≠N:Q+(AF-BE)÷2→S:〞MIAN JI= 〞:Abs(S◢
(运行后N?,输入点数,然后输入第一点坐标,再着输入2点一直输入N点后就出来面积)
2、另附一个导线点数据库程序:
先修改原DX子程序:程序名:DX
Z[5]→K:Z[6]→L:“XZ”?K:If K=0:Then Prog”DX1”:Goto 0:IfEnd:”YZ”?L:LbI 0:K→Z[5]:L→Z[6]
导线点坐标存储程序
程序名:DX1
0→A:Do:”PH:A(1),B(2),C(3),D(4)”?A:If A=11:Then 11468.425→K:2275.035→L:Goto 0:IfEnd: If A=21:Then 11800.525→K:4275.135→L:Goto 0:IfEnd: If A=31:Then 10500.05→K:4575.635→L:Goto 0:IfEnd: If A=41:Then 9500.05→K:3575.635→L:Goto 0:IfEnd:LbI 0:” XZ=”Locate 6,4,K: ” YZ=”Locate 6,4,L:0→B:”OK”?B:LpWhile B≠0
说明:在输导线点坐标时,X输0则调出导线点存储程序,输入编号的数,则出来对应的XY坐标,(编号可按字母用数子排)
7. 3-GC高程计算程序
(If Z[3]=1:Then Prog”G1”Ifend:If Z[3]=2:Then Prog”G2”Ifend………(用在1.2程序中把 绿部分换掉.
Clrmat:Clrvar:"KM="?S:1→A: "QX:?=1,GX1=1,GX2=2"?A:A→Z[3]: Prog “XG”
0.5RAbs(0.01(E-D)→T :
If E>D : Then 1→C : Else -1→C: IfEnd
If S<A : Then -0.01D→W : Else 0.01E→W: IfEnd
Abs(A-S)→L
If L>T : Then B+WL→H : Else B+WL+C(T-L)2/2/R→H : IfEnd :Return
8.XG高程线路选择程序
If Z[3]=1:Then Prog “GX1”:Return:IfEnd:If Z[3]=2:Then Prog “GX2”:Return:IfEnd :
9.高程数据库G1…….G2……GN……
If S≤66894.3 :Then -0.052→D: 0→E : 67394.3→A : 67.37→B: 600000→R : Goto 2 : IfEnd↙
If S≤本段竖曲线终点里程 :Then -0.48→前坡D : -0.052→后坡E : 68494.3→竖曲线交点里程
Clrmat:Clrvar:"KM="?S:1→A: "QX:?=1,GX1=1,GX2=2"?A:A→Z[3]: Prog “XG”
0.5RAbs(0.01(E-D)→T :
If E>D : Then 1→C : Else -1→C: IfEnd
If S<A : Then -0.01D→W : Else 0.01E→W: IfEnd
Abs(A-S)→L
If L>T : Then B+WL→H : Else B+WL+C(T-L)2/2/R→H : IfEnd :Return
8.XG高程线路选择程序
If Z[3]=1:Then Prog “GX1”:Return:IfEnd:If Z[3]=2:Then Prog “GX2”:Return:IfEnd :
9.高程数据库G1…….G2……GN……
If S≤66894.3 :Then -0.052→D: 0→E : 67394.3→A : 67.37→B: 600000→R : Goto 2 : IfEnd↙
If S≤本段竖曲线终点里程 :Then -0.48→前坡D : -0.052→后坡E : 68494.3→竖曲线交点里程
A :66.8→交点高程B : 100000→曲率半径R : Goto 2 : IfEnd↙
………
依次类推,计算原始数据完成输入,
105-SD隧道超欠挖
-1→P:?P: IF P=-1:Then Return: IfEnd:IF Z[3]=1:Then :Goto 0:IfEnd: IF Z[3]=2:Then Goto 1:IfEnd:
………
依次类推,计算原始数据完成输入,
105-SD隧道超欠挖
-1→P:?P: IF P=-1:Then Return: IfEnd:IF Z[3]=1:Then :Goto 0:IfEnd: IF Z[3]=2:Then Goto 1:IfEnd:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论