资源描述:
《casiofx-5800p放样程序优化》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、CASIOfx-5800P放样程序(优化)-声明:编程使用的通用积分公式出自李艳阳前辈!在此致敬!本程序加入了测站,方便喜爱用方位角、平距放样的朋友!正算主程序[KB-MN]?X:?YLbl1:Fix3:X→S:?K:?B:90→AProg“YS-1”:Prog“ZDYS”:S→X:M-X+×10-9→I:N-Y+×10-9→J:Pol(I,J):J<0=>J+360→J:Cls:Locate1,1,“J=”:Locate4,1,J°:Locate1,2,“I=”:Locate9,2,I:Locate1,3,“M=”:Locate
2、6,3,M:Locate1,4,“N=”:Locate7,4,N◢Cls:Goto1反算主程序[MN-KB]?KLbl0:Fix3:?M:?N:M→E:N→QLbl1:90→A:0→B:Prog“YS-1”:Prog“ZDYS”Pol(E-M+×10-9,Q-N+×10-9):Isin(L-J)→A:Icos(L-J)→BIfAbs(A)>0.001:ThenK+A→K:Goto1:ElseCls:Locate1,1,“K=”:Locate7,2,K:Locate1,3,“B=”:Locate9,4,B◢IfEnd:Goto0数据
3、库子程序[YS-1]IfK<线元终点里程:Then线元起点切线方位角→C:线元起点X坐标→U:线元起点Y坐标→V:线元起点里程→O:线元长度→F:±线元起点曲率半径(左转为负,直线及右转为正)→P:±线元止点曲率半径→R:Return:IfEndIfK<下一线元终点里程:Then线元起点切线方位角→C:线元起点X坐标→U:线元起点Y坐标→V:线元起点里程→O:线元长度→F:±线元起点曲率半径→P:±线元止点曲率半径(左转为负,直线及右转为正)→R:Return:IfEnd子程序[ZDYS]0.5(1÷R-1÷P)÷F→D:K-O→
4、XU+∫(cos(C+180(X÷P+DX2)÷π,0,X)→MV+∫(sin(C+180(X÷P+DX2)÷π,0,X)→NC+180(X÷P+DX2)÷π+A→L:M+Bcos(L)→M:N+Bsin(L)→N正算主程序[KB-MN]输入:X---测站X坐标Y---测站Y坐标K---桩号B---距中(左负右正中零)结果:J=测站到放样点的方位角I=测站到放样点的平距M=放样点X坐标N=放样点Y坐标若果求斜交时边桩坐标,主程序[KB-MN]中90→A修改为斜交角度→A反算主程序[MN-KB]输入:K---待反算点附近的大概桩号M
5、---待反算点X坐标N---待反算点Y坐标结果:K=反算点的桩号B=反算点的距中(左负右正中零)备注:字母后所带数字为次方,如:DX2式中2均为平方。1、当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次代替。2、当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆弧的半径。3、当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。4、当线
6、元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。优化:SENDYCHANQQ:82811489本程序经过优化,减少了数据库的字节,同时可以计算多条线路,修改如下:正算主程序[KB-MN]“1,2,3,4,5”?Z:?X:?YLbl1:Fix3:X→S:?K:?B:90→AZ=1=>Prog“YS-1”Z=2=>Prog“YS-2”Z=3=>Prog“YS-3”Z=4=>Prog“YS-4
7、”Z=5=>Prog“YS-5”Prog“ZDYS”:S→X:M-X→I:N-Y→J:Prog“C”:Cls:Locate1,1,“J=”:Locate4,1,J°:Locate1,2,“I=”:Locate9,2,I:Locate1,3,“M=”:Locate6,3,M:Locate1,4,“N=”:Locate7,4,N◢Cls:Goto1反算主程序[MN-KB]“1,2,3,4,5”?Z:?KLbl0:Fix3:?M:?N:M→E:N→QLbl1:90→A:0→BZ=1=>Prog“YS-1”Z=2=>Prog“YS-2”Z
8、=3=>Prog“YS-3”Z=4=>Prog“YS-4”Z=5=>Prog“YS-5”Prog“ZDYS”:Pol(E-M+×10-9,Q-N+×10-9:Isin(L-J→A:Icos(L-J→BIfAbs(A)>0.001:ThenK+A→K