自编卡西欧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÷π←┘Lbl2:{XYH}:XY:I=X:J=Y:H=H:T=G-90:W=Abs((Y-V)cosT-(X-U)sinT):Z=0:Lbl0:ProgSUB1:L=T+QEW(C+WD):Z=(J-Y)cosL-(I-X)sinL:AbsZ<E-6=Goto1:≠W=W+Z:Goto0△←┘Lbl1:Z=0:ProgSUB1:Z=(J-Y)÷sinF:SS=O+W▲ZZ=Z▲MCQW=√((H-内轨顶标高-圆心距离内轨顶高差)²+(Abs(Z+线中相对遂中距离)+圆心相对遂中距离)²)-R▲Goto2←┘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?所求点距中线的边距(左侧取负,值右侧取正值,在中线上取零)CQW?所求点的超欠挖2.若隧道所测部位有两种圆心时,利用圆心所对应的弧的分段高度划分可设置两个选择条件,于是只需将主程序中“MCQW=√((H-内轨顶标高-圆心距离内轨顶高差)²+(Abs(Z+线中相对遂中距离)+圆心相对遂中距离)²)-R▲”中改为“H内轨顶标高+圆心O1分段高度=MCQW=√((H-内轨顶标高-圆心O1距离内轨顶高差)²+(Abs(Z+线中相对遂中距离)+圆心O1相对遂中距离)²)-R1▲≠MCQW=√((H-内轨顶标高-圆心O2距离内轨顶高差)²+(Abs(Z+线中相对遂中距离)+圆心O2相对遂中距离)²)-R2▲”3.若所测隧道断面无需在经常在线元之间转换时,也可以将主程序中U(线元起点X坐标),V(线元起点Y坐标),O(线元起点里程),G(线元起点切线方位角),N(线元长度),P(线元起点半径),R(线元终点半径),Q(曲线左偏为-1右偏为1直线为0)等曲线要素赋予定值,可减少在工作中的输入量。二,说明:1.程序中内轨顶标高用包含S(里程)的式子表示。2.程序中线中相对遂中距离采取左负右正3.圆心相对遂中距离,若圆心与所对应的弧在遂中同一侧则取负号,若在同一侧取正号。三,算例:例如本人现在所在隧道为兰渝铁路新城子隧道出口,目前正在施工右线大断面与左线小断面。右线大断面所在的线元段为直线,其HZ点X坐标为3762283.97,Y坐标为483022.06,里程为276428.016,方位角为153-27-10.26,线元长度为1579.479,并且该段是以起点里程276701(内轨顶高程为1734.4526)终点里程277174(内轨顶高程为1731.6146)坡度为6‰的下坡。该段标准断面的圆心及遂中,线中关系如下图:那么该段的超欠挖程序主程序如下:主程序(CQW-YOUDA)U=3762283.97:V=483022.06:O=276428.016:G=153°27°10.26°:N=1579.479:P=E45:R=E45:Q=0:C=1÷P:D=(P-R)÷(2NPR):E=180÷π←┘Lbl2:{XYH}:XY:I=X:J=Y:H=H:T=G-90:W=Abs((Y-V)cosT-(X-U)sinT):Z=0:Lbl0:ProgSUB1:L=T+QEW(C+WD):Z=(J-Y)cosL-(I-X)sinL:AbsZ<E-6=Goto1:≠W=W+Z:Goto0△←┘Lbl1:Z=0:ProgSUB1:Z=(J-Y)÷sinF:SS=O+W▲ZZ=Z▲MCQW=√((H+0.006S-3396.909)²+(Abs(Z-2.5))²)-7.36▲Goto2←┘当输入X=3761963.219Y=483171.325H=1737.714算得S=276781.661CQW=+0.118X=3761966.574Y=483177.777H=1743.645算得S=276781.543CQW=+0.066X=3761969.783Y=483184.431H=1737.78算得S=276781.646CQW=+0.135又如:左线小断面所在的线元段为缓和曲线,其YH点X坐标为3762418.968,Y坐标为482984.424,里程为276293.087,方位角为151-32-35.26,线元长度为300,圆曲线半径为4500,线路为右偏。并且该段是以起点里程275390(内轨顶高程为1734.4526)终点里程276599(内轨顶高程为1735.4114)坡度为12.8‰的下坡。该段标准断面的圆心,遂中,线中及圆心所对应弧的分段高度关系如下图:那么该段的超欠挖程序主程序如下:主程序(CQW-ZUOXIAO)U=3762418.968:V=482984.424:O=276293.087:G=151°32°35.26°:N=300:P=4500:R=E45:Q=1:C=1÷P:D=(P-R)÷(2NPR):E=180÷π←┘Lbl2:{XYH}:XY:I=X:J=Y:H=H:T=G-90:W=Abs((Y-V)cosT-(X-U)sinT):Z=0:Lbl0:ProgSUB1:L=T+QEW(C+WD):Z=(J-Y)cosL-(I-X)sinL:AbsZ<E-6=Goto1:≠W=W+Z:Goto0△←┘Lbl1:Z=0:ProgSUB1:Z=(J-Y)÷sinF:SS=O+W▲ZZ=Z▲H5282.7-0.0128S=MCQW=√((H+0.0128S-5280.6486)²+(Z+0.15)²)-4.11▲≠MCQW=√((H+0.0128S-5278.6768)²+(Abs(Z+0.15)+3.42)²)-8.06▲Goto2←┘当输入X=3762247.585Y=483079.072H=1740.795S=276488.755CQW=+0.174X=3762247.163Y=483078.211H=1743.471S=276488.744CQW=+0.097X=3762245.235Y=483074.534H=1745.735S=276488.808CQW=+0.051X=3762243.659Y=483071.107H=1742.710S=276488.671CQW=+0.116X=3762243.347Y=483070.514H=1739.479S=276488.683CQW=+0.181