设为首页收藏本站

路桥隧 - 免费·分享·共赢

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

打印 上一主题 下一主题
开启左侧

[程序] 5800计算器公路三维全能程序.(丢掉图纸轻松测量)说明清晰

    [复制链接]
跳转到指定楼层
1
发表于 2010-1-20 10:26:36 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
请大家不要因为我的程序去买5800计算器了,建议买9860,我有时间了,就把这个程序改成9860
本程序比较复杂.测量原理不是很明白的朋友慎用
请大家经常关注程序B-H的更新
2009,5,10日修改见超高子程序B-H黄色部分,另超高数据库增加在超高缓和段输入超高为公路外侧超高说明
2009,5,8日正反算选择程序:ZS-FS 更改小错,详见紫色修改内容
2009,4,30日更改如下:把原来的4个子程序分解成5个子程序,解决了一个大的竖曲线不能包含几个超高变化段,另外程序内也有两处改变请看红色区域.
本程序经过综合考虑5800的设计缺陷,计算速度较慢故只使用高斯四节点法为计算内核.支持多条线路正反算,中桩,边桩高程计算,超高计算,超高缓和计算,加宽计算,加宽缓和计算,边坡开口线计算,挡土墙坡脚线计算,考虑了中间绿化带的影响,适用与国家高速公路至乡村四级公路计算和放样,路基路面工程可以直接得出中边桩的设计三维坐标,去掉加宽和超高影响的计算困难,边坡和坡脚线计算可直接在边坡上提取坐标带入程序,经过所有设计因素的综合,得出更改边距并显示修改偏差后的坐标.反算速度明显提高,只需要3秒.程序无错,可放心输入,另本程序可以增加隧道超欠挖计算子程序,非常方便,因为每个隧道的断面数据不一样,所以在此没有明确写出,有需要的可以联系我.本人QQ76805071,只为交友.
计算器主程序:ZHU-CHENG-XU
Lbi0:“1,ZS=FS,2ZS,3FS,4XY=>SG,5。。。。。。。”?U:
U=1=>Prog”ZS-FS”:  进入公路三维程序
U=2=>Porg”ZS”:    进入坐标正算程序
U=3=>Porg”FS”:    进入坐标反算程序
U=4=>Porg”XY =>SG”:   进入大地坐标转施工坐标程序
…………Goto0:

说明:计算器总的主程序,进入选择各种分支计算程序。1为公路三维计算,2为普通正算,3为普通反算,4为大地坐标转施工坐标。。。。。。。。选择错误重新选择。此程序可以不用输入,只为给大家一个思路,可以把计算器所有程序集中到一个主程序内管理.


公路三维部分

正反算选择程序:ZS-FS
Deg:              //设置角度模式
20→DimZ:                    //扩展变量
            
“1LZ=>XY,2XY=>LZ,3BIANPO-FY”?U: //正反算选择,正算选1,反算选2,坡口坡脚选3
If U=1: ThenProg”ZS-XH”:IfEnd:             //进入正算循环主程序
IfU=2:Then Prog”FS-XH”:IfEnd:              //进入反算循环主程序
IfU=3:ThenProg”BP-FY”:IfEnd:         //进入边坡开挖主程序
正算循环主体程序ZS-XH
“1PT-2SJ”?W:                         //普通计算和设计边距计算选择
“XL-XZ“?U:                           //选择线路   1~N
If W=1: Then                               //运行普通计算模式 边踞自由输入
Lbi0:”L=”?L:”Z=”?Z:                  //输入桩号和边距
Porg”ZS-XH-1“:Goto0:IfEnd:             //运行正算循环子程序
If W=2:Then                               //运行设计计算模式 边距按设计输入
Lbi1:”L=”? L:                            //输入桩号
Porg”0。5LUKUAN”:               //录入公路加宽后,左右侧设计边距
Porg”ZS-XH-1“:Goto0:IfEnd:    //运行正算循环子程序



正算循环子程序ZS-XH-1
Prog”PM-XL-XZ”:                      //进入平面线路选择程序对线路线元进行选择
Prog”CHAOXIAN-CL”:                    //里程超限处理
Prog”GL-ZS”:                          //进入坐标正算程序
Prog”GL-BZ-ZS”:                        //进入公路边桩正算程序
Prog”GC-XL-XZ”:                      //进入高程线路选择程序对线路线元进行选择
Prog”GC”:                             //进入高程部分提取中桩高程
Prog"CG-XL-XZ":                         //进入超高数据库提取超高数据
If W=1:ThenProg”B-H”:             //普通计算时进入边桩高程部分提取边桩高程
ElseZ[3] →Z: Porg“B-H”://按设计计算时候代入减去半边绿化带后的路基边距,提取边桩高程
Ifend:Prog”ZS-XS”:                          //进入正算显示程序,提取正算三维结果

