资源描述
Cls :"1Z 2A 3B"?→I ↙(注:此处""内为线路名,有几条线路就加入几条!)
Cls:"K Or –K To Shu"?K:If K≥0:Then↙
I=1=>Prog"P. Z"↙
I=2=>Prog"P. A"↙
I=3=>Prog"P. B"↙
………………………
(注:此处必须与上述""内为线路名和下面的数据库子程序名对应,有几条线路就加入几条!)
Mat B[1,1]→A: Mat B[1,2]→L: Mat B[1,3]→U: Mat B[1,4]→V: Mat B[1,5]→W: Mat B[1,6]→P: Mat B[1,7]→Q: Mat B[1,8]→G↙
Else Cls:"K0"?A:"KN"?L :"X0"?U :"Y0"?V :"F0"?W :
"R0"?P :"RN"?Q:"ZX:-1,+1,0"?G:IfEnd :Cls↙
1→O: Prog "XY-B"↙
Cls:"1.ZS 2.FS"? →I: I=2=>Goto 3↙
Cls:"XC"?H:"YC"?Z↙
LbI 1 : Cls:"K×+×××"?K↙
If K>L Or K<A : Then Cls: Locate 6,2,"K OUT !"◢
Stop: IfEnd↙
LbI 2: Cls:90→B: Cls:"RJ Or 0 To K"?B:B=0 =>Goto 1:"Z"?T↙
Prog "XY-A"↙
X+Tcos(M+B)→X↙
Y+Tsin(M+B)→Y↙
360Frac((M+360)÷360→M↙
Pol(X-H,Y-Z : 360Frac((J+360)÷360→J↙
2→O: Prog "XY-B":Goto 2↙
LbI 3 : Cls: "X"?C:"Y"?D↙
LbI 4 : If K>L Or K<A : Then Cls: Locate 6,2,"K OUT !"◢
Stop:IfEnd↙
Prog "XY-A"↙
(D-Y)sin(M)+(C-X)cos(M)→H↙
If Abs(H)>X10-3 :Then K+H→K:Goto 4:IfEnd↙
(D-Y)÷cos(M)→T↙
3→O: Prog "XY-B":Goto 3↙
子程序1名: XY-A
5→N: G(Q-1-P-1)÷Abs(L-A)→F: Abs(K-A)÷N→R: 90R÷π→S:
W+(FNR+2GP-1)NS→M:1→E↙
U+R÷6×(Cos (W)+Cos (M) +4∑(Cos (W+((E+0.5)FR+2GP-1)×(E+0.5)S),E,0,(N-1))+2∑(Cos (W+((EFR+2GP-1)ES,E,1,(N-1)))→X ↙
V+R÷6×(sin (W)+sin (M) +4∑(sin (W+((E+0.5)FR+2GP-1)×(E+0.5)S),E,0,(N-1))+2∑(sin (W+((EFR+2GP-1)ES,E,1,(N-1)))→Y↙
子程序2名: XY-B
Cls :Fix 3:If O=1:Then "XY RESULTS:": "K0=":"KN=":
"F0=": Locate 5,2,A : Locate 5,3,L : Locate 5,4,W◢
Cls :"X0=":"Y0=":"R0=":"RN=": Locate 5,1,U : Locate 5,2,V : Locate 5,3,GP : Locate 5,4,GQ◢
IfEnd↙
If O=2:Then↙
Cls :"K×××=":"Z=":"X=":"Y=": Locate 6,1, K : Locate 4, 2, T : Locate 4,3, X : Locate 4,4, Y◢
If T=0 :Then Cls :"QF(Z)=": Locate 8,1, M:M▼DMS◢
IfEnd↙
Cls :"K×××=":"S=": Locate 6,1, K : Locate 4, 2, I :
"F=":J:J▼DMS◢
IfEnd↙
If O=3:Then "X=":"Y=":"K×××=":"Z=": Locate 4,1,C: Locate 4, 2, D : Locate 6,3,K :Locate 4,4,T◢
IfEnd:Cls↙
线路线元数据库子程序格式:
数据库采用给矩阵变量Mat B赋值的形式,使数据组织更加简洁,极大的减少了线路数据库子程序的输入量,节约了计算器空间
程序说明:
程序线元判断原则:
(1) 以道路中线的前进方向(即里程增大的方向)区分左右;
(2) 当所求点位于中线时,Z=0;当位于中线左侧时,Z取负值;当位于中线右侧时,Z取正值。
(3) 当线元为直线时,其起点、终点的曲率半径为无穷大,以10的45次代替输入×10x45。
(4) 当线元为圆曲线时,无论其起点、终点与什么线元相接,其曲率半径均等于圆弧的半径。
(5) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45次代替输入×10x45;与圆曲线相接时,曲率半径等于圆曲线的半径。终点与直线相接时,曲率半径为无穷大,以10的45次代替输入×10x45;与圆曲线相接时,曲率半径等于圆曲线的半径。
(6) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。终点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。
输入与显示简单说明
1.ZS 2.FS选1正算 选2反算
K0? KN? R0? RN?F0?X0? Y0?ZX? 分别为线元起点桩号 、终点桩号、起点半径、终点半径、起点切线方位角、起点X坐标、起点Y坐标、线元转向。
XC ? YC? 输入置镜点即测站的X,Y坐标
K××+×××? 输入所求的桩号
Z ? 输入所求点距中线的边距(在中线输零,左负右正)
RJ? 输入边桩时左右边桩连线与线路前进方向中桩切线的右交角(当输入数字0时进入下一个桩号计算输入)
X =、Y = 计算得出的所求点的左、中、右 的X Y坐标
QF(Z)= ××× 计算得出所求点的中桩切线方位角
F= ××× 计算得出置镜点到测点的方位角
S= ××× 计算得出置镜点到测点的水平距离
X=××× 反算输入所求点的X坐标
Y=××× 反算输入所求点的Y坐标
K=××× 计算得出求点所对应的里程
Z=××× 计算得出求点到所对应的里程的垂直距离 (负就是左边,正就是右边)
展开阅读全文