卡西欧5800计算器程序坐标正反算含高程Word文件下载.docx
《卡西欧5800计算器程序坐标正反算含高程Word文件下载.docx》由会员分享,可在线阅读,更多相关《卡西欧5800计算器程序坐标正反算含高程Word文件下载.docx(7页珍藏版)》请在冰点文库上搜索。
I→Z[C+32]
平曲线要素数库类型选择1为内置式,2文件式,3实时输入(查看当前要素值)0→IZ[C+4]→I:
123"
I→Z[C+4]
选择本程序模式默认为坐标正算,1坐标反算,2横向边仰坡放样,3,纵向边仰坡放样(隧道进出口用到)
Lbi1Z[C+4]→II=1=>
Prog"
TURNZH"
I=2=>
HXBYP"
I=3=>
ZXBYP"
LbiADeg:
ClsZ[C+1]→G:
ZH"
G:
G→Z[C+1] ;
G桩求桩号Z[C+2]→B:
JL"
B:
B→Z[C+2] ;
B横向距离,左正右负LbiBProg"
ZBJS"
坐标正算Prog"
GCJS"
高程计算Fix3:
Cls ;
设置三位小数"
ZH="
:
Locate4,1,G ;
第一行显示桩号"
X="
Locate3,2,X
第二行显示X(N)坐标"
Y="
Locate3,3,Y ;
第三行显示Y(E)坐标Prog"
高程计算"
Z"
Locate2,4,Z+Z[C+41]
;
第四行显示Z坐标Locate10,4,Z[C+2];
第四行显示横向距离0→IDo:
I+1→I:
I=1000=>
Goto1:
LpWhileNot(Getkey=57OrGetkey=27);
锁定键盘,并在几十秒后自动返回Getkey=57=>
Goto1Z+Z[C+41]+Z[C+49]-Z[C+44]-Z[C+45]→Z[C+48]Pol(Z[C+35]-X,Z[C+36]-Y)Cls:
DL"
Locate3,1,I:
Locate12,1,Z[C+45]"
DH"
Locate3,2,Z[C+48]:
Locate12,2,Z[C+49]"
FWJ"
J<
0=J+360→J:
J◤DMS◢J→Z[C+46]I→Z[C+47]Goto1
FileName:
ZBJS
坐标计算程序Prog"
READDAT"
RadG-M→QIFAR=0:
ThenIfA=R:
Then1→J:
Else3→J:
IfEnd:
ElseIfA=R:
Then2→J:
Else3→J:
IfEndIfJ=1:
ThenH→F:
N+QCos(H)→X:
E+QSin(H)→Y:
IfEnd
直线段直接计算IfJ=2:
ThenH+QR→F:
Rec(Abs(2Sin(Abs)÷
R),H+QR÷
2):
N+I→X:
E+J→Y:
圆弧段直接计算IfJ=3:
ThenGoto5:
IfEndX+BCos(F+W)→XY+BSin(F+W)→YDeg:
ReturnLbi5
用五点通用坐标计算计算缓和段(R-A)÷
L→KAQ→IKQ2→J→P:
H+IP+JP2→U→P:
H+IP+JP2→V→P
:
H+IP+JP2→D→P:
H+IP+JP2→F→P:
H+IP+JP2→T→I→J→ON+Q(ICos(U)+JCos(V)+OCos(D)+JCos(F)+ICos(T))→XE+Q(ISin(U)+JSin(V)+OSin(D)+JSin(F)+ISin(T))→YH+AQ+KQ2→FX+BCos(F+W)→XY+BSin(F+W)→YDeg:
Return
TURNZH(坐标反算)Norm1Z[C+37]→I:
DQD-N"
I→Z[C+37]
输入待求点N坐标I=-1=>
INFWJDLDH"
Z[C+38]→I:
DQD-E"
I→Z[C+38]
输入待求点E坐标0→B:
M+L÷
2→G:
LbiS:
RadZ[C+37]-X→I:
Z[C+38]-Y→JIfI=0AndJ=0:
ThenGotoA:
IfEndPol(I,J)LbiA:
Rec(I,J-F):
J→Z[C+2]G+I→G:
IFAbs(I)>
ThenProg"
GotoS↙
G→Z[C+1]
INFWJDLDH 实测坐标(用方位角,距离,高差)输入程序Deg:
ClsZ[C+46]→J:
DQD-FWJ"
J:
J→Z[C+46]Z[C+47]→I:
DQD-DL"
I→Z[C+47]Z[C+48]→K:
DQD-DZ"
K:
K→Z[C+48]Z[C+49]→P:
RHT"
P:
P→Z[C+49]Rec(I,J)Z[C+35]+I→Z[C+37]Z[C+36]+J→Z[C+38]Z[C+44]+Z[C+45]+K-P→Z[C+43]FileName:
HXBYP
横向边仰坡放样程序Cls:
Norm1Z[C+40]→I:
QPD-DL"
I→Z[C+40]
输入起坡点与中桩距离常数Z[C+41]→I:
QPD-DZ"
输入起坡点与中桩高差常数Z[C+42]→I:
i"
I→Z[C+42]
输入边仰坡坡度,左仰坡(路堑)为正,右仰坡(路堑)为负,左边坡为负,右边坡为正Cls:
Z[C+43]→I:
DQD-Z"
I→Z[C+43]
输入实测高程Prog"
Prog"
(Z[C+43]-Z-Z[C+41])Z[C+42]+Z[C+40]→BFix3:
B-Z[C+2]◢显示与上一次测点的偏差B→Z[C+2]
ZXBYP
纵向仰坡放样程序(隧道进口使用)Cls:
Z[C+33]→I:
QPD-ZH"
I→Z[C+33]
输入起坡点桩号Z[C+34]→I:
QPD-Z"
I→Z[C+34]
输入起坡点高程Z[C+42]→I:
仰坡时(隧道进出口仰坡),进口为正,出口为负)Cls:
Z[C+42](Z[C+43]-Z[C+34])+Z[C+33]→GFix3:
G-Z[C+1]◢显示与上一次测点的偏差G→Z[C+1]
SET设置程序LbiSNorm150→C50→Z[C+22]0→KZ[C+5]→I:
1Or2"
I→Z[C+5]
选择1线或者2线180Z[C+3]÷
π→J:
XZJJ"
Jπ÷
180→Z[C+3] ;
斜桩夹角IfI=1:
ThenZ[C+8]→Z[C+6]:
Z[C+9]→Z[C+7]Z[C+12]→Z[C+16]:
Z[C+13]→Z[C+17]:
Z[C+18]→Z[C+20]ElseZ[C+10]→Z[C+6]:
Z[C+11]→Z[C+7]Z[C+14]→Z[C+16]:
Z[C+15]→Z[C+17]:
Z[C+19]→Z[C+20]IfEnd
Z[C+7]+3→Z[C+31]0→I:
1PQX,2SQX,3YSDS"
I
1输入平曲线要素,2输入竖曲线要素,3输入1、2线夹平竖曲线交点(变坡点)数量以让程序规划内存建立要素数据为,其它值退出本程序I=1=>
Goto1:
I=2=>
Goto2:
I=3=>
Goto3I≠0=>
DATLOCK"
SETPFDYS"
StopLbi1 ;
平曲线要素输入部分Z[C+6]→D-1→Z[D+3]For1→JToZ[C+16]Cls:
PQX"
Locate9,1,JZ[D+1]→I:
N"
I→Z[D+1]
请输入N坐标Z[D+2]→I:
E"
I→Z[D+2]
请输入E坐标Z[D+3]→I:
R"
I→Z[D+3]
请输入半径RZ[D+4]→I:
LS1"
I→Z[D+4]
请输入缓和曲线1长度Z[D+5]→I:
LS2"
I→Z[D+5]
请输入缓和曲线2长度D+5→DNext1→Z[D-2]GotoSLbi2
竖曲线要素输入部分Z[C+7]→D-1→Z[D+3]For1→JToZ[C+17]Cls:
SQX"
BPDZH"
I→Z[C+1]
请输入变坡点桩号Z[D+2]→I:
BPDGC"
I→Z[C+2]
请输入变坡点高程Z[D+3]→I:
I→Z[C+3]
请输入半径RD+3→DNext1→Z[D]GotoSLbi3
要素点数输入部分Z[C+12]→I:
1PQXDS"
I→Z[C+12]
输入1线平曲线点数,最小值为3Z[C+13]→I:
1SQXDS"
I→Z[C+13]
输入1线竖曲线点数,最小值为3Z[C+18]→I:
1JDZH"
I→Z[C+18]
输入1线平曲线第一个交点的交点桩号Z[C+14]→I:
2PQXDS"
I→Z[C+14]
输入2线平曲线点数,最小值为3Z[C+15]→I:
2SQXDS"
I→Z[C+15]
输入2线竖曲线点数,最小值为3Z[C+19]→I:
2JDZH"
I→Z[C+19]
输入2线平曲线第一个交点的交点桩号C+Z[C+22]→Z[C+8]
1线路平曲线要素指针偏移基数Z[C+8]+5Z[C+12]→Z[C+9]
1线路竖曲线要素指针偏移基数Z[C+9]+3Z[C+13]→Z[C+10]
2线路平曲线要素指针偏移基数
Z[C+10]+5Z[C+14]→Z[C+11]
2线路竖曲线要素指针偏移基数Z[C+11]+3Z[C+15]→Z[C+21]
要素数据库结束指针Z[C+21]+1→Z[C+30]Z[C+21]→DimZ
增加额外变量-1→KGotoS
SETPFDYS
交点要素=>
分段要素Norm150→CRadZ[C+6]+5→DZ[C+21]+1→FF+6→DimZ-1→Z[F];
设置分段要素开始标志Z[C+20]→V
从数据库读入当前线第一个平曲线交点桩号0→GPol(Z[D+1]-Z[D-4],Z[D+2]-Z[D-3])
;
计算第一条直线的距离I,计算方位角JJ→HZ[D-4]→Z[F+1]
直线段Z[D-3]→Z[F+2]V-I→Z[F+3]For1→GToZ[C+16]-2
Pol(Z[D+1]-Z[D-4],Z[D+2]-Z[D-3])
计算第本交点与下一交点的距离I,计算方位角JI→W:
J→HPol(Z[D+6]-Z[D+1],Z[D+7]-Z[D+2])J-H→K
计算转角K,负值是左转角,正值是右转角IFAbs(K)>
π:
ThenIfK>
0:
ThenK-2π→K:
ElseK+2π→K:
IfEndZ[D+3]→R
从数据库读入半径RZ[D+4]→L
从数据库读入缓和曲线1长度Z[D+5]→M
从数据库读入缓和曲线2长度L÷
2÷
R→B
计算缓和曲线1的B0角M÷
R→O
计算缓和曲线2的B0角(Abs(K)-B-O)R→P
计算圆曲线长度L2÷
24÷
R-L^(4)÷
2384÷
R^(3)→Q
内移值计算方法2
L÷
2-L^(3)÷
240÷
R2→S
切线增长值计算方法2
M2÷
R-M^(4)÷
R^(3)→J
M÷
2-M^(3)÷
R2→I
切线增长值计算方法2Abs(π÷
2-Abs(K))→ARtan(Abs(K÷
2))+S+J÷
Cos(A)-QTan(A)→T;
计算切线1Rtan(Abs(K÷
2))+I+Q÷
Cos(A)-JTan(A)→U;
计算切线2
H<
0=>
H+2π→H1→AK<
0=>
-1→AH→Z[F+4]0→Z[F+5]0→Z[F+6]F+6→FF+6→DimZRec(T,H) 缓和段1Z[D+1]-I→NZ[D+2]-J→EN→Z[F+1]E→Z[F+2]V-T→Z[F+3]L=0=>
GotoAH→Z[F+4]0→Z[F+5]A÷
R→Z[F+6]F+6→FF+6→DimZLbiA 圆弧段0→I:
0→JL=0=>
GotoBPol(L-L^(3)÷
40÷
R2,L2÷
6÷
R-L^(4)÷
336÷
R^(4))LbiBRec(I,H+AJ)N+I→NE+J→EN→Z[F+1]E→Z[F+2]V-T+L→Z[F+3]H+AB→Z[F+4]A÷
R→Z[F+5]A÷
R→Z[F+6]F+6→FF+6→DimZM=0=>
GotoC
缓和段2Rec(2RSin÷
R),H+AB+AP÷
R÷
2)N+I→NE+J→EN→Z[F+1]E→Z[F+2]V-T+L+P→Z[F+3]H+AB+AP÷
R→Z[F+4]A÷
R→Z[F+5]0→Z[F+6]LbiCF+6→FF+6→DimZRec(U,H+K) Z[D+1]+J→Z[F+1]Z[D+2]+I→Z[F+2]V-T+L+P+M→Z[F+3]V-T+L+P+M-U+I→VD+5→DNextH+K→Z[F+4]0→Z[F+5]0→Z[F+6]F+9→DimZ1→Z[F+7]V→Z[F+9]
要素终点桩号Deg
READDATZ[C+32]→II=3=>
READDAT3"
If G<
MOrG>
M+L
Then;
验证要素是否可用,否则重设要素I=1=>
READDAT1"
READDAT2"
REALDAT3"
IfEnd
READDAT1平曲线分段要素读取程序1Z[C+30]→F0→JLbi1
搜索要素IfG<
Z[F+3]:
Then-1=Z[F]=>
GotoE:
F-6→F:
-1→J:
Goto1Else1=Z[F+1]=>
-1=J=>
Goto2:
1→J:
F+6→F:
Goto1IfEndLbi2
F→Z[C+30]Z[F+1]→Z[C+23] 当前分段要素N坐标Z[F+2]→Z[C+24] 当前分段要素E坐标Z[F+3]→Z[C+25] 当前分段要素起点桩号Z[F+4]→[C+26] 当前分段要素起点方位角(正北)Z[F+5]→Z[C+27] 当前分段要素起点曲率有左偏负右偏正(注意不半径)Z[F+6]→Z[C+28]
当前分段要素终点曲率有左偏负右偏正(注意不半径)Z[F+9]-Z[F+3]→Z[C+29]
当前分段要素长度ReturnLbiECls"
ERROR"
READDAT2 文件请输入内容为以下内容以便测试结果与本文一致。
π÷
180→JGoto1
Lbi1IfG<
ThenCls:
Stop:
IfEnd↙;
判断待求桩号是否小于本要素起点,如小于就停止运行程序
IfG<
(终点里程):
Then(起点X)→N:
(起点Y)→E:
→M:
213°
32′52″J(起点方位角)→H:
0(起点曲率)→A:
0(终点曲率)→R:
起点至终点长度→L:
IfEnd↙IfG<
Then→N:
→E:
32′52″J→H:
0→A:
1÷
1300→R:
260→L:
219°
16′39″J→H:
1300→A:
→L:
241°
32′56″J→H:
0→R:
IfEnd↙
IfG>
判断待求桩号是否大于本要素终点,如大于就停止运行程序LbiEN→Z[C+23]:
E→Z[C+24]:
M→Z[C+25]:
H→[C+26]:
A→Z[C+27]:
R→Z[C+28]:
L→Z[C+29]
READDAT3平曲线分段要素读取程序3Norm1Z[C+23]→N:
N:
N→Z[C+23] 当前分段要素N坐标Z[C+24]→E:
E:
E→Z[C+24] 当前分段要素E坐标Z[C+25]→M:
SZH"
M:
M→Z[C+25] 当前分段要素起点桩号180Z[C+26]÷
π→H:
H◤DMS◢:
H:
Hπ÷
180→H:
H→Z[C+26] 当前分段要素起点方位角(正北)单位:
度分秒Z[C+27]→A:
SR"
A:
A→Z[C+27] 当前分段要素起点曲率有左偏负右偏正(注意是半径的倒数)Z[C+28]→R:
ER"
R:
R→Z[C+28] 当前分段要素终点曲率有左偏负右偏正(注意是半径倒数)Z[C+29]→L:
L:
L→Z[C+29] 当前分段要素长度Return
GCJS 高程计算Z[C+31]→D0→JLbiSD→Z[C+31]Z[D-2]→IZ[D-1]→VZ[D+1]→KZ[D+2]→O(O-V)÷
(K-I)→UZ[D+4]→IZ[D+5]→V(V-O)÷
(J-K)→VU-V→Z
为正时是凸型竖曲线,负是时为凹竖曲线Z[D+3]→I
读入半径Abs(IZ)÷
2→T
切线长IfG<
K-T:
Then
点在切点前IfJ=1OrZ[D]=-1:
ThenUG-UK+O→Z:
Return:
计算高程Z-1→J:
D-3→D:
GotoSElseIfG<
点在本交点的切点1和变坡点之间G-K+T→QQ2÷
I→IZ>
-I→IO-UT+UQ+I→Z
计算高程ZReturn
ElseIfG<
K+T:
点在本交点的变坡和切点2之间G-K-T→QQ2÷
I→IZ>
-I→IO+VT+VQ+I→Z
计算高程ZReturnElseIfJ=-1OrZ[D+3]=1:
ThenO+VG-VK→Z;
计算高程ZReturnElse1→J:
D+3→D:
GotoSIfEnd:
IfEnd