反算循环主体程序FS-XH
0→Z:“XL-XZ”?U:                         //选择线路    1~N
Lbi0:
“L”?L:“X=”?T:“Y=”?S:            //输入起算假定桩号,实测X Y
Prog”GL-FS”:                                /进入公路反算程序
Prog”FS-XS”:                                //进入反算显示程序
Goto0:
坐标正算程序GL-ZS
.1739274226→I:.3260725774→J:
.0694318442→K:.3300094782→E :                 //四节点法计算系数录入
1-E→F:1-K→M:
Q+KrO(C+KD) →K:                    //数据库要用X、Y、Q作为起点坐标方位角
Q+ErO(C+ED) →E:                //r是弧度,输入方法FUNCTION 选5
Q+FrO(C+FD) →F:
Q+MrO(C+MD) →M:
X+O(ICos(K)+JCos(E)+JCos(F)+ICos(M)) →X:   //计算出X坐标
Y+O(ISin(K)+JSin(E)+JSin(F)+ISin(M)) →Y:      //计算出Y坐标
Q+Or(C+D) →Q:                            //计算出算点方位角,O是字母,r是弧度:
边桩坐标计算程序GL-BZ-ZS:
"XJ"?→A:X+Zcos(Q+A) →G:                              //计算出边桩X坐标
Y+ZSin(Q+A) →M:                              //计算出边桩Y坐标

公路反算程序GL-FS
Do:Porg”PM-XL-XZ”:                         //进入平面线路选择程序
Porg”CHAOXIAN-CL”:                       //里程超限处理程序
Porg”GL-ZS”:                            //进入公路正算4节点程序
T-X→I:S-Y→J:                          //试算点与测点X,Y距离差
Pol(I,J):J-Q→J:                               //方位角转换为接近试算点到测点的值:
Rec(I,J):                                     //计算出X差和Y差(X里程,J边)
L+I→L:                                 //修改后的里程
Abs(I) →I:                               //修改值的绝对值
LpWhile I>0.001:                            //小于一毫米通过,大于一毫米循环计算

中桩高程计算程序GC
If I-A<0:Then1→H:IfEnd:                       //开口向上部分赋值
IfI-A=0:ThenGoto1: IfEnd:                       //无竖曲线部分赋值
IfI-A>0:Then-1→H:IfEnd:                         //开口向下时赋值
(L-C)I+K+(L-C)^2/(2E)H→I:                     //计算得出竖曲线部分中桩高程
Goto2:Lbi1:
K+(L-C)I→I:                                   //计算得出无竖曲线部分中桩高程
Lbi2:

边桩高程计算程序B-H
(L-C)/(D-C)→P:                            //计算点占本线元长比例
3P^(2^(S))-2P^(3^(S)) →P:                        //计算得线性和高次抛物线系数
F+P(T-F)→E:                                //初步计算计算点横坡
If V=1:Then If N= -1:Then                          //直线和直缓,缓直,曲线左偏时
If Z<0:Then-E→E:
IfE>Z[4]:ThenZ[4]→E: IfEnd :                //计算左侧时,横坡大于一般横坡取一般横坡
I+Abs(Z)E→O: IfEnd :                                 //左侧高程
IfZ>0:Then I+ZF→O:IfEnd: Ifend:                                //右侧高程得数
If N=1:Then IfZ<0:Then I+Abs(Z)E→O:IfEnd:      //曲线右偏时,左侧高程得得
IfZ>0:Then-E→E:If E>Z[4]:Then Z[4]→E:IfEnd    //右侧高程横坡大于一般横坡,取一般横坡
I+ZE→O:IfEnd: IfEnd: IfEnd:                       //右侧高程得数
IfV=2:ThenIf Z>0:Then I+ZE→O:IfEnd://圆曲线全超高和S曲线超高渐变部分右侧高程得数
IfZ<0:ThenI-Abs(Z)E→O:IfEnd:IfEnd: // 圆曲线全超高和S曲线超高渐变部分左侧高程得数

