5800道路程序终极版附件为隧道版.docx

上传人:b****1 文档编号:1655197 上传时间:2023-05-01 格式:DOCX 页数:13 大小:21.69KB
下载 相关 举报
5800道路程序终极版附件为隧道版.docx_第1页
第1页 / 共13页
5800道路程序终极版附件为隧道版.docx_第2页
第2页 / 共13页
5800道路程序终极版附件为隧道版.docx_第3页
第3页 / 共13页
5800道路程序终极版附件为隧道版.docx_第4页
第4页 / 共13页
5800道路程序终极版附件为隧道版.docx_第5页
第5页 / 共13页
5800道路程序终极版附件为隧道版.docx_第6页
第6页 / 共13页
5800道路程序终极版附件为隧道版.docx_第7页
第7页 / 共13页
5800道路程序终极版附件为隧道版.docx_第8页
第8页 / 共13页
5800道路程序终极版附件为隧道版.docx_第9页
第9页 / 共13页
5800道路程序终极版附件为隧道版.docx_第10页
第10页 / 共13页
5800道路程序终极版附件为隧道版.docx_第11页
第11页 / 共13页
5800道路程序终极版附件为隧道版.docx_第12页
第12页 / 共13页
5800道路程序终极版附件为隧道版.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

5800道路程序终极版附件为隧道版.docx

《5800道路程序终极版附件为隧道版.docx》由会员分享,可在线阅读,更多相关《5800道路程序终极版附件为隧道版.docx(13页珍藏版)》请在冰点文库上搜索。

5800道路程序终极版附件为隧道版.docx

5800道路程序终极版附件为隧道版

附件(点击下载):

功能:

坐标正反算(含高程),把要素内置化(无需改程序文件,即可更换路线,同时存两条线要素)

另含两个边仰(一个横向坡,一个纵向坡)坡放样模块.

帮助文件未完成

程序浏览:

FileName:

RESET    初始化程序

Norm1:

50→C:

12345→J

"RESETPW"?

I:

I=J=>500→DimZ  为数据库增加额外变量500个,在SET、SETPFDYS程序根据实际再增减变量

50→Z[C+22]

"PASSWORDS"?

I:

I→Z[C+39]      重设要素保护密码

Cls:

Stop

FileName:

DATLOCK      要素保护密码确定认程序

Cls:

Norm1:

50→C

"PASSWORDS"?

J:

Cls:

J≠Z[C+39]=>Stop    2008-08-07修改

FileName:

SHELL(外壳程序)

50→C            ;在扩充变量预留前50个给别的程序用。

如不够就适量加大。

RESET,SHELL,SET,SETPFDYS,这几个程序中C值必需一致

Z[C+35]→I:

"STATION-N"?

I:

I→Z[C+35]      设置测站N坐标

Z[C+36]→I:

"STATION-E"?

I:

I→Z[C+36]      设置测站E坐标

Z[C+44]→I:

"STATION-Z"?

I:

I→Z[C+44]   设置测站Z坐标

Z[C+45]→I:

"STATION-HI"?

I:

I→Z[C+45]    设置仪高

Z[C+41]→I:

"GC-DH"?

I:

I→Z[C+41]    放样点高差常数

Norm1

Z[C+23]→N 当前分段要素N坐标

Z[C+24]→E 当前分段要素E坐标

Z[C+25]→M 当前分段要素起点桩号

Z[C+26]→H 当前分段要素起点方位角(正北)单位:

弧度

Z[C+27]→A 当前分段要素起点曲率有左偏负右偏正(注意不半径)

Z[C+28]→R 当前分段要素终点曲率有左偏负右偏正(注意不半径)

Z[C+29]→L 当前分段要素长度

Z[C+3]→W

Z[C+32]→I:

"DAT123"?

I:

I→Z[C+32]  平曲线要素数库类型选择1为内置式,2文件式,3实时输入(查看当前要素值)

0→I

Z[C+4]→I:

