500→DimZ为数据库增加额外变量500个,在SET、SETPFDY" />

最新5800隧道专版汇总

最新5800隧道专版汇总
最新5800隧道专版汇总

5800隧道专版

5800隧道专版

时间:2010-03-11 15:36:41 来源:本站作者:李强善我要投

稿我要收藏投稿指南

本版本是道路版的升级版,程序只改变了SHELL程序,从SHELL中拆分出WORK-SET(工作设置程序),加入SDPY(隧道放样)。

FileName:RESET 初始化程序

Norm 1:50→C:12345→J

"RESET PW"?I:I=J=>500→DimZ为数据库增加额外变量500个,在SET、SETPFDYS程序根据实际再增减变量以保证不浪费内存

50→Z[C+22]:本程序设置变量个数目前50个刚刚够用。"PASSWORDS"?I:I→Z[C+39]重设要素保护密码

Cls:Stop

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

Cls:Norm 1:50→C

"PASSWORDS"?J:Cls:J≠Z[C+39]=>Stop

FileName:SHELL(外壳程序)

50→C;在扩充变量预留前50个给别的程序用。如不够就适量加大。RESET,SHELL,SET,SETPFDYS,这几个程序中C值必需一致

Norm 1

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斜桩角度

Lbi S

Prog"PROGMODE" ;进入模式功能选择

Lbi A

Deg:Norm 1:Cls

Z[C+1]→G:"ZH"?G;桩求桩号

If G=-1:Then Prog"WORK-SET":Goto S:IfEnd 进入工作设置

G→Z[C+1]

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

Lbi B

Prog "ZBJS" ;坐标正算

Fix 3:Cls ;设置三位小数

"ZH=":Locate 4,1,G ;第一行显示桩号

"X=":Locate 3,2,X ;第二行显示X(N)坐标

"Y=":Locate 3,3,Y;第三行显示Y(E)坐标

Prog "GCJS" ;高程计算

"Z":Locate 2,4,Z+Z[C+41] ;第四行显示Z坐标

Locate 10,4,B ;第四行显示横向距离

0→I

Do:I+1→I:I=1000=>Goto 1:LpWhile Not(Getkey=57 Or Getkey=27 Or Getkey=26) ;锁定键盘,并在几十秒后自动返回

Getkey=57=> Goto 1

If Getkey=26=> Prog "SDFY":Goto B:EndIf

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

Cls:"DL":Locate 3,1,I:Locate 12,1,Z[C+45] "→":Locate 3,2,B:Locate 12,2,Z[C+49] "FWJ"

J<0=>J+360→J:J◤DMS◢

J→Z[C+46]

I→Z[C+47]

Goto 1

FileName:SDFY 隧道放样

Cls

Z[C+2]→V

Z[C+41]→D

Z[C+43]→I:"DQD-Z"?I:I→Z[C+43]

Z[C+42]→J:"R"?J:J→Z[C+42]

Z[C+40]→K:"R-DL"?K:K→Z[C+40]

Abs(V-K)→P

√(P2+(I-Z-D)2)→U计算实际半径

Fix 3:Cls ;设置三位小数"ZH=":Locate 4,1,G

"R":Locate 2,2,U

Locate 10,2,U-J

If I-Z-D-J>0 :Then I-Z-D-√(J2-P2)→P:0→O

Else If P-J>0:Then P-√(J2-(I-Z-D)2)→O:0→P

Else P-√(J2-(I-Z-D)2)→O:I-Z-D-√(J2-P2)→P

IfEnd:IfEnd

"H":Locate 2,3,O

Locate 8,3,"V"

Locate 9,3,P

Locate 1,4,Z+D

Locate 9,4,I

0→T

Do:T+1→T:T=1000=>Return:LpWhile Not(Getkey=57 Or Getkey=27) ;锁定键盘,并在几十秒后自动返回

Getkey=57=>Return

If V-K>0 :Then V-O→B:Else V+O→B:IfEnd

FileName:ZBJS 坐标计算程序

Prog"READDAT"

Rad

G-M→Q

IF AR=0 :Then If A=R :Then 1→J:Else 3→J :IfEnd:Else I f A=R :Then 2→J:Else 3→J:IfEnd:IfEnd 判断线元类型

If J=1 :Then H→F:N+QCos(H)→X:E+QSin(H)→Y:IfEnd直线段直接计算

If J=2 :Then

H+QR→F:Rec(Abs(2Sin(Abs(0.5QR))÷R),H+QR÷2):N+I→X:E+J→Y:IfEnd

圆弧段直接计算

If J=3 :Then Goto 5 :IfEnd

