CASIO4800测量程序源代码Word格式.docx
《CASIO4800测量程序源代码Word格式.docx》由会员分享,可在线阅读,更多相关《CASIO4800测量程序源代码Word格式.docx(35页珍藏版)》请在冰豆网上搜索。
F"
FS"
=F-90◢
Goto1←┘
Lbl2:
{XY}:
XY:
I=X:
J=Y:
SUB2"
S"
=O+W◢
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:
L=T+QEW(C+
WD):
Z=(J-Y)cosL-(I-X)sinL:
AbsZ<
1E-6=>
Goto1:
W=W+Z:
Goto0Δ←┘
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)如下:
S0X0Y0F0LSR0RNQ
500.00019942.83728343.5611251631.00269.2561E451E450
769.25619787.34028563.3781251631.0037.4921E45221.75-1
806.74819766.56628594.5741202554.07112.779221.75221.75-1
919.52719736.07228701.893911730.6380.285221.759579.228-1
999.81219744.03828781.659804050.00100.0001E451E450
1、正算
(注意:
略去计算方式及线元要素输入,请自行根据所求点所在的线元输入线元
要素)
S=700Z=-5计算得XS=19831.41785YS=28509.72590
S=700Z=0计算得XS=19827.33592YS=28506.83837
S=700Z=5计算得XS=19823.25398YS=28503.95084
S=780Z=-5计算得XS=19785.25749YS=28575.02270
S=780Z=0计算得XS=19781.15561YS=28572.16358
S=780Z=5计算得XS=19777.05373YS=28569.30446
S=870Z=-5计算得XS=19747.53609YS=28654.13091
S=870Z=0计算得XS=19742.68648YS=28652.91379
S=870Z=5计算得XS=19737.83688YS=28651.69668
S=940Z=-5.123计算得XS=19741.59118YS=28722.05802
S=940Z=0计算得XS=19736.47687YS=28722.35642
S=940Z=3.009计算得XS=19733.47298YS=28722.53168
2、反算
X=19831.418Y=28509.726计算得S=699.9999974Z=-5.00018164
X=19827.336Y=28506.838计算得S=699.9996493Z=0.000145136
X=19823.25398Y=28503.95084计算得S=699.9999985Z=5.000003137
X=19785.25749Y=28575.02270计算得S=780.0000035Z=-5.000001663
X=19781.15561Y=28572.16358计算得S=780.0000025Z=-0.000002979
X=19777.05373Y=28569.30446计算得S=780.0000016Z=4.99999578
X=19747.536Y=28654.131计算得S=870.0001137Z=-4.99941049
X=19742.686Y=28652.914计算得S=870.0003175Z=-0.00041814
X=19737.837Y=28651.697计算得S=870.0002748Z=4.999808656
X=19741.5912Y=28722.0580计算得S=939.9999786Z=-5.123024937
X=19736.4769Y=28722.3564计算得S=939.9999862Z=-0.000027710
X=19733.4730Y=28722.5317计算得S=940.0000238Z=3.00898694
任意里程中边桩坐标正反算(CASIOfx-4800P计算器)程序
一、源程序(SZ-XY-SZ)
"
2.XY=>
Q=0=>
R=1E-45:
R△J=0:
M=AbsQ:
K=1-M:
Goto2△←┙
Lbl1:
L=S-O:
B=90QL÷
π÷
R:
F=G+B:
E=F+B+90:
C=LK+2MRsinQB:
=U+Rec(C,F)+ZcosE◢
Y"
=V+J+ZsinE◢
Goto1←┙
Lbl2:
W=G+90Q:
E=U+Rec(R,W):
F=V+J←┙
Lbl3:
D=Pol(X-E,Y-F):
T=J:
J<
0=>
T=J+360△B=T-W-180M:
P=AbsB:
=O+
DKcosP+MπRP÷
180◢
Z"
=DKsinB+MQ(R-D)◢
Goto3←┙
二、使用说明
1.由里程、中边桩计算坐标
启动程序后按以下提示输入数据:
N?
1(N=1,由里程中边桩计算坐标;
N≠1,由坐标反算里程及中边桩)
142.353(直线或圆曲线起点的X坐标)
368.166(直线或圆曲线起点的Y坐标)
155.252(直线或圆曲线起点的里程)
60°
54′03″(直线或圆曲线起点的切线方位角)
-1(当线元为直线时Q=0;
当线元为圆曲线且左偏时Q=-1;
当线元为圆曲线且
右偏时Q=1)
R?
100(圆曲线的半径)
194.016(中线里程)
-5.251(中线左侧5.251m的边桩;
在中线上Z=0,在左侧<
0,在右侧Z>
0)
显示计算结果
XS=172.7467767
YS=395.2316807
2.由坐标反算里程、中边桩
2(N=1,由里程中边桩计算坐标;
172.7467767(待求里程及中边桩的点的X坐标)
395.2316807(待求里程及中边桩的点的Y坐标)
S=194.016
Z=-5.251
三、注意事项
1.本程序主要是针对市政道路工程中的直线和圆曲线而编制的,未考虑缓和曲线等
曲线的计算;
2.程序中“R=1E-45”的意思为10的-45次方,输入程序时切莫输错。
3.程序中设置的计算顺序是由小里程往大里程方向(即里程增大的方向),曲线左偏、右偏也是以里程增大的方向来区分的。
4800-4850直线、曲线、螺旋线、匝道中边桩坐标计算程序
直线、曲线、螺旋线、匝道中边桩坐标计算程序
主程序名称(4800-4850)
A“XA”:
B“YB”:
C“CA”:
D“RA”:
E“RB”:
F“DKA”:
G“DKB”换行
D≠0=>
D=1÷
D:
换行
E≠0=>
E=1÷
E:
Lb11:
{H,O,R}换行
H“DKI”:
O“DL”:
R“DR”换行
Lb10换行
P=(E-D)÷
Abs(G-F)换行
Abs(H-F)>Abs(G-F)=>
Q=Abs(G-F):
≠=>
Q=Abs(H-F):
I=P×
Q换行
J=C+(I+2D)×
Q×
90÷
π换行
M=C+(I÷
8+2D)×
45÷
(4π)换行
N=C+(3I÷
135÷
U=C+(5I÷
225÷
V=C+(7I÷
315÷
K=C+(I÷
4+2D)×
(2π)换行
W=C+(I÷
2+2D)×
Z=C+(3I÷
X=A+Q÷
24×
(cosC+4×
(cosM+cosN+cosU+cosV)+2×
(cosK+cosW+cosZ)+cosJ)换行
Y=B+Q÷
(sinC+4×
(sinM+sinN+sinU+sinV)+2×
(sinK+sinW+sinZ)+sinJ)换行
U=X+O×
cos(J-90)换行
V=Y+O×
sin(J-90)换行
W=X+R×
cos(J+90)换行
Z=Y+R×
sin(J+90)换行
Goto3:
H“DKI=”◢fx4850输入改为“DKI=”:
H◢
X“X=”◢fx4850输入改为“X=”:
X◢
Y“Y=”◢fx4850输入改为“Y=”:
Y◢
U“XL=”◢fx4850输入改为“XL=”:
U◢
V“YL=”◢fx4850输入改为“YL=”:
V◢
W“XR=”◢fx4850输入改为“XR=”:
W◢
Z“YR=”◢fx4850输入改为“YR=”:
Z◢
Goto1换行
Lb13换行
A=X:
B=Y:
D=E:
F=G:
C=J换行
{E,G}换行
G“DKB”换行
Goto0
换行就是计算器上的EXE键
计算器显示及输入方法:
XA?
线型起算点的X坐标。
YA?
线型起算点的Y坐标。
CA?
线型起算点切线方位角。
RA?
第一曲线曲率,输入0。
匝道及螺旋线时输入上段曲线半径左负右正。
RB?
第二曲线曲率,输入所要计算曲线的半径,左传为负右转为正,直线输0。
DKA?
线型的起点里程。
DKB?
线型的终点里程。
DKI?
要求点的里程。
DL?
输入左边桩的距离。
可以0输入。
DR?
输入右边桩的距离。
DKI=显示要求点里程。
X=显示要求里程点的X坐标。
Y=显示要求里程点的Y坐标。
XL=显示要求里程点的左边桩X坐标。
YL=显示要求里程点的左边桩Y坐标
XR=显示要求里程点的右边桩X坐标。
YR=显示要求里程点的右边桩Y坐标
说明:
1、DKI?
再次出现输入下一个要求的点的桩号,如果输入数据大于DKB?
所输入的数据,则会再次出现RB?
这时输入下一段线型的半径,直线输0,DKB?
也会随后出现,这次出现输入下一段线型的终点里程桩号。
则可以正常运算其它桩号点的坐标。
2、本程序可以反复计算下一线型。
3、上述说明中线型是指曲线上的某一段,例如直缓点到缓圆点则为一段的线型。
如有不足之处请直出
4800程序(有测站的)
ZBFS(坐标反算)
Lb12:
P“ZJX”:
Q“ZJY”
Lb10:
Prog“1”:
Prog“2”
Lb11:
{Z}:
Z=1=>
P=X:
Q=Y:
Goto2Goto0
ZBZS(坐标正算)
M“XA”:
N“YA”:
{LT}:
X=Rec(L,T)+M◢Y=N+J◢
Goto2Z=10=>
M=X:
N=YGoto0
Lb12:
{LT}:
L=0=>
Goto0U=X+Rec(L,T)◢V=Y+J◢
S=PoL(U-P,V-Q):
Prog“2”:
Goto2
FQ(主程序)
Q“ZJY”:
X:
Y:
{EG}:
B“YA”:
C“TA”:
D“AR-1”:
E“BR-1”:
G“DKB”
{KZ}:
K“DK”:
K=G=>
Goto4Abs(K-F)>
Abs(F-G)=>
K=G◢Abs(K-G)>
K=G◢Z=0=>
D=E
M=(E-D)/Abs(G-F):
O=Abs(K-F):
I=MO:
T=C+(I+2D)O×
90/π
Z[1]=C+(2D+I/12)×
15O/(2π):
Z[2]=C+(2D+I/4)×
45O/(2π):
Z[3]=C+(2D+5I/12)×
75O/(2π):
Z[4]=C+(2D+7I/12)×
105O/(2π):
Z[5]=C+(2D+3I/4)×
135O/(2π):
Z[6]=C+(2D+11I/12)×
165O/(2π):
Z[7]=C+(2D+I/6)×
15O/π:
Z[8]=C+(2D+I/3)×
30O/π:
Z[9]=C+(2D+I/2)×
45O/π:
Z[10]=C+(2D+2I/3)×
60O/π:
Z[11]=C+(2D+5I/6)×
75O/π:
X=A+O(cosC+4(cosZ[1]+cosZ[2]+cosZ[3]+cosZ[4]+cosZ[5]+cosZ[6])+2(cosZ[7]+cosZ[8]+cosZ[9]+cosZ[10]+cosZ[11])+cosT)/36◢
Y=B+O(sinC+4(sinZ[1]+sinZ[2]+sinZ[3]+sinZ[4]+sinZ[5]+sinZ[6])+2(sinZ[7]+sinZ[8]+sinZ[9]+sinZ[10]+sinZ[11])+sinT)/36◢
T<
T=360+TT>
360=>
T=T-360T=T◢Prog“1”:
Goto3Goto1
Lb13:
{L}:
Goto1U“LX”=X+Lcos(T+90)◢
V“LY”=Y+Lsin(T+90)◢S=Pol(U-P,V-Q):
Goto3
Lb14:
C=T:
Goto0
SQX(算高程、坚曲线)
A“JK”:
B“JH”:
C“I1”:
D“I2”:
T=Abs(C-D)×
AbsR/2◢
Lb10:
{K}:
KH=B-(A-K)*C:
Goto1K>
A+T=>
H=B+(K-A)*D:
Goto1
X=Abs(A-T-K):
Y=B-(T-X)*C:
K>
A=>
X=Abs(A+T-K):
Y=B+(T-X)*DH=X2/2/R+Y
H◢Goto0
变坡点里程高程
I1小里程I2大里程
QXYS(曲线要素)
O:
“J”:
I
M=I/2-I3/240/R2◢P=I2/24/AbsR-I4/2688/AbsR3◢
E=(AbsR+P)/(cos(O/2))-AbsR◢
L=лAbsRO/180+I◢T=(AbsR+P)tan(O/2)+M◢
子程序1
S=Pol(X-P,Y-Q)
子程序2
J=360+JJ=J◢S=S◢
子程序3
Z≠740415=>
Goto1Fixm:
W=0:
7W+5>123=>
Goto3W=W+1◢Prog“4”:
Goto2:
Lb13:
“END”
子程序4
Prog“3”H=Z[7W+5]:
“XA”:
{H}:
Z[7W+5]=H:
H=Z[7W+6]:
“YA”:
Z[7W+6]=H:
H=Z[7W+7]:
“TA”:
Z[7W+7]=H:
H=[7W+8]:
“AR-1”:
Z[7W+8]=H:
H=Z[7W+9]:
“BR-1”:
Z[7W+9]=H:
H=Z[7W+10]:
“DAK”:
Z[7W+10]=H:
H=Z[7W+11]:
“DKB”:
Z[7W+11]=H
注意:
1、程序3中123处为扩充存储器数量。
该程序为11+7X(X为想要输入的线路段数,根据计算器剩余步骤数更定)
2、划“740415”处为自设密码,可任意更改,作用是不能随便运行该程序,防止各段线型起算据时更改。
增加了主程序3和子程序4,首先运行主程序3,输入密码,密码不正确程序不运行,W=1意为第一段起数据输入,依次“XA、YA、TA、AR-1、BR-1、DKA、DKB”。
字母的意与以前相同,按现在的程序输入共可以输入17段线型(直线、圆曲线、和各种缓和曲线),不够17段输几段是几段,超过17段时必须增加存储器数量即上面的1。
增加存储器方法,按“SHIFT”键、“Defm”键再输入需扩充的数值,按“EXE”键,主程序“FQ”的改动不多,前面一点,后面一点。
运行主程序“FQ”时输入里程“K”值时,“K”必须在你所输入的各段线型的里程之内,否则程序一直寻找而不停止切记。
“FQ”程序中出现“Z”值输入时,Z=1时计算边桩,Z≠1时将不计算边桩,计算边桩时,“L”取正为线路右侧、“L”值为负时为线路左侧“L”的值取0时,回到中桩计算。
说明
“ZJX”“ZJY”置镜点坐标(FQ程序)
Y后视点坐标“J”后视点方位角“S”后视距离“XA”“YA”线路起点里程。
“TA”线路计算起点切线方位角“AR-1”线路计算起点曲率<
半径的倒数,分正负(左转向角为负,右转向角为正)直线为0,“BR-1”计算相同线型终点曲率。
输入与前同。
“DKA”计算线型起点里程。
“DKB“相同线型终点里程式“DK”要计算的里程<
输入值不在“DKA”与“DKB”之间时K>
DKB时显示,输入“Z”要计算下一线型时,输入“DK”值里程大于“DKB”显示“DKB”里程。
输入“DKB”坐标和方位角。
再次出现“DK”输入提示时,先不输入“BR-1”输入下一段线型计算终点曲率。
再次出现“DK”输入时,可以输入第二段里程间距。
线路中心点坐标和切线方位角己知“XA、YA”构造物中心坐标
第一次“L”输入“Z”输入Z取1时“L”取0时回到按构造中心推算坐标
打转点
(XA,YA)
方位角距离
转点(X,Y)
SQX(坚曲线)
“I1、I2”分正负(坡度)上坡为正
“JK”变坡点里程“JH”变坡点高程R半径(分正负)凹为正
R(半径分正负)
O转向角
I缓和曲线长