fx5800小程序.docx
《fx5800小程序.docx》由会员分享,可在线阅读,更多相关《fx5800小程序.docx(14页珍藏版)》请在冰豆网上搜索。
fx5800小程序
5800计算器由坐标计算面积小程序
ClrMemory:
1→N:
LbI0:
E:
F:
"XO"?
X:
"Y0"?
Y:
(XF-EY)/2→G:
Q+G→Q:
X→E:
Y→F:
Abs(Q)→S:
Fix1:
" S=":
Locate6,4,S▲Norm2:
" N=":
Locate6,4,N▲N+1→N:
Goto0:
(说明:
至少输入三点坐标,才能计算正确的面积,N为了计输了的点数)
线路坐标正反算,竖曲线计算及边坡放样程序
坐标计算程序
可计算中边桩及进行坐标反算,边坡放样
PAN(主程序):
LbI0“1.SZ=>XY,XY=>SZ”:
?
N
IfN=1:
ThenGoto1:
IfEnd
IfN=2:
ThenGoto21:
IfEnd
LbI1:
“DKI=”?
S:
S>终止桩号=>Goto1:
S<起始桩号=>Goto1:
“BJ=”?
Z:
Prog“PAN-1”:
Prog“PAN-2”:
IfZ=0:
Then90→T:
EIse“PJ=”?
T:
IfEnd
"XS"=X◢
"YS"=Y◢
"FS"=F-90▲DMS◢
Goto1
LbI2:
“DKI=”?
S:
S>终止桩号=>Goto2:
S<起始桩号=>Goto2:
0→Z:
90→T:
Prog“PAN-1”:
Prog“PAN-2”:
“XC=”?
N:
"YC"=?
E:
Prog“PAN-3”
IfI>0:
Then“YOU,I=”:
I◢IfEnd
IfD<0:
Then“ZUO,I=”:
I◢IfEnd
"ZHUANG,HAO"=K◢
Goto2
PAN-1:
(平曲线数据库)
IfS<(线元终点桩号):
Then线元起点桩号→O:
线元终点桩号→H:
线元起始切线方位角→G:
线元起点坐标→X:
线元起点坐标→Y:
线元起点半径→P:
线元终点半径→R:
偏转方向常量→Q:
IfEnd
………………………………………………..
Q值当线元向左偏时输负值,当线元向右偏时输正值。
当线元与直线相接时半径输10的45次方,与圆曲线相接时半径输圆曲线半径。
PAN-2:
(平曲线正算程序)
1÷P→C
(P-R)÷(2(H-O)PR)→D
180÷∏→E
Abs(S-O)→W:
0.1739274226→A:
0.3260725774→B:
0.0694318442→K:
0.3300094782→L:
1-L→F:
1-K→M:
U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Bcos(G+QEFW(C+FWD))+Acos(G+QEMW(C+MWD)))→X:
V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+Asin(G+QEMW(C+MWD)))→Y
G+QEW(C+WD)+90→F
Return
PAN-3:
(平曲线反算程序)
0→Z:
90→T:
Pol(N-X,E-Y)
IfJ<0:
ThenJ+360→J:
IfEnd
F-J→C:
:
S+IsinC→K:
IcosC→I
Return
GotoD
PAN-4:
(竖曲线计算子程序)
Prog“PAN-5”:
Q-T→C:
Q+T→D
IfS≤C:
ThenGoto1:
EIse
IfSThenGoto2:
EIse
IfSThenGoto3:
IfEnd:
IfEnd:
IfEnd
LbI1:
E+(Q-S)A→H:
Goto4
LbI2:
E+(Q-S)A+(S-C)2/2/R→H:
Goto4
LbI3:
E+(S-Q)B+(S-D)2/2/R→H:
Goto4
LbI4:
H→H:
Return
PAN-5:
(竖曲线数据库,支持断链)
IfS=84100:
Then84100+3.45→S:
Return:
IfEnd
IfS=87900:
Then87900+12.85→S:
Return:
IfEnd
IfS≤本段竖曲线终点桩号:
Then竖曲线交点高程→E:
前坡坡率→A:
后坡破率→B:
交点桩号→Q:
竖曲线半径→R:
切线长→TReturn:
IfEnd
……………………………………………….
竖曲线数据库输入说明:
S为计算里程,破率输入时以交点为起算点,上坡输正值,下坡输负值。
竖曲线半径输入,当竖曲线为凹曲线时半径输正值,当竖曲线为凸曲线时半径输负值。
PAN-SQX(竖曲线计算主程序):
LbI0:
“DK=”:
?
S:
S<线路起点桩号=>Goto0:
S>线路终点桩号=>Goto0:
Prog“PAN-4”:
“BJ=”:
?
B:
H-B*横坡→H:
“H=”:
H◢
Goto0
PAN-BIANPO(边坡放样主程序):
LbI0:
“DK=”:
?
S:
S<线路起点桩号=>Goto0:
S>线路终点桩号=>Goto0:
0→Z:
90→T:
Prog“PAN-1”:
Prog“PAN-2”:
“XC=”:
?
N:
“YC=”:
?
E:
“DMG=”:
?
G:
Prog“PAN-3”:
Prog“PAN-4”:
Goto1
LbI0:
“BJ=”:
?
B:
H-B*横坡-G→P:
“P=”:
P◢(可显示也可不显示)
IfP>10:
ThenGotoP:
IfEnd
IfP>0:
ThenGotoT:
IfEnd
IfP<0:
ThenGotoW:
IfEnd
LbIT:
“PO,BI=”:
?
O:
O*ABS(P)+B→L:
GotoJ
LbIW:
“PO,BI=”:
?
O:
“PINGTAI=”:
?
C:
O*ABS(P)+B+2(侧沟宽度)+C(平台宽度)→L:
GotoJ
LbIP:
“PO,BI=”:
?
O:
“PING,TAI=”:
?
C:
O*8+C+(P-8)O+B→L:
GotoJ
LbIJ:
K-S→K:
I→A:
L-ABS(A)→D
IfD>0:
Then“WAI,D=”:
D◢IfEnd
IfD<0:
Then“NEI,D=”:
D◢IfEnd
IfK>0:
Then“XIAO,K=”:
K◢IfEnd
IfK<0:
Then“DA,D=”:
K◢IfEnd
"CL"=L◢
Goto0
5800正反算及隧道超欠挖
任意坐标正反算及隧道超欠挖程序
1-JINYU(主程序)
Lbl4:
"1→ZS,2→FS,3→CQW"?
N
N=1=>Goto1:
N=2=>Goto2:
N=3=>Goto3
Lbl1:
“K=”?
S:
“P=”?
Z:
Prog“SJ¬-PM”:
Abs(S-O)→W:
Prog"SUB1-ZS":
“X=":
Locate4,4,X:
"Y=":
Locate4,4,Y:
F-90→F:
S→K:
Prog“SJ¬-GC”:
“H=”:
Locate4,4,H◢
Goto4
Lbl2:
“X=”?
X:
“Y=”?
Y:
Prog“SJ¬-PM”:
X→I:
Y→ J:
Prog"SUB2-FS":
O+W→S:
“K=":
S◢
“P=":
Z◢
S→K:
Prog“SJ¬-GC”:
“H=”:
H◢
Goto4
Lbl3:
“X=”?
X:
“Y=”?
Y:
Prog“SJ¬-PM”:
X→I:
Y→ J:
Prog"SUB2-FS":
O+W→S:
“K=":
S◢
“P=":
Z◢
S→K:
Prog“SJ¬-GC”:
“H=”:
H◢
Prog“SJ-CQW”◢
Goto4
SJ¬-PM(子程序名-平面线形数据库)
IfS≥59227.681(线元起点里程):
Then2599818.013→U(线元起点X坐标):
496887.918→V(线元起点Y坐标):
59227.681→O(线元起点里程):
208028’39”→G(线元起点方位角):
100→H(线元长度):
1×1045→P(线元起点曲率半径):
1×1045→R(线元终点曲率半径):
0→Q(线元左右偏标志:
左-1右1):
IfEnd
IfS≥59327.681(线元起点里程):
Then2599730.112→U(线元起点X坐标):
496840.237→V(线元起点Y坐标):
59327.681→O(线元起点里程):
208028’39”→G(线元起点方位角):
90→H(线元长度):
1×1045→P(线元起点曲率半径):
750→R(线元终点曲率半径):
-1→Q(线元左右偏标志:
左-1右1):
IfEnd
……
……
SJ-GC¬(子程序名-竖数据库)
IfS<变坡终点里程AndS≥变坡起点里程:
Then大里程坡度→A:
小里程坡度→B:
变坡点里程→O:
变坡点高度→G:
半径→R:
Prog“SUB3-GC”:
IfEnd
(注:
1.有多个竖曲线,依照上面的依次变更,每多一个,就增加一个。
每次只需要修改以上的数据或增加一个判断,子程序不用变动。
2.如整条线只有一个纵坡比喻为2﹪,那么程序应为IfS<终点里程AndS≥起点里程:
Then0.02→A:
0.02→B:
起点里程→O:
起点高程→G:
1×1045→R:
Prog“SUB3-GC”:
IfEnd)
SJ-CQW(子程序名-隧道数据库)
“H1=”?
F:
”P=”?
Z
IfF-H>5.845:
Then√((Abs(Z))2+(F-H-0.45)2)-7.45→W:
IfEnd:
IfF-H≤5.845AndF-H>-1.169:
Then√((Abs(Z)-1)2+(Abs(F-H-1.5))2)-6→W:
IfEnd:
IfF-H≤-1.169:
Then√((Abs(Z))2+(H-F+14.05)2)-16.5→W:
IfEnd:
…
…
“+CQ,-CQ=”:
W
SUB1-ZS(正算子程序)¬
1÷P→C:
(P-R)÷(2HPR)→D:
180÷π→E:
0.1739274226→ A:
0.3260725774→B:
0.0694318442→K:
0.3300094782→L:
1-L→F:
1-K→M:
U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Bcos(G+QEFW(C+FWD))+Acos(G+QEMW(C+MWD)))→X:
V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+Asin(G+QEMW(C+MWD)))→Y:
G+QEW(C+WD)+90→F:
X+Zcos(F)→X:
Y+Zsin(F)→Y
SUB2-FS(反算子程序)¬
G-90→T:
Abs((Y-V)cos(T)-(X-U)sin(T))→W:
0→Z:
Lbl0:
Prog"SUB1-ZS":
T+QEW(C+WD)→L:
(J-Y)cos(L)-(I-X)sin(L)→Z:
IfAbs(Z)<1E-6(注:
此处1E-6可输入0.000001):
thenGoto1:
ElseW+Z →W:
Goto0:
IfEnd
Lbl1:
0→Z:
Prog"SUB1-ZS":
(J-Y)÷sin(F)→Z
SUB3-GC(高程子程序)
O-S→L:
A-B→W:
Abs(R*W÷2)→T:
O-T→M:
O+T→P
IfS≤M:
ThenG-L*B→H:
Goto5:
ElseIfS≤O:
ThenGoto3:
ElseIfS≤P:
ThenGoto4:
IfEnd:
IfEnd:
IfEnd
Lbi3
IfW>O:
ThenG+(M-S)2÷2÷R-L*B→H:
Goto5:
ElseIfW<O:
ThenG-(M-S)2÷2÷R-L*B→H:
Goto5:
IfEnd:
IfEnd
Lbi4
IfW>O:
ThenG+(S-P)2÷2÷R-L*A→H:
Goto5:
ElseIfW<O:
ThenG-(S-P)2÷2÷R-L*A→H:
Goto5:
IfEnd:
IfEnd
Lbi5
H→H:
Return
说明:
(正算1秒,反算和超欠挖5秒完成)
所有程序名。
不同线路,只需改动SJ-PM,SJ-GC,SJ-CQW三个子程序里的内容,其它不变。
1为正算,2为反算,3为超欠挖.
K= 正算时,输入所求点里程。
反算时得出里程结果
X=,Y= 正算时得出结果。
反算时输入实测坐标
P= 正算时输入偏距。
反算时得出偏距
H= 正算时得出高程。
反算时得出高程
H1= 超欠挖时输入实测高程
+CQ,-CQ= 得出超欠挖值
注,超欠挖输入时显示里程,编距,设计高程,不需输入。
只输入实测量高程H1
5800p全线高程计算程序带数据库
竖曲线全线高程计算程序
Lbl1:
“k=”?
H:
Prog"子程序"
C-D→F:
Abs(RF/2)→T:
R(Abs(F)/F)→R
IfH≤B-T:
Then0→K:
ElseIfH≥B+T:
Then0→K:
D→CElseH-B+T→K:
IfEnd:
IfEnd
"H=":
A-(B-H)C-K2/2R→G:
"G=":
G◢
Goto1
子程序
IFH≤第二竖曲线起点桩号:
Then第一竖曲线交点高程→A:
交点桩号→B:
前坡→C:
后坡→D:
曲线半径→R:
(Else):
IfEnd 继续添加曲线要素
10-11-6 楼主:
WJ~~强少 作者:
本文已被浏览 2458 次
5800超欠挖程序
1.主程序(NTSSD--CQW)
Lbl1:
5→DimZ:
(增加Z型5个变量)
600→S:
(输入近似里程)
Prog“SUB0”↙(定义所在线元数据库)
1÷P→C:
(P-R)÷(2HPR)→D:
180÷∏→E:
“X=”?
X:
“Y=”?
Y:
X→I:
Y→J:
(输入实测XY坐标,)
“H=”?
→Z[1]:
(输入实测高程)
“R=”?
→Z[2]:
(输入断面理论半径)
Prog“SUB2”:
(调用反算子程序,由反算两次调用正算子程序)
O+W→S:
“K=”:
S◢“BIANJULI=”:
Z◢(得到桩号及离中心桩距离)
Abs(Z)→B:
(将变量值另存,利于后面计算)
617.42→C:
(定义此段竖曲线变坡点桩号,也可?
C:
输入)
71.1→D:
(定义此段竖曲线此段竖曲线变坡点高程)
1→I:
(定义此段竖曲线后坡点坡度)
-0.6→J:
(定义此段竖曲线前坡点坡度)
1500→R:
(定义此段竖曲线变坡半径值)
-1→Q:
(判断是凸凹曲线类型,-1→Q:
I1→Q)
240→L:
(定义此段竖曲线曲线长)
120→T:
(定义此段竖曲线切线长)
0.48→E:
(定义此段竖曲线外距)
497.42→M:
(定义此段竖曲线变坡曲线起点桩号)
737.42→N:
(定义此段竖曲线变坡曲线终点桩号)
S→K:
(将变量值另存,利于后面计算)
Prog“SUB3”:
(调用高程计算子函数)
Fix3:
(输出保留3位小数)
1.5+Z→Z:
(将路面设计值加减设计值得到开挖圆心高程)
开平方根((Z[1]-Z)2+B2)→X:
(得到实测点到圆心的距离)
“CQW=”:
X-Z[2]→A:
◢(将实测点半径减理论半径即为超欠挖)
ClrMemory:
Goto1
2. SUB0数据库子程序
Goto1↙同时保存多个曲线时的指针
Lbl1:
IFS<***(线元终点里程):
Then***→G(线元起点方位角):
***→O(线元起点里程):
***→U(线元起点X):
***→V(线元起点Y):
***→P(线元起点曲率半径):
***→R(线元终点曲率半径):
***→H(线元起点至终点长度):
0或1、-1→Q:
Return:
IfEnd↙
Lbl1:
IFS<***(线元终点里程):
Then***→G(线元起点方位角):
***→O(线元起点里程):
***→U(线元起点X):
***→V(线元起点Y):
***→P(线元起点曲率半径):
***→R(线元终点曲率半径):
***→H(线元起点至终点长度):
0或1、-1→Q:
Return:
IfEnd
……………..
为了便于解读,每增加一个线元增加一行语句,每增加一条曲线增加一个Lbl,每增加一个工程增加一个文件
3.正算子程序(SUB1)
0.1739274226→A:
0.3260725774→B:
0.0694318442→K:
0.3300094782→L:
1-L→F:
1-K→M↙
U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Bcos(G+QEFW
(C+FWD))+Acos(G+QEMW(C+MWD)))→X:
V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+Asin(G+QEMW(C+MWD)))→Y:
G+QEW(C+WD)+90→F:
X+Zcos(F)→X:
Y+Zsin(F)→Y
4.反算子程序(SUB2)
G-90→T:
Abs((Y-V)cos(T)-(X-U)sin(T))→W:
0→Z:
Lbl0:
Prog"SUB1":
T+QEW(C+WD)→L:
(J-Y)cos(L)-(I-X)sin(L)→Z:
IFAbs(Z)<0.000001:
Then0→Z:
Prog"SUB1":
(J-Y)÷sin(F)→Z↙
ElseW+Z→W:
Goto4:
IfEnd
5高程计算子程序(SUB3)
IFK≤M:
ThenD+(K-C)I/100→Z:
Return:
IfEnd↙
IFK>MAnd K≤C:
Then(K-M)2/(2R)→P:
D+(K-C)I/100+QP→Z:
Return:
IfEnd↙
IFK>CAnd K≤N:
Then(K-M)2/(2R)→P:
D+(K-C)J/100+QP→Z:
Return:
IfEnd↙
IFK>N:
ThenD+(K-C)J/100→Z:
Return:
IfEnd↙
经反复核对的,绝对能用,5800P上运行要4秒出结果。
Casio5800交点法与线元法(积木法)匝道坐标正反算放样程序
Casio5800交点法与线元法(积木法)匝道坐标正反算放样程序
《Casio5800交点法程序》与《线元法(积木法)匝道坐标正反算放样程序》,
程序由一个主程序ZBZFS和8个子程序(JS、XY-A、XY-B、JDYS、1、2、3、4)构成,运行时只需运行主程序即可!
本程序适用于单交点对称型、不对称型、无缓和曲线单圆曲线型一个交点范围内(含交点前后有直线段时)的曲线要素核对和坐标正反算,手工输入要素,对设计图纸的“直线、曲线转角表”中交点数据进行复核验证,并能对单一线元进行坐标正反算。
1主程序名:
ZBZFS(功能:
进入计算主程序)
65→Dimz↙
Deg:
Fix3↙
"1.JDZFS 2.ZHADAOZFS"?
I:
I→Z[61]:
"1.ZHONGSHUJS2.JS"?
I↙
IfI=1:
ThenGoto1:
ElseGoto2:
IfEnd↙
LbI1:
IfZ[61]=1:
ThenProg"JDYS":
Else Cls:
"K0"?
A:
"KN"?
L:
"X0"?
U:
"Y0"?
V:
"F0"?
W:
"R0"?
P:
"RN"?
Q:
"ZX:
-1,+1,0"?
G:
IfEnd↙
LbI2:
Prog"JS"
2子程序名:
JS(功能:
选择正算或反算模式)
Cls:
"XC"?
H:
"YC"?
Z↙
Cls:
"1.ZS 2.FS"?
I:
I=2=>Goto3↙
LbI1:
Cls:
IfZ[61]=1:
Then"JDZSKX+XXX"?
K:
Prog"4":
Else"ZHADAOZSKX+XXX"?
K:
IfEnd↙
LbI 2:
Cls:
90→B:
Cls:
"RJOr0 ToK"?
B:
B=0=>Goto1:
"Z"?
T↙
Prog"XY-A"↙
X+Tcos(M+B)→X↙
Y+Tsin(M+B)→Y↙
360Frac((M+360)÷360→M↙
Pol(X-H,Y-Z:
360Frac((J+360)÷360→J↙
2→O:
Prog"XY-B":
Goto2↙
LbI3:
Cls:
IfZ[61]=1:
Then"JDFSKN+"?
K:
"X"?
C:
"Y"?
D:
Prog"4":
ElseCls:
"ZHADAOFS":
"X"?
C:
"Y"?
D:
IfEnd↙
LbI4:
Prog"XY-A"↙
(D-Y)sin(M)+(C-X)cos(M)→H↙
IfAbs(H)>X10-3:
ThenK+H→K:
Goto4:
IfEnd↙
(D-Y)÷cos(M)→T↙
3→O:
Prog"XY-B":
Goto3↙
3子程序名:
XY-A(功能:
坐标计算程序)
5→N:
G(Q-1-P-1)÷Abs(L-A)→F:
Abs(K-A)÷N→R:
90R÷π→S:
W+(FNR+2GP-1)NS→M:
1→E↙
U+R÷6×(Cos(W)+Cos(M)+4∑(Cos(W+((E+0.5)FR+2GP-1)×(E+0.5)S),E,0,(N-1))+2∑(Cos(W+((EFR+2GP-1)ES,E,1,(N-1)))→X↙
V+R÷6×(sin(W)+sin(M)+4∑(sin(W+((E+0.5)FR+2GP-1)×(E+0.5)S),E,0,(N-1))+2∑(sin(W+((EFR+2GP-1)ES,E,1,(N-1)))→Y↙
4子程序名:
XY-B(功能:
显示正算或反算结果)
IfO=2:
Then↙
Cls:
"K×××=":
"Z=":
"X=":
"Y=":
Locate6,1,K:
Locate4,2,T:
Locate4,3,X:
Locate4,4,Y◢
IfT=0:
ThenCls:
"QF(Z)=":
Locate8,1,M:
M▼DMS◢
IfEnd↙
Cls:
"K×××=":
"S=":
Locate6,1,K:
Locate4,2,I:
"F=":
J:
J▼DMS◢
IfEnd↙
IfO=3:
Then"X=":
"Y=":
"K×××=":
"Z=":
Locate4,1,C:
Locate4,2,D:
Locate6,3,K:
Locate4,4,T◢
IfEnd:
Cls↙
5子程序名:
4(功能:
将交点参数转为线元计算参数)
LbI1:
IFZ[48]<0:
Then-1→Z[62]:
Else:
1→Z[