




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
定稿CASIO fx-4800P计算器互通式立交桥坐标计算程序周广军(国道昆明东连接线工程项目监理部 E-mail:)本人在国道昆明东连接线工程项目从事支线工程的监理工作中,支线二标有一座虹桥村立交桥,此桥为一座互通式立交桥,分为支线桥、东三环桥、匝道桥3大部分,其中匝道桥共7座,匝道路基共2条,坐标计算复杂、工作量大。由于施工图设计中给出的曲线要素表与一般公路工程中给出的曲线要素表内容不一样,以前已有的CASIO fx-4800P计算器坐标计算程序不适用于本互通式立交桥的计算,因此本人针对互通式立交桥重新编制了CASIO fx-4800P计算器的坐标计算程序,通过在工作中实际使用,效果很好。一、程序编制思路1、本文用例的施工图设计中给出的曲线要素为每条路线内每个线元的起点桩号、终点桩号、起点桩号的X、Y坐标、起点方位角、起点半径、回旋线参数、本线元长度、偏转方向及线型说明备注,根据施工设计图给出的曲线要素表内容,本程序也针对每个线元分别进行计算。2、为了最大程度方便快捷的计算坐标,决定把数据嵌入到程序中,每一条路线为一个原始数据文件(扩展名为.D),在每一个原始数据文件中对读取相应线元数据的操作进行控制。自动计算时本程序只要输入计算哪条路线的参数H和所要计算的桩号D就可以直接计算出来D点的坐标,方便、快捷、减少输入错误。在计算不同工程的坐标时,只需要对原始数据文件进行修改、对主程序做局部修改即可通用,很方便。3、为了实现自动计算一条路线上任意一点D的坐标而不用考虑点D在那个线元上,计算时均是从本条整个路线的起点开始计算。4、对于圆曲线和缓和曲线上的点是先计算相对坐标再计算绝对坐标。5、加入边桩的坐标计算功能。6、即可以从数据文件中读取数据进行自动计算,又可以手工输入线元要素进行手工计算,手工计算仅针对单个线元进行计算。7、充分采用子程序的方式,各子程序功能清楚,重复利用率高。8、对所输入的桩号D值是否在本条路线范围内进行有效性检查,以确保数据计算正确。9、每次只能计算一个中桩的坐标,但可以计算此中桩的任意数量边桩的坐标。二、程序编制特别说明1、对于缓和曲线的坐标计算公式,一般教材中给出的公式是对级数展开式的前34项进行相加,在互通式立交桥的匝道设计中经常存在缓和曲线长度(Ls)与缓和曲线半径(R)的比值较大的情况,如果仍然用一般教材中给出的公式来计算坐标会产生很大的误差,导致计算结果完全错误,因此本程序中HH1.S子程序计算缓和曲线的坐标是用级数展开式的通式来进行迭代计算。依据Ls/R的比值动态决定需要迭代的次数,根据试算一般当迭代次数Int(Ls/R)4时(Int为取整)就能保证小数点后前5位小数的数值不变,完全满足使用要求。2、同样在HH1.S子程序中,级数展开式有些项的计算结果数值很大,超出了计算器的数值范围会产生溢出错误,因此在程序中把一个大数值项拆开成几个小数值项,并且乘除相间,有效的避免了计算器溢出错误。3、对于这样一个比较大的计算器程序,26个字母根本不够用,因此在程序编制的过程中先确定一些全局变量,再仔细研究程序内容,在不影响程序正确性的前提下,当一些局部变量的功能完成后,后面的变量再重复利用此字母。这样不用扩展计算器的变量范围,节约了计算器的存储空间。4、由于原始数据文件占用了计算器的大部分存储空间(本工程实际工作中有13个数据文件),因此对数据文件的内容做了优化,以使数据文件尽量小;另外对所有的主程序和子程序也进行了最大程度的优化以节省计算器存储空间。三、源程序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做为终点桩号的功能结束,开始做为判断程序是否结束的标志(原始数据文件中同样);如果计算桩号D不在本条路线内,则W=-9,根据W是0还是0来进行程序内部的子程序调用控制;另外在子程序“ZB.S2”中W=-9时是起到控制计算是否结束的作用。 当输入的HProg “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 9Lbl 2:J=3081445:R=130:L=156.266:Z=-2:Goto 9Lbl 3:J=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=50: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为缓和曲线的最小半径,支线时不需要加入R;L:每个线元的实际长度; Z:线型参数;F:当线元为缓和曲线时,为本线元的回旋线参数,必要时才加入,否则F的值总是为0 线型参数Z输入说明: Z=1:线型为直线; Z=2:线型为圆曲线;Z=3:线型为缓和曲线,并且按照路线前进方向缓和曲线的半径由大到小;Z=4:线型为缓和曲线,并且按照路线前进方向缓和曲线的半径由小到大;当Z0时,曲线为右偏(即顺时针),当Z0时,曲线为左偏(即逆时针); 当施工图设计中给出的实际线元长度L不等于缓和曲线的理论计算长度(Ls)时,在原始数据文件中才需要加入缓和曲线的回旋参数F;当LLs,手工计算时F输入0即可。缓和曲线的半径是指最小半径;线元为直线,手工计算时半径R输入0即可。 本文中缓和曲线的理论计算长度是指缓和曲线从最小半径到半径无穷大时的长度。 原始数据文件中线元个数不同,Lbl 0行中内容也不尽相同(对比SJ01.D和SJ02.D可知)。 本例中实际施工图设计均给出了每个线元的起、终点桩号、起点X、Y坐标、回旋线参数等,但为了减少原始数据文件的长度,回旋线参数F在必要时加入,除了本条整个路线的起点桩号和起点的X、Y坐标需要加入外,每个线元均只加入J、R、L、F、Z参数即可;每个线元对应原始数据文件中的一行,计算本条路线上任意一点的桩号时均是从第1个线元起点开始计算到D点,因此当数据精度不够时会产生累计误差,建议桩号、长度、半径等数值均有4位小数,角度数值精确到0.1秒,这样会减少累积误差。 如果一条路线内的线元个数大于9,则行号可以用字母表示;另外例如若用字母Z表示最后一行的行号,则线元对应的行中的Goto 9均改为 Goto Z。5、子程序(FW.S)DW=-9:“ERR:DDW=W=-9:“ERR:DMAX”说明: 判断计算桩号D是否在本条路线内。 如果D不在本条路线内,屏幕将显示相应的提示信息。6、子程序(ZB.S)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”计算本线元的终点坐标,作为下一线元的起点坐标,原始数据文件的行号标志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”说明: 根据线型参数Z和F值决定调用哪个子程序来计算坐标(当线元为曲线时计算的为相对坐标)。 最后一个语句是指当线型不是直线时再调用“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 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)U=B+McosJ:V=C+MsinJ:O=J说明:线元为直线时直接计算D点的绝对坐标U、V(对应于X、Y坐标),O为方位角。12、子程序(YQ.S)T=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)KG(2G)!M(2G+1)KG2(2G)(4G+1):G=G+1:GGoto 1G=1Lbl 2:Q=Q+(-1)(G+1)M(2G)KG(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”。 前5行中Y临时做为需要迭代的次数,G临时做为实际迭代的累计次数。 Lbl 2语句执行完后,G、Y的作用已经完成,在最后1行中G又作为临时过渡参数。14、子程序(HH2.S)T=L:F0=L=F2RAbs 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=NE22RL: X=NM22RL:Abs Z=3=S=F-X: 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为方位角。四、举例1、匝道B平面线位数据表桩号坐标起点方位角R起点AL偏转方向备注起点桩号终点桩号X起点Y起点K0+169.020K0+233.6751602.01063263.02431203437221.750119.738564.655顺时针缓和曲线K0+233.675K0+296.5171563.91013315.1852128554792.106562.842逆时针缓和曲线K0+296.517K0+414.1191528.41393366.85821153540135.000117.602逆时针圆曲线K0+414.119K0+499.3031527.14473480.7702654056135.000358.702085.183逆时针缓和曲线K0+499.303K0+499.3031583.12893543.2592匝道B说明:1、编入原始数据文件时4个线元的Z值分别为4、-3、-2、-4;2、第4个线元的缓和曲线理论计算长度为Ls=A2/R=953.0898134,Ls/R的值较大,必须根据通用公式迭代多次才能得到正确结果。2、匝道E平面线位数据表桩号坐标起点方位角R起点AL偏转方向备注起点桩号终点桩号X起点Y起点K0+499.303K0+619.9441582.22373544.757031842150.000120.641逆时针圆曲线K0+619.944K0+619.9441698.46633561.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平面线位数据表桩号坐标起点方位角R起点AL偏转方向备注起点桩号终点桩号X起点Y起点K0+619.944K0+708.9601698.01533559.618934539148.250306.600389.016逆时针缓和曲线K0+708.960K0+865.2261771.44233512.04403081445130.000156.266逆时针圆曲线K0+865.266
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学习解读庆祝2022年国庆节专题
- 甲烷安全知识培训内容课件
- 农村电商教学课件
- 用电用网安全知识培训课件
- 《出师表》教学课件
- 《设计加法器》教学课件
- 中国旅游教学课件
- 新解读《GB-T 18916.33-2018取水定额 第33部分:煤间接液化》
- 生鲜类行业知识培训课件
- 生美基础知识培训总结课件
- 2025年纪律作风测试题及答案
- 2025江苏苏州昆山国创投资集团有限公司第一期招聘17人笔试参考题库附带答案详解版
- 新疆的历史文化课件
- 安全生产网格化管理工作实施方案
- 入场安全教育培训
- 艺术设计专业教学标准(高等职业教育专科)2025修订
- QGDW11970.1-2023输变电工程水土保持技术规程第1部分水土保持方案
- 丹东市公务车辆管理制度
- 变电站二次设备管理制度
- 2025年七一党课-作风建设永远在路上学习教育党课
- 黄山义警队管理制度
评论
0/150
提交评论