收藏 分享(赏)

CASIO4800互通式立交桥坐标计算程序(定稿).doc

上传人:hwpkd79526 文档编号:9294745 上传时间:2019-08-01 格式:DOC 页数:8 大小:111KB
下载 相关 举报
CASIO4800互通式立交桥坐标计算程序(定稿).doc_第1页
第1页 / 共8页
CASIO4800互通式立交桥坐标计算程序(定稿).doc_第2页
第2页 / 共8页
CASIO4800互通式立交桥坐标计算程序(定稿).doc_第3页
第3页 / 共8页
CASIO4800互通式立交桥坐标计算程序(定稿).doc_第4页
第4页 / 共8页
CASIO4800互通式立交桥坐标计算程序(定稿).doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、1CASIO fx-4800P 计算器互通式立交桥坐标计算程序一、程序编制思路1、本文用例的施工图设计中给出的曲线要素为每条路线内每个线元的起点桩号、终点桩号、起点桩号的 X、Y 坐标、起点方位角、起点半径、回旋线参数、本线元长度、偏转方向及线型说明备注,根据施工设计图给出的曲线要素表内容,本程序也针对每个线元分别进行计算。2、为了最大程度方便快捷的计算坐标,决定把数据嵌入到程序中,每一条路线为一个原始数据文件(扩展名为.D) ,在每一个原始数据文件中对读取相应线元数据的操作进行控制。自动计算时本程序只要输入计算哪条路线的参数 H 和所要计算的桩号 D就可以直接计算出来 D 点的坐标,方便、快

2、捷、减少输入错误。在计算不同工程的坐标时,只需要对原始数据文件进行修改、对主程序做局部修改即可通用,很方便。3、为了实现自动计算一条路线上任意一点 D 的坐标而不用考虑点 D 在那个线元上,计算时均是从本条整个路线的起点开始计算。4、对于圆曲线和缓和曲线上的点是先计算相对坐标再计算绝对坐标。5、加入边桩的坐标计算功能。6、即可以从数据文件中读取数据进行自动计算,又可以手工输入线元要素进行手工计算,手工计算仅针对单个线元进行计算。7、充分采用子程序的方式,各子程序功能清楚,重复利用率高。8、对所输入的桩号 D 值是否在本条路线范围内进行有效性检查,以确保数据计算正确。9、每次只能计算一个中桩的坐

3、标,但可以计算此中桩的任意数量边桩的坐标。二、程序编制特别说明1、对于缓和曲线的坐标计算公式,一般教材中给出的公式是对级数展开式的前34 项进行相加,在互通式立交桥的匝道设计中经常存在缓和曲线长度(Ls)与缓和曲线半径(R)的比值较大的情况,如果仍然用一般教材中给出的公式来计算坐标会产生很大的误差,导致计算结果完全错误,因此本程序中 HH1.S 子程序计算缓和曲线的坐标是用级数展开式的通式来进行迭代计算。依据 Ls/R 的比值动态决定需要迭代的次数,根据试算一般当迭代次数Int(Ls/R)4 时(Int 为取整)就能保证小数点后前5 位小数的数值不变,完全满足使用要求。22、同样在 HH1.S

4、 子程序中,级数展开式有些项的计算结果数值很大,超出了计算器的数值范围会产生溢出错误,因此在程序中把一个大数值项拆开成几个小数值项,并且乘除相间,有效的避免了计算器溢出错误。3、对于这样一个比较大的计算器程序,26 个字母根本不够用,因此在程序编制的过程中先确定一些全局变量,再仔细研究程序内容,在不影响程序正确性的前提下,当一些局部变量的功能完成后,后面的变量再重复利用此字母。这样不用扩展计算器的变量范围,节约了计算器的存储空间。4、由于原始数据文件占用了计算器的大部分存储空间(本工程实际工作中有 13个数据文件) ,因此对数据文件的内容做了优化,以使数据文件尽量小;另外对所有的主程序和子程序

5、也进行了最大程度的优化以节省计算器存储空间。三、源程序1、主程序(ZBJS-A)N=180:HD:I=1:HAW:Prog “FW.S”:W0=BCJRLFZ:Prog “ZB.S”F=0:H=1=Prog “SJ01.D”H=2=Prog “SJ02.D”H=3=Prog “SJ03.D”“- END -”说明: N 为常数;H 为要计算哪条路线的参数,需要输入;D 为所要计算坐标的点的桩号,需要输入;W 为本条路线的终点桩号;通过调用子程序 FW.S 来判断计算桩号 D 是否在本条路线内,完成判断后 W 做为终点桩号的功能结束,开始做为判断程序是否结束的标志(原始数据文件中同样) ;如果计