设计标准路面宽度子程序  CHANG-SHU
12→Z[1]:                         //录入12米为路面半宽度,根据设计修改
1.5→Z[2]:                        //录入1.5米为绿化带半宽,根据设计修改,无绿化带输入0
-0.02 →Z[4]:                      //录入-0。02为公路一般横坡,根据设计修改
//           注:在以中轴线旋转的超高不考虑绿化带影响的,在常数程序中,绿化带修改为0
路面宽度子程序  0。5LUKUAN
”Z-1,Y+1”?V:        //左右边桩选择
Porg”CHANG-SHU”:              //设置标准路面半宽
If V=1:Then Porg”GL-JK”:  //右侧时,进入加宽子程序
Z[1]+Z→Z:           //计算右册正确公路半宽,
Z-Z[2] →Z[3]:IfEnd://计算右侧减去半边绿化带时计算边桩高程时用的边距
IfV=-1: Then Porg”GL-JK”:  //左侧时,进入加宽子程序
-Z[1]-Z→Z:          //计算左册正确公路半宽
Z+Z[2] → Z[3]:IfEnd:  //计算左侧减去半边绿化带时计算边桩高程时用的边距            
公路加宽子程序GL-JK
前点加宽里程A,加宽止点里程B,“加宽缓和段全长C,止点加宽宽度D
本加宽程序欠缺S缓和曲线加宽程序,因为没有遇到过,所以暂时空缺
Porg“JK-XL-XZ”:               //进入加宽数据库线路选择程序
If D=1:Then(4((L-A)/(B-A))^3-3*((L-A)/(B-A))^4)*C→Z:IfEnd:
// 从小到大加宽
If D=2:Then (4(((B-A)-(L-A))/(B-A))^3-3*(((B-A)-(L-A))/(B-A))^4)*C→Z:IfEnd:
//从大到小加宽,以上两式为参考公式,可根据图纸更改公式

IfD=3:ThenZ=Z:IfEnd:                 //圆曲线加宽直一样时
IfZ≠0:then”JK=”:Z◢:IfEnd:        //存在加宽值时显示加宽值


正算显示ZS-XS
“FWJ”:Q◢                                    //显示计算里程方位角
“ZHONG-X”:X◢                                //显示中线X坐标
“ZHONG-Y”: Y◢                               //显示中线Y坐标
“ZHONG-GC”:I◢                               //显示中桩高程
“B-X”:G◢                                     //显示边桩X坐标
“B-Y”: M◢                                  //显示边桩Y坐标
“B-GC”:O◢                                   //显示边桩高程

反算显示FS-XS
“L”:L◢                                      //显示计算里程        
“Z”:J◢                                       //显示计算边距

里程超限CHAOXIAN-CL
If L<A:Then “L-<<<”;Stop:IfEnd:        //小于本路线最小里程提示,退出程序
If L>B: Then”L+>>>”:Stop:IfEnd:            //大于本路线最大里程提示,退出程序

边坡放样程序BP-FY
“XL-XZ“?U:              //线路选择
”S-L”?L:”X=”?T:”Y=”?S:  //输入试算桩号和测点X,Y.
T→Z[10]:S→Z[11]:
Porg”PM-XL-XZ”:           //对平面线路进行选择
Porg”GL-FS“:               //进入反算程序,反算测点里程偏距。              
If J>0:Then”-----YOU----“◢       //显示计算边坡为公路右侧
Else”-----ZUO----“◢Ifend:     //显示计算边坡为公路左侧
Porg”0.5lukuan”:              //进入设计边距程序
Porg”GC-XL-XZ”:              //高程线路选择
Porg”GC”:                    //对中桩高程进行计算
Porg"CG-XL-XZ"                 //进入超高数据库提取超高数据
Z[3] →Z:                    //录入减去半个隔离带加上加宽值后的边距
Porg”B-H”:                   //计算该里程边桩高程
Abs(Z)+Z[2] →Z:                //录入设计绿化带
Z[10]→X:Z[11]→Y: //坐标变量转换,抛弃中线点XY坐标,以第一测点XY为后步起算数据
Porg”BP-XL-XZ”:              //进入边坡数据库,提取要素.
“1,2,3,4-BP”?T :    //选择所计算的边坡坡段
Porg”BP-FY-1”:             //进入边坡计算子程序1程序
边坡计算子程序1  BP–FY-1
O+CB+EF→A:   //计算出边坡底线高程
Abs(Z)+B+D+E→W:    //计算中线点距离边坡底线距离   
Abs(J)-W→D :              //试测点到起坡点平距
VH→C:             //马道高差
0→B:                //设置边坡底线平距为0
If T=1:              //计算第一段边坡
Then Porg”BP-FY-2”:IfEnd:         //进入计算子程序2
A+G+C→A:         //第二段边坡底线高程
H+GK→B:          //第二段边坡底距离第一段起线平距
IfT=2:Then               //进入计算第二段边坡
M→G:N→K:        //第二段边坡数据变成子程序计算的第一边坡数据
Porg”BP-FY-2“:IfEnd:     //进入计算子程序2
A+M+C→A:       //第三段边坡底线高程
B+H+MN→B        //第三段边坡底距离第一段起线平距
IfT=3:Then               //进入计算第三段边坡
I→G:P→K:       //第三段边坡数据变成子程序计算的第一边坡数据
Porg”BP-FY-2”:IfEnd:     //进入计算子程序2
A+I+C→A:          //第四段边坡底线高程
B+H+IP→B:        //第四段边坡底距离第一段起线平距
IfT=4:Then               //进入计算第四段边坡
R→G:S→K:        //第四段边坡数据变成子程序计算的第一边坡数据
Porg”BP-FY-2”:IfEnd:     //进入计算子程序2

