FX5800P全线任意里程中边桩坐标正反算 曲线任意里程中边桩坐标正反算.doc
-
资源ID:2805381
资源大小:177.50KB
全文页数:36页
- 资源格式: DOC
下载积分:8金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
FX5800P全线任意里程中边桩坐标正反算 曲线任意里程中边桩坐标正反算.doc
FX5800P全线任意里程中边桩坐标正反算(加了数据库)本程序非本人原创,结合上传者长处,进行改编,愿收获和大家共享,不足之处多多指教。希望过路神仙把竖曲线加进去带算隧道超欠挖,谢谢曲線任意里程中邊樁坐標正反算5800p本程序由内蒙文哥和师父阿玖哥共同改编完成主程序 ZBJSLbl 6:"1.SZ XY":"2.XY SZ":?S:?N:Prog“SUB0”1÷PC:(P-R)÷(2HPR) D:180÷E:N=1 =>Goto 1: Goto 2Lbl 1:?Z: Abs(S-O)W: Prog"SUB1":"XS=":X"YS=":Y"FS=":F-90 DMS“XC” ?C: “YC” ? E:0I:0J:Pol(X-C,Y-E):“I=”:IIf J0: Then “J=”: J+360DMSIfEndIf J >0:Then “J=” :JDMSIfEnd:Goto 6Lbl 2?X:?Y:XI:YJ:Prog"SUB2":O+WS:Cls:"S=":S"Z=":ZGoto 6正算子程序 SUB10.1739274226A: 0.3260725774B: 0.0694318442K: 0.3300094782L: 1-LF: 1-KM:U+W(Acos(G+QEKW(C+KWD)+Bcos(G+QELW(C+LWD)+Bcos(G+QEFW(C+FWD)+Acos(G+QEMW(C+MWD)X: V+W(Asin(G+QEKW(C+KWD)+Bsin(G+QELW(C+LWD)+Bsin(G+QEFW(C+FWD)+Asin(G+QEMW(C+MWD) Y:G+QEW(C+WD)+90F: X+Zcos(F)X: Y+Zsin(F)Y反算子程序 SUB2 G-90T(Y-V)cosT-(X-U)sin(T) WAbs(W)W:0ZLbl6:Prog "SUB1"T+QEW(C+WD) L: (J-Y)cos(L)-(I-X)sin(L)ZIF Abs(Z)<1E-6:Then0Z:Prog "SUB1":(J-Y)÷sin(F)Z:Else W+ZW:Goto6:IfEnd数据库子程序 SUB0Goto 1(线元可输入多条,分离式可在前多加一位,匝道一样。例:左幅为K129+500,右幅输线元参数里程为1129+500,其他不变,前面1为任意数字,计算机便于区分)Lbl 1:IF S<线元终点里程:ThenO(线元起点里程) : U(线元起点X坐标):V(线元起点Y坐标):G(线元起点计算方位角):P(线元起点半径):R(线元止点半径):H(线元长度):Q(线元左、右偏标志,左偏-1,右偏1,直线为0):Return:IfEndIF S<线元终点里程:ThenO(线元起点里程) : U(线元起点X坐标):V(线元起点Y坐标):G线元(起点计算方位角):P(线元起点半径):R(线元止点半径):H(线元长度):Q(线元左、右偏标志,左偏-1,右偏1,直线为0):Return:IfEnd。一程序功能本程序由一个主程序(ZBJS)和3个子程正算子程序(SUB1)、反算子程序(SUB2) 、数据库子程序(SUB0)构成,可以根据曲线段直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。另外也可以将本程序中核心算法部分的两个子程序移植到其它相关的程序中,用于对曲线任意里程中边桩坐标进行正反算。本程序也可以在CASIO fx-4500P计算器及 CASIO fx-4850P计算器上运行。二、使用说明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 S ? 选择里程 ,N?,Z?左或右偏距。选择计算方式,1.表示进行由里程、边距计算坐标 ;输入2表示由坐标反算里程和边距。 显示部分: XS=××× 正算时,计算得出的所求点的X坐标 YS=××× 正算时,计算得出的所求点的Y坐标 FS=××× 正算时,所求点对应的中线点的切线方位角XC=××× 测站点X值YC=××× 测站点Y值 I=XXX 测站到放样点距离J=XXX 测站到放样点方位角 S=××× 反算时,计算得出的所求点的里程 Z=××× 反算时,计算得出的所求点的边距三 算例请到 有算例。注:1.本程序根据空间里程序改编而成,并非本人原创。2.正算跨线元计算正确,反算时跨线元计算第一次结果错误,反应速度比一般输出结果慢,给出结果S=XXX为输入坐标的线元概略里程,在进行计算,显示结果*近似里程*,里程及偏距误差0.001m.,可更改数据(1E-6)改为(1E-3),速度稍快一点。3本程序可进行偏角法放样。4.输入每行数据看数据输完毕没有,输完不要忘记按(EXE)5.使用者需细心输入,有问题在以下网址查找原因。61E-6即是10的負6次方,亦即是等於0.0000017.希望高人指点把此程序改为数据库形式,并加入高程,希望哪位神仙路过指点一下,把程序改为坐标、高程一体的这程序就完美了,程序中不足之处请指点。曲線任意里程中邊樁坐標正反算5800pTYQXJS(主程序名)LbI 0:4Dimz:Cls"1.SZXY""2.XYSZ"?N:Cls"XO"?U: "YO"?V: "SO"?O:"FO"?G: "LS"?H: "RO"?P:"RN"?R:?Q1÷PC:(P-R)÷(2HPR) D:180÷EN=2=>Goto 2LbI 1:Cls:?SS=0=>Goto 0 (注:當S輸入0時,程序會由LbI 0開始重新運行)?Z:Abs(S-O)WProg"SUB1":Cls"XS=":X"YS=":Y"FS=":F-90 DMSGoto 1LbI 2:Cls:?XX=0=>Goto 0 (注:當X輸入0時,程序由會LbI 0開始重新運行)?Y:XI:YJProg"SUB2":O+WS:Cls"S=":S"Z=":ZGoto 2注:紅色部可以不要,亦可以要,它的作用是將S或X輸入0時,程序會重新由頭開始運行,(即是可以計算下段線元)SUB1(子程序名)0.1739274226A:0.3260725774B0.0694318442K:0.3300094782L1-LF:1-KMG+QEKW(C+KWD)Z1G+QELW(C+LWD)Z2G+QEFW(C+FWD)Z3G+QEMW(C+MWD)Z4A×cos(Z1)X (剩號可省略)X+Bcos(Z2)XX+Bcos(Z3)XX+Acos(Z4)XU+WXXAsin(Z1)YY+Bsin(Z2)YY+Bsin(Z3)YY+Asin(Z4)YV+WYYG+QEW(C+WD)+90FX+Zcos(F)XY+Zsin(F)YSUB2(子程序名)G-90T(Y-V)cos(T)-(X-U)sin(T)WAbs(W)W:0ZLbI 4:Prog"SUB1"T+QEW(C+WD)L(J-Y)cos(L)-(I-X)sin(L)ZIf Abs(Z)1E-6:Then 0Z :Prog"SUB1"(J-Y)÷sin(F)ZElse W+ZW:Goto 4:IfEnd注:1E-6即是10的負6次方,亦即是等於0.000001輸入時按SHIFT-log-(-)-6亦可直接將If Abs(Z)1E-6寫成If Abs(Z)0.000001注意:本程序是根據yhhf編寫的4800P改寫而成,以下是源程序及算例大家有問題亦可在以下網址查看及向yshf發問曲线任意里程中边桩坐标正反算(CASIO fx-4800P计算器)程序一、程序功能 本程序由一个主程序(TYQXJS)和两个子程正算子程序(SUB1)、反算子程序(SUB2)序构成,可以根据曲线段直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。另外也可以将本程序中核心算法部分的两个子程序移植到其它相关的程序中,用于对曲线任意里程中边桩坐标进行正反算。本程序也可以在CASIO fx-4500P计算器及 CASIO fx-4850P计算器上运行。 特别申明:(1). 适用于弧长小于2倍半径的各种线元坐标正反算,精度优 于1mm; (2). 在引用该核心计算部分时,请注明来源。二、源程序1.主程序(TYQXJS)"1.SZ => XY":"2.XY => SZ":N:U"X0":V"Y0":O"S0":G"F0":H"LS":P"R0":R"RN":Q:C=1÷P:D=(P-R)÷(2HPR):E=180÷:N=1=>Goto 1:>Goto 2Lbl 1:SZ:SZ:W=Abs(S-O):Prog "SUB1":X"XS"=XY"YS"=YF"FS"=F-90Goto 1Lbl 2:XY:XY:I=X:J=Y:Prog "SUB2":S"S"=O+WZ"Z"=ZGoto 22. 正算子程序(SUB1)A=0.1739274226:B=0.3260725774:K=0.0694318442:L=0.3300094782:F=1-L:M=1-K:X=U+W(Acos(G+QEKW(C+KWD)+Bcos(G+QELW(C+LWD)+Bcos(G+QEFW(C+FWD)+Acos(G+QEMW(C+MWD):Y=V+W(Asin(G+QEKW(C+KWD)+Bsin(G+QELW(C+LWD)+Bsin(G+QEFW(C+FWD)+Asin(G+QEMW(C+MWD):F=G+QEW(C+WD)+90:X=X+ZcosF:Y=Y+ZsinF3. 反算子程序(SUB2)T=G-90:W=Abs(Y-V)cosT-(X-U)sinT):Z=0:Lbl 0:Prog "SUB1":L=T+QEW(C+WD):Z=(J-Y)cosL-(I-X)sinL:AbsZ<1E-6=>Goto1:>W=W+Z:Goto 0Lbl 1:Z=0:Prog "SUB1":Z=(J-Y)÷sinF三、使用说明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表示由坐标反算 里程和边距。 X0 ?线元起点的X坐标 Y0 ?线元起点的Y坐标 S0 ?线元起点里程 F0 ?线元起点切线方位角 LS ?线元长度 R0 ?线元起点曲率半径 RN ?线元止点曲率半径 Q ? 线 元左右偏标志(左偏Q=-1,右偏Q=1,直线段Q=0) S ? 正算时所求点的里程 Z ?正算时所求点距中线的边距(左侧取负,值右侧取正值,在中线上取零) X ?反算时所求点的X坐标 Y ?反算时所求点的Y坐标 显示部分: XS=××× 正算时,计算得出的所求点的X坐标 YS=××× 正算时,计算得出的所求点的Y坐标 FS=××× 正算时,所求点对应的中线点的切线方位角 S=××× 反算时,计算得出的所求点的里程 Z=××× 反算时,计算得出的所求点的边距四、算例 某匝道的由五段线元(直线+完整缓和曲线+圆曲线+非完整缓和曲线+直线)组成,各段线元的要素(起点里程S0、起点坐标X0 Y0、起点切线方位角F0、线元长度LS、起点曲率半径R0、止点曲率半径RN、线 元左右偏标志Q)如下: S0 X0 Y0 F0 LS R0 RN Q500.000 19942.837 28343.561 125 16 31.00 269.256 1E45 1E45 0769.256 19787.340 28563.378 125 16 31.00 37.492 1E45 221.75 -1806.748 19766.566 28594.574 120 25 54.07 112.779 221.75 221.75 -1919.527 19736.072 28701.893 91 17 30.63 80.285 221.75 9579.228 -1999.812 19744.038 28781.659 80 40 50.00 100.000 1E45 1E45 0 1、正算 (注意:略去计算方式及线元要素输入,请自行根据所求点所在的线元输入线元要素) S=700 Z=-5 计算得 XS=19831.41785 YS=28509.72590 S=700 Z=0 计算得 XS=19827.33592 YS=28506.83837 S=700 Z= 5 计算得 XS=19823.25398 YS=28503.95084 S=780 Z=-5 计算得 XS=19785.25749 YS=28575.02270 S=780 Z=0 计算得 XS=19781.15561 YS=28572.16358 S=780 Z= 5 计算得 XS=19777.05373 YS=28569.30446 S=870 Z=-5 计算得 XS=19747.53609 YS=28654.13091 S=870 Z=0 计算得 XS=19742.68648 YS=28652.91379 S=870 Z= 5 计算得 XS=19737.83688 YS=28651.69668 S=940 Z=-5.123 计算得 XS=19741. 59118 YS=28722.05802 S=940 Z=0 计算得 XS=19736.47687 YS=28722.35642 S=940 Z= 3.009 计算得 XS=19733.47298 YS=28722.53168 2、 反算 X=19831.418 Y=28509.726 计算得 S=699.9999974 Z= -5 .00018164 X=19827.336 Y=28506.838 计算得 S=699.9996493 Z= 0.000145136 X=19823.25398 Y=28503.95084 计算得 S=699.9999985 Z= 5.000003137 X=19785.25749 Y=28575.02270 计算得 S=780.0000035 Z= -5 .000001663 X=19781.15561 Y=28572.16358 计算得 S=780.0000025 Z=- 0.000002979 X=19777.05373 Y=28569.30446 计算得 S=780.0000016 Z= 4.99999578 X=19747.536 Y=28654.131 计算得 S=870.0001137 Z= -4.99941049 X=19742.686 Y=28652.914 计算得 S=870.0003175 Z=- 0.00041814 X=19737.837 Y=28651.697 计算得 S=870.0002748 Z= 4.999808656 X=19741.5912 Y=28722.0580 计算得 S=939.9999786 Z= -5.123024937 X=19736.4769 Y=28722.3564 计算得 S=939.9999862 Z=- 0.000027710 X=19733.4730 Y=28722.5317 计算得 S=940.0000238 Z= 3.00898694CASIO5800直线段中边桩坐标计算(且能计算斜交) LBI0/ "K(D0)"?D:"X(D0)"?U:"Y(D0)"?V:?F:"X(00)"?M:"Y(00)"?N:0->I:1->J:1->G/ ?K:"W(L)"?A:"W®"?B:"N°®"?C K-D->L U+LcosF->X V+LsinF->Y F+C->L "X(L)=":X-Acos(L)->I黑三角 "Y(L)=":Y-Asin(L)->J黑三角 Pol(X-Acos(L)-M),(Y-Asin(L)-N) "D(L)=":I黑三角 J<0=>J+360->J "F(L)=":J黑三角DMS黑三角 "X(Z)=":X黑三角 "Y(Z)=":Y黑三角 Pol(X-M),(Y-N) "D(Z)=":I黑三角 J<0=>J+360->J "F(Z)=":J黑三角DMS黑三角 "X(R)=":X+Bcos(L)->I黑三角 "Y®=":Y+Bsin(L)->J黑三角 Pol(X+Bcos(L)-M,(Y+Bsin(L)-N) "D®=":I黑三角 J<0=>J+360->J "F®=":J黑三角DMS黑三角 Goto0 说明:D-线路起点桩号 U-起点X坐标 V-起点Y坐标 F-方位角度 M-置仪点X N-置仪点Y K-所求桩号 A-左侧宽 B-右侧宽 C-与线路顺时针夹角90或任意角度 CASIO 5800计算器测量计算程序 上CASIO 5800计算器测量计算程序 上上月做这个东西的时候没仔细检查,有好几处输错了的地方,今天把它修改过来。简要介绍: 1. 新版程序把线元法和交点法已经集成在一个模块中了,用户只需修改JD程序和ZA程序中的数据部分即可,其余不需作任何的改动。 2. 因为每条路高程计算不尽相同,且比较复杂,现在可利用PC机EXCEL计算好打印成表格带到工地上使用,所以本版程序未对线路高程序进行专门的编程计算,而是利用统计计算模式中来输入桩号(第一列X)及左、右高程(第二、三列Y,Freq),这种输入数据的方式最为直观,易发现错误,也易修改,输入完毕后运行S程序对数据按桩号进行排序,在程序中通过调用GG程序来进行内插计算,SG=-1得左标高,SG=1得右标高(若SG输入0,则可进行一般的线性内插计算)。 3. 在JD程序和XY程序中,先将一个计算单元的数据置入矩阵F中(1行8列或1行9列),这样程序可读性极好。 4 相比原CASIO4850程序操作习惯,作了一点小小的改动,测站坐标存在Z10,N中,X坐标原存在M中容易被误操作修改,而设计标高存在M中,这样易于修改,因为CASIO5800没有IN,OUT功能,很不方便。 4. 程序利用Z2变量值来判断是采用交点法还是线元法模型计算,Z20为线元法,否则为交点法。 一、PQX程序:计算中边桩坐标及近似的桩号反算,在运行模式直接调用。 Z10S:”XO”?S:SZ10:”YO”?N:Prog “AU” Lbl 2:?L:Prog “Z”:Prog “E”:1nO:90S Lbl 4:”JJ”?S:”YC”?O:SO=0 =>Goto 2原来lbl 后没有标号的。 O=-1 =>Goto 6 “X,Y”:R+OCos(Z+S)XU+OSin(Z+S)YProg “D”:Goto 4 Lbl 6:Z7X:Z8Y:”XF”?X:”YF”?Y:XY=0 =>Goto 4 XZ7:YZ8:Pol(X-R,Y-U+1p):Z+S-JJ:”YC,DL,L”:ICos(J)OISin(J)IL+IGoto 6 二、P程序:在程序中提供一个自由运算的模式。 Lbl 1:”TMP”?I:If I0:Then “RST”:IGoto 1:IfEnd 二、LYC程序:进行桩号反算及边坡放样,在运行模式直接调用。 Prog “AU” Lbl 1:Z7X: Z8Y: Z6S: ”XF”?X :XZ7:”YF”?Y:YZ8: ”ZF”?S: SZ6 Lbl 2:Prog “Z”:Y=U =>Y+1pY Pol(X-R,Y-U):J-ZJ:Isin(J)O:Icos(J)I If Abs(I)0.1:Then Prog “E”:”L,YC”:L+ILOGoto 3:IfEnd If Z90:Then Pol(Z9-SO,I):JZ9÷180I:IfEnd ”DL”:IL+IL:Goto 2 Lbl 3: Z6S:If S=0:Then Goto 1:IfEnd MZ Lbl 4:”SG”?Z:ZM:If Abs(Z)=1: Then Prog “GG”:YZ:If X=1:Then XZ:IfEnd:ZM:IfEnd If Z=0:Then Z11C:Z12D: Z13E: Z14F:”LA”?C:CZ11: ”HA”?D:DZ12: ”LB”?E:EZ13: ”HB”?F:FZ14:D+(E-C)-1(F-D)(L-C)Z:ZM:IfEnd Lbl 5:”SG”:Z:”TW”:Z-SC:Z3P: Z4Q: :Z5T:”YC0”?P:PZ3: :”HC0”?Q:QZ4 :”M”?T:TZ5:O÷Abs(O)I:”BL”:I(P+TC(C+Q)÷Abs(C)U”DB”:IU-IOJ AnsI:Prog “P”:Goto 1 四、I程序:通过手工方式输要素 Z2=0 =>Goto 2 Z1R:Z2U:”JL”?K:”JX”?G:”JY”?H:”JA”?V:”JJ”?W:”R”?A:”LS”?B:”L1”?R:”L2”?U:RZ1:UZ2:ReTurn Lbl 2:”L0”?K:”X0”?G:”Y0”?H:”A0”?V”:”L1”?F:”L-0 Z=-1 Y=1”?W:W=0 =>ReTurn ”R0”?A:”R1”?B 五、D程序:根据测站点的坐标及放样点的坐标计算水平距离及方位角 Y=N =>Y+1nY Pol(X-Z10,Y-N):J<0 =>J+360J ”A,D”:JDMSI 六、E程序:桩号出界判断 Z2=0 =>Goto 2 If L>Z2: Then “>L2”:LIfEnd If L<Z1: Then “<L1”:LIfEnd Goto 3 Lbl 2:If L<K:Then “<L0”:L-KIfEnd If L>F:Then “>L1”:L-FIfEnd Lbl 3 七、GG程序:用统计数据中桩号,左右高程数据进行内插计算。 FreqOff : nC:FreqOn:If L<minX: Then “L<minX”:1I:Goto 8:IfEnd If L>maxX: Then “L>maxX”:C-1I:Goto 8:IfEnd For 1I To C-1 If LList XI+1: Then Break:IfEnd:Next Lbl 8 : (L-List X)÷(List XI+1- List X)J : List Y+J(List YI+1-List Y)X : List Freq +J(List Freq I+1-List Freq )Y 八、S程序:对统计数据列表中数据按桩号进行排序。 FreqOff : nC:FreqOn“WAITn=”:Locate 10,1,C If C<2 Then Return:IfEnd For 1D To C: DI: For D+1E To C: If List XE<List X:Then EI:IfEnd:Next If ID: Then List XDF:List XList XD:FList X: List YDF:List YList YD:FList Y: List FreqDF:List FreqList Freq D:FList Freq :IfEnd:Next Locate 1,2,”minX:”Locate 6,2,minX Locate 1,3,”minX:”Locate 6,3,maxX 九、X程序:计算缓和曲线坐标增量xx,yy ABU:U÷OZ9:0.5O2÷UR:O-0.1OR2I:6-1OR(2-7-1R2)J:RrR 十、JS程序:内插计算的接口程序,在运行模式直接调用。 Prog “S” Lbl 1:”L=”?L:L=0 =>Return Prog “GG”:”X,Y”:XYGoto 1 十一、GZW程序:构造物坐标放样计算,在运行模式直接调用。 Z10S:”XO”?S:SZ10:”YO”?N:0T Lbl 1;”X0”?R:”Y0”?U:”A0”?Z:IF Z=-1 :Then “A0,DD”:JZIIfEnd If Z=0:Then RX:UY:Prog “D”:Goto 1:IfEnd '在后增加一句,解决了程序再次运行时,交角的初值被置为测站点的坐标的BUG.O-ZS:”J0”?S:Z+SO:”0-XX,YYX,Y”:”1-X,YXX,YY”?T:If T0: Then Goto 3:IfEnd Lbl 2:”XX”?P:”YY”?Q:If PQ=0:Then Goto 1:IfEnd ”X,Y”:R+Pcos(Z)+Qcos(O)XU+Psin(Z)+Qsin(O)YProg “D”:Goto 2 Lbl 3:”XF”?X:”YF”?Y:If XY=0: Then Goto 1:IfEnd ”XX,YY”:(X-R)sin(O)-(Y-U)cos(O)÷sin(S)P(Y-U)cos(Z)-(X-R)sin(Z)÷sin(S)Q Goto 3 十二、Y程序:线元法计算匝道坐标 L-KC:If L>F:Then F-KC:IfEnd If W=0 or C<0:Then G+Ccos(V)R:H+Csin(V)U:0Z9:Goto 8:IfEnd W÷Abs(W)W:If A=B:Then 0B:IfEnd If B=0:Then (A-1C)rC:Asin(C)I:A(1-cos(C)J:AZ9:Goto 7:IfEnd A-BS:B(F-K)÷Abs(S)R:ARU:S÷Abs(S)S:0.5R2÷UD:R+SCT: 0.5T2÷UE:U÷TZ9:T(1-0.1E2+E22÷216-E(6)÷9360)-R(1-0.1D2+D22÷216-D(6)÷9360)I: 3-1(TE(1-E2÷14+E22÷440-E(6) ÷25200)-RD(1-D2÷14+D22÷440-D(6) ÷25200)J:Pol(1n+Abs(I),Abs(J):Rec(I,Abs(J-Dr):Abs(E-D)rC Lbl 7:G+Icos(V)-WJsin(V)R:H+Isin(V)+WJcos(V) U:V+WCZ Lbl 8:If L>F:Then R+Rec(L-F,Z) R:U+JU:0Z9:IfEnd 十三、Z程序:交点法计算中桩坐标 If Z2=0:Then Prog “Y”:Return:IfEnd B2÷A÷24P:0.1B(5-P÷A) Q:Q+(A+P)tan(0.5Abs(W) T:K-TC:C+BD:D+AAbs(W) ÷180F:F-BE W÷Abs(W)S:0Z9:If LC:Then L-KO:VZ:Goto 2:IfEnd If LF:Then L-F+TO:V+WZ:Goto 2:IfEnd If LE:Then F-LO:Prog ”X”:V+WO:O-SRZ:G+(T-I)cos(O)-SJsin(O)R:H+(T-I)sin(O)+Sjcos(O) U:Goto 3:IfEnd If L>D:Then (L-D+0.5B)÷A)rO:Q+Asin(O)I:P+A(1-cos(O) J:AZ9:V+SOZ:Goto 4:IfEnd L-CO:Prog “X”:V+SRZ Lbl 4:G+(I-T)cos(V)-Sjsin(V)R:H+(I-T)sin(V)+Sjcos(V)U:Goto 3 Lbl 2:G+Ocos(Z)R:H+Osin(Z)U Lbl 3 十四、AU程序: 注:L0-输测段桩号近似值,”AU”子程序根据桩号近似值自动调用曲线要素(包括线元法和交点法要素),Z2=0则调用线元法数据,否则为交点法数据 (L0=0-默认为原曲线要素 L0=-1-手工输入曲线要素) Cls:” L0= 0-Conti.”:” L0=-1-Input”:If Z2=0:Then Locate 13,2,”(XY)”:Else Locate 13,2,”(JD)”:IfEnd Z2S:”0XY E.JD”?S:SZ2:”L0”?L:If L=0:Then ReTurn:If