6、算桩号 D 不在本条路线内,则 W=-9,根据 W 是Prog “SJ04.D”H=5=Prog “SJ05.D”语句,以此类推。数据文件名可以自己定义。2、子程序:原始数据文件 01(SJ01.D)A=619.944:W=990.57:B=1698.0153:C=3559.6189:Prog “FW.S”Lbl 0:I=1=Goto 1I=2=Goto 2I=3=Goto 3Goto 4Lbl 1:J=345349:R=130:L=89.016:F=306.6003:Z=-3:Goto 93Lbl 2:J=3081445:R=130:L=156.266:Z=-2:Goto 9Lbl 3:J=

7、2392225:R=130:L=47.786:Z=-4:Goto 9Lbl 4:J=2285036:R=231.75:L=77.558:Z=3:Goto 9Lbl 9: W0=Prog “ZB.S”W0=Goto 03、子程序:原始数据文件 02(SJ02.D)A=4204.534: W=5504.528:B=2251.824:C=3444.579:Prog “FW.S”Lbl 0:I=1=Goto 1I=2=Goto 2I=3=Goto 3I=4=Goto 4Goto 5Lbl 1:J=1814611:L=724.947:Z=1:Goto 9Lbl 2:J=1814611:R=400:L=5

8、0:Z=3:Goto 9Lbl 3:J=185213:R=400:L=108.677:Z=2:Goto 9Lbl 4:J=200553:R=400:L=50:Z=4:Goto 9Lbl 5:J=2042955:L=366.37:Z=1:Goto 9Lbl 9: W0=Prog “ZB.S”W0=Goto 04、子程序:原始数据文件 03(SJ03.D)内容略。原始数据文件格式说明: A:本条整个路线的起点桩号; W:本条整个路线的终点桩号;B:本条整个路线起点桩号的 X 坐标; C:本条整个路线起点桩号的 Y 坐标;J:每个线元起点桩号的方位角;R:线元为圆曲线时 R 为半径,为缓和曲线时 R

9、 为缓和曲线的最小半径,支线时不需要加入 R;L:每个线元的实际长度; Z:线型参数;F:当线元为缓和曲线时,为本线元的回旋线参数,必要时才加入,否则 F 的值总是为 0 线型参数 Z 输入说明:Z=1:线型为直线; Z=2:线型为圆曲线;Z=3:线型为缓和曲线,并且按照路线前进方向缓和曲线的半径由大到小;Z=4:线型为缓和曲线,并且按照路线前进方向缓和曲线的半径由小到大;当 Z0 时,曲线为右偏(即顺时针) ,当 ZW=-9:“ERR:DDW=W=-9:“ERR:DMAX”说明: 判断计算桩号 D 是否在本条路线内。 如果 D 不在本条路线内,屏幕将显示相应的提示信息。6、子程序(ZB.S)

10、D=A=U=B:V=C:O=J:Prog “ZB.S2”:Goto 3DA+L=M=D-A:Prog “ZYH.S”:Prog “ZB.S2”:Goto 3M=L:Prog “ZYH.S”:B=U:C=V:I=I+1:A=A+L:F=0Lbl 3:说明: 当计算桩号 D 等于本线元的起点桩号时,直接调用“ZB.S2”计算边桩坐标;当 D 在本线元内(包括本线元终点)时,调用“ZYH.S”计算坐标(ZYH.S 中又包含调用 ZB.S1 子程序来计算圆曲线和缓和曲线的绝对坐标) ,之后再调用 ZB.S2 来计算边桩的坐标;最后 7 个语句是指当 D 不在本线元内时,调用“ZYH.S”计算本线元的终

11、点坐标,作为下一线元的起点坐标,原始数据文件的行号标志 I 指向下一线元,并计算下一线元的起点桩号 A。 M 为计算桩号 D 距本线元起点的长度;U、V 为计算桩号 D 的中桩的绝对坐标,对应于 X、Y 坐标,O 为方位角。7、子程序(ZYH.S)Z=1=Prog“ZX.S”Abs Z=2=Prog “YQ.S”Abs Z=3=F=0=Prog “HH1.S”:Prog “HH2.S”Abs Z=4=Prog “HH2.S”Z1=Prog “ZB.S1”5说明: 根据线型参数 Z 和 F 值决定调用哪个子程序来计算坐标(当线元为曲线时计算的为相对坐标) 。 最后一个语句是指当线型不是直线时再调