边坡计算子程序3  BP-FY-3
If G<0:Then Return:IfEnd:
IfN<A:           //如果测点高程小于该层边坡底线高程
Then“++++,SHANG-TIAO”:A-N◢ //显示坡度错误,不在本坡段,上几米再次测量或计算低层边坡
Porg"BP-FY":IfEnd:      //返回程序重新找点
If N>(A+G):        //如果测点高程大于该段边坡定部高程
Then”----,XIATIAO”: N-A-G◢//显示高程错误,不在本坡段,应在上面坡段,应忘上调整
Porg: BP-FY”: IfEnd:   //返回主程序

边坡计算子程序2 BP-FY-2   
“GC=”?N:                   //输入测点高程

Porg”BP-FY-3”:                  //判断测点是否低于该坡段最低高程
Abs(N-A)*K+B-D→E :           //计算出正确偏差
If Abs(E)≤0.05:Then                //如果测点误差5厘米以内表示成功
”CHENG-GONG,WUCHA=”:E◢    //成功后,显示测点误差
Prog”BP-FY”:IfEnd:           //返回主程序测下个断面
IfJ>0:ThenE→Z:               //右侧录入误差
Else -E →Z: Z→Z[10]:           //左侧录入误差
IfEnd:                                 
Porg”GL-BZ-ZS”:               //计算下一点坐标
“X=”:G◢“Y”:M◢           //显示下一点坐标,进行放样
G→X:M→Y:                //录入XY坐标,进行下次计算
“GC=”N:                     //输入测点高程   
Abs(N-A)*K+B-(D+E)→C:             //计算出正确偏差
If Abs(C)≤0.05:Then                //如果测点误差5厘米以内表示成功
”CHENG-GONG,WUCHA=”:C◢    //成功后,显示测点误差
Prog”BP-FY”:IfEnd:           //返回主程序测下个断面
CE/(E-C) →F:                  //由上次两点误差推算第三点
IfJ>0:ThenF→Z: //右侧录入误差
Else -F→Z: IfEnd:               // 左侧录入误差                  
Porg”GL-BZ-ZS”:               //进行下一点坐标计算
“X=”:G◢“Y=”:M◢           //显示下一点坐标,进行放样
G→T:M→S:                //录入XY坐标,进行下次计算
“NONO” :        //本循环未计算出正确点
Porg”BP-FY”:       //,使用计算出的坐标,进入下个循环,程序自动把此坐标带入下个循环
备注:如果有更多的坡级,大家可以使用增加变量.完全满足大家边坡放样需求
数据库部分
1平曲线数据库

平面线路选择程序PM-XL-XZ
U=1=>Prog”HUO-DA-XIAN”:                     //进入假定线路活大线。
U=2=>Prog”X2”:                             //进入路线2
U=3=>prog”X3”:                              //进入路线3
(P-R)/(2HPR)→D:
L-OO:                                    //正算程序需要补充部分
OD→D:                                      
1/P→C:                                    
(数据库)活大线HUO-DA-XIAN                     
线路起点里程→A:线路终点里程→B:
If L≤第一线元止点里程:Then 起点X坐标→X:起点Y坐标→Y:
起点半径(左-,右+)→P:止点半径(左-,右+)→R:本线元长度→H:
线元起点桩号→O:起点方位角→Q:Return:IfEnd:
If L≤第二线元止点里程:。。。 。。。Return:
  。。。  。。。


