ThenGoto1:
IfEnd
6.(E-D)÷Abs(G-F)P:
Abs(H–F)→Q:
P×Q→Z:
D+Z→T
7.C+(Z+2D)Q×90÷π→W:
“QXFWJ”:
W
DMS
8.C+(Z÷4+2D)Q×22.5÷π→M:
C+(3Z÷4+2D)Q×67.5÷π→N:
C+(Z÷2+2D)Q×45÷π→K
9.A+Q(cosC+4(cosM+cosN)+2cosK+cosW)÷12+Rcos(W+L)→X:
“X=”:
X
10.B+Q(sin(C)+4(sin(M)+sin(N))+2sin(K)+sin(W))÷12+Rsin(W+L)→Y:
“Y=”:
Y
11.Pol((X-U),(Y-V))
IfJ≤0ThenJ+360→J:
IfEnd:
“FWJ”:
J
DMS
12.“JU”:
I
13.Goto1
程序显示说明:
须输入参数:
X0:
置镜点X(对应变量U)
Y0:
置镜点Y(对应变量V)
XA:
曲线起算点X(对应变量A)
YA:
曲线起算点Y(对应变量B)
CA:
曲线起算点切线方位角(对应变量C)
1÷RA:
1÷半径,即起算点曲率,右偏为正左偏为负(对应变量D)
1÷RB:
1÷半径,即曲终点曲率,右偏为正左偏为负(对应变量E)
KA:
起算点里程(对应变量F)
KB:
曲终点里程(对应变量G)
KI:
待求点里程(对应变量H)
JJ:
夹角(与前进方向切线向右的夹角)(对应变量L)
D“Y+Z-:
偏距,右正左负(对应变量R)
计算结果:
W:
待求点切线方位角(对应变量W)
X:
计算点x(对应变量X)
Y:
计算点y(对应变量Y)
FWJ:
放样方位角(对应变量J)
S:
放样距离(对应变量I)
本程序依据复化辛甫森公式计算原理改进而成,特点是把曲线按曲率变化点分成若干计算单元单独计算,不论直线(曲率为0)、圆曲线(曲率为1/R)、卵形曲线,只要按曲率变化点分解弄清变化点曲率半径,右偏左偏曲线由曲率的正负号分别,既可求得该计算单元内任意里程中桩也可求斜交或正交的边桩。
考虑到程序中调用变量较多与其它程序变量冲突,造成不方便来回交叉使用,便把反算程序嵌套其中,作为一个完整独立放样和坐标计算程序,不含子程序
当输入待求里程超出该曲线单元范围时程序会拒绝运算,并提示重新输入里程,避免计算错误结果;如要求另一曲线单元内里程须重新进入程序输入相应曲线元参数计算
由于应用中待求里程不一定按从小到大顺序便去掉了把计算里程替代为起算里程的语句,造成待求里程与起算里程距离较远时精度会略有影响,但对于一般工程中较大半径曲线,影响非常小仅在毫米上可以忽略不予考虑。
二、坐标反算ZBFS
1.“X0”?
U:
V“Y0”?
V
2.Lbl0:
“X”?
X:
“Y”?
Y:
Pol((X-U),(Y-V))
3.IfJ≤0:
ThenJ+360→J:
IfEnd:
“FWJ”:
J
DMS
4.“JU”:
I
5.Goto0
程序显示说明:
须输入参数:
X0?
:
起算点X
Y0?
:
起算点Y
X?
:
计算点X
Y?
:
计算点Y
计算结果:
FWJ:
反算方位角
JU:
反算距离
X?
Y?
:
重新输入计算点XY
三、坐标正算ZBZS
1.“X0”?
X:
“Y0”?
Y:
“S”?
S:
“T”?
T
2.“X1”:
X+Scos(T)→M
“Y1”:
Y+Ssin(T)→N
程序显示说明:
须输入参数:
X0?
:
起算点X
Y0?
:
起算点Y
S?
:
正算距离
T?
:
方位角
计算结果:
X1:
计算点X
Y1:
计算点Y
四、竖曲线SQX
1.“R=”?
A:
“T=”?
B:
“I1=”?
C:
“I2=”?
D:
“K0=”?
E:
“H0=”?
F
2.IfC>D:
Then-1→T:
Else1→T:
IfEnd
3.Lbl0:
“K=”?
K:
Abs(E-K)→S:
4.IfS>B:
ThenGoto0:
IfEnd
5.IfE≥K:
ThenGoto1:
ElseGoto2:
IfEnd
6.Lbl1:
F-SC+T(B-S)2÷2÷A→G:
“G”:
G
7.Goto0
8.Lbl2:
F+SD+T(B-S)2÷2÷A→G:
“G”:
G
9.Goto0
程序显示说明:
须输入参数:
R=?
:
竖曲线半径
T=?
:
切线长
I1=?
:
变坡点前坡度值,上坡为正,下坡为负(如-2.5%则输-0.025)
I2=?
:
变坡点后坡度值,上坡为正,下坡为负
K0=?
:
变坡点里程
H0=?
:
变坡点坡线高程
K=?
:
待求点里程
计算结果:
G:
待求点曲线高程
K=?
:
重新输入待求点里程
注:
计算里程仅在竖曲线范围内
五、直线段坐标换算ZXZH(X,Y)→(A,B)
1.“X0”?
M:
“Y0”?
N:
“K”?
Z:
“T”?
T
2.Lbl0:
“X”?
X:
“Y”?
Y
3.(X-M)cos(T)+(Y-N)sin(T)+Z→A:
“LC”:
A
4.(Y-N)cos(T)-(X-M)sin(T)→B:
“KD”:
B
5.Goto0
程序显示说明:
须输入参数:
X0?
Y0?
-直线起算点坐标(X,Y)(对应变量MN)
K?
-起算点桩号(对应变量Z)
T?
-起算点至JD的方位角(对应变量T)
X?
Y?
-待求点坐标(对应变量XY)
计算结果:
LC-待求点对应桩号(对应变量A)
KD-距离中线距离,左负,右正(对应变量B)
X?
Y?
-重新输入待求坐标点
六、圆曲线坐标换算YHS(X,Y)→(A,B)
1.“X0”?
M:
“Y0”?
N:
“KQZ”?
Z:
“T”?
T:
“R”?
R:
“K”?
K2.Lbl0:
“X”?
X:
“Y”?
Y
3.Pol(X-M,Y-N)注:
计算(X,Y)点至圆心的距离
4.IfJ≤0:
ThenJ+360→J:
IfEnd
5.Z+KπR(J-T)÷180→A:
“LC”:
A
注:
计算(X,Y)点的桩号
6.K(R-I)→B:
“KD”:
B
注:
计算(X,Y)点的距中线距离
7.Goto0
程序显示说明:
须输入参数:
X0?
Y0?
-圆心坐标(X,Y)(对应变量MN)
KQZ?
-曲线中点(QZ)的桩号(对应变量Z)
T?
-圆心至QZ点的方位角(对应变量T)
R?
-圆曲线半径(对应变量R)
K?
-根据JD点处的偏角α确定,左偏取-1,右偏取+1(对应变量K)
X?
Y?
-待求点坐标(对应变量XY)
计算结果:
LC-待求点对应桩号(对应变量A)
KD-距离中线距离,左负,右正(对应变量B)
X?
Y?
-重新输入待求坐标点
七、缓和曲线段坐标换算HHS(X,Y)→(A,B)
1.“XQ”?
M:
“YQ”?
N:
“Z”?
Z:
“S”?
S:
“R”?
R:
“L0”?
L:
“T”?
T:
“K”?
K
2.Lbl0:
“X”?
X:
“Y”?
Y
3.Z→A:
M→E:
N→F:
T→O
4.Lbl2:
Pol(X-E,Y-F)
5.IfJ≤0:
ThenJ+360→J:
IfEnd
6.U=J-O
7.A+SIcosU→A
8.IfAbs(Icos(U))≤0.001:
ThenA→A:
“LC”:
A
9.SIsin(U)→B:
“KD”:
B
10.Goto0:
IfEnd
11.RL→C:
Abs(A-Z)→D
12.IfD>L:
Then“D>L”
13.Goto0:
IfEnd
14.D-D∧5÷(40C2)+D∧9÷(3456C∧4)→V
15.D∧3÷(6C)-D∧7÷(336C∧3)+D∧11÷(42240C∧5)→W
16.Pol(V,W)
17.T+KJ→P:
T+90KD2÷(Cπ)→O
18.M+Icos(P)→E:
N+ISin(P)→F
19.Goto2
程序显示说明
须输入参数:
X0?
Y0?
-为ZH(或HZ)点坐标(X,Y)(对应变量MN)
Z?
-为ZH(或HZ)点的桩号(对应变量Z)
S?
-由ZH点计算时,S取+1,否则-1(对应变量S)
R?
-圆曲线半径(对应变量R)
L0?
-缓和曲线长度(L0)(对应变量L)
T?
-为ZH(或HZ)点至本曲线JD点的方位角(对应变量T)
K?
-根据JD点处的偏角α确定,左偏取-1,右偏取+1;
当由HZ点计算时,左偏取+1,右偏取-1(对应变量K)
X?
Y?
-待求点坐标(对应变量XY)
运算结果:
LC-待求点对应桩号(对应变量A)
KD-距离中线距离,左负,右正(对应变量B)
X?
Y?
-重新输入待求坐标点
八、后方交汇(HFJH)即自由设站(还未验算)
8-1边长交汇,在两点不通视或不方便架仪器时可任意架设仪器,依次照准两已知点并观测记录边长(夹角不用测)由本程序推算出测站坐标及后视方位角通过配盘完成设站,在外业观测中提高测量效率,特别对于没有程序功能的全站仪方便实用
注意:
运算结果为P在AB点右侧点,观测务必由A到B顺时针观测,不然结果为镜像点位置为AB连线左侧点,应用中必须判断明确!
!
!
1.“XA”?
U:
“YA”?
V:
“XB”?
X:
“YB”?
Y
2.Pol((U-X),(V-Y))
IfJ≤0:
ThenJ+360→J:
IfEndJ:
“JB-A”J
3.“SBA”:
I
4.Lbl1:
“SA”?
E:
“SB”?
F
5.cos-1((I2+F2-E2)÷(2IF))→B:
J-B→A
7.X+FcosA→C:
“XP”:
C
8.Y+FsinA→D:
“YP”:
D
9.G=A-180
IfG≤0:
ThenG+360→G:
IfEnd:
“JPB”:
G
9.Goto1
程序显示依次说明
须输入参数:
XA?
YA?
-输入观测第一点坐标对应变量UV
XB?
YB?
-输入观测第二点坐标对应变量XY
JB-A计算得出第二点指向第一点方位角
SBA-计算得出第二点到第一点距离(以上两项可视需要可不显示)
SA?
-输入由未知点P点到第一点A观测距离对应变量E
SB?
-输入由未知点P点到第二点B观测距离对应变量F
运算结果:
XPYP-解得未知P点坐标对应变量CD
JPB-由P点后视第二已知点推算方位角,(配盘用)对应变量J
九-1、ZBZH程序(坐标新旧系转换)(已验算)
″X1″?
A:
″Y1″?
B:
″X0″?
D:
″Y0″?
F:
″JJ″?
T
Lb10:
″XP″?
C:
″YP″?
E
A+(C-D)cos(T)+(E-F)sin(T)→G:
″XP1″:
G
B-(C-D)sin(T)+(E-F)cos(T)→H″YP1″:
H
Goto0
输入说明:
X1?
Y1?
为(公共点)新坐标系中坐标
X0?
Y0?
为(公共点)原坐标系中坐标
T?
为新坐标系X轴在原坐标中方位角(即坐标轴旋转角)
XP?
YP?
为待求点在原坐标系中坐标
计算结果:
XP1=、YP1=为待求点在新坐标系中坐标。
九-2、ZBZH程序(坐标新旧系转换)
本程序据公共点在新旧坐标系中的坐标,以及新坐标系X轴在原坐标系中方位角。
(即公共边旧坐标系中方位角减公共边新坐标系中方位角)来推算旧坐标系下未知点转换在新坐标系下坐标
1.″X″?
A:
″Y″?
B:
″X1″?
C:
″Y1″?
D:
″JJ″?
T
2.Lb10:
″XP″?
E:
″YP″?
F
3.(E-(A-(Ccos(T)-Dsin(T))))cos(T)+(F-(B-(Dcos(T)+Csin(T))))sin(T)→G:
″XP1″:
G
4.-(E-(A-(Ccos(T)-Dsin(T))))sin(T)+(F-(B-(Dcos(T)+Csin(T))))cos(T)→H:
″YP1″:
H
5.Goto0
输入说明:
X0、Y0为公共点原坐标系中坐标
X01、Y01为公共点新坐标系中坐标
JJ为新坐标系X轴在原坐标中方位角
XP、YP为待求点在原坐标中坐标;
计算结果:
XP1、YP1为待求点在新坐标系中坐标。
石武项目(部分)应用实例:
曲线资料:
一、QXFY辛甫森公式放样程序(示例)
1.Lb10:
“Z=”?
Z
2.If0=Z:
ThenGoto:
A:
IfEnd
3.If4=Z:
Then3450018.29→A:
500461.113→B:
180°7’14.5”→C:
0→D:
0→E:
21835.029→F:
23224.207→G:
GotoB:
IfEnd
4.If5=Z:
Then3448629.115→A:
500458.187→B:
180°7’14.5”→C:
0→D:
0→-1÷9000:
23224.207→F:
23714.21→G:
GotoB:
IfEnd
5.If6=Z:
Then3448139.143→A:
500461.601→B:
178°33’40”→C:
-1÷9000→D:
-1÷9000→E:
23714.21→F:
24061.66→G:
GotoB:
IfEnd
…………..
6.If0≠ZAnd4≠ZAnd5≠ZAnd6≠Z:
ThenGoto0:
IfEnd
7.Lb1A:
“XA”?
A:
“YA”?
B:
“CA”?
C:
“1÷RA”?
D:
“1÷RB”?
E:
“KA”?
F:
“KB”?
G
8.Lb1B:
“X0”?
U:
“Y0”?
V
9.Lb1C:
“KI”?
H:
“JJ”?
L:
“Y+Z-”?
R
10.IfH>GOrHThenGotoC:
IfEnd
11.(E-D)÷Abs(G-F)→P:
Abs(H–F)→Q:
P×Q→Z:
D+Z→T
12.C+(Z+2D)Q×90÷π→W:
“QXFWJ”:
W
DMS
13.C+(Z÷4+2D)Q×22.5÷π→M:
C+(3Z÷4+2D)Q×67.5÷π→N:
C+(Z÷2+2D)Q×45÷π→K
14.A+Q(cos(C)+4(cos(M)+cos(N))+2cos(K)+cos(W))÷12+Rcos(W+L)→X:
“X=”:
X
15.B+Q(sin(C)+4(sin(M)+sin(N))+2sin(K)+sin(W))÷12+Rsin(W+L)→Y:
“Y=”:
Y
16.Pol((X-U),(Y-V))
17.IfJ≤0ThenJ+360→J:
IfEnd:
“FWJ”:
J
DMS
18.“JU”:
I
19.GotoC
程序显示说明
须输入参数:
Z=?
:
输入放样点里程段号,若该段曲线资料未存入计算器内,则输入0,重新输入曲线资料。
XA:
曲线起算点X(0=Z时,提示输入线路曲线资料)
YA:
曲线起算点Y
CA:
曲线起算点切线方位角
1÷RA:
1÷半径,即起算点曲率,右偏为正左偏为负
1÷RB:
1÷半径,即曲终点曲率,右偏为正左偏为负
KA:
起算点里程
KB:
曲终点里程
X0?
:
置镜点X(0≠Z跳过以上显示)
Y0?
:
置镜点Y
KI?
:
待求点里程
JJ?
:
夹角(与前进方向切线向右的夹角)
DY+Z-?
:
边距,右正左负
计算结果:
QXFWJ:
计算点切线方位角
X=:
计算点x
Y=:
计算点y
FWJ:
放样方位角
JU:
放样距离
KI?
:
重新输入要求点里程
…..
2、圆曲线坐标换算YHS(示例):
1.Lbl0:
“Z=”?
Z
2.If0=Z:
ThenGotoA:
IfEnd
3.If6=Z:
Then3448365.139→M:
509458.763→N:
23887.93→Z:
267°27’18”→T:
9002.5→R:
-1→K:
GotoB:
IfEnd
…………………
4.If0≠ZAnd6≠Z:
ThenGoto0:
IfEnd
5.LblA:
“X0”?
M:
“Y0”?
N:
“KQZ”?
Z:
“T”?
T:
“R”?
R:
“K”?
K
6.LblB:
“X”?
X:
“Y”?
Y
7.Pol(X-M,Y-N)注:
计算(X,Y)点至圆心的距离
4.IfJ≤0:
ThenJ+360→J:
IfEnd
5.Z+KπR(J-T)÷180→A:
“LC”:
A
注:
计算(X,Y)点的桩号
6.K(R-I)→B:
“KD”:
B
注:
计算(X,Y)点的距中线距离
7.GotoB
程序显示说明:
须输入参数:
Z=?
:
输入放样点里程段号,若该段曲线资料未存入计算器内,则输入0,重新输入曲线资料。
X0?
Y0?
-圆心坐标(X,Y)(0=Z时,提示输入线路曲线资料)KQZ?
-曲线中点(QZ)的桩号
T?
-圆心至QZ点的方位角
R?
-圆曲线半径
K?
-根据JD点处的偏角α确定,左偏取-1,右偏取+1
X?
Y?
-待求点坐标(0≠Z跳过以上显示)
计算结果:
LC-待求点对应桩号
KD-距离中线距离,左负,右正
X?
Y?
-重新输入待求坐标点
七、缓和曲线段坐标换算HHS(示例):
1.Lbl0:
“Z=”?
Z
2.If0=Z:
ThenGotoA:
IfEnd
3.If5=Z:
Then3448629.12→M:
500455.687→N:
23224.21→Z:
1→S:
9000→R:
490→L:
180°7’15”→T:
-1→K:
GotoB:
IfEnd
…………………
4.If0≠ZAnd5≠Z:
ThenGoto0:
IfEnd
5.LblA:
“XQ”?
M:
“YQ”?
N:
“Z”?
Z:
“S”?
S:
“R”?
R:
“L0”?
L:
“T”?
T:
“K”?
K
2.LblB:
“X”?
X:
“Y”?
Y
3.Z→A:
M→E:
N→F:
T→O
4.LblC:
Pol(X-E,Y-F)→I
5.J≤0
J+360→J
6.J-O→U:
A+SIcos(U)→A
8.IfAbs(Icos(U))≤0.001:
ThenA→A:
“LC”:
A
9.SIsin(U)→B:
“KD”:
B
10.GotoB:
IfEnd
11.RL→C:
Abs(A-Z)→D
12.IfD>L:
Then“D>L”
13.GotoB:
IfEnd
14.D-D∧(5)÷(40C2)+D∧(9)÷(3456C∧(4))→V
15.D∧(3)÷(6C)-D∧(7)÷(336C∧(3))+D∧(11)÷(42240C∧(5))→W
16.Pol(V,W)→I
17.T+KJ→P:
T+90KD2÷(Cπ)→O
18.M+Icos(P)→E:
N+ISin(P)→F
19.GotoC
程序显示说明
须输入参数:
Z=?
:
输入放样点里程段号,若该段曲线资料未存入计算器内,则输入0,重新输入曲线资料。
X0?
Y0?
-为ZH(或HZ)点坐标(X,Y)(输入Z=0时,提示输入线路曲线资料)
Z?
-为ZH(或HZ)点的桩号
S?
-由ZH点计算时,S取+1,否则-1
R?
-圆曲线半径
L0?
-缓和曲线长度(L0)
T?
-为ZH(或HZ)点至本曲线JD点的方位角
K?
-根据JD点处的偏角α确定,左偏取-1,右偏取+1;
当由HZ点计算时,左偏取+1,右偏取-1
X?
Y?
-待求点坐标(0≠Z跳过以上显示)
运算结果:
LC-待求点对应桩号
KD-距离中线距离,左负,右正
X?
Y?
-重新输入待求坐标点
(D>L:
表示该计算点不在该缓和曲线段内,并提示重新输入坐标。
)
断面检查DMJC
1.Lbl0:
“K”?
K:
“KD”?
A:
“HA”?
B
2.K<22340
161.95-(22340-K)×0.011→G
3.K>23060
161.23-(K-23060)×0.013→G
4.IfK>22340AndK<23060:
ThenGoto0:
IfEnd
5.√(A2+(B-G-2.43)2)-7.2→D:
“CQW”:
D
6.Goto0
输入说明:
K?
输入里程
KD?
距中心宽度
KA?
测点高程
计算结果:
CQW超欠挖值,(“-”值表示欠挖值,“+”超挖值)