| 一、程序内容程序:Mc
 W“1.js      2.SZ”:W=1=>Goto 1 ΔW=2=> O“KOU     LING”:O≠123456=>O=0“OUT” ◢Goto 4 ΔO=0:
 Defm 83:Z[81]=1:Goto 0←┘
 Lbi 0←┘
 {ABCDEFGU}:A“X0”:B“Y0”:C“F0’:D“R0”:E“RN’:F“D0”:G“LS”:U“G” ←┘
 Z[Z[81]]=A:Z[Z[81]+10]=B:Z[Z[81]+20]=C:Z[Z[81]+30]=1÷D:Z[Z[81]+40]=1÷E:Z[Z[81]+50]=F: Z[Z[81]+60]=F+G: Z[Z[81]+70]=U←┘
 A=0=> Dsz Z[81]:Goto 1ΔIsz Z[81]:Goto 0←┘
 Lbi 1←┘
 {HS}:H“D’:S“Z”:Z[82]=1:Goto 2←┘
 Lbi 2←┘
 Z[81]>Z[82] =>”OUT” ◢:Goto5←┘
 H≤Z[Z[82]+60]=>A=Z[Z[82]]:B=Z[Z[82]+10]:Z[Z[82]+20]=C:D=Z[Z[82]+30]: E=Z[Z[82]+40]: F=Z[Z[81]+50]: G=Z[Z[81]+60]: U=Z[Z[81]+70]: Goto3:ΔIsz Z[82]:Goto 2
 Lbi 3←┘
 P=U(E-D)÷Abs(G-F):Q=Abs(H-F):I=PQ:J=C+90 Q(I+2UD)/π: J<0=>J=J+360ΔM=C+45 Q(I÷4+2UD)÷2π:N=C+135Q(3I÷4+2UD)÷2π:K=C+45Q(I÷2+ 2UD)÷π                                                ←┘
 S=0=>Z=0:Goto4ΔS<0=>Z=-1:Goto4ΔZ=1:Goto4←┘
 Lbi 4
 X=A+Q(Cos C+4(Cos M+Cos N)+2Cos K+Cos J) ÷12 +ZSCos(J+90Z) ←┘
 Y=B+Q(Sin C+4(Sin M+Sin N)+2Sin K+Sin J) ÷12 +ZSSin(J+90Z)      ←┘
 S=0=>“X”:X:Pause 0: “Y” :Y◢ Goto 1Δ
 S<0=>“XL”:X:Pause 0: “YL”:Y◢ Goto 1Δ
 S>0=>“XR”:X:Pause 0: “YR”:Y ◢ Goto 1 ←┘
 Lbi5←┘
 
 二、 变量及说明
 X0:Y0:F0――――曲线元起点X、Y坐标及起点正切线方位角
 R0:RN――――――曲线元起点及终点半径
 D0:LS:Q―――曲线元起点桩号、路线长度及线路左右偏标志(左=-1,直线=0,右=1)
 D――――――――曲线元中待求点桩号
 Z―――――――――计算边桩距中线平距,左边输入负值,右边输入正值,中桩输入0
 X:Y
 XL:YL
 XR:YR ―――――――待求点中边桩桩号的X,Y坐标
 扩充变量:Z[Z[81]]: Z[Z[81]+10]: Z[Z[81]+20]: Z[Z[81]+30]: Z[Z[81]+40]: Z[Z[81]+50]: Z[Z[81]+60]: Z[Z[81]+70]: 分别为各线元X0:Y0:F0;R0:RN:D0:LS:Q
 (1) 以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,
 Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0。
 (2) 当所求点位于中线时,Z=0,坐标显示X     Y;当位于中线左侧时,Z取负值,坐标显示XL     YL,;当位于中线右侧时,Z取正值,坐标显示XR     YR。
 (3) 当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次代替。
 (4) 当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆
 弧的半径。
 (5) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45
 次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半
 径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。
 (6) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的
 值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径等
 于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。
 本程序可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距,对该曲线段范围内任意里程中边桩坐标进行正算。
 本程序是对扩充变量的应用,实现了真正意义上的的全线贯通。程序分为两部分:1为计算2为设置。首先对内存变量进行扩充,增加了83个扩充变量,为Z[1]~Z[83],为防止误操作在输入正确口令123456时方可进行设置。本程序设计为十段线元要素,如有需要可以根据内存容量进行增加。在执行程序中将各个线元要素按规律输入到扩充内存变量中,在坐标计算时首先判断其在哪一线元内,并把其线元要素调出进行计算。在进行计算时直接输入桩号、宽度就可以进行全线坐标计算。
 本程序也可在4800上运行,只需将输出部分进行修改。
 四、 示例
 郑石高速路面9标主线线元要素及相关数据如下:
 X0                Y0                F0                R0             RN            D0           LS          Q
 744450.244     510454.431          220º41 º31.8 º      7000           7000       116075.889      3386.293       1
 742505.351     507722.676          248º24 º33.6 º      1045                    1045        119462.182       1980.825       0
 741776.461     505880.832          248º24 º33.6 º      8500           8500       121443.007      1517.999       1
 741346.546     504427.086         258º38 º30.1 º      1045                    1045        122961.007       1985.977       0
 
 桩号             宽度                   X                 Y
 117000            0                 743791.308       509807.481
 118000           -20                743164.306       509027.467
 119000            20                742707.550       508137.933
 119462.182         0                742505.349       507722.673
 120000          -15.253             742293.266        507228.206
 121000          15.260              741953.665       506287.142
 121443.007         0                741776.461       505880.833
 122000          -10.20              741578.902       505359.701
 122961.007       50.355             741395.915       504417.169
 |