2024年4月8日发(作者:粘卓逸)
CASIO fx-5800P线元法坐标正反算程序
说明:本程序适用于卡西欧计算器 CASIO fx-5800P,可对全线贯通坐标正反算、竖曲线高程计算。该
程序可计算任意线型,包含(直线、圆曲线、缓和曲线、卵形曲线)等,还可以能通过坐标反推该点里程和
距中线距离,适用测量员专用。
主程序名:
ABCYT
第1步 Deg:Fix 3:10→DimZ
第2步 Lbl 3:"=>XY":"=>DK":"Q"?W:"DK"?S:Prog"ABCYTSJ":If P=0:
Then 10^(45)→P:IfEnd:If R=0:Then 10^(45)→R:IfEnd
第3步 1÷P→C:(P-R)÷(2HPR)→D:180÷π→E:If W=1:Then Goto 1:Else Goto2:IfEnd
第4步 Lbl 1:"W"?Z:"α"?N:Abs(S-O)→W:Prog "ABCYTZ"
第5步 Cls:"F=":Locate 3,1,F°:"X=":Locate 3,2,X:"Y=":Locate 3,3,Y◢
第6步Prog"ABCYTSQX":Cls:"H=":Locate 3,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=":Locate 3,2,Z◢
第10步 2→W:Goto 3
正算子程序名:
ABCYTZ
第1步 0.1739274226→A:0.3260725774→B:0.→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
第4步 Pol(X-I,Y-J):If Z<0:Then -1×I→Z:Else 1×I→Z:IfEnd
数据库名:
ABCYTSJ
第1步 Goto1
第2步 Lbl 1:If S<7586.707 Or S>13346.96:Then Cls:Locate 2,2,"PQX":Locate 4,3,"CHAOXIAN":
Locate 10,4,"→Stop"◢
第3步 Stop:IfEnd
第4步 Lbl 1:IF S<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:IF S<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:IF S<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:IF S<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":Locate 4,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:Else If Z[3]≥Z[4] And Z[3] H+(Z[3]-K)×Z[1]÷100→Z[6]:(Z[3]-Z[4])^(2)÷2÷R→Z[7]:Z[6]+Z[7]×Z[8]→X:Goto 3:Else If Z[3]=K:Then H+E×Z[8]→X:Goto 3:Else If 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:Goto 3:Else If Z[3]≥Z[5]:Then H+(Z[3]-K) ×Z[2]÷100→X:IfEnd:Lbl 3:X→H:Return 竖曲线数据库:ABCYTSQXSJ 第1步 Goto 1 第2步 Lbl 1:If S<5000.000 Or S>11211.997:Then Cls:Locate 2,2,"SQX":Locate 4,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>本条线路竖曲线止点里程n Cls:Locate 2,2,"SQX": Locate 4,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查找。 程序演示步骤: 《坐标正算》 运行主程序ABCYT =>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 =>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 该错误表示输入的里程超出了竖曲线数据库中指定的最小或最大里程。
2024年4月8日发(作者:粘卓逸)
CASIO fx-5800P线元法坐标正反算程序
说明:本程序适用于卡西欧计算器 CASIO fx-5800P,可对全线贯通坐标正反算、竖曲线高程计算。该
程序可计算任意线型,包含(直线、圆曲线、缓和曲线、卵形曲线)等,还可以能通过坐标反推该点里程和
距中线距离,适用测量员专用。
主程序名:
ABCYT
第1步 Deg:Fix 3:10→DimZ
第2步 Lbl 3:"=>XY":"=>DK":"Q"?W:"DK"?S:Prog"ABCYTSJ":If P=0:
Then 10^(45)→P:IfEnd:If R=0:Then 10^(45)→R:IfEnd
第3步 1÷P→C:(P-R)÷(2HPR)→D:180÷π→E:If W=1:Then Goto 1:Else Goto2:IfEnd
第4步 Lbl 1:"W"?Z:"α"?N:Abs(S-O)→W:Prog "ABCYTZ"
第5步 Cls:"F=":Locate 3,1,F°:"X=":Locate 3,2,X:"Y=":Locate 3,3,Y◢
第6步Prog"ABCYTSQX":Cls:"H=":Locate 3,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=":Locate 3,2,Z◢
第10步 2→W:Goto 3
正算子程序名:
ABCYTZ
第1步 0.1739274226→A:0.3260725774→B:0.→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
第4步 Pol(X-I,Y-J):If Z<0:Then -1×I→Z:Else 1×I→Z:IfEnd
数据库名:
ABCYTSJ
第1步 Goto1
第2步 Lbl 1:If S<7586.707 Or S>13346.96:Then Cls:Locate 2,2,"PQX":Locate 4,3,"CHAOXIAN":
Locate 10,4,"→Stop"◢
第3步 Stop:IfEnd
第4步 Lbl 1:IF S<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:IF S<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:IF S<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:IF S<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":Locate 4,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:Else If Z[3]≥Z[4] And Z[3] H+(Z[3]-K)×Z[1]÷100→Z[6]:(Z[3]-Z[4])^(2)÷2÷R→Z[7]:Z[6]+Z[7]×Z[8]→X:Goto 3:Else If Z[3]=K:Then H+E×Z[8]→X:Goto 3:Else If 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:Goto 3:Else If Z[3]≥Z[5]:Then H+(Z[3]-K) ×Z[2]÷100→X:IfEnd:Lbl 3:X→H:Return 竖曲线数据库:ABCYTSQXSJ 第1步 Goto 1 第2步 Lbl 1:If S<5000.000 Or S>11211.997:Then Cls:Locate 2,2,"SQX":Locate 4,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>本条线路竖曲线止点里程n Cls:Locate 2,2,"SQX": Locate 4,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查找。 程序演示步骤: 《坐标正算》 运行主程序ABCYT =>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 =>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 该错误表示输入的里程超出了竖曲线数据库中指定的最小或最大里程。