5800计算器全线坐标计算放样正反算程序    

5800计算器全线坐标计算放样正反算程序    

主程序  坐标正反算
程序名称:ZBZFS
LB1  A↙
Cls : Fix 4 : 30→Dim Z :”0=ZS,1=FS”?Z ↙
If  Z=0:Then  Goto B:IfEnd↙(Z=0进入里程点坐标正算)
If  Z=1:Then  Prog”FSLCBZ “: Goto A:IfEnd↙(Z=1进入反算里程边桩)
Lb1 B  ↙
“K=”?K :(计算里程) Prog”SJK1 “:Prog”ZBFY” :Goto A↙

子程序  数据库  SJK1
IF  K<本段曲线终点里程  AND  K≥上段曲线终点里程 :THEN  本段终点里程→Z[1] : 上段曲线终点里程→Z[2] :1→O (注:左偏曲线输入-1→O,右偏曲线输入1→O): 半径→R : 曲线偏角→A:第一缓和曲线→Z[6] : 第二缓和曲线→Z[7] : 交点 X→B :交点 Y→C : 小里程向交点方位角→E : 交点向大里程方位角→F : Prog”XLZBJSCX”:Return: IFEND↙
IF…………Prog”XLZBJSCX”:Return:IFEND(曲线段分段输入)↙

补充直线段输入如下(单独直线段)
IF K<本段直线终点里程 AND  K≥本段直线起点里程:THEN 本段直线终点里程→Z[3]:终点X→Z[16]:终点Y→Z[17]:方位角→E: Z[16]+ (K- Z[3])*COS E→Z[18]:Z[17]+ (K- Z[3])*SIN E→Z[19] : Return:IFEND

子程序坐标正算,名称:XLZBJSCX

LB1  2 ↙(曲线要素计算)
Z[6]/2- Z[6]^3/(240*R^2)+ Z[6]^5/(34560*R^4) →Z[8] ↙  (M1)
Z[7]/2- Z[7]^3/(240*R^2)+ Z[7]^5/(34560*R^4) →Z[9] ↙  (M2)
Z[6]^2/(24*R)- Z[6]^4/(2688*R^3) →Z[10] ↙  (P1)
Z[7]^2/(24*R)- Z[7]^4/(2688*R^3) →Z[11] ↙  (P2)
π*A*R/180+0.5*( Z[6]+ Z[7])→Z[25] ↙   (曲线总长)
90* Z[6]/(R*π) →Z[14] ↙    (第一缓和曲线总偏角)
90* Z[7]/(R*π) →Z[15] ↙(第二缓和曲线总偏角,可以省略)
Z[8]+(R+Z[10])TAN(A/2)-(Z[10]-Z[11] )/SIN A→Z[12]↙   (切线T1)
Z[9]+(R+Z[11])TAN(A/2)+(Z[10]-Z[11] )/SIN A→Z[13]↙   (切线T2)
B+ Z[12]*COS (E+180)→ Z[16] ↙  (ZH点X)
C+ Z[12]*SIN(E+180)→ Z[17] ↙   (ZH点Y)
Z[1]- Z[25]→Z[3] ↙       (ZH点里程)
Z[3]+ Z[6]→Z[4] ↙   (HY点里程)
Z[1]- Z[7]→Z[5] ↙   (YH点里程)
GOTO 3 ↙

LB1  3 ↙(判断里程点与曲线关系)

IF  K≤Z[3]  AND  K> Z[2] : THEN  GOTO  4 : IFEND ↙
IF  K≤Z[4]  AND  K> Z[3] : THEN  GOTO  5 : IFEND ↙
IF  K≤Z[5]  AND  K> Z[4] : THEN  GOTO  6 : IFEND ↙
IF  K≤Z[1]  AND  K> Z[5] : THEN  GOTO  7 : IFEND ↙

LB1  4 ↙(里程小于直缓点直线独立坐标)

K- Z[3] →Z[23] : 0→Z[24] : E→T : GOTO  8↙

LB1  5 ↙(第一缓和曲线独立坐标)

