聶有軍 聶有杰
(內(nèi)蒙古阿拉善盟S218線巴蘇一級公路建管辦,內(nèi)蒙古自治區(qū)阿拉善盟 750306)
CASIO計算器全路線程序計算
聶有軍 聶有杰
(內(nèi)蒙古阿拉善盟S218線巴蘇一級公路建管辦,內(nèi)蒙古自治區(qū)阿拉善盟 750306)
公路工程、市政道路工程、橋梁工程的施工過程中,設(shè)計坐標(biāo)、設(shè)計標(biāo)高現(xiàn)場計算是頻率較高的一項工作?,F(xiàn)采用CASIO-5800做為編程工具,編寫了全路線坐標(biāo)計算程序、全路線標(biāo)高計算程序、全路線坐標(biāo)反算樁號程序三組全路線計算程序。本程序主要適用于CASIO-4800、CASIO-4850、CASIO-4850計算器。
CASIO-4800計算器 CASIO-4850計算器 CASIO-4850計算器
為了兼顧在CASIO-4800/CASIO-4850計算器上應(yīng)用,路線元素輸入中,采用即時校核改錯輸入方式,方便輸入與校對改錯。程序編寫過程中盡可能使程序短小精簡,便于手工輸入程序與節(jié)約內(nèi)存。全路線參數(shù)一次輸入計算器存儲容量不夠用時,可以輸入部分路線參數(shù)分段使用。CASIO-4800/CASIO-4850計算器不能使用變量定義擴(kuò)充變量存儲器。自定義存儲器個數(shù)需要手工設(shè)置,自定義存儲器個數(shù)設(shè)置為:(Z[6]+1)×6+Z[5]×3。Z[6]為平曲線個數(shù);Z[5]為豎曲線個數(shù)(包括起點(diǎn)與終點(diǎn))。CASIO-5800計算器,計算器程序根據(jù)輸入的曲線個數(shù)自動設(shè)置。
(1)以交點(diǎn)樁號、坐標(biāo)為基礎(chǔ)數(shù)據(jù),避免了路線全系統(tǒng)錯誤的發(fā)生。
(2)路線斷鏈自動處理。按設(shè)計圖紙修改斷鏈子程序序中的斷鏈樁號。
(3)統(tǒng)一設(shè)置分配變量、參數(shù)存儲器。三組程序根據(jù)需要任意切換調(diào)用,不影響各自的基礎(chǔ)參數(shù)。
(4)只輸入最基本的必需參數(shù),如豎曲線的凹凸判別問題、平曲線偏轉(zhuǎn)左右判別問題、前緩和線段與后緩和線判別問題、樁號斷鏈處理、設(shè)計緩和線不等長等問題均自動處理。
(5)計算誤差一般在0.5mm以內(nèi)。豎曲線段設(shè)計標(biāo)高計算使用了平面解析幾何方法推導(dǎo)的計算公式,計算精度可以滿足工程施工規(guī)范要求。平曲線參數(shù)計算公式中程序?qū)⒆詣犹幚碓O(shè)計緩和線不等長時的相關(guān)曲線參數(shù)計算。
(6)全路線坐標(biāo)計算程序,在基礎(chǔ)參數(shù)輸入時,只要求輸入路線交點(diǎn)樁號,交點(diǎn)坐標(biāo)X、Y值、曲線半徑、緩和線長度等五個必需的參數(shù)。純圓平曲線時,設(shè)計緩和線長度L輸入0。平曲線前后設(shè)計緩和線等長時,輸入設(shè)計緩和線長度L時,L值只輸入一個數(shù)即可。平曲線前后設(shè)計緩和線不等長時,前后設(shè)計緩和線長度需合并輸入L。由程序自動識別處理。(例如:設(shè)計緩和線等長L1=L2=85,L值輸入85。設(shè)計緩和線不等長L1=85;L2=75,L值輸入1085075。特別說明,此時的L1、L2都要以百位數(shù)輸入,前面加1是為了方便程序處理)。
(7)三組程序中均考慮了樁號斷鏈問題。如路線存在樁號斷鏈,在程序使用前一定要修改好斷鏈子程序中的斷鏈樁號。如路線不存在樁號斷鏈問題,只要將斷鏈子程序中的斷鏈樁號設(shè)定在路線以外即可,如:修改鏈樁號39350,變?yōu)?39350或9939350。其它斷鏈樁號修改方法類同,就跳開了斷鏈問題。
程序使用前計算器需設(shè)置為角度制。CASIO-5800P新的計算器需要首先自定義10個以上的可變存儲器,才能正常運(yùn)行程序。如首先使用了坐標(biāo)計算程序,路線平曲線元素輸入完成,再使用標(biāo)高計算程序,依次完成豎曲線元素輸入,這是理想的使用順序,不會因操作問題丟失豎曲線元素數(shù)據(jù)。
三組程序總使用自定義變量存儲器個數(shù)為:(Z[6]+1)×6+Z[5]×3。
Z[6]為路線平曲線交點(diǎn)個數(shù),(樁號)M—Z[6K+7];(X坐標(biāo))A—Z[6K+8];(Y坐標(biāo))B—Z[6K+9];(半徑)R—Z[6K+10];(設(shè)計緩和線)L—Z[6K+11];(ZH點(diǎn)樁號)ZH—Z[6K+12]。
Z[5]為路線豎曲線交點(diǎn)個數(shù)。標(biāo)高計算程序的自定義存儲器編號是在首先定義了平曲線個數(shù)基礎(chǔ)上再向上遞加的。C=Z[6]+1;(樁號)M—Z[6C+3K+1];(半徑)R—Z[6C+3K+2];(JD標(biāo)高)H—Z [6C+3K+3]。完成路線元素輸入后,對照設(shè)計資料進(jìn)行坐標(biāo)或標(biāo)高計算對比,正確無誤后方可在工地現(xiàn)場使用。
4.1 全路線坐標(biāo)計算
(1)計算思路:判斷計算點(diǎn)樁號是否小于ZH點(diǎn)樁號,如小于ZH點(diǎn)樁號(否則如大于ZH點(diǎn)樁號進(jìn)行下一個ZH點(diǎn)樁號斷)則確定樁號所在JD位置,進(jìn)行參數(shù)賦值,計算曲線參數(shù),計算ZH點(diǎn)、HY點(diǎn)、YH點(diǎn)、HZ點(diǎn)樁號,確定計算點(diǎn)樁號位置范圍,調(diào)用對應(yīng)的子程序計算坐標(biāo)。
(2)計算步驟:輸入計算點(diǎn)樁號→判斷計算點(diǎn)的位置→確定計算樁號所在平曲線JD→曲線參數(shù)計算賦值→判斷計算點(diǎn)在已確定的JD曲線上處于那個線段范圍內(nèi)→調(diào)用相關(guān)子程序進(jìn)行中樁坐標(biāo)計算→如需要進(jìn)行需要的邊樁坐標(biāo)計算→完成計算后返回主程序進(jìn)行下一個給定樁號的坐標(biāo)計算。
(3)主要變量說明。程序要求輸入的路線平曲線元素:起點(diǎn)坐標(biāo)X、Y值;終點(diǎn)坐標(biāo)X、Y值;各平曲線交點(diǎn)樁號、坐標(biāo)X、Y值;平曲線半徑R;平曲線設(shè)計緩和線長度L。
一般變量意義說明:左偏角I設(shè)置為1,右偏角I設(shè)置為-1;JD切線方位角F;計算點(diǎn)樁號Z;JD樁號M;曲線切線長度T(T1為T;T2為Z[12]);曲線總長度S;設(shè)計緩和線長度L(L1為L;L2為Z[10]);圓曲半徑R;求算點(diǎn)樁號Z;邊樁坐標(biāo)計算判斷符號Q,Q為邊樁偏轉(zhuǎn)中線角度??捎嬎闳我黄D(zhuǎn)角度的邊樁坐標(biāo)。左邊樁Q輸入-90,右邊樁Q輸入90。邊距為K,輸入邊樁距中線距離。程序輸出相應(yīng)邊樁坐標(biāo)。Q輸入0,程序只計算中樁坐標(biāo)。
4.2 全路線標(biāo)高計算
(1)計算思路:計算切線長度,判斷計算點(diǎn)樁號是否小于豎曲線起點(diǎn)樁號,如小于豎曲線起點(diǎn)樁號(否則如大于豎曲線起點(diǎn)樁號進(jìn)行豎曲線起點(diǎn)樁號判斷)則確定樁號所在JD位置,進(jìn)行參數(shù)賦值,調(diào)用標(biāo)高計算子程序進(jìn)行標(biāo)高計算。
程序要求輸入的路線豎曲線元素:起點(diǎn)樁號;起點(diǎn)樁號設(shè)計標(biāo)高;終點(diǎn)樁號;終點(diǎn)樁號設(shè)計標(biāo)高;各豎曲線交點(diǎn)樁號、交點(diǎn)標(biāo)高;豎曲線半徑。
一般變量意義說明:交點(diǎn)樁號M,交點(diǎn)標(biāo)高H;豎曲線半徑R;后縱坡度I;前縱坡度J;凸豎曲線D設(shè)置為1,凹豎曲線D設(shè)置為-1;豎曲線切線T。
(2)計算步驟:輸入計算點(diǎn)樁號→判斷計算點(diǎn)的位置→確定計算樁號所在豎曲線JD→判斷計算點(diǎn)在已確定的JD曲線上處于那個線段范圍內(nèi)→調(diào)用相關(guān)子程序進(jìn)行中樁標(biāo)高計算→如需要進(jìn)行需要的邊樁標(biāo)高計算→完成計算后返回主程序進(jìn)行下一個給定樁號的坐標(biāo)計算。
(3)豎曲線段標(biāo)高計算公式的建立:將路線展開縱斷面翻轉(zhuǎn)90°視為一水平面,建立大地相對坐標(biāo)系:路線里程設(shè)為X軸,高程設(shè)為Y軸,假定路線起點(diǎn)K0+000與高程為0.000的點(diǎn)為坐標(biāo)系的原點(diǎn)(0,0)。豎向坐標(biāo)值(高程值):
4.3 全路線坐標(biāo)反算樁號計算
程序變量設(shè)置與全路線標(biāo)高計算相同,部分子程序共用。
(1)計算思路:判定計算點(diǎn)所在最近JD后,首先在臨近三個JD計算判斷投影點(diǎn)是否在圓上,如果是,完成計算。否則判斷是否在本JD前或后直線段上,如果是,完成計算。否則一定在本交點(diǎn)或前或后緩和線上,完成計算即可。
(2)基本計算原理:基本計算原理如圖1,2,3,4說明:
(3)計算步驟。輸入求算點(diǎn)坐標(biāo)X,Y→判斷求算點(diǎn)的位置→確定計算點(diǎn)最近平曲線JD→曲線參數(shù)計算準(zhǔn)備,圓心坐標(biāo)計算→判斷求算點(diǎn)是否在本交點(diǎn)圓曲線段,如在計算樁號及位置→否則同理計算前后曲線參數(shù)判斷是否在前后交點(diǎn)的圓上,如在,計算投影點(diǎn)在圓曲線上的樁號及位置→否則計算點(diǎn)到JD后切線的距離Q值和計算點(diǎn)在切線上的投影點(diǎn)到交點(diǎn)的距離K值→K>0,說明點(diǎn)在交點(diǎn)后方。否則在前方?!袛嗤队包c(diǎn)是否在直線段上(交點(diǎn)前或后由K>0或K<0自動處理),如在計算投影點(diǎn)在直線段上的樁號及位置→否則解算點(diǎn)在緩和線上的緩和線長度(交點(diǎn)前或后由K>0或K<0自動處理)→計算投影點(diǎn)在緩和曲線上的緩和線上的樁號及點(diǎn)到緩和線的(左或右)距離→返回開始下一個坐標(biāo)點(diǎn)的樁號計算。
主要公式
點(diǎn)到直線距離:設(shè)求算點(diǎn)坐標(biāo)(C,D);JD坐標(biāo)(A,B);求算點(diǎn)到切線距離Q=(C-A)sin(F-180)-(D-B)cos(F-180);求算點(diǎn)投影點(diǎn)到JD距離為K=(C-A)sin(F-90)-(D-B)cos(F-90)。
圓上的投影點(diǎn)計算:計算圓心坐標(biāo)→計算圓心至HY點(diǎn)、圓心至YH點(diǎn)方位角。→計算圓心至求算點(diǎn)方位角。→判斷圓心至求算點(diǎn)方位角指向范圍是否在圓上。
緩和線段解算方程求解投影點(diǎn)的緩和線長度:
設(shè)計算點(diǎn)坐標(biāo)為(T-K,Q):X=W-W^5/(40×R2×L2)-①;Y= W^3÷(6RL)-②;Y=tan(90+90W2/(RLπ)×(X-T+ABS(K))+Q-③解方程組①、②與③得到求算點(diǎn)投影點(diǎn)緩和線上的緩和線長度W。
5.1 全路線坐標(biāo)計算程序
程序名:主程序QLXZB-JS;
相關(guān)子程序10個:平曲線元素輸入LXYS-SR;單曲路線坐標(biāo)計算LX-ZB-JS;平曲交點(diǎn)賦值JSJDFZ;曲線參數(shù)計算QX-CS;圓曲線段坐標(biāo)計算YQX-ZB-JS;緩和曲線段坐標(biāo)計算HQS-ZB-JS;直線段坐標(biāo)計算Q-ZXD-ZB-JS;方位角計算FWJJS;樁號斷鏈處理DL--CL;邊樁坐標(biāo)計算BZ。
程序輸入變量說明:重新輸入或校對路線平曲線元素,LSYSSR=0?輸入0,否則回車進(jìn)行樁號輸入。Z[6]-路線平曲線交點(diǎn)個數(shù)N (包括路線起點(diǎn)BP;路線終點(diǎn)EP;)。平曲線元素輸入時,首先要求輸入的是起點(diǎn)BP、終點(diǎn)EP點(diǎn)坐標(biāo)(起點(diǎn)樁號、終點(diǎn)樁號不需輸入),后續(xù)n=2時輸入JD1的M—樁號;A—坐標(biāo)X值;B—坐標(biāo)Y值;R—半徑;L—緩和線長(特別說明:當(dāng)曲線為單圓曲線時L輸入0,平曲線前后設(shè)計緩和線等長時,輸入設(shè)計緩和線長度L時,L值只輸入一個數(shù)即可,平曲線前后設(shè)計緩和線不等長時,前后設(shè)計緩和線長度合并輸入L即可。例如:設(shè)計緩和線等長L1=L2=180,L值輸入180。設(shè)計緩和線不等長L1=180;L2=160,L值輸入1180160。此時的L1、L2都要以百位數(shù)輸入,前面加1是方便程序處理)。以此類推。
Z—輸入計算點(diǎn)樁號;Q—輸入計算點(diǎn)在前進(jìn)方向的轉(zhuǎn)角,中樁坐標(biāo)計算完成后,如果不需要計算邊樁坐標(biāo)則Q輸入0,否則Q輸入相應(yīng)邊樁偏轉(zhuǎn)角(如邊樁在路線中線左側(cè)90度,則Q輸入-90;邊樁在路線中線右側(cè)60度輸入則Q輸入60)。K—輸入計算點(diǎn)邊距(邊樁至路線中樁的水平距離)。
程序計算主要中間變量說明:
G—路線偏轉(zhuǎn)角度;O—緩和線偏轉(zhuǎn)角度;L—設(shè)計緩和線長度; F—JD后方位角;E—JD前方位角;T—切線長度;S—曲線長度;Z[7]—斷鏈長度;Z[10]—平曲線第2設(shè)計緩和線長度;Z[11]—平曲線第2緩和線偏轉(zhuǎn)角度;Z[12]—平曲線第2切線長度。
圖1 平曲線第1緩和線段計算原理示意圖
圖2 平曲線第二緩和線段計算原理示意圖
圖3 平曲線左偏角圓曲線段計算原理示意圖
坐標(biāo)輸出"Z.X"表示在直線段上的中樁X值;輸出"Z.Y"表示在直線段上的中樁Y值;輸出"Y.X"表示圓曲線段上的中樁X值;輸出"Y.Y"表示在圓曲線段上的中樁Y值;輸出"H.X"表示在緩和曲線段上的中樁X值;輸出"H.Y"表示在緩和曲線段上的中樁Y值。
5.2 全路線標(biāo)高計算程序
程序名:主程序BGQLX-JS;
相關(guān)子程序5個:豎曲線元素輸入SQXYS-SR;單曲線標(biāo)高計算GB-JS(角度制);標(biāo)高計算要素賦值BGYSFZ;斷鏈縱坡處理ZP--CL;斷鏈標(biāo)高處理BG--CL;
程序輸入變量說明:重新輸入或校對路線元素,SQXYSSR=0?輸入0,否則回車進(jìn)行樁號輸入。Z[5]-路線豎曲線交點(diǎn)個數(shù)N (包括路線起點(diǎn)BP;路線終點(diǎn)EP;)。豎曲線元素輸入時,首先要求輸入的是BP、EP點(diǎn)樁號、標(biāo)高,后續(xù)n=2時輸入JD1的M—樁號;H—標(biāo)高;R—豎曲線半徑。以此類推。
Z—輸入求算點(diǎn)樁號;中樁標(biāo)高計算完成后,如果不需要計算邊樁標(biāo)高橫坡度H-PO?輸入0,否則輸入道路橫坡度(如:1.5%輸入1.5),S—輸入計算點(diǎn)邊距。
程序計算主要中間變量說明:Z[6]-路線平曲線交點(diǎn)個數(shù);C=Z [6]+1;T—切線長度。
5.3 全路線坐標(biāo)反算樁號計算程序
程序名:主程序ZB-FS-ZH
相關(guān)子程序6個:圓坐標(biāo)反算YZBFS;點(diǎn)到直線距離DDZXJL;平曲交點(diǎn)賦值JSJDFZ;曲線參數(shù)計算QX-CS;樁號斷鏈處理DL—CL;樁號斷鏈處理DL--CL2。
程序輸入變量說明:求算點(diǎn)坐標(biāo)X→C;Y→D。在執(zhí)行過全路線坐標(biāo)計算程序且已完成路線平曲線元素輸入后,才能運(yùn)行全路線坐標(biāo)反算樁號計算程序。
清單中的除號“/”,在計算器程序輸入時輸入“÷”。
圖4 平曲線右偏角圓曲線段計算原理示意圖
6.1 CASIO-5800程序清單。
全路線坐標(biāo)計算:QLXZB-JS
"LXYS-SR=0"?K:K=0=>Prog"LXYS-SR":LbI1:"Z"?Z: Z[6]→N:For1→KToN-2:IfK<N-2:ThenIfZ≤Z[6(K+1) +12]:ThenProg"JSJDFZ":Goto2:ElseGoto3:IfEnd:IfEnd: Prog"JSJDFZ":Goto2:LbI3:Next:LbI2:H→K:Prog"LX-ZBJS":K→H:Goto1
平曲線元素輸入:LXYS-SR
Z[6]→N:"N"?N:6(N+1)→DimZ:N→Z[6]:Z[8]→M:"BP-X"?M:M→Z[8]:Z[9]→M:"BP-Y"?M:M→Z[9]:Z[6(N-1)+8]→M: "EP-X"?M:M→Z[6(N-1)+8]:Z[6(N-1)+9]→M:"EP-Y"?M:M→Z[6(N-1)+9]:For1→KToN-2:"n=":K+1Z[6K+7]→M: "JD"?M:M→Z[6K+7]:Z[6K+8]→A:"A"?A:A→Z[6K+8]:Z[6K+9]→B:"B"?B:B→Z[6K+9]:Z[6K+10]→M:"R"?M:M→Z[6K+10]: Z[6K+11]→M:"L"?M:M→Z[6K+11]:Next:For1→KToN-2: Prog"JSJDFZ":Prog"QX-CS":M-T→Z[6K+12]:Next:Return
平曲交點(diǎn)賦值:JSJDFZ
Z[6K+7]→M:Z[6K+8]→A:Z[6K+9]→B:Z[6K+10]→R:Z [6K+11]→L:A→X:B→Y:Z[6(K-1)+8]→A:Z[6(K-1)+9]→B: Prog"FWJJS":J→F:X→A:Y→B:Z[6(K+1)+8]→X:Z[6(K+1)+9]→Y:Prog"FWJJS":J→E:E-F→G:1→I:G<0=>-1→I:Abs(G)→G:Return
方位角計算:FWJJS
Pol((X-A),(Y-B)):J<0=>360+J→J:Return
樁號斷鏈處理:DL—CL
39350-39311.265→Z[7]:IfZ≥39350ANDZ<39508.004: ThenZ→X:Z-Z[7]→Z:IfEnd:Return
單曲路線坐標(biāo)計算:LX-ZB-JS
Prog"DL--CL":Prog"QX-CS":M-T→Z[1]:Z[1]+L→Z[2]: Z[1]+S→Z[4]:Z[4]-Z[10]→Z[3]:IfZ≤Z[1]OrZ≥Z[4]:Then Prog"Q-ZXD-ZB-JS":Goto1:ElseIfZ≤Z[3]ANDZ≥Z[2]:Then Prog"YQX-ZB-JS":Goto1:IfEnd:IfEnd:Prog"HQS-ZB-JS": LbI1:Return
曲線參數(shù)計算:QX-CS
L→Z[10]:90L/(Rπ)→Z[11]:IFL>999:ThenL-INT(L/ 1000)*1000→Z[10]:INT(L/1000)-1000→L:IfEnd:90L/(Rπ)→O:L2/(24R)-L^(4)/(2688R^(3))→P:L/2-L^(3)/(240R2)→X :90Z[10]/(Rπ)→Z[11]:X+Rtan(G/2)-P/tan(G)+(Z[10]2/(24R)-Z[10]^(4)/(2688R^(3)))/sin(G)→T:Z[10]/2-Z[10]^(3)/(240R2) +Rtan(G/2)-(Z[10]2/(24R)-Z[10]^(4)/(2688R^(3)))/tan(G)+P/sin (G)→Z[12]:(G-O-Z[11])πR/180+L+Z[10]→S:√((L-L^(3)/ (40R2))2+(L2/(6R))2)→V:Return
直線段坐標(biāo)計算:Q-ZXD-ZB-JS
IfZ<M-T:Then1→H:180+F→E:A+Tcos(E)→C:B+Tsin (E)→D:M-T-Z→W:Else-1→H:A+Z[12]cos(E)→C:B+Z[12] sin(E)→D:Z-(M-T+S)→W:IfEnd:"Z.X=":C+Wcos(E)→X"Z.Y=":D+Wsin(E)→Y"Q"?Q:IfH>0:ThenF+Q→N: ElseE+Q→N:IfEnd:Prog"BZ":Return
緩和曲線段坐標(biāo)計算:HQS-ZB-JS
1→H:Z>M=>-1→H:IfH>0:ThenZ-(M-T)→W:A+Tcos (F+180)→C:B+Tsin(F+180)→D:F→E:Goto3:IfEnd:(M-T+S)-Z→W:A+Z[12]cos(E)→C:B+Z[12]sin(E)→D:E+180→E:Z[10]→L:Lb13:30HIW2÷(RLπ)→U:W-W^(5)÷(40R2L2)→X:W^(3) ÷(6RL)→Y:√(X2+Y2)→W:C+Wcos(U+E)→X:"H.X=": XD+Wsin(U+E)→Y:"H.Y=":Y"Q"?Q:IfH>0:Then F+3U+Q→N:ElseE-180+3U+Q→N:IfEnd:Prog"BZ":Return
圓曲線段坐標(biāo)計算:YQX-ZB-JS
A+Tcos(F+180)→C:B+Tsin(F+180)→D:C+Vcos(F+IO/3)→C:D+Vsin(F+IO/3)→D:90(Z-(M-T+L))/R/π→U:2RsinU→W:IU+F+IO→N:C+WCosN→X:"Y.X=":XD+WsinN→Y:"Y.Y=":Y"Q"?Q:F+2IU+IO+Q→N:Prog"BZ":Return
邊樁坐標(biāo)計算BZ
全路線標(biāo)高計算:BGQLX-JS
"SQXYS-SR=0"?K:K=0=>Prog"SQXYS-SR":LbI1:Z[6] +1→C:"Z"?Z:Z[5]→N:
For1→KToN-2:IfK<N-2:ThenK+1→K: Prog"BGYSFZ":K-1→K:IfZ≤Z[6C+3(K+1)+1]-T:Then Prog"BGYSFZ":Goto2:ElseGoto3:IfEnd:IfEnd:
Prog"BGYSFZ":Goto2:LbI3:Next:LbI2:Prog"GB-JS": Goto1
豎曲線元素輸入:SQXYS-SR
Z[5]→N:"N"?N:Z[6]+1→C:6C+3N→DimZ:N→Z[5]:Z [6C+1]→M:"BP-M"?M:M→Z[6C+1]:Z[6C+3]→M:"BP-H"?M: M→Z[6C+3]:Z[6C+3(N-1)+1]→M:"EP-M"?M:M→Z[6C+3(N-1)+1]:Z[6C+3(N-1)+3]→M:"EP-H"?M:M→Z[6C+3(N-1)+3]: For1→KToN-2:"n=":K+1Z[6C+3K+1]→M:"JD"?M:M→Z[6C+3K+1]:Z[6C+3K+3]→H:"H"?H:H→Z[6C+3K+3]]:Z [6C+3K+2]→R:"R"?R:R→Z[6C+3K+2]:Next:Return
標(biāo)高計算要素賦值:BGYSFZ
0→U:0→P:Z[6C+3K+1]→M:Z[6C+3K+3]→H:Z[6C+3K+2]→R:Prog"ZP--CL":(H-Z[6C+3(K-1)+3])/(M-Z[6C+3(K-1) +1]-U)→I:(Z[6C+3(K+1)+3]-H)/(Z[6C+3(K+1)+1]-M-P)→J: tan-1(I)-tan-1(J)→W:Rtan((Abs(W))/2)→T:Return
斷鏈縱坡處理:ZP—CL
39350-39311.265→Z[7]:39350>Z[6C+3(K-1)+1]AND39350<M=>Z[7]→U:
39350>MAND39350<Z[6C+3(K+1)+1]=>Z[7]→P:Return
斷鏈標(biāo)高處理:BG—CL
Z≥39350ANDZ<39548.043=>Z-Z[7]→Z:Return
單曲線標(biāo)高計算:GB-JS(角度制)
Prog"BG--CL":tan-1(I)-tan-1(J)→W:(AbsW)/W→D: Rtan((Abs(W))/2)→T:tan-1(I)-90D→C:IfZ<M-T:"X=":Then H-I(M-Z)Goto1:ElseIfZ>M+T:then"X=":H+J(Z-M)Goto1:IfEnd:IfEnd:"X=":H-TI+RSinC+D√(R2-(Z-(MT+RCosC))2)LbI1:"H-PO="?V:IfV≠0:Then"S="?Q: Ans-0.01VQIfEnd:Return
坐標(biāo)反算樁號:ZB-FS-ZH
LbI1:"C"?C:"D"?D:Z[8]-C→A:Z[9]-D→B:Pol(A,B):I→U:1→Z[3]:Z[6]→N:For1→KToN-2:Z[6K+8]-C→A:Z [6K+9]-D→B:Pol((A,B):I<U=>K→Z[3]:I<U=>I→U:Next:1→H:Z[3]≠1=>Z[3]-1→K:Prog"YZBFS":0=U=>Goto1:Z[3]≠1=>M-T+S→Z[6(Z[6]-1)+12]:Z[6]-2≠Z[3]=>Z[3]+1→K: Prog"YZBFS":0=U=>Goto1:Z[3]→K:Prog"YZBFS":0=U=>Goto1:Z[6(Z[3]+1)+12]→Y:Z[6(Z[6]-1)+12]→U:Z[3]=1=>Z [18]-99999→U:Z[6]-2=Z[3]=>Z[6(Z[6]-2)+7]+99999→Y:F→X: E→F:Prog"DDZXJL":X→F:K→X:Prog"DDZXJL":IfK<0: ThenIfAbs(X)>Y-M+T+Z[12]-S:ThenZ[3]+1→K:Goto3: Else-1→H:Goto4:IfEnd:ElseIfK>M-U:ThenZ[3]-1→K:-1→H:Goto3:ElseGoto5:IfEnd:IfEnd:LbI3: Prog"JSJDFZ":Prog"QX-CS":I→Z:LbI4:-1=H=>E→F: Prog"DDZXJL":LbI5:IfK>0ANDAbs(K)≥TorK<0AND Abs(K)≥Z[12]:ThenIfK>0:ThenM-Abs(K)→X:X-Z[7]→Z:Prog"DL--CL2":ElseM+Abs(K)-T-Z[12]+S→X:X+Z[7]→Z:Prog"DL--CL":IfEnd:"ZHUANG.HAO-Z":XIfQ>0: Then"Y-C":Else"Z-C":IfEnd:Abs(Q)Goto1:IfEnd:W→X:LbI2:(W^3÷(6RL)-ZQ)/tan(90+90W2/(RLπ))+T-ABS(K) +W^5÷(40R2L2)→X:IfABS(X-W)>0.0001:ThenX→W:Goto 2:IfEnd:X→W:W-W^5÷(40R2L2)→X:W^3÷(6RL)→Y:IfK>0:Then"ZHUANG.HAO-H1":M-T+WElse"ZHUANG. HAO-H2":M-T+S-WIfEnd:IfQ>0:Then"Y-C":Else"ZC":IfEnd:√((T-Abs(K)-X)2+(ZQ-Y)2)Goto1:
點(diǎn)到直線距離:DDZXJL
(C-A)sin(F-180)-(D-B)cos(F-180)→Q:(C-A)sin(F-90)-(D-B)cos(F-90)→K:T-ABS(K)→W:-1=H=>Z[10]→L:Return
圓坐標(biāo)反算:YZBFS
Prog"JSJDFZ":Prog"QX-CS":√((T-X)2+(R+P)2)→H: F+I(180-tan-1((R+P)/(T-X)))→N:I→Z:F+ZO-90Z→X:X>360=>X-360→X:X<0=>360+X→X:E-ZZ[11]-90Z→Y:Y>360=>Y-360→Y:Y<0=>360+Y→Y:IfZ>0:ThenX>Y=>Y+360→Y:ElseY>X=>X+360→X:IfEnd:C-A-Hcos(N)→I:DB-Hsin(N)→J:Pol(I,J):J<0=>360+J→J:IfY≥JANDJ≥X OrY≤JANDJ≤XOrY≥J+360ANDJ+360≥XOrY≤J+360ANDJ+360≤X:Then"ZHUANG.HAO-Y":X>360=>X-360→X:IfZ>0:ThenX>J=>J+360→J:ElseJ>X=>X+360→X:IfEnd:M-T+L+Abs(J-X)Rπ/180If(I-R)Z<0:Then"YC":Else"Z-C":IfEnd:Abs(I-R)0→U:IfEnd:Return
樁號斷鏈處理DL--CL2
IfZ>39235.639ANDZ≤39311.265:ThenZ→X:IfEnd: Return
6.2 由于篇幅所限,本文暫略CASIO-4800 /CASIO-4850程序清單
為便于斷鏈樁號修改,將斷鏈處理問題集中在四個子程序中。現(xiàn)以S218線哈-蘇段HSZD-2標(biāo)段K36+000~K42+000右幅設(shè)計資料計算示例。
斷鏈樁號K39+350=K39+311.265,樁號短鏈28.735m(同理,如路線為長鏈,計算方法相同,Z[7]為負(fù)值)。斷鏈樁號后平曲線終點(diǎn)樁號為39235.639(39235.639小于斷鏈樁號);斷鏈樁號前平曲線起點(diǎn)樁號為39508.004(39508.004大于斷鏈樁號);斷鏈樁號前豎曲線起點(diǎn)樁號為39548.043(39548.043大于斷鏈樁號);為了直觀,直接采用實(shí)際樁號數(shù)據(jù)修改子程序。
修改四個斷鏈處理子程序如下:
樁號斷鏈處理DL—CL:39350-39311.265→Z[7]:IfZ≥39350 ANDZ<39508.004:ThenZ→X:Z-Z[7]→Z:IfEnd:Return。斷鏈縱坡處理ZP—CL:39350-39311.265→Z[7]:39350>Z[6C+3(K-1)+1]AND39350<M=>Z[7]→U:39350>MAND39350<Z [6C+3(K+1)+1]=>Z[7]→P:Return。斷鏈標(biāo)高處理BG—CL:Z≥39350ANDZ<39548.043=>Z-Z[7]→Z:Return。樁號斷鏈處理DL--CL2:IfZ>39235.639ANDZ≤39311.265:ThenZ→X: IfEnd:Return。