"123"?

I:

I→Z[C+4]  选择本程序模式默认为坐标正算,1坐标反算,2横向边仰坡放样,3,纵向边仰坡放样(隧道进出口用到)

Lbi1

Z[C+4]→I

I=1=>Prog"TURNZH"

I=2=>Prog"HXBYP"

I=3=>Prog"ZXBYP"

LbiA

Deg:

Norm1:

Cls

Z[C+1]→G:

"ZH"?

G:

G→Z[C+1]    ;G桩求桩号

Z[C+2]→B:

"JL"?

B:

B→Z[C+2]    ;B横向距离,左正右负

LbiB

Prog"ZBJS"    ;坐标正算

Prog"GCJS"    ;高程计算

Fix3:

Cls           ;设置三位小数

"ZH=":

Locate4,1,G    ;第一行显示桩号

"X=":

Locate3,2,X  ;第二行显示X(N)坐标

"Y=":

Locate3,3,Y    ;第三行显示Y(E)坐标

Prog"GCJS"    ;高程计算

"Z":

Locate2,4,Z+Z[C+41]    ;第四行显示Z坐标

Locate10,4,Z[C+2]        ;第四行显示横向距离

0→I

Do:

I+1→I:

I=1000=>Goto1:

LpWhileNot(Getkey=57OrGetkey=27);锁定键盘,并在几十秒后自动返回

Getkey=57=>Goto1

Z+Z[C+41]+Z[C+49]-Z[C+44]-Z[C+45]→Z[C+48]

Pol(Z[C+35]-X,Z[C+36]-Y)

Cls:

"DL":

Locate3,1,I:

Locate12,1,Z[C+45]

"DH":

Locate3,2,Z[C+48]:

Locate12,2,Z[C+49]

"FWJ"

J<0=>J+360→J:

J◤DMS◢  2008-08-07修改

J→Z[C+46]

I→Z[C+47]

Goto1

FileName:

ZBJS  坐标计算程序

Prog"READDAT"

Rad

G-M→Q

IFAR=0:

ThenIfA=R:

Then1→J:

Else3→J:

IfEnd:

ElseIfA=R:

Then2→J:

Else3→J:

IfEnd:

IfEnd

IfJ=1:

ThenH→F:

N+QCos(H)→X:

E+QSin(H)→Y:

IfEnd  直线段直接计算

IfJ=2:

ThenH+QR→F:

Rec(Abs(2Sin(Abs(0.5QR))÷R),H+QR÷2):

N+I→X:

E+J→Y:

IfEnd  圆弧段直接计算

IfJ=3:

ThenGoto5:

IfEnd

X+BCos(F+W)→X

Y+BSin(F+W)→Y

Deg:

Return

Lbi5    用五点通用坐标计算计算缓和段

0.5(R-A)÷L→K

AQ→I

KQ2→J

0.0469100770→P:

H+IP+JP2→U

0.2307653449→P:

H+IP+JP2→V

0.5→P        :

H+IP+JP2→D

0.7692346551→P:

H+IP+JP2→F

0.9530899230→P:

H+IP+JP2→T

0.1184634425→I

0.2393143352→J

0.2844444444→O

N+Q(ICos(U)+JCos(V)+OCos(D)+JCos(F)+ICos(T))→X

E+Q(ISin(U)+JSin(V)+OSin(D)+JSin(F)+ISin(T))→Y

H+AQ+KQ2→F

X+BCos(F+W)→X

Y+BSin(F+W)→Y

Deg:

Return

FileName:

TURNZH(坐标反算)

Norm1

Z[C+37]→I:

"DQD-N"?

I:

I→Z[C+37]    输入待求点N坐标

I=-1=>Prog"INFWJDLDH"

Z[C+38]→I:

"DQD-E"?

I:

I→Z[C+38]    输入待求点E坐标

0→B:

M+L÷2→G:

Prog"ZBJS"

LbiS:

Rad

Z[C+37]-X→I:

