一、程序功能
本程序由6個主程序、5個次子程序及5個參數(shù)子程序組成。主要用于公路測量中坐標正反算,設(shè)計任意點高程及橫坡計算,橋涵放樣,路基開挖口及填方坡腳線放樣。程序坐標計算適應(yīng)于任何線型.
二、源程序
1.主程序1:一般放樣反算程序(①正算坐標、放樣點至置儀點方位角及距離;②反算樁號及距中距離)
程序名:1ZD-XY
Lb1 0:Norm 2
F=1:(正反算判別,F(xiàn)=1正算,F(xiàn)=2反算,也可以改F前加?,改F為變量)
Z[1]=90(與路線右邊夾角)
Prog"THB":F=1=>Goto 1:F=2=>Goto 2
Lb1 1:Fix 3:" X=":Locate 6,4,X◢
" Y=":Locate 6,4,Y◢
Prog"3JS”:Goto 0:
Lb1 2:Fix 3:"。耍停剑ⅲ篖ocate 6,4,Z◢
"  D=":Locate 6,4,D◢
Goto 0
2.主程序2:高程序橫坡程序(設(shè)計任意點高程及橫坡)
程序名:2GC
LbI 0:Norm 2
“KM”?Z:?D:
Prog”H”:Fix 3:” H=”:Locate 6,4,H◢
“ I=”: Locate 6,4,I◢
Goto 0
3.主程序3:極坐放樣計算程序(計算放樣點至置儀點方位角及距離)
程序名:3JS
X:Y:
1268.123→K(置儀點X坐標)
2243.545→L(置儀點Y坐標,都是手工輸入,也可以建導(dǎo)線點數(shù)據(jù)庫子程序,個人認為太麻煩)
Y-L→E:X-K→F:Pol(F,E):IF J<0:Then J+360→J:Int(J)+0.01Int(60Frac(J))+0.006Frac(60Frac(J)) →J:(不習(xí)慣小數(shù)點后四位為角度顯示的,也可以用命令J◢DMS◢來直接顯示) Fix 4:” FWJ=”: Locate 6,4,J◢(不習(xí)慣小數(shù)點后四位為角度顯示的,也可以用命令J◢DMS◢來直接顯示)
Fix 3:” S=”:Locate 6,4,I◢
4.主程序4:涵洞放樣程序(由涵中心樁號計算出各涵角坐標、在主程序3中輸入置儀點坐標后計算放樣點至置儀點方位角及距離)
程序名:4JH-XY
LbI 0:Norm 2
90→Z[1](涵洞中心樁與右邊夾角,手工輸入,也可以修改成前面加?后變?yōu)樽兞?
1→F:Prog”THB”:?L:
Z[2]-Z[1] →E:X+Lcos(E) →X:Y+Lsin(E) →Y:Fix 3: " X=":Locate 6,4,X◢
" Y=":Locate 6,4,Y◢
Prog"3JS”:Goto 0:
5.主程序5:路基開挖邊線及填方坡腳線放樣程序(輸入大概樁號及測量坐標、地面標高計算出偏移距離、樁號、距中距離、填挖高度)
程序名:5FBX
LbI 0:Norm 2: 18→DimZ:2→F:90→Z[1]:Prog “THB”:Z:D:”M0”?M:M→Z[4]:D→Z[3]:Prog”6GD”:L→Z[6]:If D<0:Then 0.75-L→D:Goto H:Else L-0.75→D:Goto H:IfEnd
LbI H:Prog”H”:H-0.03-Z[4] →Z[5]:Z[6] →L:If Z[5]<0:Then –z[5] →G:Goto W:Else Z[5] →G:Goto T:
LbI W:Prog “W0”:Z[10]+Z[11] →A: If G>A:Then Goto 1:Else If G>Z[10]:Then Goto 2:Else Goto 3:IfEnd:
LbI 1:L+Z[12]+Z[13]+Z[14]+(G-A)×Z[9]+Z[11]×Z[8]+Z[10]×Z[7]:Goto Z:
LbI 2:L+Z[12]+Z[13]+(G-Z[10])×Z[8]+Z[10]×Z[7]:Goto Z:
LbI 3:L+Z[12]+G×Z[7]:Goto z:
LbI T:L+0.5→N:If G>Z[17]:Then (N+Z[18]+(G-Z[17])×Z[16]+Z[17]×Z[15])→S:Goto Z:Else (N+G×Z[15])→S:Goto z:
LbI Z:Z[3]→D:Fix 2:Abs(D)-S→T:” L0=”:L Locate 6,4,T◢
"。耍停剑ⅲ篖ocate 6,4,Z◢
" 。模剑ⅲ篖ocate 6,4,D◢
“ TW=”: Locate 6,4,Z[5]◢
Goto 0
6.主程序6:路基標準半幅寬度計算程序(對于設(shè)計有加寬漸變的有用,如路基寬度無變化,則把此程序直接輸入半幅寬度值至L)
程序名:6GD
Prog “G0”Z-C→E:(B-A)×E/S+A→L:L:
7.坐標計算次程序(THB)
程序名:THB
18→DimZ:"KM"?Z:Prog "X0"
1÷P→C: (P-R)÷(2HPR) →S: 180÷π→E:F=1=>Goto 1:F=2=>Goto 2←┘
Lbl 1:?D: Abs(Z-O) →W:Prog "A":X:Y:Goto 3
LbI 2:X:Y:X→I:Y→J:Prog "B":O+W→Z:D→D:Goto 3
LbI 3:IF F=1Then X:Y:Else Z:D
8. 正算子程序(A)
程序名:A
0.1184634425→A: 0.2393143352→B:0.2844444444→N 0.046910077→K: 0.2307653449→L:0.5→M: U+W(Acos(G+QEKW(C+KWS))+Bcos(G+QELW(C+LWS))+Ncos(G+QEMW(C+MWS))+Bcos(G+QE(1-L)W(C+(1-L)WS))+Acos(G+QE(1-K)W(C+(1-K)WS))) →X:
V+W(Asin(G+QEKW(C+KWS))+Bsin(G+QELW(C+LWS))+Nsin(G+QEMW(C+MWS))+Bsin(G+QE(1-L)W(C+(1-L)WS))+Asin(G+QE(1-K)W(C+(1-K)WS))) →Y:
G+QEW(C+WS)+Z[1]→Z[2]:X+Dcos(Z[2])→X: Y+Dsin(Z[2])→Y
9. 反算子程序(B)
程序名:B
G-90→T: Abs((Y-V)cos(T)-(X-U)sin(T)) →W: 0→D:Lbl 0:Prog "A": T+QEW(C+WS) →L: (J-Y)cos(L)-(I-X)sin(L)→D:IF Abs(D)<0.01:Then Goto1:Else W+D→W:Goto 0←┘
Lbl 1:0→D:Prog "A":(J-Y)÷sin(Z[2]) →D:
10.高程計算子程序(H)
程序名:H
Prog “S0”:R:T:C:G:I:C-T→F:Z-F→L:C+T→E:G-TI→Q:If T=O:Then Q+LI→H:Goto 0:Else If Z LbI 0:H:If D=0:Then Goto I:Else Prog “I”:H+V→H:Goto I:LbI I:H:I:
11.高程超高計算程序(I)
程序名:I
Prog”I0”:
W=1=> Goto 0:W=2=>Goto 1:
LbI 0:If L=0:Then Abs(D)×M→V:Goto 2:Else Abs(D)×((N-M)×(Z-C)÷L+M)→V:Goto 2:IfEnd:
LbI 1:If L=0:Then Abs(D)×M→V:Goto 2:Else Abs(D)×(((3((Z-C)÷L)2-2((Z-C)÷L)∧(3))×(N-M))+M)→V:Goto 2:IfEnd:
LbI 2:Abs(D)→E:V÷E→I:I(E-K)→V:
12.數(shù)據(jù)子程序(附后示例)
①程序名:X0(坐標計算要素程序)
If Z≥25900 And Z≤26615.555:Then 25900→O:11587.421→U:1847.983→V:101。09’23.1”→G:715.555→H:1×1045→P: 1×1045→R: 0→Q:Goto 0: IfEnd:
If Z≥26615.555 And Z≤26915.555:Then 26615.555→O:11448.97→U:2550.016→V:101。09’23.1”→G:300→H:1×1045→P: 1800→R:1→Q:Goto 0:IfEnd:
If Z≥26915.555 And Z≤27316.952:Then 26915.555→O:11382.792→U:2842.531→V:105。55’51.83”→G:401.396→H:1800→P: 1800→R:1→Q:Goto 0:IfEnd:
……
LbI 0:O:U:V:G:H:P:R:Q:
程序字母說明:O-線元起點樁號;U-起點X坐標;V-起點Y坐標;G-線元起點樁號切線方位角; H-線元長度,P-線元起點曲率半徑,R-線元終點曲率半徑,Q-線元判別(以道路中線的前進方向(即里程增大的方向)區(qū)分左右;當線元往左偏時,Q=-1;當線元往右偏時,Q=1;當線元為直線時,Q=0)。

