FX5800全线贯通万能正、反算程序(一体化、超好用、短小、易懂)
FX5800计算器的积分程序(正反算、全线贯通、新线路)终极版
ZHUCHENGXU主程序
"1.ZS,2.FS" ?→Q←┘输入1正算,输入2反算
“NEW=0,OLD≠0”?Z←┘
IfZ=0:Then“X0=”?A:“Y0=”?B:“C0=”?C:“1/R0=”?D:“1/RI=”?E:“SP=”?F:“EP=”?G:Ifend:Q=2=>Goto 2←┘
Lbl1 :“KM=,<0 Stop”?H:H<0=>Stop:“PJ=”?O:“PY=”?L←┘
LblZ:Z=1=> Prog“01”:Z=2=> Prog“02”←┘选择数据库文件,可增加
H- F→X:0.5(E-D)÷(G-F)→N←┘
C+(XD+NX2)*180÷π→P:P<0=>P+360→P:P>360=>P-360→P←┘A+∫(cos(C+(XD+NX2)*180÷π),0,X)+Lcos(P+O)→U←┘
B+∫(sin(C+(XD+NX2)*180÷π),0,X)+Lsin(P+O)→V←┘
Q=2=>Goto4:Cls:Fix 3←┘
"Xn=":Locate4,1,U:"Yn=": Locate5,2,V:“FWJ=”:PDMS◢
Norm 2:Cls:Goto1←┘
Lbl2:“XD=,<0,STOP”?R:R<0=>Stop:“YD=”?S←┘
“KMDG=”?H :90→O:0→L:GotoZ←┘ (H线路范围内的任意桩号)
Lbl4:Pol(R-U,S-V):J<0 => J+360→J←┘
Whileabs(Icos(J-P))≤0.001:P-J>180=> J+360→J: P-J<-180=> P+360→P:If P-J>0:then -I→L:else I→L :Ifend:Goto3: Whileend:H+Icos(J-P)→H:GotoZ←┘
Lbl3:Cls:Fix 3←┘
“KM=”: Locate4,1,H:“PY=”: Locate4,2,L◢
Norm 2:Cls:Goto2←┘
01(数据库子程序)
If H<=第一曲线终点桩号:then第一曲线起点X→A:第一曲线起点Y→B:第一曲线起点方位角→C:起点曲率→D:终点曲率→E:起点桩号→F:终点桩号→G:return:ifend
……………
程序说明:
1、该程序可以计算任意线形(直线、圆曲线、缓和曲线、不完整曲线)任意桩号的坐标(正算,输入1),也可根据坐标计算该点到线路的距离及垂足桩号(反算,输入2);
2、(NEW=0,OLD≠0)?如果要计算的点为数据库线路中的点,则输入数据库编号(以整数1、2、3…代替输入);如果在数据库中没有要计算线路的数据,则输入曲线要素
X0:曲线起点X坐标;
Y0:曲线起点Y坐标;
C0:曲线起点方位角;
R0-1、 RI-1:曲线起点、终点曲率,直线为0,曲线左偏输入负值,右偏输入正值;
SP、 EP:曲线起点桩号,终点桩号;
KM:待求点桩号;
PJ:正斜交的设定;
PY:偏中距离,线路上的点输入0,右偏输入+值,左偏输入-值;
3、正算显示坐标及切线方位角;反算输入线路的任意桩号(此桩号越接近真实值计算速度越快)、待求点坐标,显示待求点桩号及偏中距离;
4、正算子程序为积分公式编写而成;反算子程序为角度趋近的方法编写,计算速度有点慢。
5、此程序显示较直观,结果在同一屏幕显示。注* :程序中乘号用*标示,其余为X。
5800全线任意点设计高程计算,可计算竖曲线范围内外任意点的设计高程!非常实用!
“BPDZH=”?Z:“GC=”?H:“R=”?R:“I1=”? I:“I2=”?L :“T=”:0.005RAbs(I -L) →T◢
“E=”: T2÷2÷R◢
Lbl 0:“JZZH=”?→K:Z-T→A:Z+T→B:K-A→C:B-K→D:K-Z→E←┘
If L >I:Then 1→J:Else -1→J:IfEnd←┘
If KB =>0→D: IfEnd←┘
If K≦Z:Then I→Y:C→G:Else K >Z=>L→Y:D→G: IfEnd←┘
Lbl 1:Fix 3:“H=”:H+EY÷100+JG2÷2÷R◢
Goto 0←┘
说明:BPDZH:前变坡点桩号 用变量Z表示
H:前变坡点高程
R:半径
I L:前后纵坡值 输入格式:6.1%输入6.1,有负号的要输入负号
T:切线长 E:竖距
JZZH:待求点设计高程的桩号 用变量K表示
Fix 3:计算结果保留3位小数
5800计算器公路全线坐标正、反算计算程序
正算主程序(ZS)
Lb1 0
FIX4:?S:?Z:Prog “PM-SJ”: Abs(S-O) → W:Prog "SUB1": "XS=":X◢
"YS=":Y◢F-90→F(需要时可以让他显示,不要时不必输入):Prog“SQX-SJ”: Prog“SQX”:“H=”:H◢
Goto 0
反算主程序(FS)
正算子程序(SUB1): (P-R)÷(2HPR) → D: 180÷π→ E: 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+ZcosF→ X: Y+ZsinF→ Y反算子程序(SUB2): Abs((Y-V)cosT-(X-U)sin(T)) → W: 0→ Z:Lbl 0:Prog "SUB1": T+QEW(C+WD) →L: (J-Y)cosL-(I-X)sinL → Z:ifAbsZ<1E-6:thenGoto1:ElssW+Z → W:Goto 0:IfEnd←┘: 0→ Z:Prog "SUB1": (J-Y)÷sinF→ Z子程序(平面线形数据库)PM-SJ
1÷P→ C
G-90→T
Lbl 1
ifS ≥500(线元起点里程)AndS<769.256(线元止点里程):Then19942.837 →U(线元起点X坐标):28343.561 →V(线元起点Y坐标):500 →O(线元起点里程):125°16°31°→G(线元起点方位角):269.265 →H(线元长度):10^(45)→P(线元起点曲率半径):10^(45)→R(线元终点曲率半径):0 →Q(线元左右偏标志:左负右正):IfEnd←┘
ifS ≥769.256(线元起点里程)AndS<806.748(线元止点里程):Then19787.34 →U(线元起点X坐标):28563.378→V(线元起点Y坐标):769.256→O(线元起点里程):125°16°31°→G(线元起点方位角):37.492→H(线元长度):10^(45)→P(线元起点曲率半径):221.75→R(线元终点曲率半径):-1→Q(线元左右偏标志:左负右正):IfEnd←┘
ifS ≥806.748(线元起点里程)AndS<919.527(线元止点里程):Then19766.566→U(线元起点X坐标):28594.574→V(线元起点Y坐标):806.748→O(线元起点里程):120°25°54.07°→G(线元起点方位角):112.779→H(线元长度):221.75→P(线元起点曲率半径):221.75→R(线元终点曲率半径):-1→Q(线元左右偏标志:左负右正):IfEnd←┘
ifS ≥919.527(线元起点里程)AndS<999.812(线元止点里程):Then19736.072 →U(线元起点X坐标):28701.893 →V(线元起点Y坐标):919.527→O(线元起点里程):91°17°30.63°→G(线元起点方位角):80.285→H(线元长度):221.75→P(线元起点曲率半径):9579.228→R(线元终点曲率半径):-1→Q(线元左右偏标志:左负右正):IfEnd←┘
ifS ≥999.812(线元起点里程):Then19744.038 →U(线元起点X坐标):28781.659→V(线元起点Y坐标):999.812→O(线元起点里程):80°40°50°→G(线元起点方位角):100→H(线元长度):10^(45)→P(线元起点曲率半径):10^(45)→R(线元终点曲率半径):0 →Q(线元左右偏标志:左负右正):IfEnd←┘
子程序(竖曲线数据库)SQX-SJ
ifS≤999.812(竖曲线终点里程):then0.0357(前坡度:上坡正下坡负)→E:0.0227(后坡度:上坡正下坡负)→F:600→R(竖曲线半径):780→G(变坡点里程):110→C(变坡点高程):IfEnd←┘
子程序(竖曲线计算公式)SQX
E-F→J:ifJ>0:then-R→R:ElssR→R:Abs(R*J÷2)→T:IfEnd←┘
ifS≤G-T:thenG-S→L:C-LE→H:IfEnd←┘
ifS>G-T And S≤G: thenG-S→L:(S+T-G)²÷2÷R→N:C-LE+N → H:IfEnd←┘
ifS>G And S≤G+T: then S-G→L:(G +T- S)²÷2÷R→N:C+LF+N → H:IfEnd←┘
ifS>G+T :thenS-G→L: C+LF → H:IfEnd←┘
三、使用说明
1、规定
(1) 以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0。
(2) 当所求点位于中线时,Z=0;当位于中线左铡时,Z取负值;当位于中线中线右侧时,Z取正值。
(3) 当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次代替。
(4) 当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆弧的半径。
(5) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。
(6) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。