Z[C+38]-Y→J

IfI=0AndJ=0:

ThenGotoA:

IfEnd

Pol(I,J)

LbiA:

Rec(I,J-F):

J→Z[C+2]

G+I→G:

IFAbs(I)>0.0001:

ThenProg"ZBJS":

GotoS↙    

G→Z[C+1]

FileName:

INFWJDLDH   实测坐标(用方位角,距离,高差)输入程序

Deg:

Norm1:

Cls

Z[C+46]→J:

"DQD-FWJ"?

J:

J→Z[C+46]

Z[C+47]→I:

"DQD-DL"?

I:

I→Z[C+47]

Z[C+48]→K:

"DQD-DZ"?

K:

K→Z[C+48]

Z[C+49]→P:

"RHT"?

P:

P→Z[C+49]

Rec(I,J)

Z[C+35]+I→Z[C+37]

Z[C+36]+J→Z[C+38]

Z[C+44]+Z[C+45]+K-P→Z[C+43]

FileName:

HXBYP  横向边仰坡放样程序

Cls:

Norm1

Z[C+40]→I:

"QPD-DL"?

I:

I→Z[C+40]    输入起坡点与中桩距离常数

Z[C+41]→I:

"QPD-DZ"?

I:

I→Z[C+41]      输入起坡点与中桩高差常数

Z[C+42]→I:

"i"?

I:

I→Z[C+42]            输入边仰坡坡度,左仰坡(路堑)为正,右仰坡(路堑)为负,左边坡为负,右边坡为正

Cls:

Z[C+43]→I:

"DQD-Z"?

I:

I→Z[C+43]    输入实测高程

Prog"TURNZH"

Prog"GCJS"

(Z[C+43]-Z-Z[C+41])Z[C+42]+Z[C+40]→B

Fix3:

B-Z[C+2]◢显示与上一次测点的偏差

B→Z[C+2]

FileName:

ZXBYP  纵向仰坡放样程序(隧道进口使用)

Cls:

Norm1:

Z[C+33]→I:

"QPD-ZH"?

I:

I→Z[C+33]    输入起坡点桩号

Z[C+34]→I:

"QPD-Z"?

I:

I→Z[C+34]      输入起坡点高程

Z[C+42]→I:

"i"?

I:

I→Z[C+42]            仰坡时(隧道进出口仰坡),进口为正,出口为负)

Cls:

Z[C+43]→I:

"DQD-Z"?

I:

I→Z[C+43]    输入实测高程

Prog"TURNZH"

Z[C+42](Z[C+43]-Z[C+34])+Z[C+33]→G

Fix3:

G-Z[C+1]◢显示与上一次测点的偏差

G→Z[C+1]

FileName:

SET设置程序

1\LbiS

2\Norm1

3\50→C

4\50→Z[C+22]

5\0→K

6\Z[C+5]→I:

"1Or2"?

I:

I→Z[C+5]  ;选择1线或者2线

7\180Z[C+3]÷π→J:

"XZJJ"?

J:

Jπ÷180→Z[C+3]      ;斜桩夹角

8\IfI=1:

ThenZ[C+8]→Z[C+6]:

Z[C+9]→Z[C+7]

9\Z[C+12]→Z[C+16]:

Z[C+13]→Z[C+17]:

Z[C+18]→Z[C+20]

10\ElseZ[C+10]→Z[C+6]:

Z[C+11]→Z[C+7]

11\Z[C+14]→Z[C+16]:

Z[C+15]→Z[C+17]:

Z[C+19]→Z[C+20]

12\IfEnd  

13\Z[C+7]+3→Z[C+31]

14\0→I:

"1PQX,2SQX,3YSDS"?

I  ;1输入平曲线要素,2输入竖曲线要素,3输入1、2线夹平竖曲线交点(变坡点)数量以让程序规划内存建立要素数据为,其它值退出本程序

15\I≠0=>Prog"DATLOCK"            2008-07-2818:

