配色: 字号:
fx-5800p 全线坐标放样(交点法)正反算程序
2015-01-31 | 阅:  转:  |  分享 
  
fx-5800p全线坐标放样(交点法)正反算程序

【QXFYZFS】(主程序名)

20→Dim?

〝1.ZS.2.FS〞?J:J≠1?Goto2:90→H:〝X(CZ)〞?U:〝Y(CZ)〞?V?

Lbi1:〝Kp=〞?P:〝Z-Y+〞?D:Prog〝SUJUKU〞:M+O→N:Prog〝SUBA〞:Prog〝SUBB〞:F-Dcos(Z-H)→F:G-Dsin(Z-H)→G:〝X=〞〝Y=〞〝〞Z?DMS◢

U=0?Goto1:Pol(F-U,G-V):J<0?360+J→J:〝DH〞〝〞J?DMS◢Goto1?

Lbi2:〝GAILUE(Kp=)〞?P:〝X=〞?U:〝Y=〞?V?

Lbi3:Prog〝SUJUKU〞:M+O→N:Prog〝SUBA〞:Prog〝SUBB〞:Z-90→A:

(V-G)cos(A)-(U-F)sin(A)→H:IfAbs(H)>0.0001:ThenH+P→P:Goto3:IfEnd:(G-V)÷sin(A)→D〝=〞〝〞Goto2?

使用说明:

20→Dim:扩展额外变量寄存器

〝1.ZS.2.FS〞:选择正反算(正算=1反算≠1)

90→H:边桩与线路正交

〝X(CZ)〞〝Y(CZ)〞:输入测站点X、Y坐标值

〝Kp=〞、〝Z-Y+〞:输入所求点桩号和距中(左-右+中0)

〝GAILUE(Kp=)〞:反算时,输入所求点概略桩号

〝X=〞〝Y=〞:反算时,输入所求点X、Y坐标值

〝X=〞〝Y=〞〝〞:显示所求点X、Y值及所求点切线方位角。

〝DH〞〝〞:显示所求点放样距离及放样方位角(放样)。

10.〝〞〝〞:反算时,显示所求点桩号及距中(左-右+中0)。〝U=0?Goto1〞〝〞〝〞【SUBA】子程序A

IfO<0:Then-1→W:Else1→W:IfEnd:WO→A?

B2÷24÷R-B^(4)÷2688÷R^(3)+B^(6)÷506880÷R^(5)→Z[6]:

C2÷24÷R-C^(4)÷2688÷R^(3)+C^(6)÷506880÷R^(5)→Z[7]:

B÷2-B^(3)÷240÷R2+B^(5)÷34560÷R^(4)→Z[8]

C÷2-C^(3)÷240÷R2+C^(5)÷34560÷R^(4)→Z[9]

Z[8]+(R+Z[7]-(R+Z[6]cos(A))÷sin(A)→S:

Z[9]+(R+Z[6]-(R+Z[7]cos(A))÷sin(A)→T:

ARπ÷180+(B+C)÷2→L:L-B-C→Q:

(R+(Z[6]+Z[7])÷2)cos(A÷2)-R→E:

K-S→Z[1]:Z[1]+B→Z[2]:Z[1]+L-C→Z[4]:Z[4]+C→Z[5]



【SUBB】子程序B

X–Scos(M→F:Y-sin(M→G:P>Z[1]?Goto1:X→F:Y→G:

P-K→Z[16]:0→Z[17]:M→A:M→Z:Goto5?

Lbl1:P>Z[2]?Goto2:P-Z[1]→L:L→Z[14]:B→Z[15]:

Prog〝SUBC〞:WZ[17]→Z[17]:M→A:M+90WL(BRπ→Z:Goto5:Lbl2:P>Z[4]?Goto3:P-Z[1]→L:90(2L-B)÷R÷π→A:Rsin(A)+Z[8]→Z[16]:W(R(1-cos(A))+Z[6]→Z[17]:M+WA→Z:M→A:Goto5:

Lbl3:P>Z[5]?Goto4:Z[5]-P→L:L→Z[14]:C→Z[15]:

Prog〝SUBC〞:X+Tcos(N→F:Y+Tsin(N→G:-Z[16]→Z[16]:

WZ[17]→Z[17]:N→A:N-90WL2÷(CRπ→Z:Goto5:

Lbl4:X→F:Y→G:P-Z[5]+T→Z[16]:0→Z[17]:N→A:N→Z:Goto5:

Lbl5:F+Z[16]cos(A)-Z[17]sin(A→F:G+Z[16]sin(A)+Z[17]cos(A→G:

Z<0?360+Z→Z



【SUBC】子程序C

IfZ[14]=0:Then0→Z[16]:0→Z[17]:ElseZ[14]-Z[14]^(5)

÷40÷(RZ[15])2+Z[14]^(9)÷3456÷(RZ[15])^(4)→Z[16]:

Z[14]^(3)÷6÷(RZ[15])-Z[14]^(7)÷336÷(RZ[15])^(3)+Z[14]^(11)÷42240÷(RZ[15])^(5)→Z[17]:IfEnd

【】IfP<1000:Then522.056→K:5683.105→X:1447.559→Y:183°17°55.68°→M:-19°37°25.5°→O:2500→R:0→B:0→C:Return:IfEnd?

IfP<2000:Then1182.2→K:5317.799→X:868.262→Y:337°0°1.8°→M:10^(-50)→O:1→R:0→B:0→C:Return:IfEnd?

IfP<3000:Then……0→B:0→C:Return:IfEnd?

1182.2→K”。

输入(X、Y)坐标值、“M”为直线方位角:如上数据库中“337°0°1.8°→M”。

“O”为假设道路转角(无穷小):如上数据库中“10^(-50)→O”。

假设半径R为1,如上数据库中“1→R”。“B、C”分别输为“0”。

如有两个或两个以上线路桩号重合时,只需改变桩号“公里”值加以区别,(如上数据库中“k”交点桩号、“P”每段终点桩号及程序执行所求点桩号都做相应改变)。

此方法也可作为处理道路“断链”的方法:把“断链”后看做另一段,如把“断链”后桩号加“10”公里等。

当线路方位角=90°、270°时,线路方位角应加上0.1〞。

献花(0)
+1
(本文系喜读770首藏)