当前位置:文档之家› 5800计算器道路程序

5800计算器道路程序

卡西欧5800计算器道路程序发布时间:2008-11-19 10:33:38功能:坐标正反算(含高程),把要素内置化(无需改程序文件,即可更换路线,同时存两条线要素)另含两个边仰(一个横向坡,一个纵向坡)坡放样模块.帮助文件未完成程序浏览:FileName:RESET 初始化程序Norm 1:50→C:12345→J"RESET PW"?I:I=J=>500→DimZ 为数据库增加额外变量500个,在SET、SETPFDYS程序根据实际再增减变量50→Z[C+22]"PASSWORDS"?I:I→Z[C+39] 重设要素保护密码Cls:StopFileName:DATLOCK 要素保护密码确定认程序Cls:Norm 1:50→C"PASSWORDS"?I:Cls:I≠Z[C+39]=>StopFileName: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] 放样点高差常数Norm 1Z[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]→WZ[C+32]→I:"DAT1 2 3"?I:I→Z[C+32] 平曲线要素数库类型选择1为内置式,2文件式,3实时输入(查看当前要素值)0→IZ[C+4]→I:"1 2 3"?I:I→Z[C+4] 选择本程序模式默认为坐标正算,1坐标反算,2横向边仰坡放样,3,纵向边仰坡放样(隧道Lbi 1Z[C+4]→II=1=>Prog"TURNZH"I=2=>Prog"HXBYP"I=3=>Prog"ZXBYP"Lbi ADeg:Norm 1:ClsZ[C+1]→G:"ZH"?G:G→Z[C+1] ;G桩求桩号Z[C+2]→B:"JL"?B:B→Z[C+2];B横向距离,左正右负Lbi BProg "ZBJS" ;坐标正算Prog "GCJS" ;高程计算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,Z[C+2] ;第四行显示横向距离0→IDo:I+1→I:I=1000=>Goto 1:LpWhile Not(Getkey=57 Or Getkey=27) ;锁定键盘,并在几十秒后自动返回Getkey=57=> Goto 1Z+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":Locate 3,1,I:Locate 12,1,Z[C+45]"DH":Locate 3,2,Z[C+48]:Locate 12,2,Z[C+49]"FWJ"J<0=J+360→J:J◤DMS◢J→Z[C+46]I→Z[C+47]Goto 1FileName:ZBJS 坐标计算程序Prog"READDAT"RadG-M→QIF AR=0 :Then If A=R :Then 1→J:Else 3→J :IfEnd:Else If A=R :Then 2→J:Else 3→J:IfEnd:IfEndIf 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 :IfEndX+BCos(F+W)→XY+BSin(F+W)→YLbi 5 用五点通用坐标计算计算缓和段0.5(R-A)÷L→KAQ→IKQ2→J0.0469100770→P:H+IP+JP2→U0.2307653449→P:H+IP+JP2→V0.5→P :H+IP+JP2→D0.7692346551→P:H+IP+JP2→F0.9530899230→P:H+IP+JP2→T0.1184634425→I0.2393143352→J0.2844444444→ON+Q(ICos(U)+JCos(V)+OCos(D)+JCos(F)+ICos(T))→XE+Q(ISin(U)+JSin(V)+OSin(D)+JSin(F)+ISin(T))→YH+AQ+KQ2→FX+BCos(F+W)→XY+BSin(F+W)→YDeg:ReturnFileName:TURNZH(坐标反算)Norm 1Z[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"Lbi S:RadZ[C+37]-X→I:Z[C+38]-Y→JIf I=0 And J=0 :Then Goto A:IfEndPol(I,J)Lbi A:Rec(I,J-F):J→Z[C+2]G+I→G:IF Abs(I)>0.0001 :Then Prog"ZBJS":Goto S↙G→Z[C+1]FileName:INFWJDLDH实测坐标(用方位角,距离,高差)输入程序Deg:Norm 1:ClsZ[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:Norm 1Z[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]→BFix 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:"DQD-Z"?I:I→Z[C+43] 输入实测高程Prog"TURNZH"Z[C+42](Z[C+43]-Z[C+34])+Z[C+33]→GFix 3:G-Z[C+1]◢显示与上一次测点的偏差G→Z[C+1]FileName:SET 设置程序Lbi SNorm 150→C50→Z[C+22]0→KZ[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]IfEndZ[C+7]+3→Z[C+31]0→I:"1PQX,2SQX,3YSDS"?I ;1输入平曲线要素,2输入竖曲线要素,3输入1、2线夹平竖曲线交点(变坡点)数量以让程序规划内存建立要素数据为,其它值退出本程序I=1 => Goto 1:I=2 => Goto 2:I=3 => Goto 3I≠0=>Prog"DATLOCK"Prog"SETPFDYS"StopLbi 1;平曲线要素输入部分Z[C+6]→D-1→Z[D+3]For 1→J To Z[C+16]Cls:"PQX":Locate 9,1,JZ[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] ;请输入半径RZ[D+4]→I:"LS1"?I:I→Z[D+4] ;请输入缓和曲线1长度Z[D+5]→I:"LS2"?I:I→Z[D+5] ;请输入缓和曲线2长度D+5→DNext1→Z[D-2]Goto SLbi 2 ;竖曲线要素输入部分Z[C+7]→D-1→Z[D+3]For 1→J To Z[C+17]Cls:"SQX":Locate 9,1,JZ[D+1]→I:"BPDZH"?I:I→Z[C+1] ;请输入变坡点桩号Z[D+2]→I:"BPDGC"?I:I→Z[C+2] ;请输入变坡点高程Z[D+3]→I:"R"?I:I→Z[C+3] ;请输入半径RD+3→DNext1→Z[D]Goto SLbi 3 ;要素点数输入部分Z[C+12]→I:"1PQXDS"?I:I→Z[C+12] ;输入1线平曲线点数,最小值为3Z[C+13]→I:"1SQXDS"?I:I→Z[C+13] ;输入1线竖曲线点数,最小值为3Z[C+18]→I:"1JDZH"?I:I→Z[C+18] ;输入1线平曲线第一个交点的交点桩号Z[C+14]→I:"2PQXDS"?I:I→Z[C+14] ;输入2线平曲线点数,最小值为3Z[C+15]→I:"2SQXDS"?I:I→Z[C+15] ;输入2线竖曲线点数,最小值为3Z[C+19]→I:"2JDZH"?I:I→Z[C+19] ;输入2线平曲线第一个交点的交点桩号C+Z[C+22]→Z[C+8] 1线路平曲线要素指针偏移基数Z[C+8]+5Z[C+12]→Z[C+9] 1线路竖曲线要素指针偏移基数Z[C+9]+3Z[C+13]→Z[C+10] 2线路平曲线要素指针偏移基数Z[C+10]+5Z[C+14]→Z[C+11] 2线路竖曲线要素指针偏移基数Z[C+11]+3Z[C+15]→Z[C+21] 要素数据库结束指针Z[C+21]+1→Z[C+30]Z[C+21]→DimZ 增加额外变量-1→KGoto SFileName:SETPFDYS 交点要素=>分段要素Norm 150→CRadZ[C+6]+5→DZ[C+21]+1→FF+6→DimZ-1→Z[F] ; 设置分段要素开始标志Z[C+20]→V ; 从数据库读入当前线第一个平曲线交点桩号0→GPol(Z[D+1]-Z[D-4],Z[D+2]-Z[D-3]) ;计算第一条直线的距离I,计算方位角JJ→HZ[D-4]→Z[F+1] 直线段Z[D-3]→Z[F+2]V-I→Z[F+3]For 1→G To Z[C+16]-2Pol(Z[D+1]-Z[D-4],Z[D+2]-Z[D-3]) ;计算第本交点与下一交点的距离I,计算方位角J I→W:J→HPol(Z[D+6]-Z[D+1],Z[D+7]-Z[D+2])J-H→K ;计算转角K,负值是左转角,正值是右转角IF Abs(K)>π:Then If K>0:Then K-2π→K:Else K+2π→K:IfEnd:IfEndZ[D+3]→R ;从数据库读入半径RZ[D+4]→L ;从数据库读入缓和曲线1长度Z[D+5]→M ;从数据库读入缓和曲线2长度L÷2÷R→B ;计算缓和曲线1的B0角M÷2÷R→O ;计算缓和曲线2的B0角(Abs(K)-B-O)R→P ;计算圆曲线长度L2÷24÷R-L^(4) ÷2384÷R^(3) →Q ;内移值计算方法2L÷2-L^(3) ÷240÷R2→S ;切线增长值计算方法2M2÷24÷R-M^(4) ÷2384÷R^(3) →J ;内移值计算方法2M÷2-M^(3) ÷240÷R2→I ;切线增长值计算方法2Abs(π÷2- Abs(K)) →ARtan(Abs(K÷2))+S+J÷Cos(A)-QTan(A)→T ;计算切线1Rtan(Abs(K÷2))+I+Q÷Cos(A)-JTan(A)→U ;计算切线2H<0=>H+2π→H1→AK<0 =>-1→AH→Z[F+4]0→Z[F+5]0→Z[F+6]F+6→FF+6→DimZRec(T,H)缓和段1Z[D+1]-I→NZ[D+2]-J→EN→Z[F+1]E→Z[F+2]V-T→Z[F+3]L=0=>Goto AH→Z[F+4]0→Z[F+5]A÷R→Z[F+6]F+6→FF+6→DimZLbi A圆弧段0→I:0→JL=0=>Goto BPol(L-L^(3)÷40÷R2,L2÷6÷R-L^(4)÷336÷R^(4)) Lbi BRec(I,H+AJ)N+I→NE+J→EN→Z[F+1]E→Z[F+2]V-T+L→Z[F+3]H+AB→Z[F+4]A÷R→Z[F+5]A÷R→Z[F+6]F+6→FF+6→DimZM=0=>Goto C 缓和段2Rec(2RSin(0.5P÷R),H+AB+AP÷R÷2)N+I→NE+J→EN→Z[F+1]E→Z[F+2]V-T+L+P→Z[F+3]H+AB+AP÷R→Z[F+4]A÷R→Z[F+5]0→Z[F+6]Lbi CF+6→FF+6→DimZRec(U,H+K)Z[D+1]+J→Z[F+1]Z[D+2]+I→Z[F+2]V-T+L+P+M→Z[F+3]V-T+L+P+M-U+I→VD+5→DNextH+K→Z[F+4]0→Z[F+5]0→Z[F+6]F+9→DimZ1→Z[F+7]V→Z[F+9] 要素终点桩号DegFileName:READDATZ[C+32]→II=3=>Prog"READDAT3"If G<M Or G>M+L :Then ;验证要素是否可用,否则重设要素I=1=>Prog"READDAT1"I=2=>Prog"READDAT2"Prog"REALDAT3"IfEndFileName:READDAT1 平曲线分段要素读取程序1Z[C+30]→F0→JLbi 1 搜索要素If G<Z[F+3]:Then-1=Z[F]=>Goto E:F-6→F:-1→J:Goto 1Else 1=Z[F+1]=>Goto E:-1=J=>Goto 2:1→J:F+6→F:Goto 1 IfEndLbi 2F→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] 当前分段要素长度ReturnLbi ECls"ERROR"StopREADDAT2文件请输入内容为以下内容以便测试结果与本文一致。

相关主题