12、用“ZB.S1”来计算绝对坐标。8、子程序(ZB.S1)K= -(P2+Q2):S=tan-1(QP):ZS=J-S:S=J+SG=S:Prog “J.S”:S=G:U=B+KcosS:V=C+KsinS说明:线元为圆曲线和缓和曲线时根据计算桩号 D 的相对坐标(P、Q)来计算本点的绝对坐标(U、V) ,均分别对应于 X、Y 坐标。9、子程序(ZB.S2)E=0Lbl 0:E=0=X=U:Y=V:Goto 3ES=O-90: S=O+90G=S:Prog “J.S”:S=G:E=Abs E:X=U+EcosS:Y=V+EsinSLbl 3:X“X=” Y“Y=” O“O=” E:E0=Goto

13、 0W=-9说明: 根据计算桩号 D 的中桩的绝对坐标来计算边桩的绝对坐标。计算桩号 D 的中桩和边桩的绝对坐标最后都以 X、Y 显示出来,字母 O 为计算桩号的方位角。本文中字母 O 字体均加粗显示,以区别数字 0。 E 为边桩距离,初始值为 0(即中桩坐标) ,边桩在中桩左边时 E 输入负值,在右边时 E 输入正值。最后一行第一次显示中桩的绝对坐标,之后要求输入边桩的距离,循环计算并显示边桩的绝对坐标;如果 E 值输入 0 则程序给 W 赋值-9,以做为整个计算结束的标志。10、子程序(J.S)G360=G=G-360GG=G+360说明:把角度限制在 0360之间。11、子程序(ZX.S

14、)U=B+McosJ:V=C+MsinJ:O=J说明:线元为直线时直接计算 D 点的绝对坐标 U、V(对应于 X、Y 坐标) ,O 为方位角。12、子程序(YQ.S)6T=NMR:P=RsinT:Q=R-RcosT:ZO=J-T:O=J+TG=O:Prog “J.S”:O=G说明:线元为圆曲线时计算 D 点的相对坐标 P、Q(对应于 X、Y 坐标) ,O 为方位角。13、子程序(HH1.S)K=RL:P=0:Q=0:G=0:Y=Int (LR)+4:M=0=Goto 3“WAIT”Lbl 1:P=P+(-1) GM (2G)K G(2G)!M (2G+1)K G2 (2G)(4G+1):G=G

15、+1:GGoto 1G=1Lbl 2:Q=Q+(-1) (G+1)M (2G)K G(2G-1)!M (2G-1)K (G-1)2 (2G-1)(4G-1):G=G+1:GGoto 2Lbl 3:W=NM22RL:ZO=J-W:O=J+WG=O:Prog “J.S”:O=G说明: 线元为缓和曲线时,当按照路线前进方向缓和曲线的半径由大到小并且 L 值等于缓和曲线的理论计算长度时,用本子程序计算 D 点的相对坐标,否则用 HH2.S 子程序来计算 D 点的相对坐标。相对坐标 P、Q 对应于 X、Y 坐标,O 为方位角。 由于本程序循环迭代计算量较大,计算时要等待一段时间,屏幕显示“WAIT” 。

16、 前 5 行中 Y 临时做为需要迭代的次数,G 临时做为实际迭代的累计次数。 Lbl 2 语句执行完后,G、Y 的作用已经完成,在最后 1 行中 G 又作为临时过渡参数。14、子程序(HH2.S)T=L:F0=L=F 2RAbs Z=3=DE=L-T+D-A:E=LE=LM=E:Prog “HH1.S”:F=P:S=Q: Abs Z=4=DM=L-D+A:M=L-TM=L-TProg “HH1.S”:X=P:Y=Q:K=F-X:G= -(K2+(S-Y)2):F=tan-1(S-Y)K):KF=F+180FK0=F=F+360K=NE 22RL: X=NM22RL:Abs Z=3=S=F-X:

