• 5800交点正反算坐标(可计算不对称缓和曲线)


      

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

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

    1. 主程序

    程序名: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

    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

    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

    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  Z122269.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 Z125115.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  Z396.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

  • 相关阅读:
    FASTRTPS(publisher-subscriber)实践及问题
    路网编辑器技术预研
    Go语言面试题
    从命令行管理文件(二)
    如何使用责任链默认优雅地进行参数校验?
    【SemiDrive源码分析】系列文章链接汇总(全)
    qian‘kun微服务配置vue3.2+ts+vite子应用教程
    振弦采集模块AABB 通讯协议
    JoySSL-新兴国产品牌数字证书
    Matlab论文插图绘制模板第121期—图中图
  • 原文地址:https://blog.csdn.net/s13596191285/article/details/125596484