隧道超欠挖5800版

隧道超欠挖5800版

  1. 主程序(NTSSD–CQW)
    Lbl 1: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:I<J=>1→Q )
    240→L:     (定义此段竖曲线曲线长)
    120→T:     (定义此段竖曲线切线长)
    0.48→E:    (定义此段竖曲线外距)
    497.42→M:  (定义此段竖曲线变坡曲线起点桩号)
    737.42→N:  (定义此段竖曲线变坡曲线终点桩号)
    S→K:       (将变量值另存,利于后面计算)
    Prog“SUB3”: (调用高程计算子函数)
    Fix 3:    (输出保留3位小数)
    1.5+Z→Z:  (将路面设计值加减设计值得到开挖圆心高程)
    √((Z[1]-Z)2+B2)→X:(得到实测点到圆心的距离)
    “CQW=”:X-Z[2]→A:◢(将实测点半径减理论半径即为超欠挖)
    ClrMemory:Goto 1
    2.  SUB0 数据库子程序
    Goto1↙ 同时保存多个曲线时的指针
    Lbl 1:IF S<***(线元终点里程):Then***→G(线元起点方位角):***→O(线元起点里程):***→U(线元起点X):***→V(线元起点Y):***→P(线元起点曲率半径):***→R(线元终点曲率半径): ***→H(线元起点至终点长度):0或1、-1→Q:Return:IfEnd↙
    Lbl 1:IF S<***(线元终点里程):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:Lbl 0:Prog “SUB1″:
    T+QEW(C+WD) →L: (J-Y)cos(L)-(I-X)sin(L)→Z:IF Abs(Z)<0.000001:Then0→Z:Prog “SUB1” :(J-Y)÷sin(F)→Z↙
    Else W+Z→W:Goto4:IfEnd
    5高程计算子程序(SUB3)
    IF K≤ M: Then D+(K-C)I/100→Z: Return:IfEnd↙
    IF K> M And  K≤C :Then (K-M)2/(2R) →P:D+(K-C)I/100+QP→Z: Return:IfEnd↙
    IF K> C And  K≤N :Then (K-M)2/(2R) →P:D+(K-C)J/100+QP→Z: Return:IfEnd↙
    IF K> N: Then D+(K-C)J/100→Z: Return:IfEnd↙
    经反复核对的,绝对能用,5800P上运行要4秒出结果。
分享到 :