23修改

16\I=1=>Goto1:

I=2=>Goto2:

I=3=>Goto3  2008-07-2818:

23修改

17\Prog"SETPFDYS"

18\Stop

19\Lbi1                 ;平曲线要素输入部分

20\Z[C+6]→D

21\-1→Z[D+3]

22\For1→JToZ[C+16]

23\Cls:

"PQX":

Locate9,1,J

24\Z[D+1]→I:

"N"?

I:

I→Z[D+1]      ;请输入N坐标

25\Z[D+2]→I:

"E"?

I:

I→Z[D+2]  ;请输入E坐标

26\Z[D+3]→I:

"R"?

I:

I→Z[D+3]      ;请输入半径R

27\Z[D+4]→I:

"LS1"?

I:

I→Z[D+4]  ;请输入缓和曲线1长度

28\Z[D+5]→I:

"LS2"?

I:

I→Z[D+5]        ;请输入缓和曲线2长度

29\D+5→D

30\Next

31\1→Z[D-2]

32\GotoS

33\Lbi2                              ;竖曲线要素输入部分

34\Z[C+7]→D

35\-1→Z[D+3]

36\For1→JToZ[C+17]

37\Cls:

"SQX":

Locate9,1,J

38\Z[D+1]→I:

"BPDZH"?

I:

I→Z[D+1]    ;请输入变坡点桩号    2008-08-07修改

39\Z[D+2]→I:

"BPDGC"?

I:

I→Z[D+2]  ;请输入变坡点高程    2008-08-07修改

40\Z[D+3]→I:

"R"?

I:

I→Z[D+3]        ;请输入半径R    2008-08-07修改

41\D+3→D

42\Next

43\1→Z[D]

44\GotoS

45\Lbi3                            ;要素点数输入部分

46\Z[C+12]→I:

"1PQXDS"?

I:

I→Z[C+12]  ;输入1线平曲线点数,最小值为3

47\Z[C+13]→I:

"1SQXDS"?

I:

I→Z[C+13]  ;输入1线竖曲线点数,最小值为3

48\Z[C+18]→I:

"1JDZH"?

I:

I→Z[C+18]    ;输入1线平曲线第一个交点的交点桩号

49\Z[C+14]→I:

"2PQXDS"?

I:

I→Z[C+14]  ;输入2线平曲线点数,最小值为3

50\Z[C+15]→I:

"2SQXDS"?

I:

I→Z[C+15]  ;输入2线竖曲线点数,最小值为3

51\Z[C+19]→I:

"2JDZH"?

I:

I→Z[C+19]  ;输入2线平曲线第一个交点的交点桩号

52\C+Z[C+22]→Z[C+8]              1线路平曲线要素指针偏移基数

53\Z[C+8]+5Z[C+12]→Z[C+9]              1线路竖曲线要素指针偏移基数

54\Z[C+9]+3Z[C+13]→Z[C+10]        2线路平曲线要素指针偏移基数        

55\Z[C+10]+5Z[C+14]→Z[C+11]      2线路竖曲线要素指针偏移基数

56\Z[C+11]+3Z[C+15]→Z[C+21]    要素数据库结束指针

57\Z[C+21]+1→Z[C+30]

58\Z[C+21]→DimZ                增加额外变量

59\-1→K

60\GotoS

FileName:

SETPFDYS  交点要素=>分段要素

1\Norm1

2\50→C

3\Rad

4\Z[C+6]+5→D

5\Z[C+21]+1→F

6\F+6→DimZ

7\-1→Z[F]          设置分段要素开始标志

8\Z[C+20]→V        ;从数据库读入当前线第一个平曲线交点桩号

9\0→G

10\Pol(Z[D+1]-Z[D-4],Z[D+2]-Z[D-3])  ;计算第一条直线的距离I,计算方位角J

11\J→H 

12\Z[D-4]→Z[F+1]          直线段

13\Z[D-3]→Z[F+2]

14\V-I→Z[F+3]