②程序名:SO(高程豎曲線要素子程序)
If Z≥25900 And Z≤26157.8:Then -200000→R:157.8→T:26000→C:37.1→G:0.01222→I:Goto 0:IfEnd:
If Z≥26157.8 And Z≤27421.915:Then 300000→R:171.915→T:27250→C:32.65→G:-0.00356→I:Goto 0:IfEnd:
If Z≥27421.915 And Z≤27889.029:Then 1000000→R:134.029→T:27755→C:36.64→G:0.0079→I:Goto 0:IfEnd:
……
LbI 0:R:T:G:C:I:
程序字母說明:C-豎曲線交點樁號;G-交點樁號高程(未豎曲線調(diào)整的);T-豎曲線切線長;R-豎曲線半徑(分正負:凹曲線為正,凸曲線為負);I-豎曲線前縱坡
③程序名:I0(高程超高參數(shù)子程序)
1.5→K:2→W:If D<0:Then Goto L:Else Goto R:IfEnd:
LbI L:If Z≥25900 And Z≤26615.555:Then 0→L:-0.02→M:Goto 0:IfEnd:
If Z≥26615.555 And Z≤26735.555:Then 120→L:26615.555→C:-0.02→M:0.02→N:Goto 0:IfEnd:
If Z≥26735.555 And Z≤26795.555:Then 60→L:26735.555→C:0.02→M:0.04→N:Goto 0:IfEnd
If Z≥26795.555 And Z≤27436.951:Then 0→L:0.04→M: Goto 0:IfEnd
……
LbI R: If Z≥25900 And Z≤26735.555:Then 0→L:-0.02→M: Goto 0:IfEnd
If Z≥26735.555 And Z≤26795.555:Then 60→L:26735.555→C:-0.02→M:-0.04→N:Goto 0:IfEnd
If Z≥26795.555 And Z≤27436.951:Then 0→L:-0.04→M: Goto 0:IfEnd
……
LbI 0 K:W:L:C:M:N:
字程序中字母表示說明:
K-中央分隔帶半幅寬(中樁標高至中樁中線距離,無分隔帶則為0);W-超高方式參數(shù)(W=1為一般直線方式超高,W=2為三次拋物線方式超高);L-超高漸變段距離(不是漸變段則輸入0);C-超高漸變段起點樁號(不是漸變段,無需輸入);M-超高段起點橫坡,N-超高漸變段終點橫坡(不是漸變段,無需輸入)。
④程序名:GO(路基標準半幅寬度參數(shù)子程序)
If D<0:Then Goto L:Else Goto R:IfEnd:
LbI L:If Z≥25900 And Z≤28110.727:Then Z→C:17.25→A:Goto 0:IfEnd:
If Z≥28110.727 And Z≤28200.727:Then 28110.727→C:17.25→A:21.25→B:90→S:Goto 0:IfEnd
……
LbI R: If Z≥25900 And Z≤27927.478:Then Z→C:17.25→A: Goto 0:IfEnd
If Z≥27927.478 And Z≤28172:Then 27927.478→C:17.25→A:27.031→B:244.522→S:Goto 0:IfEnd
……
LbI 0 C:A:B:S:
字程序中字母表示說明:
C-寬度漸變段起點樁號(不是漸變段C=Z);A-寬度漸變段起點寬度; B-寬度漸變段終點寬度(不是漸變段,無需輸入);S-寬度漸變段距離(不是漸變段,無需輸入)。

