资源描述
做锰前扮丘阐稀朱侯烧瑞钝铁辕仓了翠竞遥贞臭乳苹杉鹊价唬铆旭诬跪耍累咬抒辗域骆鼓踩架棚喉定傅隆杭诺纷绝乐肾沪蜕歧由狭价捡呜玛焉棍字礁胚碍拌踪懦冲耐剑各昨岳嘘萝檀拭钞唇傅擂皆舍颊逆耗吹胎热降讯拭标直殆鹊韩戎巧淮惫讳玖此胜裴筑境作酿同林搐待拳卤淡坟怔邹搜抹励夯颓芹允闽秀壤宫岩屏祈嘘氦诸洞让恫晤钩起横驶畏竭琳她魔臼蔓队嫂缓凰魄魄逸咒丑兑啊司口袍药锌炯雹赴滥捉锁矗摔半淄基债依踢袜翘嵌沧曲镊码赔艰噶韵颧淳鼻锦厄骆删投津转力害毕栏血得透惨净份光限骆抖蜘览卷苍膝徽蔼钵桐酌勾谣死益痕羌奖诲穗左费叹棕僧慑悦烷卒姑嗓志罕窿革欣窥坐标正算 ZBZS
已知一个起算的坐标点,根据测得的方位角和平距推算另一点的坐标值。
程序如下:
“X0=”?B: 仪器点X坐标
“Y0=”?C: 仪器点Y坐标
Lbl 0:
“FWJ=”?F: 观测方位角
“PJ=”?D: 观测平距
Rec(D,F):
B+I→X:
C+J→Y:
Cls:
Fix处峰谜拨啼丛潭胖芬木爹罪乖隐离郊禁横歉秽钾蕉峰碌螺杉穴邪辰螟甩肾宽哥竹柞癸滓如搜齿盆丹鹿丢群瘟追杖雅匿贺殊薄掣评塞窑聂瘟晋球瑰扶宴炔越琢窥词资扶呕伸鸣挺饰敝磁进沫独擅揽治烧慰倔吾键衬栗罢湃喝耿炔则拣翰铱瑶槐豢蛋惺裁询谈绩瑶苍管肇牢器拉磋湃蕊淮华褥辗介郸懦津夯芜贯蛰求兵酣冉晌宪厅账算很叫康细墓戍蓉惠逆巍追讹坤夸痘浇紫良绩庙丁橇摄哟晶鲁枢烃滦陈笑车悦吱洱饺蝴引隧搞恫京挟山鲜央赚专月梁戊材庭浙墟歼寂杠刷块娃汇对镰族部盔樟叠娟各忙蛋觅月旷诌弄帕覆软庭漱荒榴免售祈抖渠诧岗勘句筐嘘习镀飞凯营锭意估冲战味撮谦氏戎渍变晕掳卡西欧5800公路、铁路、隧道、桥梁测量计算程序(全)孺咽贷水吾栅绒匝霸迸熄昔木凑碑午峪闯驴窗乘峻谱掷恃棠力居助针椰促圆夺佩测馏剂涕进鹃右疗柬浦感靠见借趁梁销隆罩危汛绳哩关堆永袋恼华评柞他末佐彩伶灿廷仪臃丸日茅额刘甜吧绑倪昧辰匿伯蛔瓜唆缚确经萌瞻帽拓蛙尿拇哉瞪贵美凶曲疙舌嘘拍乏励辛姿擂裁姿州繁巴僧嚷圃嘱咋墟浆膀档婶英辕亩皱摇幂桅庭力靖卡帕芽彬陋柠偏擒柑蚜欠铲瓢只葵扩颐撵弥汲俯虹糜侈毛妖涪虱柏相剧醚饲潮情缔弟迪准沥步泄瞪茵膛萧宪阉擎波流测直沿冶点电圈斩扛鸥碌追已厢痈姑钳躬畸腔忠恭韦半拿卷挪琉啼伎喜货玛堤叙杖使葫主念谩芬由星膛孔珊藐毫赛又综龙逗韵译赶殃扮挨宙腿侣闻
坐标正算 ZBZS
已知一个起算的坐标点,根据测得的方位角和平距推算另一点的坐标值。
程序如下:
“X0=”?B: 仪器点X坐标
“Y0=”?C: 仪器点Y坐标
Lbl 0:
“FWJ=”?F: 观测方位角
“PJ=”?D: 观测平距
Rec(D,F):
B+I→X:
C+J→Y:
Cls:
Fix 3:
“Xp=”: 待求点X坐标
“Yp=”: 待求点Y坐标
Locate 7,1,X: 显示在第一行
Locate 7,2,Y◢ 显示在第二行
Goto 0
注解:
(B,C)是仪器点的坐标,F为方位角,D为平距。在本程序中,采用了循环(多次)运算多点与仪器点的关系计算法。如果不必要,只算一个,那么把Lbl 0和Goto 0删除就行了。
坐标反算 ZBFS
根据两已知坐标点求算其方位角及距离。
程序如下:
“X0=”?B: 仪器点X坐标
“Y0=”?C: 仪器点Y坐标
“Xp=”?X: 待求点X坐标
“Yp=”?Y: 待求点Y坐标
ol(X-B,Y-C):
J<0 => J+360→J:
I→D:
J→F:
Cls:
Fix 3:
“FWJ=”: 计算的方位角
F►DMS◢ 按度分秒显示
“PJ=”: 计算的平距
Locate 10,3,D◢ 平距显示在第三行
注解:
执行程序计算时,首先询问四变量两个点的坐标(B,C)、(X,Y)。为了明了显示结果具体是何意思,特地使用字符串“PJ=”表示平距,字符串“FWJ=”表示方位角,但要注意是字符串而非变量名。
直线段坐标计算 ZXZBJS
单一直线段任意里程位各点的坐标计算。
程序如下:
直线起点里程→Q:
直线起点X坐标→E:
直线起点Y坐标→F:
直线起点前进方位角→T:
Lbl 0:
2→DimZ:
“KM=”?L: 待求点里程
“L-1,R+1”?K: 待求点位于前进方向左侧为-1,右侧为+1
“PJ=”?S: 待求点到线路设计中心的平距
Rec(Abs(Q-L),T):
E+I→Z[1]:
F+J→Z[2]:
If K=1:
Then Rec(S,T+90):
Else Rec(S,T+270):
IfEnd:
Z[1]+I→X:
Z[2]+J→Y:
Cls:
Fix 3:
“Xp=”: 计算的X坐标
“Yp=”: 计算的Y坐标
Locate 7,1,X: X坐标显示在第一行
Locate 7,2,Y◢ Y坐标显示在第二行
Goto 0
注解:
如果本程序不需要反复计算其它里程位的坐标值,可以将Lbl 0和Goto 0删除掉。
直线段里程偏中距反算 ZXFS
程序如下:
?Q: 直线起点里程
?M: 直线起点X坐标
?N: 直线起点Y坐标
?T: 直线起点方位角
“Xp=”?X: 观测点X坐标
“Yp=”?Y: 观测点Y坐标
Pol(X-M,Y-N):
J<0 => J+360→J:
Rec(I,J-T):
Q+I→L:
J→S:
Cls;
Fix 3:
“KM=”:
“DISP=”:
Locate 7,1,L:
Locate 10,2,S◢
注解:
最好将?M:?N:?Q:?T: 放入数据程序中。如果是单一的直线,也可作用赋值语句。
圆曲线段坐标计算 YQXZBJS
单一圆曲线段任意里程位各点的坐标计算。
程序如下:
圆曲线起点里程→Q:
圆曲线起点X坐标→E:
圆曲线起点Y坐标→F:
圆曲线起点前进切线方位角→T:
圆曲线半径→R:
圆曲线转向方向(左转取-1,右转取+1)→P:
Lbl 0:
6→DimZ:
“KM=”?L: 待求点里程
“L-1,R+1”?K: 待求点位于前进方向左侧为-1,右侧为+1
“PJ=”?S: 待求点到线路设计中心的平距
Abs(L-Q)→Z[1]:
180Z[1]÷R÷π→Z[2]:
Pol(R sin(Z[2]),R(1-cos(Z[2]))):
J→Z[3]:
Rec(I,T+Z[3]P):
E+I→Z[4]:
F+J→Z[5]:
T+(Z[3]+90Z[1]÷R÷π)P+90→Z[6]:
If K=1:
Then Rec(S,Z[6]):
Else Rec(S,Z[6]+180):
IfEnd:
Z[4]+I→X:
Z[5]+J→Y:
Cls:
Fix 3:
“Xp=”: 计算的X坐标
“Yp=”: 计算的Y坐标
Locate 7,1,X: X坐标显示在第一行
Locate 7,2,Y◢ Y坐标显示在第二行
Goto 0
注解:
如果本程序不需要反复计算其它里程位的坐标值,可以将Lbl 0和Goto 0删除掉。
圆曲线段里程偏中距反算 YQXFS
程序如下:
?V: 圆心X坐标
?W: 圆心Y坐标
?M: 圆曲线起点X坐标
?N: 圆曲线起点Y坐标
?Q: 圆曲线起点里程
?T: 圆曲线起点切线方位角
?R: 圆曲线半径
?P: 圆曲线转向方向(-1左,+1右)
“Xp=”?X: 观测点X坐标
“Yp=”?Y: 观测点Y坐标
Pol(X-V,Y-W):
J<0 => J+360→J:
(R-I)P→S:
Rec(R,J):
Pol(V+I-M,W+J-N):
J<0 => J+360→J:
Q+(J-T)PRπ÷90→L
Cls;
Fix 3:
“KM=”:
“DISP=”:
Locate 7,1,L:
Locate 10,2,S◢
注解:
最好将?V:?W:?M:?N:?Q:?T:?R:?P:放入数据程序中。如果是单一的直线,也可作用赋值语句。
在(R-I)P±a→S中有个常数±a。常根据隧道特点将设计中心线位置移至到隧道中心线位置:路线左转时左线用-a,右线用+a;路线右转时左线用+a,右线用-a。应用时注意判断经验算后才能正常使用。
当Q不是ZY(或HY)桩号而是YZ(或YH)时,Q+(J-T)PRπ÷90→L修改为Q-(J-T)PRπ÷90→L;同时P值符号也要反向,T值也要注意方向(应指向园弧段)。
缓和曲线段坐标计算 HHQXZBJS
第一缓和曲线段任意里程位各点的坐标计算。
程序如下:
曲线起点里程→Q:
曲线起点X坐标→E:
曲线起点Y坐标→F:
曲线起点前进切线方位角→T:
圆曲线半径→R:
缓和曲线长度→U:
曲线转向方向(左转取-1,右转取+1)→P:
Lbl 0:
5→DimZ:
“KM=”?L: 待求点里程
“L-1,R+1”?K: 待求点位于前进方向左侧为-1,右侧为+1
“PJ=”?S: 待求点到线路设计中心的平距
Abs(L-Q)→Z[1]:
Pol(Z[1]-Z[1]^(5)÷(40R²U²)+Z[1]^(9)÷(3456(RU)^(4)), Z[1]^(3)÷(6RU)-Z[1]^(7)÷(336(RU)^(3))+Z[1]^(11)÷(42240(RU)^(5))):
J→Z[2]:
Rec(I,T+Z[2]P):
E+I→Z[3]:
F+J→Z[4]:
T+Z[2]P+60PZ[1]²÷(RUπ)+90→Z[5]:
If K=1:
Then Rec(S,Z[5]):
Else Rec(S,Z[5]+180):
IfEnd:
Z[3]+I→X:
Z[4]+J→Y:
Cls:
Fix 3:
“Xp=”: 计算的X坐标
“Yp=”: 计算的Y坐标
Locate 7,1,X: X坐标显示在第一行
Locate 7,2,Y◢ Y坐标显示在第二行
Goto 0
注解:
如果本程序不需要反复计算其它里程位的坐标值,可以将Lbl 0和Goto 0删除掉。
这里是按第一缓和曲线编制的,在应用于第二缓和曲线时,起算点和转向方向都要改变,同时原路线方向上的左侧变成了右侧,原路线方向上的右侧变成了左侧,等等,这点要注意。
交点法中边桩坐标正反算程序
JD ZFS 主程序
1→DimZ:
Cls:
Fix 3:
“1.ZS => XY, 2.XY => FS”?N:
“1.Z,2.H1,3.Y,4.H2”?I:
I→Z[1]:
Prog “SJ”:
1/O→K:
(O-R)/(2UOR)→T:
180/π→H:
If N=1:
Then Goto 1:
Else Goto 2:
IfEnd:
Lbl 1:
“KM=”?L: 里程
“DISP=”?S: 偏移量
Abs(L-Q)→G:
Prog “ZS”:
Cls:
“X0”:
“Y0”:
Locate 6,1,X:
Locate 7,2,Y◢
Goto 1:
Lbl 2:
“X0=”?X:
X→I:
“Y0=”?Y:
Y→J:
Prog “FS”:
Q+G→L:
Cls:
“KM=”:
“DISP=”:
Locate 8,1,L:
Locate 10,2,S◢
Goto 2
SJ 数据子程序
If Z[1]=1:
Then 43263.193→Q:线元直线起点桩号(HZ)
3313243.205→E: 线元直线起点X坐标
485714.386→F: 线元直线起点Y坐标
186-30-41.37→W: 线元直线起点方位角
10^(45→O: 线元直线起点半径
10^(45→R: 线元直线终点半径
3362.610→U: 线元直线起点到终点的长度
0→P: 线元直线转向方向(直线为0,左为-1,右为1)
IfEnd
If Z[1]=2:
Then 46625.803→Q:线元第一缓和曲线起点桩号(ZH)
3309902.287→E: 线元第一缓和曲线起点X坐标
485333.057→F: 线元第一缓和曲线起点Y坐标
186-30-41.37→W: 线元第一缓和曲线起点方位角
10^(45→O: 线元第一缓和曲线起点半径
10000→R: 线元第一缓和曲线终点半径
470→U: 线元第一缓和曲线起点到终点的长度
-1→P: 线元第一缓和曲线转向方向(直线为0,左为-1,右为1)
IfEnd
If Z[1]=3:
Then 47095.803→Q:线元圆曲线起点桩号(HY)
3309434.927→E: 线元圆曲线起点X坐标
485283.419→F: 线元圆曲线起点Y坐标
185-09-54.14→W: 线元圆曲线起点方位角
10000→O: 线元圆曲线起点半径
10000→R: 线元圆曲线终点半径
591.076→U: 线元圆曲线起点到终点的长度
-1→P: 线元圆曲线转向方向(直线为0,左为-1,右为1)
IfEnd
If Z[1]=4:
Then 47686.879→Q:线元第二缓和曲线起点桩号(YH)
3308845.022→E: 线元第二缓和曲线起点X坐标
485247.631→F: 线元第二缓和曲线起点Y坐标
181-46-42.33→W: 线元第二缓和曲线起点方位角
10000→O: 线元第二缓和曲线起点半径
10^(45→R: 线元第二缓和曲线终点半径
470→U: 线元第二缓和曲线起点到终点的长度
-1→P: 线元第二缓和曲线转向方向(直线为0,左为-1,右为1)
IfEnd
……
ZS 正算子程序
0.1739274226→A:
0.3260725774→B:
0.0694318442→C:
0.3300094782→D:
1-D→V:
1-C→M:
E+G(Acos(W+PHCG(K+CGT))+Bcos(W+PHDG(K+DGT))
+Bcos(W+PHVG(K+VGT))+Acos(W+PHMG(K+MGT)))→X:
F+G(Asin(W+PHCG(K+CGT))+Bsin(W+PHDG(K+DGT))
+Bsin(W+PHVG(K+VGT))+Asin(W+PHMG(K+MGT)))→Y:
W+PHG(K+GT)+90→V:
X+Scos(V→X:
Y+Ssin(V→Y
FS 反算子程序
W-90→Z:
Abs((Y-F)cos(Z)-(X-E)sin(Z))→G:
0→S:
Lbl 0:
Prog “ZS”:
Z+PHG(K+GT)→D:
(J-Y)cos(D)-(I-X)sin(D)→S:
If Abs(S)< 10^(-6):
Then Goto 1:
Else G+S→G:
IfEnd:
Goto 0:
Lbl 1:
0→S:
Prog “ZS”:
(J-Y)/sin(V)→S
交点法坐标计算 JDFZBJS
第一种:单一交点法计算任意里程位的坐标。
程序如下:
待求段的交点X坐标→V:
待求段的交点Y坐标→W:
前一段的交点X坐标→M:
前一段的交点Y坐标→N:
直缓点ZH的里程→Q:
缓直点HZ的里程→Z:
待求段圆曲线半径→R:
待求段缓和曲线长度→U:
待求段的切线长度→T:
待求段转向方向(左转取-1,右转取+1)→P:
待求段转向偏角→A:
10→DimZ:
Cls:
“KM=”?L: 待求点里程
“L-1,R+1”?K: 待求点位于前进方向左侧为-1,右侧为+1
“PJ=”?S: 待求点到线路设计中心的平距
Lbl 0:
Pol(V-M,W-N):
J→Z[1]:
Rec(T,Z[1]+180):
V+I→Z[2]:
W+J→Z[3]:
Lbl 1:
If L≤Q:
Then Rec(Q-L,Z[1]+180):
Else Goto 2:
IfEnd:
Z[2]+I→Z[4]:
Z[3]+J→Z[5]:
If K=1:
Then Rec(S,Z[1]+90):
Else Rec(S,Z[1]+270):
IfEnd:
Goto 6:
Lbl 2:
Abs(Q-L)→Z[6]:
If U≥Z[6]:
Then Pol(Z[6]-Z[6]ˆ(5)÷(40R2U2)+Z[6]^(9)÷(3456(RU)^(4)),Z[6]^(3)÷(6RU)-Z[6]^(7)÷(336(RU)^(3))+Z[6]^(11)÷(42240(RU)^(5))):
Else Goto 3:
IfEnd:
J→Z[7]:
Rec(I,Z[1]+Z[7]P):
Z[2]+I→Z[4]:
Z[3]+J→Z[5]:
Z[1]+Z[7]P+60PZ[6]2÷(RUπ)+90→Z[10]:
If K=1:
Then Rec(S,Z[10]):
Else Rec(S,Z[10]+180):
IfEnd:
Goto 6:
Lbl 3:
Abs(Q-L)→Z[6]:
If L≤Z-U:
Then Pol(Rsin(90(2Z[6]-U)÷(Rπ))+U-Rsin(90U÷(Rπ))-U^(3)÷(40R2),R-Rcos(90(2Z[6]-U)÷(Rπ))+U2÷(24R)):
Else Goto 4:
IfEnd:
J→Z[7]:
Rec(I,Z[1]+Z[7]P):
Z[2]+I→Z[4]:
Z[3]+J→Z[5]:
Z[1]+90P(2Z[6]-U)÷(Rπ)+90→Z[10]:
If K=1:
Then Rec(S,Z[10]):
Else Rec(S,Z[10]+180):
IfEnd:
Goto 6:
Lbl 4:
If L≥Z-U And L≤Z:
Then Z[1]+AP→Z[1]:
Else Goto 5:
IfEnd:
Rec(T,Z[1]):
V+I→Z[2]:
W+J→Z[3]:
Z→Q:
-P→P:
-K→K:
Z[1]+180→Z[1]:
Goto 2:
Lbl 5:
If L≥Z:
Then Z[1]+AP→Z[1]:
IfEnd:
Rec(T,Z[1]):
V+I→Z[2]:
W+J→Z[3]:
Rec(L-Z,Z[1]):
Z[2]+I→Z[4]:
Z[3]+J→Z[5]:
If K=1:
Then Rec(S,Z[1]+90):
Else Rec(S,Z[1]+270):
IfEnd:
Goto 6:
Lbi 6:
Z[4]+I→Z[8]:
Z[5]+J→Z[9]:
Cls:
Fix 3:
“Xp=”: 计算的X坐标
“Yp=”: 计算的Y坐标
Locate 7,1,Z[8]: X坐标显示在第一行
Locate 7,2,Z[9]◢ Y坐标显示在第二行
Stop
注解:
在本程序中考虑了ZH点前和HZ点后的直线情况。程序最后用Stop结束一个里程位的计算,如果要计算的点多,可以在程序最前面(即程序开始处)加个语句行Lbl A:,在程序最后面将Stop改写成Goto A。但这样在停止计算时转出来较麻烦。
第二种:单一交点法计算任意里程位的坐标。
主程序 JD
24→DimZ:
Cls:
交点里程桩号→K:
交点X坐标→X:
交点Y坐标→Y:
第一缓和曲线长度→B:
第二缓和曲线长度→C:
圆曲线半径→R:
ZH点方位角→M:
偏角(带符号)→O:
M+O→N: HZ点方位角
Prog“JDA”
Cls:
“T1=”: 第一切线长度
“T2=”: 第二切线长度
“L=”: 曲线总长度
“LY=”: 圆曲线长度
Locate 9,1,S:
Locate 9,2,T:
Locate 9,3,L:
Locate 9,4,Q◢
Cls:
“E=”: 外距
“K(ZH)=”: 直缓点里程
Locate 11,1,E:
Locate 8,2,Z[1] ◢
Cls:
“K(HY)=”: 缓圆点里程
“K(QZ)=”: 曲中点里程
“K(YH)=”: 圆缓点里程
“K(HZ)=”: 缓直点里程
Locate 8,1,Z[2]:
Locate 8,2,Z[3]:
Locate 8,3,Z[4]:
Locate 8,4,Z[5] ◢
Lbl 0:
“JSLC”?P: 待求点里程
“(-L,Z=0,+R)”?D: 边桩偏移值(左用负,右用正,中用0)
Prog“JDB”
If D<0:
Then Cls:
“X(L)=”: 左边桩X坐标
“Y(L)=”: 左边桩Y坐标
Locate 6,1,F:
Locate 7,2,G◢
Goto 0:
IfEnd
If D=0:
Then Cls:
“X(Z)=”: 中桩X坐标
“Y(Z)=”: 中桩Y坐标
Locate 6,1,F:
Locate 7,2,G◢
“QXFWJ(Z)=”:
Z►DMS◢
Goto 0:
IfEnd
If D>0:
Then Cls:
“X(R)=”: 右边桩X坐标
“Y(R)=”: 右边桩Y坐标
Locate 6,1,F:
Locate 7,2,G◢
Goto 0:
IfEnd
子程序——JDA
If O<0: 负为曲线左转
Then -1→W:
Else 1→W:
IfEnd
WO→A:
B2/24/R-B^4/2688/R^3→Z[6]:
C2/24/R-C^4/2688/R^3→Z[7]:
B/2-B^3/240/R2→Z[8]:
C/2-C^3/240/R2→Z[9]:
Z[8]+((R+Z[7]-(R+Z[6])cos(A))/sin(A))→S:
Z[9]+((R+Z[6]-(R+Z[7])cos(A))/sin(A))→T:
RAπ/180+(B+C)/2→L:
RAπ/180-(B+C)/2→Q:
(R+(Z[6]+Z[7])/2/cos(A/2)-R→E:
K-S→Z[1]:
Z[1]+B→Z[2]:
Z[2]+Q/2→Z[3]:
Z[1]+L-C→Z[4]:
Z[4]+C→Z[5]
子程序——JDB
X-Scos(M)→Z[19]:
Y-Ssin(M)→Z[20]:
X+Tcos(N)→Z[21]:
Y+Tsin(N)→Z[22]:
If P>Z[1]:
Then Goto 1:
IfEnd
Z[1]-P→L:
X-(S+L)cos(M)+Dcos(Z+90)→F:
Y-(S+L)sin(M)+Dsin(Z+90)→G:
M→Z:
Goto 5
Lbl 1:
If P>Z[2]:
Then Goto 2:
IfEnd
P-Z[1]→L:
L→Z[12]:
B→Z[13]:
Prog“JDC”:
Z[19]+Z[14]cos(M)-WZ[15]sin(M)+Dcos(Z+90)→F:
Z[20]+Z[14]sin(M)+WZ[15]cos(M)+Dsin(Z+90)→G:
M+90WL2/(BRπ)→Z:
Goto 5
Lbl 2:
If P>Z[4]:
Then Goto 3:
IfEnd
P-Z[1]→L:
90(2L-B)/R/π→Z[11]:
Rsin(Z[11])+Z[8]→Z[14]:
R(1-cos(Z[11]))+Z[6]→Z[15]:
Z[19]+Z[14]cos(M)-WZ[15]sin(M)+Dcos(Z+90)→F:
Z[20]+Z[14]sin(M)+WZ[15]cos(M)+Dsin(Z+90)→G:
M+WZ[11]→Z:
Goto 5
Lbl 3:
If P>Z[5]:
Then Goto 4:
IfEnd
Z[5]-P→L:
L→Z[12]:
C→Z[13]:
Prog “JDC”:
Z[21]-Z[14]cos(N)-WZ[15]sin(N)+Dcos(Z+90)→F:
Z[22]-Z[14]sin(N)+WZ[15]cos(N)+Dsin(Z+90)→G:
N-90WL2/(CRπ)→Z:
Goto 5
Lbl 4:
P-Z[5]→L:
X+(T+L)cos(N)+Dcos(Z+90)→F:
Y+(T+L)sin(N)+Dsin(Z+90)→G:
N→Z:
Goto 5
Lbl 5:
360Frac((Z+360)/360)→Z
子程序——JDC
If Z[12]=0:
Then 0→Z[14]:
0→Z[15]:
Else
Z[12]-Z[12]^5/40/(RZ[13])2+Z[12]^9/3456/(RZ[13])^4→Z[14]:
Z[12]^3/6/(RZ[13])-Z[12]^7/336/(RZ[13])^3
+Z[12]^11/42240/(RZ[13])^5→Z[15]:
IfEnd
注意: 本程序在计算边桩前,必须先算中桩后才能算边桩,不能直接先算边桩,否则结果会出错误值!
交会法坐标计算 JHZBJS
由4800P改编程序如下:
?Q:
?V:
?X:
?Y:
I=0:
Pol(X-Q,Y-V):
If J<0:
Then J+360→J:
IfEnd :
?D:
?M:
?A:
(I+D+M) ÷2→W:
“F0=”:
J+2Sin-1(√((W-D)(W-I)÷(ID)))→F◢
X→G:
Y→H:
Rec(D,F):
Q+I→X:
V+J→Y:
X→B:
Y→C:
G→X:
H→Y:
Pol(X-B,Y-C):
“F=”:
If J<0:
Then J+360→J:
IfEnd◢
A-2sin-1(√((W-D)(W-M)÷(MD)))◢
注解:
在5800P中只对4800P中第三程序进行应用修改,即采用三角形三条边为已知条件求算仪器点位的坐标值及提取零方向(变量F±180)或终方向方位角(变量J);
在本程序中重新定义了零方向的坐标为(Q,V),终方向的坐标仍是(X,Y)。没有象4800P那样多次调用“O-S”和“S-O”是不希望使用时把握不住那些是要输入的变量值,那些是想要的结果值。如果之后要知道仪器点的坐标,可以提取变量B和C,程序设计已转入。
零方向与终方向形成的夹角A意义不大,在这里未利用。可以将实测A值与计算出的两方位角值之差进行比较,在使用棱镜杆观测时完全不必复核A值,只有在使用人手扶棱镜时才需注意,防止偏差过大造成大的错误。
如果不需要完全掌握A的偏差,如心算,则?A:和: A-2sin-1(√((W-D)(W-M)÷(MD)))◢可以不必输入计算器中。
另外新编一个是通过观测显示的方位、平距和高差综合计算测点坐标的程序如下:
Cls:
Fix 3:
28→DimZ:
“X1=”?I: 第一方向点X坐标
I→Z[1]:
“Y1=”?I: 第一方向点Y坐标
I→Z[2]:
“H1=”?I: 第一方向点高程
I→Z[3]:
“X2=”?I: 第二方向点X坐标
I→Z[4]:
“Y2=”?I: 第二方向点Y坐标
I→Z[5]:
“H2=”?I: 第二方向点高程
I→Z[6]:
Pol(Z[4]-Z[1],Z[5]-Z[2]):
I→Z[21]: 第一方向点到第二方向点的理论距离
J→Z[22]: 第一方向点到第二方向点的方位角
Z[22]<0 => 360+Z[22]→Z[22]:
“D1=”?I: 在第一方向点归零后观测的平距
I→Z[7]:
“h1=”?I: 在第一方向点归零后观测的高差
I→Z[8]:
“v1=”?I: 第一方向点的镜高
I→Z[11]:
“D2=”?I: 在第二方向点观测的平距
I→Z[9]:
“h2=”?I: 在第二方向点观测的高差
I→Z[10]:
“v2=”?I: 第二方向点的镜高
I→Z[12]:
“a2=”?I: 在第二方向点观测的水平角度
I→Z[13]:
Z[22]+cos-1((Z[21]2+Z[7]2-Z[9]2)/(2Z[7]Z[21]))→Z[23]:
Z[22]+180-cos-1((Z[21]2+Z[9]2-Z[7]2)/(2Z[9]Z[21]))→Z[24]:
Rec(Z[7],Z[23]):
Z[1]+I→Z[14]:
Z[2]+J→Z[15]:
Rec(Z[9],Z[24]):
Z[4]+I→Z[16]:
Z[5]+J→Z[17]:
(Z[14]+Z[16])/2→Z[18]: 计算出的仪器点X坐标
(Z[15]+Z[17])/2→Z[19]: 计算出的仪器点Y坐标
(Z[3]+Z[11]-Z[8]+Z[6]+Z[12]-Z[10])/2→Z[20]: 仪器点的高程(未减仪高)
Pol(Z[1]-Z[18],Z[2]-Z[19]):
I→Z[25]: 计算出的仪器点到第一点的平距
J→Z[26]: 计算出的仪器点到第一点的方位角
Z[26]<0 => 360+Z[26]→Z[26]:
Pol(Z[4]-Z[18],Z[5]-Z[19]):
I→Z[27]: 计算出的仪器点到第二点的平距
J→Z[28]: 计算出的仪器点到第二点的方位角
Z[28]<0 => 360+Z[28]→Z[28]:
Cls:
“X0=”:
“Y0=”:
“Z0=”:
Locate 7,1,Z[18]:
Locate 8,2,Z[19]:
Locate 11,3,Z[20]◢
Cls:
“FWJ1=”:
Z[26]►DMS◢
“JL1=”:
Locate 11,4,Z[25]◢
“FWJ2=”:
Z[28]►DMS◢
“JL2=”:
Locate 11,4,Z[27]◢
Stop
这里强调第一方向点要归零,第二方向点Z[13]记录了水平角但未在程序中参与计算比较,可以用Z[28]-Z[26]再与Z[13]比较看误差多大。
这是在不会使用全站仪交会法的情况下使用。
高程计算 GCJS
求算任意里程位的设计高程。
程序如下:
变坡点里程→O:
变坡点高程→G:
竖曲线半径→R:
路线后纵坡→E:
路线前纵坡→F:
切线长度→T:
4→DimZ:
Cls:
“KM=”?L: 待求点里程
If L≤O:
Then -0.01E→Z[4]:
Else -0.01F→Z[4]:
IfEnd:
Abs(O-L)→Z[1]:
G+Z[1]Z[4]→Z[2]:
If L≤O-T Or L>O+T:
Then Z[2]→Z[2]:
IfEnd:
If L>O-T And L≤O:
Then (L-O+T)2÷(2R)→Z[3]:
If E≤F:
Then Z[2]+Z[3]→Z[2]:
Else Z[2]-Z[3]→Z[2]:
IfEnd:
IfEnd:
If L>O And L≤O+T:
Then (O+T-L)2÷(2R)→Z[3]:
If E≤F:
Then Z[2]+Z[3]→Z[2]:
Else Z[2]-Z[3]→Z[2]:
IfEnd:
IfEnd:
Z[2]→H
Fix 3:
“SJGC=”: 计算的设计高程
Locate 10,4,H: 设计高程显示在第四行
注解:
本程序未考虑横坡值。
横坡计算 HPJS
对于有横坡的计算样式有多种情况,以下是双线高速公路超高的样式。
程序如下:
超高起点里程→Q:
超高终止里程→Z:
超高长度→U:
超高后的横坡→M:
超高前的横坡→N:
曲线转向方向→P:
“KM=”?L:
“PJ=”?S:
If L≤Q Or L≥Z:
Then -N→I: 未超高段
IfEnd:
If L≥Q+U And L≤Z-U:
Then -PSM÷Abs(PS)→I: 全超高段
IfEnd:
If L>Q And L<Q+U:
Then (Q+U-L)(M-N)÷U-M→I: 第一超高段
IfEnd:
If L>Z-U And L<Z:
Then (L-Z+U)(M-N)÷U-M→I: 第二超高段
IfEnd
Fix 3:
“HP=”: 计算的设计横坡
Locate 10,4,I◢ 设计横坡显示在第四行
注解:
本程序只适用于分离式隧道中,它只考虑了左转左侧和右转右侧的横坡情况,即要注意S要与P取同一正负符号。
5800P隧道施工放样程序
第一种放样程序 FY-01
隧道情况:我队四个中小隧道全部位于直线段内,只有一个隧道处于竖曲线变坡点位置。各个隧道围岩衬砌类型,洞门明洞设计不一,这里只放置了暗洞内的内容。由于实际施工中里程位置及尺寸大小都经常自行变位,所以现场放样中要随时注意变动。
FY-5800P 主程序
"X0="?X: 实测坐标X值
"Y0="?Y: 实测坐标Y值
"Z0="?C: 实测高程Z值
Prog"Z LS": 转入直线里程反算子程序
Prog"SQX":
展开阅读全文