5800万能程序,平曲线+竖曲线+隧道超欠挖

5800万能程序,平曲线+竖曲线+隧道超欠挖

1. 主程序(TYQXJS)

Lbl 4:"1SZ => XY, 2XY => SZ"?N:?S:Prog“SUB0”↙

1÷P→C: (P-R)÷(2HPR) →D:180÷∏→E:N=1 => Goto1: Goto2:↙

Lbl 1:”DZ”? Z: Abs(S-O) →W:Prog "SUB1": "XS":X◢

"YS":Y◢Prog “SQX”(竖曲线的程序名字)

F-90→F: “FS=”:F▲DMS◢Prog “CQW”(隧道超欠挖的程序名字)

Goto4↙

Lbl 2:”X”?X: “Y”?Y:X→I:Y→J: Prog“SUB2”:O+W→S:“S”:S◢“Z”:Z◢

Prog“CQW”

Goto4↙

2. 正算子程序(SUB1)

0.1739274226→A: 0.3260725774→B: 0.0694318442→K: 0.3300094782→L: 1-L→F: 1-K→M

G+QEKW(C+KWD)→Z[1]
G+QELW(C+LWD)→Z[2]
G+QEFW(C+FWD)→Z[3]
G+QEMW(C+MWD)→Z[4]
A×cos(Z[1])→X
X+Bcos(Z[2])→X
X+Bcos(Z[3])→X
X+Acos(Z[4])→X
U+WX→X
Asin(Z[1])→Y
Y+Bsin(Z[2])→Y
Y+Bsin(Z[3])→Y
Y+Asin(Z[4])→Y
V+WY→Y
G+QEW(C+WD)+90→F
X+Zcos(F)→X
Y+Zsin(F)→Y

2. 反算子程序(SUB2)

G-90→T: (Y-V)cos(T)-(X-U)sin(T) →W:Abs(W) →W:0→Z

Lbl 0:Prog "SUB1"

T+QEW(C+WD) →L: (J-Y)cos(L)-(I-X)sin(L)→Z:IF Abs(Z)<0.000001:Then0→Z:Prog "SUB1"

(J-Y)÷sin(F)→Z

Else W+Z→W

Goto0:IfEnd

SUB0 数据库子程序

Goto1↙

Lbl 1:IF S<***(线元终点里程):Then***→G(线元起点方位角):***→O(线元起点里程):***→U(线元起点X):***→V(线元起点Y):***→P(线元起点曲率半径):***→R(线元终点曲率半径): ***→H(线元起点至终点长度):0或1、-1→Q:Return:IfEnd↙

Lbl 1:IF S<***(线元终点里程):Then***→G(线元起点方位角):***→O(线元起点里程):***→U(线元起点X):***→V(线元起点Y):***→P(线元起点曲率半径):***→R(线元终点曲率半径): ***→H(线元起点至终点长度):0或1、-1→Q:Return:IfEnd

……………..

为了便于解读,每增加一个线元增加一行语句,每增加一条曲线增加一个Lbl,每增加一个工程增加一个文件。只要给数据库里的变量输完即可使用。

CQW(程序名)隧道超欠挖

“SCH”?A:”R”?G:”HSJ”?H:”DZ”?Z

√((A-H-设计标高到圆心的高度)2+(Z±隧道中线到测设线的距离)2) →D

G-D→Z[4]

“CW-,QW+”:Z[4] ◢

程序运行到“SCH”?A:”R”?G在“SCH”下输入实际测的高度, “R”下输入上导的开挖半径

后面的不用,超挖为-,欠挖+

以上不加CQW(程序名)也可以使用,把主程序的Prog “CQW”(隧道超欠挖)删掉,要算竖曲线给最后的竖曲线程序输入计算器即可,嵌套已经在以上程序中了,需要注意的是以上子母不要改变,改变后可能和后面的竖曲线程序出现子母冲突,发生计算错误。不用竖曲线把Prog “SQX”(竖曲线)删掉

三、使用说明

1、规定

(1) 以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,

Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0。

(2) 当所求点位于中线时,Z=0;当位于中线左铡时,Z取负值;当位于中线中线右

侧时,Z取正值。

(3) 当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次代替。

(4) 当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆

弧的半径。

(5) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45

次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半

径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。

(6) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的

值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径等

于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。

2、输入与显示说明

输入部分:

1. SZ => XY

2. XY = > SZ

N ? 选择计算方式,输入1表示进行由里程、边距计算坐标 ;输入2表示由坐标反算里程和边距。

S ?正算时所求点的里程,反算时为所求点的近似里程,反算时输入的近似里程不能夸线元,若夸线元的话,需进行第二次反算,并以第一次的结果做为近似里程,否则反算的里程及边距不对, Z ?正算时所求点距中线的边距(左侧取负,值右侧取正值,在中线上取零)

X ?反算时所求点的X坐标

Y ?反算时所求点的Y坐标

显示部分:

XS=××× 正算时,计算得出的所求点的X坐标

YS=××× 正算时,计算得出的所求点的Y坐标

FS=××× 正算时,所求点对应的中线点的切线方位角

S=××× 反算时,计算得出的所求点的里程

Z=××× 反算时,计算得出的所求点的边距

→  ÷≤≥=

竖曲线

SQX(程序名)

If S<边坡终点And S≥边坡起点:Then大里程坡度→A:小里程坡度→B:边坡点里程→O:边坡点高度→G:半径→R:Prog“Z-SQX”:IfEnd

有多个竖曲线,依照上面的依次变更,每多一个,就增加一个。每次只需要修改以上的数据或增加一个判断,子程序不用变动。

Z-SQX(子程序名)

O-S→L:A-B→W:Abs(R*W÷2) →T:O-T→M:O+T→P

If S≤M:ThenG-L*B→H:Goto5:Else If S≤O:Then Goto3:Else If S≤P:Then Goto4:IfEnd: IfEnd: IfEnd

Lbi3

If W>0:Then G+(M-S)2÷2÷R-L*B→H:Goto5: Else If W<0: Then G-(M-S)2÷2÷R-L*B→H:Goto5: IfEnd: IfEnd

Lbi4

If W>0:Then G+( S-P)2÷2÷R-L*A→H:Goto5: Else If W<0: Then G-( S-P)2÷2÷R-L*A→H:Goto5: IfEnd: IfEnd

Lbi5

H→H:”H”:H◢(为所求的高度)

  • 发表于 2018-11-05 14:15
  • 阅读 ( 107 )
  • 分类:5800

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

117 篇文章

作家榜 »

  1. admin 117 文章
  2. 胡亮 3 文章
  3. 梁雄 2 文章
  4. 肖肖 2 文章
  5. netbee 1 文章
  6. 秦汉 1 文章
  7. boyving 1 文章
  8. 李晓明 0 文章