计算器测量编制程序.docx
《计算器测量编制程序.docx》由会员分享,可在线阅读,更多相关《计算器测量编制程序.docx(9页珍藏版)》请在冰豆网上搜索。
计算器测量编制程序
线路中边桩任意里程坐标正、反算改编程序(CASIOfx-4800)
含数据库、测站放样计算
(第三次修改)
1.加编数据库作为主程序,计算中不必逐项输入"线元要素",提高运算速度,避免现场忙中出错
2.将原来的主程序并入数据库
3.计算直观,人性化
4.正算直接输入里程和边距,反算输入近似里程便可
5.增加了“计算点与测站点”的距离和方位角计算语句,方便直接放样
6.愿收获与大家共享
7.核心计算程序摘自“yshf”
8.第三次修改后,可以算任意斜交涵洞轴线的坐标,增加T为斜交角度,规定T为涵轴右侧方向与“线路前进方向切线”之间的夹角,当涵轴与线路正交时,T=90,其他操作与原程序一样;
一.改动后的程序清单:
1.正算子程序(SUB1) [color=Red]A=0.1739274226:
B=0.3260725774:
K=0.0694318442:
L=0.3300094782:
F=1-L:
M=1-K:
X=U+W(Acos(G+57.2958QKW(1/P+KWD))+Bcos(G+57.2958QLW(1/P+LWD))+Bcos(G+57.2958QFW
(1/P+FWD))+Acos(G+57.2958QMW(1/P+MWD))):
Y=V+W(Asin(G+57.2958QKW(1/P+KWD))+Bsin(G+
57.2958QLW(1/P+LWD))+Bsin(G+57.2958QFW(1/P+FWD))+Asin(G+57.2958QMW(1/P+MWD))):
F=G+57.2958QW(1/P+
WD)+90:
X=X+Zcos(F-90+T):
Y=Y+Zsin(F-90+T)
2.反算子程序(SUB2)
W=Abs((Y-V)cos(G-90)-(X-U)sin(G-90)):
Z=0:
Lbl0:
Prog"SUB1":
L=(G-90)+57.2958QW(1/P+
WD):
Z=(J-Y)cosL-(I-X)sinL:
AbsZ<1E-6=>Goto1:
≠>W=W+Z:
Goto0Δ←┘
Lbl1:
Z=0:
Prog"SUB1":
Z=(J-Y)÷sinF
二.增设数据库程序(SJK主程序)
Lb14:
"1.SZ=>XY":
"2.XY=>SZ":
{NS}:
S∠下一线元起点里程=>O=本线元起点里程:
U=本线元起点X:
V=本线元起点Y:
G=本线元起算方位角:
H=本线元长度:
P=起点曲率半径:
R=终点曲率半径:
Q=0或1、-1:
Goto0Δ←┘(第一线元数据要素)
S∠下一线元起点里程=>O=本线元起点里程:
U=本线元起点X:
V=本线元起点Y:
G=本线元起算方位角:
H=本线元长度:
P=起点曲率半径:
R=终点曲率半径:
Q=0或1、-1:
Goto0Δ←┘(第二线元数据要素)
S∠下一线元起点里程=>O=本线元起点里程:
U=本线元起点X:
V=本线元起点Y:
G=本线元起算方位角:
H=本线元长度:
P=起点曲率半径:
R=终点曲率半径:
Q=0或1、-1:
Goto0Δ←┘(第三线元数据要素)
。
。
。
。
。
。
。
。
。
。
Goto0Δ←┘(第N-1线元数据要素)
。
。
。
。
。
。
。
。
。
。
Goto0Δ←┘(第N线元数据要素)
LB10:
D=(P-R)÷(2HPR):
N=1=>Goto1:
≠>Goto2Δ←┘
Lbl1:
{TZ}:
Z:
W=Abs(S-O):
Prog"SUB1":
X"XS"=X◢
Y"YS"=Y◢
F"FS"=F-90◢
C“XC”:
E“YC”:
I=0:
J=0:
Pol(X-C,Y-E):
I“I=”◢
J∠0=>J“J=”+360◢
≠>J“J=”◢
ΔGoto4←┘
Lbl2:
{XY}:
XY:
I=X:
J=Y:
Prog"SUB2":
S"S"=O+W◢
Z"Z"=Z◢
Goto4
三.使用说明:
1.把所有相关的”线元要素“依次输入”SJK“
2.运算时直接调用“SJK”运行,程序提示输入里程“S”?
时,正算直接输入待求点里程,反算输入所求点“近似“里程
3.如果在正算中途想进行反算,重新给”N“?
赋值"2"便可
4.程序中“XC、YC、”为测站坐标,“I=”、“J=”为放样距离和方位角
5.其它输入与"yshf"原程序一致(程序中1/P表示1÷P)
附件:
(原yshf程序)
曲线任意里程中边桩坐标正反算(CASIOfx-4800P计算器)程序
一、程序功能
本程序由一个主程序(TYQXJS)和两个子程——正算子程序(SUB1)、反算子程序(
SUB2)序构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线
元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲
率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。
另
外也可以将本程序中核心算法部分的两个子程序移植到其它相关的程序中,用于对曲
线任意里程中边桩坐标进行正反算。
本程序也可以在CASIOfx-4500P计算器及CASIOfx-4850P计算器上运行。
特别申明:
(1).适用于弧长小于2倍半径的各种线元坐标正反算,精度优
于1mm;
(2).在引用该核心计算部分时,请注明来源。
二、源程序
1.主程序(TYQXJS)
"1.SZ=>XY":
"2.XY=>SZ":
N:
U"X0":
V"Y0":
O"S0":
G"F0":
H"LS":
P"R0":
R"
RN":
Q:
C=1÷P:
D=(P-R)÷(2HPR):
E=180÷π:
N=1=>Goto1:
≠>Goto2Δ←┘
Lbl1:
{SZ}:
SZ:
W=Abs(S-O):
Prog"SUB1":
X"XS"=X◢
Y"YS"=Y◢
F"FS"=F-90◢
Goto1←┘
Lbl2:
{XY}:
XY:
I=X:
J=Y:
Prog"SUB2":
S"S"=O+W◢
Z"Z"=Z◢
Goto2
2.正算子程序(SUB1)
A=0.1739274226:
B=0.3260725774:
K=0.0694318442:
L=0.3300094782:
F=1-L:
M=1-K:
X=U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Bcos(G+QEFW
(C+FWD))+Acos(G+QEMW(C+MWD))):
Y=V+W(Asin(G+QEKW(C+KWD))+Bsin(G+
QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+Asin(G+QEMW(C+MWD))):
F=G+QEW(C+
WD)+90:
X=X+ZcosF:
Y=Y+ZsinF
3.反算子程序(SUB2)
T=G-90:
W=Abs((Y-V)cosT-(X-U)sinT):
Z=0:
Lbl0:
Prog"SUB1":
L=T+QEW(C+
WD):
Z=(J-Y)cosL-(I-X)sinL:
AbsZ<1E-6=>Goto1:
≠>W=W+Z:
Goto0Δ←┘
Lbl1:
Z=0:
Prog"SUB1":
Z=(J-Y)÷sinF
三、使用说明
1、规定
(1)以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,
Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0。
(2)当所求点位于中线时,Z=0;当位于中线左铡时,Z取负值;当位于中线中线右
侧时,Z取正值。
(3)当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次代替。
(4)当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆
弧的半径。
(5)当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45
次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。
止点与直线相接时,曲率半
径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。
(6)当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的
值;与圆曲线相接时,曲率半径等于圆曲线的半径。
止点与直线相接时,曲率半径等
于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。
2、输入与显示说明
输入部分:
1.SZ=>XY
2.XY=>SZ
N?
选择计算方式,输入1表示进行由里程、边距计算坐标;输入2表示由坐标反算
里程和边距。
X0?
线元起点的X坐标
Y0?
线元起点的Y坐标
S0?
线元起点里程
F0?
线元起点切线方位角
LS?
线元长度
R0?
线元起点曲率半径
RN?
线元止点曲率半径
Q?
线元左右偏标志(左偏Q=-1,右偏Q=1,直线段Q=0)
S?
正算时所求点的里程
Z?
正算时所求点距中线的边距(左侧取负,值右侧取正值,在中线上取零)
X?
反算时所求点的X坐标
Y?
反算时所求点的Y坐标
显示部分:
XS=××× 正算时,计算得出的所求点的X坐标
YS=××× 正算时,计算得出的所求点的Y坐标
FS=××× 正算时,所求点对应的中线点的切线方位角
S=××× 反算时,计算得出的所求点的里程
Z=××× 反算时,计算得出的所求点的边距
四、算例
某匝道的由五段线元(直线+完整缓和曲线+圆曲线+非完整缓和曲线+直线)组
成,各段线元的要素(起点里程S0、起点坐标X0Y0、起点切线方位角F0、线元长度
LS、起点曲率半径R0、止点曲率半径RN、线元左右偏标志Q)如下:
S0 X0 Y0 F0 LSR0RN Q
500.000 19942.837 28343.561 1251631.00 269.256 1E451E45 0
769.256 19787.340 28563.378 1251631.00 37.492 1E45221.75 -1
806.748 19766.566 28594.574 1202554.07 112.779 221.75221.75 -1
919.527 19736.072 28701.893 911730.63 80.285 221.759579.228 -1
999.812 19744.038 28781.659 804050.00 100.000 1E451E45 0
1、正算
(注意:
略去计算方式及线元要素输入,请自行根据所求点所在的线元输入线元
要素)
S=700 Z=-5 计算得 XS=19831.41785 YS=28509.72590
S=700 Z=0 计算得 XS=19827.33592 YS=28506.83837
S=700 Z=5 计算得 XS=19823.25398 YS=28503.95084
S=780 Z=-5 计算得 XS=19785.25749 YS=28575.02270
S=780 Z=0 计算得 XS=19781.15561 YS=28572.16358
S=780 Z=5 计算得 XS=19777.05373 YS=28569.30446
S=870 Z=-5 计算得 XS=19747.53609 YS=28654.13091
S=870 Z=0 计算得 XS=19742.68648 YS=28652.91379
S=870 Z=5 计算得 XS=19737.83688 YS=28651.69668
S=940 Z=-5.123 计算得 XS=19741.59118 YS=28722.05802
S=940 Z=0 计算得 XS=19736.47687 YS=28722.35642
S=940 Z=3.009 计算得 XS=19733.47298 YS=28722.53168
2、反算
X=19831.418 Y=28509.726 计算得 S=699.9999974 Z=-5.00018164
X=19827.336 Y=28506.838 计算得 S=699.9996493 Z=0.000145136
X=19823.25398 Y=28503.95084 计算得 S=699.9999985 Z=5.000003137
X=19785.25749 Y=28575.02270 计算得 S=780.0000035 Z=-5.000001663
X=19781.15561 Y=28572.16358 计算得 S=780.0000025 Z=-0.000002979
X=19777.05373 Y=28569.30446 计算得 S=780.0000016 Z=4.99999578
X=19747.536 Y=28654.131 计算得 S=870.0001137 Z=-4.99941049
X=19742.686 Y=28652.914 计算得 S=870.0003175 Z=-0.00041814
X=19737.837 Y=28651.697 计算得 S=870.0002748 Z=4.999808656
X=19741.5912 Y=28722.0580 计算得 S=939.9999786 Z=-5.123024937
X=19736.4769 Y=28722.3564 计算得 S=939.9999862 Z=-0.000027710
X=19733.4730 Y=28722.5317 计算得 S=940.0000238 Z=3.00898694
谢谢发贴:
+94分【测量空间】[0
09-8-11 楼主:
LW317409248 作者:
LW317409248本文已被浏览 4949 次
FX5800P全线任意里程中边桩坐标正反算(加了数据库)
本程序非本人原创,结合上传者长处,进行改编,愿收获和大家共享,不足之处多多指教。
希望过路神仙把竖曲线加进去带算隧道超欠挖,谢谢
曲線任意里程中邊樁坐標正反算5800p
本程序由内蒙@文哥和师父阿玖哥共同改编完成
主程序 ZBJS
Lbl6:
"1.SZ→XY":
"2.XY→SZ":
?
S:
?
N:
Prog“SUB0”
1÷P→C:
(P-R)÷(2HPR)→D:
180÷π→E:
N=1=>Goto1:
Goto2
Lbl 1:
?
Z:
Abs(S-O)→W:
Prog"SUB1":
"XS=":
X◢
"YS=":
Y◢
"FS=":
F-90►DMS◢
“XC”?
C:
“YC”?
E:
0→I:
0→J:
Pol(X-C,Y-E):
“I=”:
I◢
If J∠0:
Then“J=”:
J+360►DMS◢
IfEnd
If J>0:
Then“J=”:
J►DMS◢
IfEnd:
Goto6
Lbl2
?
X:
?
Y:
X→I:
Y→J:
Prog"SUB2":
O+W→S:
Cls:
"S=":
S◢
"Z=":
Z◢
Goto6
正算子程序 SUB1
0.1739274226→A:
0.3260725774→B:
0.0694318442→K:
0.3300094782→L:
1-L→F:
1-K→M:
U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Bcos(G+QEFW
(C+FWD))+Acos(G+QEMW(C+MWD)))→X:
V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+Asin(G+QEMW(C+MWD)))→Y:
G+QEW(C+WD)+90→F:
X+Zcos(F)→X:
Y+Zsin(F)→Y
反算子程序 SUB2
G-90→T
(Y-V)cosT-(X-U)sin(T)→W
Abs(W)→W:
0→Z
Lbl6:
Prog"SUB1"
T+QEW(C+WD)→L:
(J-Y)cos(L)-(I-X)sin(L)→Z
IFAbs(Z)<1E-6:
Then0→Z:
Prog"SUB1":
(J-Y)÷sin(F)→Z:
ElseW+Z→W:
Goto6:
IfEnd
数据库子程序 SUB0
Goto1(线元可输入多条,分离式可在前多加一位,匝道一样。
例:
左幅为K129+500,右幅输线元参数里程为1129+500,其他不变,前面1为任意数字,计算机便于区分)
Lbl 1:
IF S<线元终点里程:
Then@@@→O(线元起点里程):
@@@→U(线元起点X坐标):
@@@→V(线元起点Y坐标):
@@@→G(线元起点计算方位角):
@@@→P(线元起点半径):
@@@→R(线元止点半径):
@@@→H(线元长度):
@@@→Q(线元左、右偏标志,左偏-1,右偏1,直线为0):
Return:
IfEnd
IF S<线元终点里程:
Then@@@→O(线元起点里程):
@@@→U(线元起点X坐标):
@@@→V(线元起点Y坐标):
@@@→G线元(起点计算方位角):
@@@→P(线元起点半径):
@@@→R(线元止点半径):
@@@→H(线元长度):
@@@→Q(线元左、右偏标志,左偏-1,右偏1,直线为0):
Return:
IfEnd
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
一程序功能
本程序由一个主程序(ZBJS)和3个子程——正算子程序(SUB1)、反算子程序(
SUB2)、数据库子程序(SUB0)构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线
元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲
率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。
另
外也可以将本程序中核心算法部分的两个子程序移植到其它相关的程序中,用于对曲
线任意里程中边桩坐标进行正反算。
本程序也可以在CASIOfx-4500P计算器及CASIOfx-4850P计算器上运行。
二、使用说明
1、规定
(1)以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,
Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0。
(2)当所求点位于中线时,Z=0;当位于中线左侧时,Z取负值;当位于中线中线右
侧时,Z取正值。
(3)当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次代替。
(4)当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆
弧的半径。
(5)当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45
次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。
止点与直线相接时,曲率半
径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。
(6)当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的
值;与圆曲线相接时,曲率半径等于圆曲线的半径。
止点与直线相接时,曲率半径等
于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。
2、输入与显示说明
输入部分:
1.SZ=>XY
2.XY=>SZ
S?
选择里程,N?
,Z?
左或右偏距。
选择计算方式,1.表示进行由里程、边距计算坐标;输入2表示由坐标反算里程和边距。
显示部分:
XS=××× 正算时,计算得出的所求点的X坐标
YS=××× 正算时,计算得出的所求点的Y坐标
FS=××× 正算时,所求点对应的中线点的切线方位角
XC=××× 测站点X值
YC=×××测站点Y值
I=XXX 测站到放样点距离
J=XXX 测站到放样点方位角
S=××× 反算时,计算得出的所求点的里程
Z=××× 反算时,计算得出的所求点的边距
三 算例
请到
有算例。
注:
1.本程序根据空间里程序改编而成,并非本人原创。
2.正算跨线元计算正确,反算时跨线元计算第一次结果错误,,反应速度比一般输出结果慢,给出结果S=XXX为输入坐标的线元概略里程,在进行计算,显示结果*近似里程*,里程及偏距误差0.001m.,可更改数据(1E-6)改为(1E-3),速度稍快一点。
3.本程序可进行偏角法放样。
4.输入每行数据看数据输完毕没有,输完不要忘记按(EXE)
5.使用者需细心输入,有问题在以下网址查找原因。