公路逐桩坐标计算程序
(苏畅改进版) 2008年8月16日 (可以计算对称、不对称缓和曲线) Prog”DATA” (数据库子程序) Prog”sub1” (测站坐标输入子程序) Lb1 0 Z=5Z-为每段线路交点数) V=0 (V-为扩展变量位置数减1 W=V+2:Fixm {KB}:KB”-ZB YB” Lb1 1 K>Z[W+5Z+4]=>W=W+1:Goto 1⊿ (判断桩号在哪个交点范围,就是该交点曲线起点至下一交点曲线起点) S=K-Z[W+5Z+3] (计算该桩号与曲线起点的距离) R=Z[W+2Z+2]:L=Z[W+3Z+2]:E=Z[W+4Z+2] (读取该交点曲线要素R、Ls1 、Ls2) Pol(Z[W]-Z[W-1],Z[W+Z+2]-Z[W+Z+1]) (计算该交点与下一交点直线方位角) J<0=>J=J+360⊿ A=J Pol(Z[W-1]-Z[W-2],Z[W+Z+1]-Z[W+Z]) (计算该交点与上一交点直线方位角) J<0=>J=J+360⊿ C=A-J:A=J (计算偏角) W=V+2=>Goto2⊿ (如果桩号在起点与第一交点曲线起点之间,则转 Lb1 2 ) I=Abs(tan(c÷2)) M=L÷2-L^3÷240R^2:N=E÷2-E^3÷240R^2 P=L^2÷24÷R Q= E^2÷24R D=AbsC M=(R+Q-(R+P)Cos D)÷Sin D+M (计算切线长Th1) Q=(R+P-(R+Q)Cos D)÷Sin D+N (计算切线长Th2) N=πRAbsC÷180+(L+E)÷2
(计算圆曲线长Ly) X=Z[W-1]-McosA Y=Z[W+Z+1]-MsinA M=Z[W-1]+Qcos(A+C) V=Z[W+Z+1]+Qsin(A+C) Q=AbsC÷C S≤L=>P=0:Goto3⊿ (如果桩号在第一缓和曲线内,则转 Lb1 3) S≤N-E=>S=S-L:Goto4⊿(如果桩号在圆曲线内,则转 Lb1 4) S≤N=>S=N-S Q=-Q:A=A+C-180:X=M:Y=V:L=E:P=180:Goto3
⊿ (如果桩号在第二缓和曲线内,则转 Lb1 3) P=A+C:S=S-N:D=M+ScosP:F=V+SsinP Goto6 (如果桩号在直线内,则转 Lb1 6) Lb1 2 P=A+C D=Z[W-1]+ScosP F=Z[W+Z+1]+SsinP:Goto6 Lb1 3 I=S-S^5÷40R^2÷L^2+S^9÷3456R^4÷L^4 J=Q(S^3÷6RL-S^7÷336R^3÷L^3) P=P+A+90QS^2÷πRL:Goto5 Lb1 4 M=90(2S+L)÷πR I=RsinM+L÷2-L^3÷240R^2 J=Q(L^2÷24R+R(1-cosM)) P=A+QM Lb1 5 D=X+IcosA-jsinA:F=Y+JcosA+IsinA Lb1 6 X″X″=D+Bcos(P+90)◢ (结果显示X坐标) Y″Y″=F+Bsin(P+90)◢ (结果显示Y坐标) Prog ″P″ (坐标计算子程序,结果显示测站到放样点的方位角和距离) Goto 0
以上是坐标计算程序,括号内是程序计算的大致原理及说明,中间部分为直线、圆曲线、缓和曲线计算的各种公式,大家也知道,书上也有。 该程序是最基本的,如再加几条语句就可以处理断链。 该程序还需变量输入,把整条线路曲线要素一次输入到4800中,就可以计算线路任意中、边桩坐标。
扩展变量设置表
三、使用说明: 1、上述程序代码中“()”里为说明,“{}”里为程序运行时显示的数值,“?”表示计算具体线路时需输入到程序中的值。 Z-为每段线路交点数。 V-为扩展变量位置数减1。如以前没有使用过扩展变量,则程序第1个扩展变量从Z[1]开始,就是V=0,输入到程序中。如以前使用了n个扩展边量,则程序第1个扩展变量从Z[n+1]开始,就是V=n,输入到程序中。 2、按扩展变量设置表顺序将曲线要素输入到扩展变量中,如果线路中无缓和曲线,则该段LS为0,也要输入到扩展变量中。线路曲线起终点桩号为:线路起点、ZH点(如果无缓和曲线则为ZY点)、线路终点桩号。 3、扩展变量输入前,应按4800说明书,先将扩展变量的数目设置至够用的数目,如150个。 4、代码中有着重符号的字母表示要从计算器中调出,整体输入,见4800说明书。 5、多条线路的使用方法: 根据第1条线路的交点数计算出扩展变量的使用数量,既6Z+6个,比如交点为5个则使用扩展变量为36个,因为是第1条线路以前无使用扩展变量,所以输入Z=5,V=0,然后根据第2条线路的交点数计算出扩展变量的使用数目,比如第2条线路交点为6个,则Z=6,因已使用了36个扩展变量,所以第2条线路的扩展变量从第37个开始,即V=37-1=36,依此类推,可以同时输入数条线路数据,使用时把Z、V的数据修改成要计算线路的Z,V就可以了。
附其他子程序: SUB1 (子程序) H”X0”G”Y0”:I=0:J=0
P (子程序) Norm Prog“SUB1” Fix 3:Pol(X-H,Y-G):I”HD=” ◢ J<0=>J=J+360⊿ J=Int
J+.01Int(60Frac J)+.006Frac (60Frac J) Fix 4 J“HA=”◢
XY (坐标计算子程序) Prog“SUB1” C”HD”D”HA” X=S+Rec(C,D) ◢ Y=G+J◢
DATA (数据库子程序) Defm 36 Z[1]=89295.096 Z[2]=88950.455 Z[3]=88193.448 Z[4]=87059.143 Z[5]=86111.693 Z[6]=85507.241 Z[7]=85276.834 Z[8]=59160.460 Z[9]=59166.770 Z[10]=58709.660 Z[11]=59031.890 Z[12]=58206.705 Z[13]=58416.463 Z[14]=58355.228 Z[15]=950.000 Z[16]=650.000 Z[17]=650.000 Z[18]=600.000 Z[19]=520.000 Z[20]=140.000 Z[21]=150.000 Z[22]=160.000 Z[23]=160.000 Z[24]=130.000 Z[25]=160.000 Z[26]=150.000 Z[27]=160.000 Z[28]=130.000 Z[29]=160.000 Z[30]=32218.492 Z[31]=32218.492 Z[32]=33074.377 Z[33]=34145.335 Z[34]=35346.241 Z[35]=36121.572 Z[36]=36575.340 扩展变量设置表
程序名称:JD COMP
“读入缓和曲线计算初始数据” K≥1467.71=>K≤2239=>Goto1⊿⊿ K<2000=> Goto2⊿ Lbl 1:Q=1:A=17°6′30.9″R=2583.323:C=0:F=1856.291:M=7063.351: N=3346.948:Z=134°24′24.8″ Prog”S” Lbl 2:Q=1:A=11°47′58.2″R=3300:C=0:F=1208.318: M=8517.706:
N=3934.392:Z=187°31′14.3″ Prog”S”
程序名称:SQ19“读入竖曲线计算初始数据” I=-1:A=-0.035:B=-0.02:C=1970:F=270.79:R=35000:T=262.5:
Prog”SQX”
程序名称:X “坐标正算:已知A点坐标,A点到B点方位角及距离,算B点坐标” Prog”A”:X“HD”Y“HA” I“X”=S + Rec(X,Y◢ J“Y”=G + J
程序名称:P “坐标反算:已知A、B两点坐标,算A->B的方位角” Prog “A”:XY Pol(X-S,Y-G:J<0=>J=360+J△I“HD=”◢ J“HA=”◢
程序名称:P1 P2-P “双点后方交会” S“XA”G“YA”X“XB”Y“YB”ABC Prog “P”:D“HD1”=√(A2+B2-2ABCOS
C◢ D=Sin-1(B SIN C÷D:I“X”=S+
Rec(A,J+D◢ J“Y”=G+J◢ S=I;G=J:Prog “P”
程序名称:S1
“斜距改正计算” Lbl 1:{XY}:X“S”Y“VA”:Y= SIN-1(0.18 Sin Y÷X)+Y J“ 〈+-〉”=I-Abs(X Sin Y◢ J“△H”=X Cos Y:J“H”=Z[1]+ X Cos Y◢ {J}:J“Goto”:J=0=>Goto
1⊿
程序名称:A
“输入测站数据” S“X0”G“Y0”:I=0:J=0
程序名称:1
“输入测站点高程” Z[1]=测站点高程+仪器高-觇标高 “如:Z[1]=270.654+1.548-1.30
程序名称:GJ
“输入相应钢筋直径可计算每米钢筋重量” P=0.617D2÷100
程序名称:AREA
“多边形面计算” NA“X0”B“Y0”:S=0 Lbl 1:{CD}:C“X”D“Y”:S=S+AD-BC:A=C:B=D:Dsz N:Goto 1: S=Abs S÷2◢
程序名称:Q
“边坡开挖线计算” A“L1”B“H1”C“L2”D“H2”E“PL”F“PH” M=(D-B)÷(C-A:L“QL”=(D-F-MC+KE)÷(K-M◢ H“QH”=F+K(L-E◢
程序名称:= >XYZ “从测站测设未知点坐标” X“X0”Y“Y0”Z“Z0”A“P0”B“P1” Lbl 0:{CDE}:C“HA”D“S”E“VA”:J=0:E=Sin-1(0.18 Sin
E÷D)+E F“HD”=Abs (D Sin E ◢ G=Z+A-B+D cos E:I“X”=X+Rec(F,C◢ J“Y”=Y+J◢ G“Z”=G◢ Goto 0
程序名称:SQX
“竖曲线计算主程序” IA“⊿I1”B“⊿I2”C“BP”F“HP”RT D=C-T:E=C+T Lbl 0:{K} KD= >X=C-K:N=A:Goto 1⊿ K≥E= >X=C-K:N=B:Goto 1⊿ K≤C= >X=K-D:Y=C-K:N=A:Goto 2:≠>X=E-K:Y=C-K:N=B:Goto 2⊿ Lbl 1:H“HS”=F-XN◢ Goto 0 Lbl 2:H“HS”=F-YN-I X2÷2÷R◢ Goto 0
程序名称:S
“单圆对称缓和曲线计算主程序” Defm 3:Prog“1”:Prog“A” B= J=0:Z[2]=M+Rec(T,Z-180):Z[3]=N+J Lbl 0:{KP}:KP“BZ” K≤F-T=>U=K-F+T:D=0:E=0:Goto 2⊿ K≤H=>D=K-F+T: Goto 1⊿ K<V=>E=B+180(K-H)÷(πR):U=R Sin E+C÷2-C^3÷R2÷240:D=C2÷24÷R+R(1-Cos E): Goto 2⊿ K≤O=>D=O-K:Goto 1⊿ K≥O=>D=T+K-O:U=T+D Cos A:D=D Sin A:E=A:Goto 2⊿ Lbl 1:W=RC:E=180D2÷(2πW:U=D-D^5÷40÷W2:D= D^3÷6÷W-D^7÷(336 W^3):V≤K=>E=A-E:W=U:U=T+(T-W-D tan A)Cos A:D=D Cos A+(T-W)Sin A⊿Goto 2 Lbl 2:Q<0=>U=U+P
Sin E:D=D-P Cos E:≠> U=U-P Sin E:D=D+P Cos E⊿ X=U Cos Z-DQ Sin Z+Z[2]◢ Y=U Sin Z+ DQ Cos
Z+Z[3]◢ Prog“P”:{J}:J“GoOn”:J=0=>
Goto 0⊿ Prog“S
CASIO fx-4800P 施工放样计算程序 编制:苏畅
程序名称:JD COMP “读入缓和曲线计算初始数据” K≥1467.71=>K≤2239=>Goto1⊿⊿ K<2000=> Goto2⊿ Lbl 1:Q=1:A=17°6′30.9″R=2583.323:C=0:F=1856.291:M=7063.351: N=3346.948:Z=134°24′24.8″ Prog”S” Lbl 2:Q=1:A=11°47′58.2″R=3300:C=0:F=1208.318: M=8517.706: N=3934.392:Z=187°31′14.3″ Prog”S”
程序名称:SQ19“读入竖曲线计算初始数据” I=-1:A=-0.035:B=-0.02:C=1970:F=270.79:R=35000:T=262.5: Prog”SQX”
程序名称:P1 P2-P “双点后方交会” S“XA”G“YA”X“XB”Y“YB”ABC Prog “P”:D“HD1”=√(A2+B2-2ABCOS C◢ D=Sin-1(B SIN C÷D:I“X”=S+ Rec(A,J+D◢ J“Y”=G+J◢ S=I;G=J:Prog “P”
程序名称:S1 “斜距改正计算” Lbl 1:{XY}:X“S”Y“VA”:Y= SIN-1(0.18 Sin Y÷X)+Y J“ 〈+-〉”=I-Abs(X Sin Y◢ J“△H”=X Cos Y:J“H”=Z[1]+ X Cos Y◢ {J}:J“Goto”:J=0=>Goto 1⊿
程序名称:A “输入测站数据” S“X0”G“Y0”:I=0:J=0
程序名称:GJ “输入相应钢筋直径可计算每米钢筋重量” P=0.617D2÷100
程序名称:AREA “多边形面计算” NA“X0”B“Y0”:S=0 Lbl 1:{CD}:C“X”D“Y”:S=S+AD-BC:A=C:B=D:Dsz N:Goto 1: S=Abs S÷2◢
程序名称:Q “边坡开挖线计算” A“L1”B“H1”C“L2”D“H2”E“PL”F“PH” M=(D-B)÷(C-A:L“QL”=(D-F-MC+KE)÷(K-M◢ H“QH”=F+K(L-E◢
程序名称:= >XYZ “从测站测设未知点坐标” X“X0”Y“Y0”Z“Z0”A“P0”B“P1” Lbl 0:{CDE}:C“HA”D“S”E“VA”:J=0:E=Sin-1(0.18 Sin E÷D)+E F“HD”=Abs (D Sin E ◢ G=Z+A-B+D cos E:I“X”=X+Rec(F,C◢ J“Y”=Y+J◢ G“Z”=G◢ Goto 0
程序名称:SQX “竖曲线计算主程序” IA“⊿I1”B“⊿I2”C“BP”F“HP”RT D=C-T:E=C+T Lbl 0:{K} KD= >X=C-K:N=A:Goto 1⊿ K≥E= >X=C-K:N=B:Goto 1⊿ K≤C= >X=K-D:Y=C-K:N=A:Goto 2:≠>X=E-K:Y=C-K:N=B:Goto 2⊿ Lbl 1:H“HS”=F-XN◢ Goto 0 Lbl 2:H“HS”=F-YN-I X2÷2÷R◢ Goto 0
程序名称:PQX “读入缓和曲线计算初始数据” W=1:A=17°6′30.9″R=2583.323:C=0:F=1856.291:M=7063.351: N=3346.948:Z=134°24′24.8″
W----曲线转向左偏为-1,右偏为1
A-----偏角值
R-----半径
C-----缓和曲线长
F-----JD桩号
M,N-----分别为JD坐标X,Y
Z-----ZH->JD的方位角
程序名称:HHQX “缓和曲线计算主程序”
Prog“PQX” B=90C÷π÷R:P=C2÷24÷R:Q=C÷2-C^3÷(240R2):T=Q+(R+P)Tan(A÷2):L=ARπ÷180+C
H=F-T+C:O=F-T+L:V=O-C J=0:M=M+Rec(T,Z-180):N=N+J Lbl 0:{KL}:KL“-ZB YB” K≤F-T=>U=K-F+T:D=0:E=0:Goto 2⊿
(桩号在上一直线内)
K≤H=>D=K-F+T: Goto 1⊿
(桩号在第一缓和曲线内) K<V=>E=B+180(K-H)÷(πR):U=R Sin E+Q:D=P+R(1-Cos E): Goto 2⊿
(桩号在圆曲线内)
K≤O=>D=O-K:Goto 1⊿
(桩号在第二缓和曲线内) K≥O=>D=T+K-O:U=T+D Cos A:D=D Sin A:E=A:Goto 2⊿
(桩号在下一直线内)
Lbl 1:E=180D*D÷(2πRC:U=D-D^5÷40÷R2÷C2:D= D^3÷(6RC)-D^7÷(336 R^3C^3):V≤K=>E=A-E:I=U:U=T+(T-I-D tan A)Cos A:D=D Cos A+(T-I)Sin A⊿Goto 2
(缓和曲线坐标计算)
Lbl 2:W<0=>U=U+L Sin E:D=D-L Cos E:≠> U=U-L Sin E:D=D+L Cos E⊿
(边桩坐标计算)
X=U Cos Z-DW Sin Z+M◢
Y=U Sin Z + DW Cos Z+N◢
(大地坐标系转换)
[Prog“P”]
(加入此子程序可以显示测站至前视点的距离和方位角)
Goto 0 (再次转入加桩计算)
程序名称:A “子程序”
S”X ”G“Y”: I=0: J=0
程序名称:X “坐标正算:已知A点坐标,A点到B点方位角及距离,算B点坐标” Prog”A”:X“HD”Y“HA” I“X”=S + Rec(X,Y◢ J“Y”=G + J
程序名称:P “坐标反算:已知A、B两点坐标,算A->B的方位角”
Norm
Prog “A”:XY
Fix 3
Pol(X-S,Y-G:I“HD=”◢
J<0=>J=360+J△J=Int J+.01Int(60Frac J)+.006Frac (60Erac J)
Fix 4
J“HA=”◢
苏畅 2008年8月16日
|
|