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”←┘­選擇數(shù)據(jù)庫文件,可增加
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線路范圍內(nèi)的任意樁號)
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(數(shù)據(jù)庫子程序)
If H<=第一曲線終點樁號:then第一曲線起點X→A:第一曲線起點Y→B:第一曲線起點方位角→C:起點曲率→D:終點曲率→E:起點樁號→F:終點樁號→G:return:ifend
……………
程序說明:
1、該程序可以計算任意線形(直線、圓曲線、緩和曲線、不完整曲線)任意樁號的坐標(正算,輸入1),也可根據(jù)坐標計算該點到線路的距離及垂足樁號(反算,輸入2);
2、(NEW=0,OLD≠0)?如果要計算的點為數(shù)據(jù)庫線路中的點,則輸入數(shù)據(jù)庫編號(以整數(shù)1、2、3…代替輸入);如果在數(shù)據(jù)庫中沒有要計算線路的數(shù)據(jù),則輸入曲線要素
X0:曲線起點X坐標;
Y0:曲線起點Y坐標;
C0:曲線起點方位角;
R0-1、 RI-1:曲線起點、終點曲率,直線為0,曲線左偏輸入負值,右偏輸入正值;
SP、 EP:曲線起點樁號,終點樁號;
KM:待求點樁號;
PJ:正斜交的設定;
PY:偏中距離,線路上的點輸入0,右偏輸入+值,左偏輸入-值;
3、正算顯示坐標及切線方位角;反算輸入線路的任意樁號(此樁號越接近真實值計算速度越快)、待求點坐標,顯示待求點樁號及偏中距離;
4、正算子程序為積分公式編寫而成;反算子程序為角度趨近的方法編寫,計算速度有點慢。
5、此程序顯示較直觀,結果在同一屏幕顯示。注* :程序中乘號用*標示,其余為X。

5800全線任意點設計高程計算,可計算豎曲線范圍內(nèi)外任意點的設計高程!非常實用!

“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位小數(shù)

 

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子程序(平面線形數(shù)據(jù)庫)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←┘­

子程序(豎曲線數(shù)據(jù)庫)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、規(guī)定­

(1) 以道路中線的前進方向(即里程增大的方向)區(qū)分左右;當線元往左偏時,Q=-1;當線元往右偏時,Q=1;當線元為直線時,Q=0。­

(2) 當所求點位于中線時,Z=0;當位于中線左鍘時,Z取負值;當位于中線中線右側時,Z取正值。­

(3) 當線元為直線時,其起點、止點的曲率半徑為無窮大,以10的45次代替。­

(4) 當線元為圓曲線時,無論其起點、止點與什么線元相接,其曲率半徑均等于圓弧的半徑。­

(5) 當線元為完整緩和曲線時,起點與直線相接時,曲率半徑為無窮大,以10的45次代替;與圓曲線相接時,曲率半徑等于圓曲線的半徑。止點與直線相接時,曲率半徑為無窮大,以10的45次代替;與圓曲線相接時,曲率半徑等于圓曲線的半徑。­

(6) 當線元為非完整緩和曲線時,起點與直線相接時,曲率半徑等于設計規(guī)定的值;與圓曲線相接時,曲率半徑等于圓曲線的半徑。止點與直線相接時,曲率半徑等于設計規(guī)定的值;與圓曲線相接時,曲率半徑等于圓曲線的半徑。