5800交点法三维坐标正反算

本程序改编自蓝星的交点法正反算程序,增加了高程部份,去掉数据库部份,正反算均能显示计算点高程、坐标、桩号,并能在计算中切换正反算模式5800交点法三维坐标正反算输入图纸中的整个标段交点...

本程序改编自蓝星的交点法正反算程序,增加了高程部份,去掉数据库部份,正反算均能显示计算点高程、坐标、桩号,并能在计算中切换正反算模式
5800交点法三维坐标正反算
输入图纸中的整个标段交点要素,输入桩号及距中桩距离正算本标段任意点坐标,及极坐标放样的方位角及距离;由输入大概桩号及实测坐标,反算准确桩号及距中桩距离。
1、 主程序
程序名:1XY-KM
LbI 0:20→DimZ:Norm 2:1→A:"1.3WZS  2.3WFS"?A:
A=1=>Goto 1:A=2=>Goto 2:
LbI 1:Prog "DX":LbI A:Prog"QX":90→B:"RJ"?B:B→Z[1]:LbI B:"K"?Z:Z= -1=>Goto 0:Z=-2=>Goto A:?D: Prog "Z":I+D×COS(Z[2]+Z[1]→X: J+D×Sin(Z[2]+Z[1]→Y: Prog"JS": Prog"H3":CLS:Fix 3: "K=":"D=":"X=":"Y=":Locate 6,1,Z:Locate 6,2,D:Locate 6,3,X:Locate 6,4,Y◢
CLS: Fix 4:” FWJ=”: “S=” “Z=”: Locate 6,1,J :Locate 6,2,I: Locate 6,3,Z[17]◢
Goto B:LbI 2:Prog"QX":LbI C: CLS:"KM"?Z:Z=-1=>Goto 0:Z=-2=>Goto 2: "XO"?X: "Y0"?Y:Prog "ZX":Prog"H3": Fix 3: "X=":"Y=""KM=""D=":Locate 6,1,X:Locate 6,2,Y:Locate 6,3,Z:Locate 6,4,D◢
CLS: “Z=”: Locate 6,1, Z[17]◢
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:”0.CHONG SHU YAO SHU,1.FU DUI YAO SHU  JS”?A:A→Z[3]:If A=0:Then ”JDKM”?O:”XJ”?U:”YJ”?V:”FW”?G:”LS1”?H:“LS2”?N:“JDZJ”?P:?R: "P1"?X:X÷100→Z[8] :"P2"?Y:Y÷100→Z[9] : "SQX-R"?X:X→Z[10]:"BPK"?X:X→Z[11] :"BPH"?X:X→Z[12]: Z[10]Abs(Z[9]- Z[8])÷2→Z[13]: Else ”JDKM=”:”XJ=”:”YJ=”:”FWJ=”: Locate 6,1,O: Locate 6,2,U :Locate 6,3,V: Locate 6,4,G◢
”LS1=”:“LS2=”:“JDZJ=”:”R=”: Locate 6,1,H: Locate 6,2,N :Locate 6,3,P: Locate 6,4,R◢
"P1=":"P2=": "SQX-R=": Locate 6,1, Z[8]: Locate 6,2, Z[9] :Locate 7,3, Z[10] ◢
"BPK=":"BPH=": Locate 6,1, Z[11]: Locate 6,2, Z[12] ◢ IfEnd↙
6.导线点子程序(DX)
程序名:DX
Z[4]→K:Z[5]→L:“XZ”?K:”YZ”?L:K→Z[4]:L→Z[5]
7.极坐放样计算程序(计算放样点至置仪点方位角及距离)
程序名:JS
X:Y: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
8.高程计算子程序
程序名:H3
If Z[9]> Z[8] :Then 1→Z[14]:Else -1→Z[14]:IfEnd↙
If Z< Z[11]:Then - Z[8]→Z[16]:Else Z[9]→Z[16]:IfEnd↙
Abs (Z[11]-Z)→Z[15]↙
If Z[15]> Z[13]:Then Z[12]+ Z[16]* Z[15]→Z[17]: Else Z[12]+ Z[16]* Z[15] + Z[14] (Z[13]- Z[15])2÷2÷Z[10]→Z[17]:IfEnd↙

说明:三维坐标计算范围为上一曲线终点至下一曲线起点
注:转角分正负,左偏为负,右偏为正.加粗O为子母..Z[2]值为所计算点切线方位角。
输入部分:
1、1.3WZS  2.3WFS  选择正反算,输1为正算,输2为反算;
2、XZ? YZ?输入置仪点X、Y坐标
3、”0.CHONG SHU YAO SHU,1.FU DUI YAO SHU  JS”? 选择手工输入参数及调入参数,输0则手工输入平面及纵面交点参数,输1则调入上次输入过的参数。
4、RJ?  路线方向中线向右夹角,默认为90度;
5、JDKM?XJ?YJY?FW?LS1?LS2?JDZJ?R?分别输入:交点桩号,交点X坐标,交点Y坐标,前交点至止交点方位角,交点前段缓和曲线长度,交点后段缓和曲线长度,交点转角,圆半径; "P1="?"P2="?"SQX-R="?"BPK="?"BPH="? 分别输入:前坡(4.5%输入4.5即可),后坡,竖曲线半径,变坡点桩号,变坡点高程
6、KM? 输入计算段任意点桩号(主程序中输-1,返回选择正反算)
7、D? 距中桩距离,左负,右正,中桩输0。
输出部分:
1、K=***     正算时,计算得出的所求点的桩号
D=*** 正算时,距中桩距离,左负,右正
X=***    正算时,计算得出的所求点的X坐标
Y=***    正算时,计算得出的所求点的Y坐标
2、FWJ=***   正算时,计算得出的所求点的至置仪点方位角(显示125.3258即是125度32分58秒)
S=***   正算时,计算得出的所求点的至置仪点距离
Z=**   正算时,计算得出的所求点的中桩高程
3、X=***    反算时,计算得出的所求点的X坐标
Y=***    反算时,计算得出的所求点的Y坐标
KM=***    反算时,计算得出的所求点的里程
D=***    反算时,计算得出的所求点的边距
Z=**   反算时,计算得出的所求点的中桩高程

  • 发表于 2018-11-05 14:14
  • 阅读 ( 41 )
  • 分类:5800

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

87 篇文章

作家榜 »

  1. admin 87 文章
  2. 胡亮 3 文章
  3. 肖肖 2 文章
  4. 12 1 文章
  5. boyving 1 文章
  6. 焦淑闻 0 文章
  7. 王家勇 0 文章
  8. 刘知远 0 文章