⑤程序名:WO(路基填挖邊坡參數(shù)子程序)
0.75→Z[7]:1→Z[8]:1.25→Z[9]:10→Z[10]:10→Z[11]:2.6→Z[12]:2→Z[13]:2→Z[14]:
1.5→Z[15]:1.75→Z[16]:8→Z[17]:2→Z[18]
字程序中字母表示說明:
Z[7]-挖方第一階邊坡邊率;Z[8]-挖方第二階邊坡邊率;Z[9]-挖方第三階邊坡邊率;Z[10]-挖方第一階高度;Z[11]-挖方第二階高度;Z[12]-挖方路基碎落臺及水溝寬度;Z[13]-挖方第二臺階平臺寬度;Z[14]-挖方第三臺階平臺寬度;
Z[15]-填方第一階邊坡邊率;Z[16]-填方第二階邊坡邊率; Z[17]-填方第一階高度;Z[18]-填方第二臺階平臺寬度。(注:本程序只做出挖方三個臺階,填方二個臺階,如需增加,先需在程序THB和5FBZ程序中增加變量。再如一標段有坡率及坡高不一樣時,可以照其它參數(shù)程序一樣,用判別語句。)

三、使用說明
1、規(guī)定
(1) Z“KM”為所求點樁號,反算時為輸入大概樁號
(2) 當所求點位于中線時,D=0;當位于中線左鍘時,D取負值;當位于中線中線右
側(cè)時,D取正值。
(3) 當線元為直線時,其起點、止點的曲率半徑為無窮大,以10的45次代替。
(4) 當線元為圓曲線時,無論其起點、止點與什么線元相接,其曲率半徑均等于圓
弧的半徑。
(5) 當線元為完整緩和曲線時,起點與直線相接時,曲率半徑為無窮大,以10的45次代替;與圓曲線相接時,曲率半徑等于圓曲線的半徑。止點與直線相接時,曲率半
徑為無窮大,以10的45次代替;與圓曲線相接時,曲率半徑等于圓曲線的半徑。
(6) 當線元為非完整緩和曲線時,起點與直線相接時,曲率半徑等于設(shè)計規(guī)定的
值;與圓曲線相接時,曲率半徑等于圓曲線的半徑。止點與直線相接時,曲率半徑等于設(shè)計規(guī)定的值;與圓曲線相接時,曲率半徑等于圓曲線的半徑。