15\For1→GToZ[C+16]-2  

16\Pol(Z[D+1]-Z[D-4],Z[D+2]-Z[D-3])   ;计算第本交点与下一交点的距离I,计算方位角J

17\J→H      2008-08-07修改

18\Pol(Z[D+6]-Z[D+1],Z[D+7]-Z[D+2])

19\I→W:

J-H→K                        ;计算转角K,负值是左转角,正值是右转角  2008-08-07修改

20\IFAbs(K)>π:

ThenIfK>0:

ThenK-2π→K:

ElseK+2π→K:

IfEnd:

IfEnd

21\Z[D+3]→R  ;从数据库读入半径R

22\Z[D+4]→L  ;从数据库读入缓和曲线1长度

23\Z[D+5]→M  ;从数据库读入缓和曲线2长度

24\L÷2÷R→B  ;计算缓和曲线1的B0角

25\M÷2÷R→O  ;计算缓和曲线2的B0角

26\(Abs(K)-B-O)R→P  ;计算圆曲线长度

27\L2÷24÷R-L^(4)÷2384÷R^(3)→Q      ;内移值计算方法2

28\L÷2-L^(3)÷240÷R2→S    ;切线增长值计算方法2

29\M2÷24÷R-M^(4)÷2384÷R^(3)→J      ;内移值计算方法2

30\M÷2-M^(3)÷240÷R2→I    ;切线增长值计算方法2

31\Abs(π÷2-Abs(K))→A

32\Rtan(Abs(K÷2))+S+J÷Cos(A)-QTan(A)→T ;计算切线1

33\Rtan(Abs(K÷2))+I+Q÷Cos(A)-JTan(A)→U ;计算切线2

34\H<0=>H+2π→H

35\1→A

36\K<0=>-1→A

37\H→Z[F+4]

38\0→Z[F+5]

39\0→Z[F+6]

40\F+6→F

41\F+6→DimZ

42\Rec(T,H)        缓和段1

43\Z[D+1]-I→N

44\Z[D+2]-J→E

45\N→Z[F+1]

46\E→Z[F+2]

47\V-T→Z[F+3]

48\L=0=>GotoA

49\H→Z[F+4]

50\0→Z[F+5]

51\A÷R→Z[F+6]

52\F+6→F

53\F+6→DimZ

54\LbiA          圆弧段

55\0→I:

0→J

56\L=0=>GotoB

57\Pol(L-L^(3)÷40÷R2,L2÷6÷R-L^(4)÷336÷R^(4))

58\LbiB

59\Rec(I,H+AJ)

60\N+I→N

61\E+J→E

62\N→Z[F+1]

63\E→Z[F+2]

64\V-T+L→Z[F+3]

65\H+AB→Z[F+4]

66\A÷R→Z[F+5]

67\A÷R→Z[F+6]

68\F+6→F

69\F+6→DimZ

70\M=0=>GotoC        缓和段2

71\Rec(2RSin(0.5P÷R),H+AB+AP÷R÷2)

72\N+I→N

73\E+J→E

74\N→Z[F+1]

75\E→Z[F+2]

76\V-T+L+P→Z[F+3]

77\H+AB+AP÷R→Z[F+4]

78\A÷R→Z[F+5]

79\0→Z[F+6]

          此处删除2008-08-06修改

80\F+6→F

81\F+6→DimZ

82\LbiC          此处插入2008-08-06修改

83\Rec(U,H+K)      

84\Z[D+1]+I→Z[F+1]        此处2008-08-07修改

85\Z[D+2]+J→Z[F+2]        此处2008-08-07修改

86\V-T+L+P+M→Z[F+3]

87\V-T+L+P+M-U+W→V        此处2008-08-07修改

88\D+5→D

89\Next

90\H+K→Z[F+4]

91\0→Z[F+5]

92\0→Z[F+6]

93\F+9→DimZ

94\1→Z[F+7]

95\V→Z[F+9]  要素终点桩号

