- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CASIO互通式立交桥坐标计算程序(定稿)【DOC精选】
CASIO fx-4800P计算器互通式立交桥坐标计算程序
一、程序编制思路
1、本文用例的施工图设计中给出的曲线要素为每条路线内每个线元的起点桩号、终点桩号、起点桩号的X、Y坐标、起点方位角、起点半径、回旋线参数、本线元长度、偏转方向及线型说明备注,根据施工设计图给出的曲线要素表内容,本程序也针对每个线元分别进行计算。
2、为了最大程度方便快捷的计算坐标,决定把数据嵌入到程序中,每一条路线为一个原始数据文件(扩展名为.D),在每一个原始数据文件中对读取相应线元数据的操作进行控制。自动计算时本程序只要输入计算哪条路线的参数H和所要计算的桩号D就可以直接计算出来D点的坐标,方便、快捷、减少输入错误。在计算不同工程的坐标时,只需要对原始数据文件进行修改、对主程序做局部修改即可通用,很方便。
3、为了实现自动计算一条路线上任意一点D的坐标而不用考虑点D在那个线元上,计算时均是从本条整个路线的起点开始计算。
4、对于圆曲线和缓和曲线上的点是先计算相对坐标再计算绝对坐标。
5、加入边桩的坐标计算功能。
6、即可以从数据文件中读取数据进行自动计算,又可以手工输入线元要素进行手工计算,手工计算仅针对单个线元进行计算。
7、充分采用子程序的方式,各子程序功能清楚,重复利用率高。
8、对所输入的桩号D值是否在本条路线范围内进行有效性检查,以确保数据计算正确。
9、每次只能计算一个中桩的坐标,但可以计算此中桩的任意数量边桩的坐标。
二、程序编制特别说明
1、对于缓和曲线的坐标计算公式,一般教材中给出的公式是对级数展开式的前3~4项进行相加,在互通式立交桥的匝道设计中经常存在缓和曲线长度(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:H0=AW:Prog “FW.S”:W≥0=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时是起到控制计算是否结束的作用。
② 当输入的H0时,需要手工输入所有的曲线要素,曲线要素AWBCJRLFZ的含义见原始数据文件格式说明;在本例中当H值等于1、2、3时分别调用对应的原始数据文件,由于只有3个数据文件,因此本例中当H值不等于1、2、3并且H值≥0时程序直接结束。
③ 假如有5个路线,则在本程序中“-- END --”之前需要加入H=4=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 1⊿I=2=Goto 2⊿I=3=Goto 3⊿Goto 4↙
Lbl 1:J=345°3′49″:R=130:L=89.016:F=306.6003:Z=-3:Goto 9↙
Lbl 2:J=308°14′45″:R=130:L=156.
文档评论(0)