2、輸入與顯示說明
輸入部分:
1. F=1:ZD => XY
2.F=2: XY = > ZD
F ? 選擇計算方式,輸入1表示進行由里程、邊距計算坐標 ;輸入2表示由坐標反算里程和邊距。Z[1]為線元邊樁與中線右夾角。
KM?正算時所求點的里程(反算輸入大概樁號)
D ?正算時所求點距中線的邊距(左側(cè)取負,值右側(cè)取正值,在中線上取零)
X0 ?反算時所求點的X坐標(放樣程序中實測X坐標)
Y0 ?反算時所求點的Y坐標(放樣程序中實測Y坐標)
顯示部分:
L? 涵洞放樣程序中涵距中心樁號前后距離,前為正,后為負.
M0? 邊坡放樣程序中原地面標高輸入
X=*** 正算時,計算得出的所求點的X坐標
Y=*** 正算時,計算得出的所求點的Y坐標
FWJ=*** 正算時,計算得出的所求點的至置儀點方位角(在3JS程序中應(yīng)輸入X、Y坐標值于K、L)
S=*** 正算時,計算得出的所求點的至置儀點距離
KM=*** 反算時,計算得出的所求點的里程
D=*** 反算時,計算得出的所求點的邊距
H=*** 所求點位置設(shè)計路面頂標高
I=*** 所求點位置設(shè)計路面橫坡
L0=*** 邊樁放樣程序中實測點至設(shè)計邊坡點距離,正向內(nèi)移