17、 S=K-FP=Abs (GcosS):Q=Abs (GsinS):ZO=J-K+X:O=J+K-XG=O:Prog “J.S”:O=G:L=T说明: 线元为缓和曲线时,当按照路线前进方向缓和曲线的半径由小到大或者 L 值小于缓和曲线的理论计算长度时,用本子程序计算 D 点的相对坐标,否则用 HH1.S 子程序来计算 D 点的相对坐标。 注意:在本子程序中许多字母在它的临时参数作用完成后,后面又被利用做为另一种临时参数,即这些参数只作为临时过渡参数,而非全局变量。 本子程序中最后的 P、Q 才是计算桩号 D 的相对坐标,P、Q 对应于 X、Y 坐标,O 为方位角。7四、举例1、匝道 B 平面线

18、位数据表桩号 坐标起点桩号 终点桩号 X 起点 Y 起点 起点方位角R 起点 A L偏转方向 备注K0+169.020 K0+233.675 1602.0106 3263.0243 1203437 221.750 119.7385 64.655 顺时针 缓和曲线K0+233.675 K0+296.517 1563.9101 3315.1852 1285547 92.1065 62.842 逆时针 缓和曲线K0+296.517 K0+414.119 1528.4139 3366.8582 1153540 135.000 117.602 逆时针 圆曲线K0+414.119 K0+499.303 1

19、527.1447 3480.7702 654056 135.000 358.7020 85.183 逆时针 缓和曲线K0+499.303 K0+499.303 1583.1289 3543.2592匝道 B 说明:1、编入原始数据文件时 4 个线元的 Z 值分别为 4、-3、-2、-4;2、第 4 个线元的缓和曲线理论计算长度为 Ls=A2/R=953.0898134,Ls/R 的值较大,必须根据通用公式迭代多次才能得到正确结果。2、匝道 E 平面线位数据表桩号 坐标起点桩号 终点桩号 X 起点 Y 起点 起点方位角R 起点 A L偏转方向 备注K0+499.303 K0+619.944 15

20、82.2237 3544.7570 31842 150.000 120.641 逆时针 圆曲线K0+619.944 K0+619.944 1698.4663 3561.3098匝道 E 说明:由于只有 1 个线元,原始数据文件可以简化如下:A=499.303:B=1582.2237:C=3544.757: J=31842:R=150:L=120.641:Z=-2:W=A+L:Prog “FW.S”:W0=Prog “ZB.S”3、匝道 F 平面线位数据表桩号 坐标起点桩号 终点桩号 X 起点 Y 起点 起点方位角R 起点 A L偏转方向 备注K0+619.944 K0+708.960 1698

21、.0153 3559.6189 34539 148.250 306.6003 89.016 逆时针 缓和曲线K0+708.960 K0+865.226 1771.4423 3512.0440 3081445 130.000 156.266 逆时针 圆曲线K0+865.266 K0+913.012 1781.2112 3365.3428 2392225 130.000 78.8170 47.786 逆时针 缓和曲线K0+913.012 K0+990.570 1752.0675 3327.5637 2285036 134.0678 77.558 顺时针 缓和曲线K0+990.570 K0+990.

22、570 1704.4181 3266.4910匝道 F 说明:1、第 1 个线元的缓和曲线理论计算长度为 Ls=A2/R=723.1057,Ls/R 的值较大,必须根据通用公式迭代多次才能得到正确结果。第 4 个线元的半径为 R=A2/L=231.7514。2、具体数据文件见程序中 SJ01.D。4、匝道 I 平面线位数据表桩号 坐标起点桩号 终点桩号 X 起点 Y 起点 起点方位角R 起点 A L偏转方向 备注K0+000.000 K0+172.392 2256.9038 3426.9780 1814611 172.392 直线K0+172.392 K0+303.010 2084.5942

23、3421.6540 1814611 245.1214 130.618 顺时针 缓和曲线K0+303.010 K0+413.801 1954.4916 3411.4584 1895416 460.000 110.791 顺时针 圆曲线K0+413.801 K0+598.692 1848.6878 3379.5058 2034215 460.000 289.4225 184.891 顺时针 缓和曲线K0+598.692 K0+598.692 1707.4130 3264.6795匝道 I 说明:81、编入原始数据文件时 4 个线元的 Z 值分别为 1、3、2、3;2、根据施工图设计,第 4 个线元的终点半径比起点半径小,则根据 A2/R-A2/460=184.891 方程式推算得 R=228.25,并且可推算 Ls=366.9896。

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报