X+BCos(F+W)→X

Y+BSin(F+W)→Y

Deg:Return

Lbi 5 用五点通用坐标计算计算缓和段

0.5(R-A)÷L→K

AQ→I

KQ2→J

0.0469100770→P:H+IP+JP2→O

0.2307653449→P:H+IP+JP2→T

0.5→P:H+IP+JP2→D

0.7692346551→P:H+IP+JP2→F

0.9530899230→P:H+IP+JP2→P

0.1184634425→I

0.2393143352→J

0.2844444444→Y

N+Q(ICos(O)+JCos(T)+YCos(D)+JCos(F)+ICos(P))→X

E+Q(ISin(O)+JSin(T)+YSin(D)+JSin(F)+ISin(P))→Y H+AQ+KQ2→F

X+BCos(F+W)→X

Y+BSin(F+W)→Y

Deg:Return

FileName:TURNZH(坐标反算)

Prog"INNEZ"

Z[C+37]→U

Z[C+38]→V

0→B:M+L÷2→G:Prog"ZBJS"

Lbi S:Rad

U-X→I:V-Y→J

If I=0 And J=0 :Then Goto A:IfEnd

Pol(I,J)

Lbi A:Rec(I,J-F)

G+I→G:IF Abs(I)>0.0001 :Then Prog"ZBJS":Goto S↙ J→B

G→Z[C+1]

J→Z[C+2]

Prog"GCJS"

FileName:INNEZ 实测坐标输入程序

Lbl S:Norm 1:Cls

Z[C+50]=2=>Goto 1

Z[C+37]→I

I<0=>Goto 1

"DQD-N"?I 输入待求点N坐标

I<0=>Goto 1

I→Z[C+37]

Z[C+38]→I:"DQD-E"?I 输入待求点E坐标

I<0=>Goto 1

I→Z[C+38]

Z[C+43]→I:"DQD-Z"?I 输入实测高程

I<0=>Goto 1

I→Z[C+43]

Return

Lbi 1

I=-1=>Then 2→Z[C+50]

If I=-2:Then Prog"WORK-SET":Goto S:IfEnd 进入工作设置Prog"INFWJDLDH"

Z[C+50]=1=>Goto S

Return

FileName:INFWJDLDH实测坐标(用方位角,距离,高差)输入程序Lbi S:Deg:Norm 1:Cls

Z[C+46]→J:"DQD-FWJ"?J

J<0=>Goto 1

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]

Return

Lbi 1

If J=-2:Then Prog"WORK-SET":Goto S:IfEnd 进入工作设置1→Z[C+50]

Return

FileName: WORK-SET 测站设置程序

Norm 1:Cls

50→C

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

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

Z[C+41]→I:"GC-DH"?I:I→Z[C+41]放样点高差常数

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:"S TATION-HI"?I:I→Z[C+45]设置仪高

Cls

FileName: PROGMODE 程序功能模式选择

Z[C+4]→I

I=0=>Return ;正算模式

I=1=>Prog"TURNZH" ;反算模式

I=2=>Prog"HXBYP" ;横向边仰坡放样模式

I=3=>Prog"ZXBYP" ;纵向边仰坡放样模式

FileName:HXBYP 横向边仰坡放样程序

Cls:Norm 1

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

Fix 3:B-Z[C+2]◢ 显示与设计位置的偏差

B→Z[C+2]

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

Cls:Norm 1: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:"D QD-Z"?I:I→Z[C+43]输入实测高程Prog"TURNZH"

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

Fix 3:G-Z[C+1]◢ 显示与设计位置的偏差

G→Z[C+1]

FileName:SET 设置程序

Lbi S

Norm 1

50→C

50→Z[C+22] 本程序设置变量个数目前50个刚刚够用。

0→K

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

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

If I=1:Then Z[C+8]→Z[C+6]:Z[C+9]→Z[C+7]

Z[C+12]→Z[C+16]:Z[C+13]→Z[C+17]:Z[C+18]→Z[C+20]

Else Z[C+10]→Z[C+6]:Z[C+11]→Z[C+7]

Z[C+14]→Z[C+16]:Z[C+15]→Z[C+17]:Z[C+19]→Z[C+20]

IfEnd

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

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

I≠0=>Prog"DATLOCK"

I=1 => Goto 1:I=2 => Goto 2:I=3 => Goto 3

Prog"SETPFDYS"

Stop

Lbi 1 ;平曲线要素输入部分

Z[C+6]→D

-1→Z[D+3]

For 1→J To Z[C+16]

Cls:"PQX":Locate 9,1,J

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

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

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

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

相关主题
相关文档
最新文档