说明:本程序适用于卡西欧计算器 CASIO fx-5800P,可对全线贯通坐标正反算、竖曲线高程计算。该程序可计算任意线型,包含(直线、圆曲线、缓和曲线、卵形曲线)等,还可以能通过坐标反推该点里程和距中线距离,适用测量员专用。
主程序名:ABCYT
第1步 Deg:Fix3:10→DimZ
第2步 Lbl 3:"1.DK=>XY":"2.XY=>DK":"Q"?W:"DK"?S:Prog"ABCYTSJ":If P=0:Then10^(45)→P:IfEnd:IfR=0:Then 10^(45)→R:IfEnd
第3步 1÷P→C:(P-R)÷(2HPR)→D:180÷π→E:If W=1:ThenGoto 1:Else Goto2:IfEnd
第4步 Lbl 1:"W"?Z:"α"?N:Abs(S-O)→W:Prog"ABCYTZ"
第5步 Cls:"F=":Locate 3,1,F°:"X=":Locate3,2,X:"Y=":Locate 3,3,Y◢
第6步Prog"ABCYTSQX":Cls:"H=":Locate3,1,H◢
第7步 1→W:90→N:Goto 3
第8步 Lbl 2:?X:?Y:X→I:Y→J:Prog"ABCYTF":O+W→S
第9步Cls:"K=":Locate 3,1,S:"S=":Locate3,2,Z◢
第10步 2→W:Goto 3
正算子程序名:ABCYTZ
第1步0.1739274226→A:0.3260725774→B:0.0694318442→K:0.3300094782→L
第2步 1-L→F:1-K→M
第3步U+W×(A×cos(G+Q×E×K×W×(C+K×W×D))+B×cos(G+Q×E×L×W×(C+L×W×D))+B×cos(G+Q×E×F×W×(C+F×W×D))+A×cos(G+Q×E×M×W×(C+M×W×D)))→X
第4步V+W×(A×sin(G+Q×E×K×W×(C+K×W×D))+B×sin(G+Q×E×L×W×(C+L×W×D))+B×sin(G+Q×E×F×W×(C+F×W×D))+A×sin(G+Q×E×M×W×(C+M×W×D)))→Y
第5步G+Q×E×W×(C+W×D)→F:F+N→Z[1]
第6步X+Z×cos(Z[1])→X:Y+Z×sin(Z[1])→Y
反算子程序名:ABCYTF
第1步 Lbl 2:(S-O)→W: 0→Z: Prog "ABCYTZ":F-90→Z[9]:(J-Y)×cos(Z[9])-(I-X)×sin(Z[9])→Z[10]
第2步 If Abs(Z[10])>0.001:Then S+Z[10]→S:Goto 2:Else Goto 1:IfEnd
第3步 Lbl 1:(Y-J)÷sin(Z[9])→Z
数据库名:ABCYTSJ
第1步 Goto1
第2步Lbl 1:If S<7586.707Or S>13346.96:ThenCls:Locate 2,2,"PQX":Locate4,3,"CHAOXIAN":Locate 10,4,"→Stop"◢
第3步Stop:IfEnd
第4步 Lbl 1:IFS<7946.707:Then 98°56′56″→G:7586.707→o:3378605.445→U:453648.704→V:0→P:4500→R:360→H: 1→Q:Return:IfEnd
第5步 Lbl 1:IFS<11766.03:Then 101°14′26″→G:7946.707→o:3378544.714→U:454003.518→V:4500→P:4500→R:3819.323→H: 1→Q:Return:IfEnd
第6步 Lbl 1:IFS<12126.03:Then 149°52′11″→G:11766.03→o:3376389.890→U:457018.324→V:4500→P:0→R: 360→H: 1→Q:Return:IfEnd
第7步 Lbl 1:IFS<13346.96:Then 152°09′41.68″→G:12126.03→o:3376073.846→U:457190.654→V:0→P:0→R:1220.93→H:0→Q:Return:IfEnd
第n步……………………………………………………
数据输入说明:
第1步 Goto1
第2步Lbl 1:If S<本条线路起点里程S>本条线路止点里程Cls:Locate 2,2,"PQX":Locate4,3,"CHAOXIAN":Locate 10,4,"→Stop"◢
第3步Stop:IfEnd
第4步Lbl 1:If S<本线元止点里程:Then线元起点切线方位角→G:线元起点桩号→O:线元起点坐标X→U:线元起点坐标Y→V:线元起点半径(直线为0、曲线为半径)→P:线元止点半径(直线为0、曲线为半径)→R:线元长度→H:线元转向(左转为-1、右转为1、直线为0)→Q:Return:IfEnd
第n步Lbl 1:每增加一行则为增加一个线元要素。
竖曲线子程序名:ABCYTSQX
第1步 S→C:Prog "ABCYTSQXSJ":A→Z[1]:B→Z[2]:C→Z[3]:If (Z[1]-Z[2])<0:Then 1→Z[8]:Else -1→Z[8]:IfEnd
第2步R×Abs(Z[1]÷100-Z[2]÷100)→L:L÷2→T:T^(2)÷2÷R→E:K-T→Z[4]:Z[4]+L→Z[5]
第3步If Z[3]≤Z[4]:Then H-(K-Z[3])×Z[1]÷100→X:Goto 3:ElseIf Z[3]≥Z[4]And Z[3]<K:ThenH+(Z[3]-K)×Z[1]÷100→Z[6]:(Z[3]-Z[4])^(2)÷2÷R→Z[7]:Z[6]+Z[7]×Z[8]→X:Goto3:Else IfZ[3]=K:Then H+E×Z[8]→X:Goto 3:ElseIf Z[3]>K And Z[3]≤Z[5]:Then H+(Z[3]-K)×Z[2]÷100→Z[6]:(Z[5]-Z[3])^(2)÷2÷R→Z[7]:Z[6]+Z[7]×Z[8]→X:Goto3:Else If Z[3]≥Z[5]:ThenH+(Z[3]-K)×Z[2]÷100→X:IfEnd:Lbl3:X→H:Return
竖曲线数据库:ABCYTSQXSJ
第1步Goto 1
第2步Lbl 1:If S<5000.000Or S>11211.997:ThenCls:Locate 2,2,"SQX":Locate4,3,"CHAOXIAN":Locate 10,4,"→Stop"◢
第3步Stop:IfEnd
第4步Lb1 1:If S<5900.000:Then 5800.000→K:323.527→H:20000→R:-0.5800→A:0.4200→B:Return:IfEnd
第5步Lb1 1:If S<8982.000:Then 8910.000→K:336.589→H:20000→R:0.4200→A:-0.3000→B:Return:IfEnd
第6步Lb1 1:If S<11211.997:Then 11187.000→K:329.758→H:20000→R:-0.3000→A:-0.5500→B:Return:IfEnd
第n步……………………………………………………
数据输入说明:
第1步Goto 1
第2步Lbl 1:If C<本条线路竖曲线起点里程C>本条线路竖曲线止点里程nCls:Locate 2,2,"SQX":Locate4,3,"CHAOXIAN":Locate 10,4,"→Stop"◢
第3步Stop:IfEnd
第4步Lbl 1:If C<本条竖曲线圆直桩号或止点桩号:Then 变坡点桩号→K:变坡点高程→H:竖曲线半径→R:第一纵坡(百分数单位)→A:第二纵坡(百分数单位)→B:Return:IfEnd
第n步Lbl 1:每增加一行则为增加一个竖曲线要素。
程序输入说明:
本程序中除了浅黄底色O表示为字母,其余均为数字0,输入程序时每输入完成1步则按EXE换行,需认真、仔细,子程序输入方式和主程序相同,若字体小请按住CTRL键然后再滑动鼠标滚动条进行缩放页面大小。
本程序中多数指令在FUNCTION中(2:COMPLX、3:PROG)查找。
Deg和Fix 按SHIFT再按MODE SETUP查找。
程序数据库可采用“曲线坐标计算程序VBA”自动生成fx-5800P数据库。
程序演示步骤:
《坐标正算》
运行主程序ABCYT
1.DK=>XY
2.XY=>DK
Q? 1 (输入1为坐标正算、输入2为坐标反算)
DK?= 10000(计算里程)
W?= 5(边桩偏距:左为负,右为正)
α?= 90(边桩偏角:正交为90°,斜交自拟)
F= 127°23ˊ02.02″(计算切线方位角)
X= 3377702.697(计算结果坐标X)
Y= 455855.490(计算结果坐标Y)
H= 333.319(计算竖曲线高程)
说明:按EXE键返回主程序界面。
《坐标反算》
运行主程序ABCYT
1.DK=>XY
2.XY=>DK
Q? 1 (输入1为坐标正算、输入2为坐标反算)
DK?= 10000(计算里程)
X? 3377700.567(输入反算点坐标X)
Y? 455950.689 (输入反算点坐标Y)
K= 10076.066 (反算结果里程)
S=-51.759 (反算结果偏距:负为偏左,正为偏右)
说明:按EXE键返回主程序界面。
其他说明须知:
当计算里程小于或大于数据库中指定的桩号时会提示超限显示。
如:输入里程1000会提示如下错误:
提示1:
|
PQX CHAOXIAN →Stop |
该错误表示输入的里程超出了平曲线数据库中指定的最小或最大里程。
提示2:
|
SQX CHAOXIAN →Stop |
该错误表示输入的里程超出了竖曲线数据库中指定的最小或最大里程。