文档介绍:Lbl 0
?L:IF L≤:then →Q:→N:→E:
203-45-→J: Goto1:Return: IfEnd(直线段)
( 。N——为起算点X坐标。E——为起算点Y坐标.)
IF L≤:then →Q:→N:→E:
216-28-→J: 1→M:300→C:2700→R:Goto3: Return: IfEnd (缓和曲线)
IF L≤:then →Q:→N:→E:
219-39-→J:2700→R:1→M:Goto2: Return: IfEnd (圆曲线)
IF L<:then →Q:→N:→E:
58-40-→J:2700→R:-1→M:300→C:180→G:Goto3:Return: IfEnd (这段是以HZ点往YH点推的缓和曲线)。知道为什么这段有个G=180吗?。因为这段曲线计算的时候是以ZH往YH推坐标的。我们现在加个G=180时计算边桩的时候。输-90是左。如果不加。输-90计算出来的是右边桩了。
这段M因为时反过来推。以前时右偏曲线,现在就要变成左偏了。还有HZ点方位角要加180了,因为是反的。
上面的我只输了个例子。要根据你实际的线路来输以上的子程序。(这个程序要所有数据输到一个程序里面来运行)
公式:
直线公式:
Lbl 1
L-Q→D(是为了算出里程差)
J→P(方位角)
N+D*COS J→X▲(这个就不用说了把)
E+D*SIN J→Y▲
“1,0”? U:If U=0:Then Goto0: Else Goto 4: IfEnd(程序运行时中桩算完会出现个这个,输1继续计算左右的边桩,输0返回)
现在到圆曲线公式
Lbl 2
L-Q→D(和上面一样的意思)
90*D/(兀R) →I(计算偏角)
J+2IM→P: If P>360:Then P-360-P: Else If P≤360:Then P+360-P: Else P-P:IfEnd:IfEnd 
(P=J+2IM这个是方位角+偏角了。现在那个和那个M就有关系了。M=1是曲线往右偏。加上偏角。曲线是左偏M输M=-1不就减了)应该能明白把。
N+2R SIN (J+IM) →X ▲(计算圆曲线中桩X坐标)
E+2R SIN I*SIN (J+IM) →Y ▲
“1,0”? U:If U=0:Then Goto0: Else Goto 4: IfEnd(和上面一样)
缓和曲线的计算公式
Lbl 3
Abs (L-Q) →D
D︿3/(6RC)-D︿7/(336(RC) ︿3)+D︿11/(42240(RC) ︿5) →B (这个是用切线之距法计算的。(D︿3是D的3次方,后面也一样)
D-D︿5/(40(RC) ︿2)+D︿9/(3456(RC) ︿4) →A (这个不用说了)
tan-1 (B/A) →I(计算偏