二号线路X2


三号线路X3


2,高程数据库部分

说明:输入部分:L为计算里程,C为起点里程,,I为纵向前坡坡度,A为纵向后坡坡度,E为半径, K为起点高程,
高程线路选择程序GC-XL-XZ         
U=1=>Prog”GC1”:                           //进入线路高程1
U=2=>Prog”GC2”:                            //进入线路高程2
U=3=>Prog”GC3”:                            /进入线路高程3


一号线路高程GC1
If L≤该段止点里程:Then(前坡  例0。01)→I:(后坡  例-0。034)→A:(竖曲线半径)→E:((起点高程)→K:(起点桩号)→C:止点桩号→D:Return:Ifend;
… …

直线段不需要输入半径,直线段的前后坡度I等于E,输入本坡值,
二号线路高程GC2

三号线路高程GC3

3超高数据库
IfU=1:ThenPorg”CG1”:IfEnd:                   //进入线路1
IfU=2;ThenPorg”CG2”:IfEnd:                   //进入线路2
IfU=3:ThenProg”CG3”:IfEnd:                   //进入线路3
超高线路选者程序CG-XL-XZ
N为曲线左右偏区别符号(左-1,右+1),F为起点横坡,T为止点横坡,S为线性渐变和高次渐变的判断要素,取0为线性,取1为高次。V为一般段超高缓和段与全超高和卵型插入缓和段判断要素。直线一般超高缓和段输入1,全超高和S超高缓和段输入2,显示部分:重要约定,在超高缓和段输入超高为公路外侧超高,在全超高平曲线和卵型曲线插入缓和段中,前横坡F和后横坡T都输入右侧横坡。

超高数据库1 CG1
-0.02→F:-0.02→T:        //录入直线部分一般超高,数据根据设计调整
0→S:1→V:           //录入直线部分计算性质,数据根据设计调整
1→N:      //1→N:数据不调整,输入以上几段后,直线超高不变段可不再输入数据.
                 
If L≥该段起点里程 And L≤该段止点里程:Then(不超高和超高缓和段输入1,单圆曲线全超高和S超高缓和段输入2) →V:(平曲线左右偏区别符号,超高缓和段才输入 左-1,右+1)→N:(超高方式选择,0为线性,取1为高次)→S:(起点横坡 例-0。02,根据设计值更改)→F:(止点横坡例+0.03,根据设计值更改)→T:起点桩号→C:止点桩号→D:Return:Ifend;
... ...

超高数据库2  CG2

超高数据库3  CG3


4,加宽数据库

加宽线路选择程序 JK-XL-XZ
IfU=1:ThenPorg”JK1”:IfEnd:                   //进入线路1
IfU=2;ThenPorg”JK2”:IfEnd:                   //进入线路2
IfU=3:ThenProg”JK3”:IfEnd:                   //进入线路3
:…….



作者:朱怡

5800计算器公路三维全能程序.(丢掉图纸轻松测量)说明清晰.docx

27.34 KB, 下载次数: 2624

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持8 踩
23
发表于 2012-9-19 10:59:05 | 只看该作者
很好 。。。。就是看不懂。。。。
22
发表于 2012-1-4 22:40:39 | 只看该作者
学习了,谢谢分享
21
发表于 2011-12-10 22:32:29 | 只看该作者
楼主高人啊。强
20
发表于 2011-10-15 21:38:27 | 只看该作者
好好看看
19
发表于 2011-8-12 09:37:50 | 只看该作者
楼主能不能提供一个内侧超高的计算程序,谢谢
18
发表于 2011-3-4 08:43:27 | 只看该作者
好东西,谢谢楼主。
17
发表于 2011-2-28 13:11:58 | 只看该作者
非常感谢楼主!!!
16
发表于 2010-12-11 22:34:41 | 只看该作者
还有跟方便的计算程序?
15
发表于 2010-11-10 09:48:01 | 只看该作者
学习真正的程序来充实自己
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|【路桥隧】 ( 湘ICP备16018960号-1 )  QQ群:【路桥吾爱-lq52.com】

GMT+8, 2024-11-24 17:02

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表