交点法坐标计算程序.docx
《交点法坐标计算程序.docx》由会员分享,可在线阅读,更多相关《交点法坐标计算程序.docx(7页珍藏版)》请在冰豆网上搜索。
交点法坐标计算程序
1.主程序JDFZBZFS
17→DimZ:
Norm2:
1→A"XY=1,FS=2,GC=3,LJKD=4,BPFY=5,BZFY=6”?
A:
A=1=>Goto1:
A=2=>Goto2:
A=3=>Goto3:
A=4=>Goto4:
A=5=>Goto5:
A=6=>Goto6
LbI1:
Prog"DX":
LbIA:
Prog"QX":
90→B:
"PJ1"?
B:
B→C:
"PJ2"?
C:
B→Z[1]:
C→Z[8]:
LbIB:
1→F:
"KM"?
Z:
Prog"X1":
?
D:
Prog"THB":
O→L:
Z[2]+Z[1]-Z[8]→E:
X+Lcos(E)→X:
Y+Lsin(E)→Y:
Prog"XY":
Prog"JS":
GotoB
LbI2:
2→F:
90→Z[1]:
Prog"QX":
LbIC:
"KM"?
Z:
Prog"X1":
"XO"?
X:
"Y0"?
Y:
Prog"THB":
Fix5:
Prog"ZD":
GotoC
LbI3:
Prog"QX":
0→B:
"H-B"?
B:
B→Z[9]:
LbID:
"KM"?
Z:
?
D:
Prog"H":
Fix5:
"H=":
H-Z[9]→H◢
"I=":
I◢
GotoD
LbI4:
Prog"QX":
LbIE:
"KM"?
Z:
?
D:
Prog"GD":
Fix5:
"SJGD=":
Locate6,4,L:
GotoE
LbI5:
Prog"QX":
0.5→B:
"TH-GD"?
B:
B→Z[19]:
LbIF:
2→F:
90→Z[1]:
"KM"?
Z:
Prog"X1":
"X0"?
X:
"Y0"?
Y:
"SJGC"?
H:
0→M:
"M0(YDMGC)"?
M:
Prog"BPFY":
Fix3:
S→O:
"L0=":
Locate6,4,O:
Prog"ZD":
H-M→G:
"TW=":
Lcoate6,4,G:
GotoF
LbI6:
Prog"DX":
LbIG:
Prog"QX":
LbIH:
1→F:
90→Z[1]:
"KM"?
Z:
GotoG:
Prog"X1":
?
D:
Prog"THB":
Prog"XY":
Prog"JS":
Prog"H":
0→M:
"M0"?
M:
Fix2:
H-M→T:
"TW=":
6,4,T◢GotoH
2.坐标计算次程序(THB)
LbIJ:
IfF=1:
ThenProg"Z":
Goto1:
ElseProg"ZX":
Goto2:
IfEnd:
LbI1:
I+D×COS(Z[2]+Z[1])→X:
J+D×Sin(Z[2]+Z[1])→Y:
LbI2
3.路基开挖边线及填方坡脚线放样程序
程序名:
BPFY
LbIH:
13→L:
H-M→G:
Prog“W1”:
IfG<0:
Then–G→G:
GotoW:
ElseG→G:
GotoT
LbIW:
Z[8]+Z[9]→A:
IfG>A:
ThenGoto1:
ElseIfG>Z[8]:
ThenGoto2:
ElseGoto3:
IfEnd
LbI1:
L+Z[10]+Z[11]+Z[12]+(G-A-(Z[11]+Z[12])×0.03)×Z[7]+Z[9]×Z[6]+Z[8]×Z[5]→S:
GotoZ
LbI2:
L+Z[10]+Z[11]+(G-Z[8]-Z[11]×0.03)×Z[6]+Z[8]×Z[5]→S:
GotoZ
LbI3:
L+G×Z[5]→S:
GotoZ
LbIT:
Z[16]+Z[17]→B:
IfG>B:
ThenGoto4:
ElseIfG>Z[16]:
ThenGoto5:
ElseGoto6:
IfEnd
LbI4:
L+Z[18]×2+(G-B-2×Z[18]×0.03)×Z[15]+Z[17]×Z[14]+Z[16]×Z[13]→S:
GotoZ
LbI5:
L+Z[18]+(G-Z[16]-Z[18]×0.03)×Z[14]+Z[16]×Z[13]→S:
GotoZ
LbI6:
L+G×Z[13]→S:
GotoZ
LbIZ
4.极坐放样计算程序(计算放样点至置仪点方位角及距离)
程序名:
JS
X:
Y:
Z[11]→K:
Z[12]→L:
Pol(X-K,Y-L):
IFJ<0:
ThenJ+360→J:
IfEnd:
Fix4:
”FWJ=”:
J◢DMS◢
Fix5:
”S=”:
I◢
程序名:
ZD
Fix3:
" KM=":
Locate6,4,Z:
"D=":
Locate6,4,D
5.交点法正算子程序(Z)
程序名:
Z
H2÷R÷24-H∧(4)÷2688÷R∧(3)→A(圆曲线内移量H表示缓和曲线长)
H÷2-H∧(3)÷240÷R2→B(切垂距)
((H2-N2)÷24÷R)÷Sin(Abs(P))-((H∧(4)-N∧(4))/2688/R∧(3))÷Sin(Abs(P))→E
(R+A)tan(Abs(P)÷2)+B-E→T:
P÷Abs(P)→W
0→M:
H→C
IfZ≤O-T:
ThenZ-O→S:
G→Z[2]:
Goto2:
IfEnd
IfZ≤O-T+H:
ThenZ-O+T→S:
Prog“HX”:
G+WK→Z[2]:
Goto4:
IfEnd
IfZ≤O-T+ΠR×Abs(P)÷180+H÷2-N÷2:
Then180(Z-O+T-0.5H)÷R÷Π→S:
A+R(1-Cos(S))→BH÷2-H∧(3)÷240÷R2+Rsin(S)→A:
R→M:
G+WS→Z[2]:
Goto4:
IfEnd:
O-T+ΠR×Abs(P)÷180+H÷2+N÷2-Z→S:
(R+N2÷R÷24-N∧(4)÷2688÷R∧(3))tan(Abs(P)÷2)+N÷2-N∧(3)÷240÷R2+E→T:
N→H:
Prog“HX”:
G+P→S:
S-WK→Z[2]:
U+(T-A)Cos(S)-WBSin(S)→I:
V+(T-A)Sin(S)+WBcos(S)→J:
Goto3:
LbI4:
U+(A-T)cos(G)-WBsin(G)→I:
V+(A-T)Sin(G)+WBcos(G)→J:
Goto3:
LbI2:
U+Scos(Z[2])→I:
V+Ssin(Z[2])→J:
LbI3:
C→H
6.交点法缓和段转化子程序(HX)
程序名:
HX
S-S∧(5)÷40÷R2÷H2+S∧(9)÷3456÷R∧(4)÷H∧(4)→A:
S∧(3)÷6÷R÷H-S∧(7)÷336÷R∧(3)÷H∧(3)+S∧(11)÷42240÷R∧(5)÷H∧(5)→B:
90S2÷Π÷R÷H→K:
RS÷H→M
7.交点法反算子程序(ZX)
程序名:
ZX
Z:
0→D:
LbI0:
Prog“Z”:
Pol(X-I,Y-J):
J-Z[2]→J:
Isin(J)→S:
Icos(J)→I:
IfAbs(I)<0.1:
ThenZ+I→Z:
S→D:
Goto2:
ElseGoto1:
LbI1:
IfM=0:
ThenZ+I→Z:
Goto0:
ElesPol(M-WS,I):
(JMΠ)/180→I:
Z+I→Z:
Goto0:
IfEnd
LbI2
8.路基标准半幅宽度计算程序
程序名GD
1→S:
Prog“G1”:
Z-C→E:
(B-A)*E/S+A→L:
9.导线点子程序(DX)
程序名:
DX
“XZ”?
K:
”YZ”?
L:
K→Z[11]:
L→Z[12]
10.高程计算子程序(H)
程序名:
H
Prog“S1”:
C-T→F:
Z-F→S:
C+T→E:
G-TI→Q:
IfT=O:
ThenQ+SI→H:
Goto0:
ElseIfZThenQ+SI→H:
Goto0:
ElseIfZ≤E:
ThenQ+SI+S2÷2÷R→H:
Goto0:
LbI0:
H:
IfD=0:
ThenGotoI:
ElseProg“I”:
H+V→H:
GotoI
LbII
11.高程超高计算程序(I)
程序名:
I
IfZ[3]=1:
ThenProg“I1”:
Goto1:
IfEnd
LbI1:
IfW=1:
ThenGotoZ:
ElseGotoX:
IfEnd
LbIZ:
IfS=0:
ThenAbs(D)×M→V:
Goto2:
ElseAbs(D)×((N-M)×(Z-C)÷S+M)→V:
Goto2:
IfEnd:
LbIX:
IfS=0:
ThenAbs(D)×M→V:
Goto2:
ElseAbs(D)×(((3((Z-C)÷S)2-2((Z-C)÷S)∧(3))×(N-M))+M)→V:
Goto2:
IfEnd
LbI2:
Abs(D)→E:
V÷E→I:
I(E-K)→V
15.线路选择子程序(线路选择输0时。
则输曲线参数(QX)
程序名:
QX
1→A:
“QX:
X1=1,X2=2”?
A:
A→Z[3]:
IfA=0:
ThenGoto1:
ElseGoto2:
IfEnd:
LbI1:
”JDO”?
O:
”XO”?
U:
”YO”?
V:
”FW”?
G:
”LS”?
H:
?
P:
?
R:
”J=2,3;X=(0,1,-1)”?
Q:
IfQ=2:
ThenH→N:
Goto2:
ElseIfQ=3:
Then“LS”?
N
LbI2
12.0坐标计算参数转化子程序(F)程序名:
F
MatF[1,1]→O:
MatF[1,2]→U:
MatF[1,3]→V:
MatF[1,4]→G:
MatF[1,5]→H:
MatF[1,6]→P:
MatF[1,7]→R:
MatF[1,8]→Q:
Q=3=>MatF[1,9]→N
12.数据子程序程序名:
X1
Goto1
LbI1
IfZ≤26615.555:
Then[[25900,11587.421,1847.983,101。
09’23.1”,715.555,10。
39’23.1”,4200,3,615.555]]→MatF:
Goto0:
IfEnd
IfZ≤26915.555:
Then[[26615.555,11448.97,2550.016,101。
09’23.1”,300,1×1045,1800,1]]→MatF:
Goto0:
:
IfEnd
LbI0:
Prog”F”
1、交点法:
IfZ≤交点HZ点桩号:
Then[[交点桩号,交点X坐标,交点Y坐标,前交点至止交点方位角,交点前段缓和曲线长度,交点总偏角,圆半径,3,交点后段缓和曲线长度,]]→MatF:
Goto0:
IfEnd:
(如对称缓和曲线,圆半径后输,2后不用输后段缓和长,总偏角分正负,左偏为负,右偏为正)
13.程序名:
S1(线路1高程竖曲线要素子程序)
Goto1
LbI1
IfZ≤26157.8:
Then-→R:
157.8→T:
26000→C:
37.1→G:
0.01222→I:
Return:
IfEnd
程序字母说明:
C-竖曲线交点桩号;G-交点桩号高程(未竖曲线调整的);T-竖曲线切线长(标段结尾或开头没有竖曲线的输0);R-竖曲线半径(分正负:
凹曲线为正,凸曲线为负);I-竖曲线前纵坡
14.程序名:
I1(线路1高程超高参数子程序)
1.5→K:
IfD<0:
ThenGotoL:
ElseGotoR:
IfEnd:
LbIL
IfZ≤26615.555:
Then2→W0→S:
-0.02→M:
Goto0:
IfEnd:
IfZ≤26735.555:
Then2→W:
120→S:
26615.555→C:
-0.02→M:
0.02→N:
Goto0:
IfEnd
LbIR
IfZ≤26735.555:
Then2→W:
0→S:
-0.02→M:
Goto0:
IfEnd
LbI0
字程序中字母表示说明:
K-中央分隔带半幅宽(中桩标高至中桩中线距离,无分隔带则为0);W-超高方式参数(W=1为一般直线方式超高,W=2为三次抛物线方式超高);S-超高渐变段距离(不是渐变段则输入0);C-超高渐变段起点桩号(不是渐变段,无需输入);M-超高段起点横坡,N-超高渐变段终点横坡(不是渐变段,无需输入)
15.程序名G1(线路1路基标准半幅宽度参数子程序)
IfZ[3]=1:
ThenGoto1:
ElseProg“G2”:
Goto0:
IfEnd
LbI1:
IfD<0:
ThenGotoL:
ElseGotoR:
IfEnd:
Z-C→E:
(B-A)*E/S+A→L
LbIL:
IfZ≤28110.727:
ThenZ→C:
17.25→A:
Goto0:
IfEnd:
IfZ≤28200.727:
Then28110.727→C:
17.25→A:
21.25→B:
90→S:
Goto0:
IfEnd
LbIR:
Z≤27927.478:
ThenZ→C:
17.25→A:
Goto0:
IfEnd
IfZ≤28172:
Then27927.478→C:
17.25→A:
27.031→B:
244.522→S:
Goto0
:
IfEnd
LbI0
字程序中字母表示说明:
C-宽度渐变段起点桩号(不是渐变段C=Z);A-宽度渐变段起点宽度;B-宽度渐变段终点宽度(不是渐变段,无需输入);S-宽度渐变段距离(不是渐变段,无需输入)。
16.程序名:
W1(线路1路基填挖边坡参数子程序)
Goto1
LbI1
0.75→Z[5]:
1→Z[6]:
1.25→Z[7]:
10→Z[8]:
10→Z[9]:
2.6→Z[10]:
2→Z[11]:
2→Z[12]:
1.5→Z[13]:
1.25→Z[14]:
1.75→Z[15]:
4→Z[16]:
8→Z[17]:
2→Z[4]
字程序中字母表示说明:
Z[5]-挖方第一阶边坡边率;Z[6]-挖方第二阶边坡边率;Z[7]-挖方第三阶边坡边率;Z[8]-挖方第一阶高度;Z[9]-挖方第二阶高度;Z[10]-挖方路基碎落台及水沟宽度;Z[11]-挖方第二台阶平台宽度;Z[12]-挖方第三台阶平台宽度;
Z[13]-填方第一阶边坡边率;Z[14]-填方第二阶边坡边率;Z[15]-填方第三阶边坡边率;Z[16]-填方第一阶高度;Z[17]-填方第二阶高度;Z[4]-填方台阶平台宽度。
(注:
本程序只做出挖方三个台阶,填方三个台阶,如需增加,先需在程序THB和4FBZ程序中增加变量。
再如一标段有坡率及坡高不一样时,
可以照其它参数程序一样,用判别语句。
)
三、使用说明
1、规定
(1)“KM”为所求点桩号,反算时为输入大概桩号
(2)当所求点位于中线时,D=0;当位于中线左铡时,D取负值;当位于中线中线右侧时,D取正值。
(在用交点法时,P字母代表偏角)(交点法R字母为圆半径)
(7)Q值是判别用采用线元法还是交点法。
交点法值为2或3,2为对称缓和曲线段交点法,3为不对称缓和段交点法。
(8)为了区别字母O及数子0,特把字母0加粗。
2、输入与显示说明
输入部分:
"A:
XY=1,ZD=2,GC=3,GD=4,BP=5,FM=6,ZP=7,JS=8,SD=9"?
输入:
1、坐标计算放样程序2、坐标反算程序;3、高程计算查阅程序;4、路基半幅标准宽度查阅程序;5、路基边坡及开挖口放样程序;6、路基标准距离放样;7、桥梁锥坡计算放样程序;8、极坐标计算程序;9、隧道超欠挖计算程序
XZ?
YZ?
为置仪点坐标,第一次运行输一次,以下运行不需再输入,下次再运行此程序调上次输值,如需改,则输入,不需改,则按确认键。
“QX:
X1=1,X2=2”?
选择经路,坐标计算中输入0值,变为输入线元段曲线要素。
输1为第一条线路。
输2为第二条线路,本程序暂设计实例为2条线路。
KM?
正算时所求点的里程(反算输入大概桩号)输入-1,返回输入选择计算类型,输入-2,返回选择线路,输入-3,调出本段线元参数,以矩阵显示,再运行从头开始。
D?
正算时所求点距中线的边距(左侧取负,值右侧取正值,在中线上取零)
X0?
反算时所求点的X坐标(放样程序中实测X坐标)
Y0?
反算时所求点的Y坐标(放样程序中实测Y坐标)
显示部分:
L?
涵洞放样程序中涵距中心桩号前后距离,前为正,后为负
M0?
边坡放样程序中原地面标高输入
H-B?
计算面至路面高差(默认路面为0)
PJ1?
PJ2?
涵洞计算中第一个夹角同PJ。
第二夹角为边线至路前进方向夹角。
(同理适合在桥梁中斜交桥,平行布置中,桥台桩基坐标计算)默认值均为90度.
TH-GH?
边坡放样中填方超放宽值,默认值为0.5m.
"LD:
Z-,Y+"?
桥梁锥坡向左右方向边长,左为负数,右为正数。
"LR"?
锥坡向路线前进或向后退方向边长。
"Z0"?
锥坡顶边桩号
输出部分
X=*** 正算时,计算得出的所求点的X坐标
Y=*** 正算时,计算得出的所求点的Y坐标
FWJ=***正算时,计算得出的所求点的至置仪点方位角
S=***正算时,计算得出的所求点的至置仪点距离
KM=***反算时,计算得出的所求点的里程
D=***反算时,计算得出的所求点的边距
H=***所求点位置设计路面顶标高
I=***所求点位置设计路面横坡(D输0时为,本段路基纵坡)
SJLG=***所求点位置路基设计半幅标准宽度
L0=***边桩放样程序中实测点至设计边坡点距离,正向内移,负向外移。
(隧道程序中为超欠挖值,正为超挖,负为欠挖)
TW=***边桩放样程序中,实测放样边坡点至止桩号设计顶填挖高度值
H0=***隧道放样程序中测量点至设计面高度
四、结束语
1、本套程序实例线路给二条,如标段像匝道有多条线时,同理增加。
2、由于本人没做过隧道,隧道程序只是参照本项目另一个标的图纸所做,如有不同,可以调整参数。
原理应是一样的。
3、为了更好的开发计算器程序,本人特建一QQ群,欢迎各位测友加入,QQ群号是:
。
4、所有对程序有建议或问题的,加本人QQ后可以直接留言,由于工作原因,可能不能马上给予答复,敬请谅解!
(加QQ为好友时请注明:
计算器程序)