weicc86 发表于 2010-3-25 21:47:23

4850计算程序

一、程序内容
程序: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=1:Goto 0←┘
Lbi 0←┘
{ABCDEFGU}:A“X0”:B“Y0”:C“F0’:D“R0”:E“RN’:F“D0”:G“LS”:U“G” ←┘
Z]=A:Z+10]=B:Z+20]=C:Z+30]=1÷D:Z+40]=1÷E:Z+50]=F: Z+60]=F+G: Z+70]=U←┘
A=0=> Dsz Z:Goto 1ΔIsz Z:Goto 0←┘
Lbi 1←┘
{HS}:H“D’:S“Z”:Z=1:Goto 2←┘
Lbi 2←┘
Z>Z =>”OUT” ◢:Goto5←┘
H≤Z+60]=>A=Z]:B=Z+10]:Z+20]=C:D=Z+30]: E=Z+40]: F=Z+50]: G=Z+60]: U=Z+70]: Goto3:ΔIsz Z: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+10]: Z+20]: Z+30]: Z+40]: Z+50]: Z+60]: Z+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~Z,为防止误操作在输入正确口令123456时方可进行设置。本程序设计为十段线元要素,如有需要可以根据内存容量进行增加。在执行程序中将各个线元要素按规律输入到扩充内存变量中,在坐标计算时首先判断其在哪一线元内,并把其线元要素调出进行计算。在进行计算时直接输入桩号、宽度就可以进行全线坐标计算。
       本程序也可在4800上运行,只需将输出部分进行修改。
四、 示例
郑石高速路面9标主线线元要素及相关数据如下:
X0                Y0                F0                R0             RN            D0         LS          Q
744450.244   510454.431          220&ordm;41 &ordm;31.8 &ordm;      7000         7000       116075.889      3386.293       1
742505.351   507722.676          248&ordm;24 &ordm;33.6 &ordm;      1045                  1045      119462.182       1980.825       0
741776.461   505880.832          248&ordm;24 &ordm;33.6 &ordm;      8500         8500       121443.007      1517.999       1
741346.546   504427.086         258&ordm;38 &ordm;30.1 &ordm;      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
页: [1]
查看完整版本: 4850计算程序