自编CASIOFX-4800P隧道超欠挖程序..doc
文本预览下载声明
自编卡西欧fx-4800P隧道超欠挖程序
作者:VV
一直想要寻找一套简单方便又实用的计算隧道超欠挖的程序,即只要输入任意点三维坐标就能直接计算该点的超欠挖。前段时间有问过一些人也有上百度搜索过几次,可都没什么结果,有见过一些理论性的东西,可无奈对程序一窍不通,因此没办法自己设计程序。
之前自己也有编过一个公式“程序”,也不能算是程序吧,因为那只是一个单纯利用代数关系组成的公式,没有一点程序语言,原理也很简单,就是利用所测点距离隧道该段圆弧的圆心的高差及平距再通过 “勾股定理”便可以计算出该点与圆心的空间距离,即实测半径,再用实测半径减去该段弧的设计半径便是该点的超欠挖咯。只是用此方法必须事前要用另外的程序反算出该点的里程及偏距,再将所求的里程与偏距代入上述的“公式程序”,故要分为两步才能计算出该点超欠挖。此方法显然过于繁琐,于是便想到要将公式编入反算程序当中,直接利用程序中反算出的结果自行代入公式,便能一步到位计算出该点的超欠挖,即只需输入所测点的三维坐标便能计算超欠挖,方便且快捷。
之前也有研究过一阵子,可毕竟对程序语言并不很懂,一直无处下牙,便只好放弃。前几天因为买了新的计算器便又头脑发热的想要试一下,仔细看了一些以前用过的程序清单,观察了下里面的程序语言及之间的连接关系,通过几天的探索,终于受到了点启发,于是便成功的将之前的公式整合到了反算程序当中,经过多次的验证,最终确认准确无误。
于是想着拿出来与各位同行们分享,并希望得到大家的指点,也希望给那些刚学不久的测量新手们一些帮助,希望各位测量高手与前辈们不要见笑。
本人之前一直都在用“yshf”的“TYQXJS”程序,因此上述的超欠挖程序的主体部分也就是利用“TYQXJS”中的反算功能,即利用了反算结果中的S(所测点的里程)与Z(所测点距离线中的偏距),程序内容如下:
1.主程序(CQW)
UX0:VY0:OS0:GF0:NLS:PR0:RRN:Q:
C=1÷P:D=(P-R)÷(2HPR):E=180÷π←┘
Lbl 2:{XYH}: XY:I=X:J=Y: H=H:
T=G-90:W=Abs((Y-V)cosT-(X-U)sinT):Z=0:
Lbl 0:ProgSUB1: L=T+QEW(C+WD):
Z=(J-Y)cosL-(I-X)sinL:
AbsZ<E-6=Goto1:≠W=W+Z:Goto 0△←┘
Lbl 1:Z=0:ProgSUB1: Z=(J-Y)÷sinF:
SS=O+W▲
ZZ=Z▲
MCQW=√( (H-内轨顶标高-圆心距离内轨顶高差) 2+(Abs(Z+线中相对遂中距离)+圆心相对遂中距离) 2 )-R▲
Goto 2←┘
2.子程序(SUB1)
A=0.1739274226:B=0.3260725774:K=0.0694318442:L=0.3300094782:
F=1-L:M=1- K: X=U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Bcos(G+QEFW(C+FWD))+Acos(G+QEMW(C+MWD))):
Y=V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+Asin(G+QEMW(C+MWD))):
F=G+QEW(C+WD)+90:X=X+ZcosF:Y=Y+ZsinF
一.补充:
1.输入说明?????????? X0 ?线元起点的X坐标 ???? Y0 ?线元起点的Y坐标 ???? S0 ?线元起点里程???? F0 ?线元起点切线方位角???? LS ?线元长度???? R0 ?线元起点曲率半径???? RN ?线元止点曲率半径???? Q ???线 元左右偏标志(左偏Q=-1,右偏Q=1,直线段Q=0)??????S ?所求点的里程??????Z ?所求点距中线的边距(左侧取负,值右侧取正值,在中线上取零)??????????
?2. 若隧道所测部位有两种圆心时,利用圆心所对应的弧的分段高度划 分可设置两个选择条件,于是只需将主程序中 “ MCQW=√( (H-内轨顶标高-圆心距离内轨顶高差) 2+(Abs(Z+线中相对遂中距离)
显示全部