K- Z[3] →H ↙
H-H^5/(40*R^2* Z[6]^2)+H^9/(3456*R^4* Z[6]^4) →Z[23] ↙
H^3/(6*R* Z[6])-H^7/(336*R^3* Z[6]^3) →Z[24] ↙
90*H^2/( R*π* Z[6]) →T ↙
IF  O>0  :THEN  T +E→T : ELSE  E-T →T : T<0=>360+T→T : IFEND ↙
GOTO 8 ↙

LB1 6 ↙(圆曲线独立坐标)

K- Z[4] →H ↙
H*180/( R*π)+ Z[14]→T ↙
R*SIN T+ Z[8]→Z[23] ↙
R*(1-COS T)+ Z[10]→Z[24] ↙
IF  O>0  :THEN  T +E→T : ELSE  E-T →T : T<0=>360+T→T : IFEND ↙
GOTO 8 ↙

LB1 7 ↙(第二缓和曲线独立坐标)

Z[1] -K  →H ↙
H-H^5/(40*R^2* Z[7]^2)+H^9/(3456*R^4* Z[7]^4) →U↙
H^3/(6*R* Z[7])-H^7/(336*R^3* Z[7]^3) →V ↙
90*H^2/( R*π* Z[7]) →T ↙
Z[13]COS A+ Z[12]-U*COS A-V*SIN A→Z[23] ↙
Z[13]*SIN A-U*SIN A+V*COS A→Z[24]  ↙
IF  O>0  :THEN  F-T→T : T<0=>360+T→T : ELSE  F+T →T : IFEND ↙
GOTO  8 ↙

LLb1   8
IF  O<0  : THEN  – Z[24]→Z[24] : IFEND ↙
Z[16]+Z[23]*COS E-Z[24]*SIN E→Z[18] ↙
Z[17]+Z[23]*SIN E+Z[24]*COS E→Z[19] ↙
ReTurn↙

子程序反算里程边桩,名称:FSLCBZ
Lb1  1↙
“XK=”?X:”YK=”?Y↙(输入任意测点的XY坐标):“K=”?K (试算里程,任意输入标段内里程点即可,也可以输入大致的估算里程加快速度)↙
Lb1  2↙
Prog”SJK1 “:T-90 →W:W<0=>360+W→W:Abs((Y-Z[19])*Cos W-(X-Z[18])*Sin W)→S↙
If  S<0.0001:Then  Goto  4:Else  Goto 3:Ifend↙
Lb1  3↙
K+S→K: Prog”SJK1”:T-90 →W:W<0=>360+W→W:Abs((Y-Z[19])*Cos W-(X-Z[18])*Sin W)→Q↙
If  Q<0.0001 :Then Q→S: Goto  4:Else IF  Q<S: THEN  K+Q→K: Goto  2 :Else IF Q>S  :THEN  K-Q→K:Goto  2:Ifend:Ifend:Ifend↙
Lb1  4↙
Pol (X-Z[18],Y-Z[19]:J<0=>J+360→J:(J-T)<0=>-I→I↙
“DP(-Z+Y)=”:I◢(偏距,-左+右)
“K=”:K+S→K◢(里程)
Return↙

子程序坐标放样:ZBFY

LB1  0 ↙
“XHS=”?G(后视点X):”YHS=”?L(后视点Y):”XZJ=”?M(置镜点X):”YZJ=”?N(置镜点Y):Pol(G-M,L-N):”DH=”:I(后视距)◢J<0=>J+360→J:”FH=”:J→DMS◢(后视方位角) “QXJ=” :T◢    (计算里程点切线方位角,可以不显示)
“XI=” : Z[18] ◢   (中线X)
“YI=” : Z[19] ◢   (中线Y)
Pol(Z[18]-M,Z[19]-N):”DI=”:I(中桩放样距)◢J<0=>J+360→J:”FI=”:J→DMS◢(中桩放样方位角)
“PJ=”?P◢     (输入边桩与线路夹角,左-右+)
“PD=”?D◢    (输入边桩距)
Z[18]+D*COS(T+P) →Z[20] ↙
Z[19]+D*SIN(T+P) →Z[21] ↙
“XP=”: Z[20] ◢     (边桩X)
“YP=”: Z[21] ◢     (边桩Y)
Pol(Z[20]-M,Z[21]-N):”DP=”:I◢(边桩放样距)J<0=>J+360→J:”FP=”:J→DMS◢(边桩放样方位角)
Return↙

分享到 :