96\Deg

FileName:

READDAT

Z[C+32]→I

I=3=>Prog"READDAT3"

If GM+L  :

Then;验证要素是否可用,否则重设要素

I=1=>Prog"READDAT1"

I=2=>Prog"READDAT2"

Prog"REALDAT3"  

IfEnd

FileName:

READDAT1平曲线分段要素读取程序1

Z[C+30]→F

0→J

Lbi1          搜索要素

IfG

Then

-1=Z[F]=>GotoE:

F-6→F:

-1→J:

Goto1

Else1=Z[F+1]=>GotoE:

-1=J=>Goto2:

1→J:

F+6→F:

Goto1

IfEnd

Lbi2

F→Z[C+30]

Z[F+1]→Z[C+23] 当前分段要素N坐标

Z[F+2]→Z[C+24] 当前分段要素E坐标

Z[F+3]→Z[C+25] 当前分段要素起点桩号

Z[F+4]→[C+26] 当前分段要素起点方位角(正北)

Z[F+5]→Z[C+27] 当前分段要素起点曲率有左偏负右偏正(注意不半径)

Z[F+6]→Z[C+28]  当前分段要素终点曲率有左偏负右偏正(注意不半径)

Z[F+9]-Z[F+3]→Z[C+29]  当前分段要素长度

Return

LbiE

Cls

"ERROR"

Stop

READDAT2 文件请输入内容为以下内容以便测试结果与本文一致。

π÷180→J

Goto1

Lbi1

IfG<30008.396:

ThenCls:

Stop:

IfEnd↙;判断待求桩号是否小于本要素起点,如小于就停止运行程序

IfG<30661.038(终点里程):

Then2851422.090(起点X)→N:

513896.440(起点Y)→E:

30008.396→M:

213°32′52″J(起点方位角)→H:

0(起点曲率)→A:

0(终点曲率)→R:

652.642起点至终点长度→L:

GotoE:

IfEnd↙

IfG<30921.038:

Then2850878.162→N:

513535.768→E:

30661.038→M:

213°32′52″J→H:

0→A:

1÷1300→R:

260→L:

GotoE:

IfEnd↙

IfG<31426.367:

Then2850666.478→N:

513385.004→E:

30921.038→M:

219°16′39″J→H:

1÷1300→A:

1÷1300→R:

505.328→L:

GotoE:

IfEnd↙

IfG<31686.367:

Then2850346.483→N:

512998.015→E:

31426.367→M:

241°32′56″J→H:

1÷1300→A:

0→R:

260→L:

GotoE:

IfEnd↙

IfG>31686.367:

ThenCls:

Stop:

IfEnd↙;判断待求桩号是否大于本要素终点,如大于就停止运行程序

LbiE

N→Z[C+23]:

E→Z[C+24]:

M→Z[C+25]:

H→Z[C+26]:

A→Z[C+27]:

R→Z[C+28]:

L→Z[C+29]

FileName:

READDAT3平曲线分段要素读取程序3

Norm1

Z[C+23]→N:

?

N:

N→Z[C+23]     当前分段要素N坐标

Z[C+24]→E:

?

E:

E→Z[C+24]    当前分段要素E坐标

Z[C+25]→M:

"SZH"?

M:

M→Z[C+25] 当前分段要素起点桩号

180Z[C+26]÷π→H:

H◤DMS◢

"FWJ"?

H:

Hπ÷180→H:

H→Z[C+26] 当前分段要素起点方位角(正北)单位:

度分秒

Z[C+27]→A:

"SR"?

A:

A→Z[C+27]   当前分段要素起点曲率有左偏负右偏正(注意是半径的倒数)

Z[C+28]→R:

"ER"?

R:

R→Z[C+28]    当前分段要素终点曲率有左偏负右偏正(注意是半径倒数)

Z[C+29]→L:

?

L:

L→Z[C+29]     当前分段要素长度

Return

FileName:

GCJS

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2