FX5800计算器交点法正反算程序

FX5800计算器交点法正反算程序

输入图纸中的整个标段交点要素,输入桩号及距中桩距离正算本标段任意点坐标,及极坐标放样的方位角及距离;由输入大概桩号及实测坐标,反算准确桩号及距中桩距离。(绿色为程序名,蓝色为输入计算器里的内容)

  • 主程序

程序名:1XY-KM

LbI 0:7→DimZ:Norm 2:1→A:"A:X,Y=1,KM,D=2"?A:

A=1=>Goto 1:A=2=>Goto 2:LbI 1:Z[4]→K:Z[5]→L:“XZ”?K:”YZ”?L:K→Z[4]:L→Z[5]:LbI A:Prog"QX":90→B:"PJ"?B:B→Z[1]:LbI B:"KM"?Z:Z= -1=>Goto 0:Z=-2=>Goto A: Prog"X1":?D: Prog “Z”:I+D×COS(Z[2]+Z[1]→X: J+D×Sin(Z[2]+Z[1]→Y: Fix 3:"   X=":Locate 6,4,X:"Y=":Locate 6,4,Y:Prog"JS":Goto B:

LbI 2:Prog"QX":"KM"?Z:LbI C: Prog"X1": "XO"?X:X=-1=>Goto 0:X=-2=>Goto 2: "Y0"?Y:Prog "ZX": Fix 3:" KM=":Locate 6,4,Z:"  D=":Locate 6,4,D:Goto C

  1. 2. 交点法正算子程序(Z)

程序名:Z

H2÷R÷24-H(4)÷2688÷R(3)→A:H÷2-H(3)÷240÷R2→B:((H2-N2)÷24÷R÷Sin(Abs(P))-((H(4)-N(4))÷2688÷R(3))÷Sin(Abs(P→E:(R+A)tan(Abs(P)÷2)+B-E→T:P÷Abs(P→W:0→M:H→C: (R+N2÷R÷24-N(4)÷2688÷R(3))tan(Abs(P)÷2)+N÷2-N(3)÷240÷R2+E→Z[6]: O-T+ΠR×Abs(P)÷180+H÷2-N÷2→Z[7]:If Z≤O-T:Then Z-O→S:G→Z[2]:Goto 1: IfEnd: If Z≤O-T+H:Then Z-O+T→S:Prog “HX”:G+WK→Z[2]:A-T→A:G→E:Goto 2:IfEnd:If Z≤Z[7]: Then 180(Z-O+T-0.5H)÷R÷π→S : A+R(1-Cos(S))→B:H÷2-H(3) ÷240÷R2+Rsin(S)→A:R→M:G+WS→Z[2]: A-T→A:G→E :Goto 2: IfEnd:

If Z≤Z[7]+N:Then Z[7]+N-Z→S:Z[6]→T :N→H:Prog “HX”:G+P→E:E-WK→Z[2]:T-A→A:C→H:Goto 2:IfEnd:

Z-Z[7]-N+Z[6]→S:G+P→Z[2]: LbI 1:U+Scos(Z[2])→I:V+Ssin(Z[2]→J: Return:LbI 2:U+Acos(E)-WBsin(E→I:V+ASin(E)+WBcos(E→J

  1. 3. 交点法缓和段子程序(HX)

程序名:HX

S-S(5)÷40÷R2÷H2+S(9)÷3456÷R(4) ÷H(4→A:S(3) ÷6÷R÷H-S(7)÷336÷R(3)÷H(3)+S(11)÷42240÷R(5) ÷H(5→B:90S2÷Π÷R÷H→K:RH÷S→M

  1. 4. 交点法反算子程序(ZX)

程序名:ZX

0→D:Do:Z+D→Z:Prog“Z”:Pol(X-I,Y-J+.000000001:J-Z[2]→J:Isin(J→S:Icos(J→D: If M≠0:Then Pol(M-WS,D:JMΠ÷180→D:IfEnd: LpWhile Abs(D)>0.001:Z+D→Z:S→D

5.线路选择子程序(线路选择输0时。则输曲线参数(QX)

程序名:QX

1→A:”QX:?=0,X1=1,X2=2”?A:A→Z[3]:

If A=0:Then ”JDKM”?O:”XJ”?U:”YJ”?V:”FW”?G:”LS1”?H:“LS2”?N:“JDZJ”?P:?R:IfEnd

6.坐标计算参数矩阵调出子程序(F)

程序名:F

Mat F[1,1]→O: Mat F[1,2]→U: Mat F[1,3]→V: Mat F[1,4]→G: Mat F[1,5]→H: Mat F[1,6]→N: Mat F[1,7]→P: Mat F[1,8]→R

7:极坐放样计算程序(计算放样点至置仪点方位角及距离)

程序名:JS

Z[4]→K:Z[5]→L:Pol(X-K, Y-L+.0000000001): J<0=>J+360→J: Int(J)+0.01Int(60Frac(J))+0.006Frac(60Frac(J)) →J: Fix 4:” FWJ=”: Locate 6,4,J:

Fix 3:”   S=”:Locate 6,4,I◢

8.数据子程序(根据自己标段设计数据修改红色部分)

程序名:X1(坐标计算要素程序,暂例子只给二条线路参数)

 

Z[3]=0=>Return:Z[3]=1=>Goto 1:Z[3]=2=>Goto 2:

LbI 1:If  Z≤122269.856:Then [[121656.952, 2603848.019, 508351.147, 98°53′22.6″,660,300, 41°47′44.1″, 1415.097]]→Mat F: Prog”F”: Return: IfEnd:

If Z≤125115.9:Then [[123984.982, 2601974.464, 509885.441, 140°41′06.8″,700,400, -39°31′43.7″,2800]]→Mat F: Prog”F”: Return:IfEnd:

LbI 2:If  Z≤396.166:Then [[213.698, 2600569.493, 514256.323, 238°49′17.1″,107.584,120.474, 64°39′40″, 250]]→Mat F: Prog”F”: Return: IfEnd:

说明:If Z《交点HZ点桩号(或者直线段桩号):Then[[交点桩号,交点X坐标,交点Y坐标,前交点至止交点方位角,交点前段缓和曲线长度,交点后段缓和曲线长度,交点转角,圆半径]] →Mat F: Prog”F”: Return: IfEnd:

注:转角分正负,左偏为负,右偏为正.加粗O为子母..Z[2]值为所计算点切线方位角。

输入部分:

1、"A:X,Y=1,KM,D=2"?  选择正反算,输1为正算,输2为反算;

2、XZ? YZ?输入置仪点X、Y坐标

3、”QX:?=0,X1=1,X2=2”? 选择手工输入参数及调入参数,输0则手工输入交点线元参数,输1则调入子程序X1中第一条线路,输入计算第二条线路。

4、PJ?  路线方向中线向右夹角,默认为90度;

5、JDKM?XJ?YJY?FW?LS1?LS2?JDZJ?R?分别输入:交点桩号,交点X坐标,交点Y坐标,前交点至止交点方位角,交点前段缓和曲线长度,交点后段缓和曲线长度,交点转角,圆半径

6、KM? 输入计算段任意点桩号(主程序中输-1,返回选择正反算,输-2,返回选择输入选择线路或输入参数.

7、D? 距中桩距离,左负,右正,中桩输0。

输出部分:

1、X=***    正算时,计算得出的所求点的X坐标
2、 Y=***    正算时,计算得出的所求点的Y坐标

3、FWJ=***   正算时,计算得出的所求点的至置仪点方位角(显示125.3258即是125度32分58秒)

4、S=***   正算时,计算得出的所求点的至置仪点距离

5、KM=***    反算时,计算得出的所求点的里程
6、D=***    反算时,计算得出的所求点的边距

 

附X1子程序中数据的设计图纸。(红色部分)

桩  号 坐     标
N (X) E (Y)
EK0+000 2600680.126 514439.154
EK0+020 2600669.814 514422.018
EK0+040 2600659.759 514404.730
EK0+060 2600650.222 514387.151
EK0+080 2600641.480 514369.166
EK0+100 2600633.822 514350.694
EK0+107.584 2600631.266 514343.554
EK0+120 2600627.548 514331.709
EK0+140 2600622.808 514312.284
EK0+160 2600619.636 514292.543
EK0+180 2600618.051 514272.611
EK0+200 2600618.064 514252.616
EK0+220 2600619.675 514232.687
EK0+240 2600622.874 514212.949
EK0+260 2600627.639 514193.531
EK0+275.692 2600632.456 514178.599
EK0+280 2600633.941 514174.555
EK0+300 2600641.667 514156.112
EK0+320 2600650.555 514138.199
EK0+340 2600660.338 514120.757
EK0+360 2600670.765 514103.691
EK0+380 2600681.599 514086.879
EK0+396.166 2600690.498 514073.383
 

 

分享到 :