fx-5800P程序
- 格式:doc
- 大小:772.38 KB
- 文档页数:21
CASIO-fx-5800P实用工程测量程序今天,我想向大家介绍一款非常实用的工程测量程序:CASIO-fx-5800P。
CASIO-fx-5800P是一款非常实用的计算器,可以用于各种工程测量和计算。
在这篇文章中,我将详细介绍该计算器的功能和使用方法。
什么是CASIO-fx-5800P?CASIO-fx-5800P是CASIO公司的一款高级科学计算器,该计算器集成了丰富的计算功能和工程测量功能,可以帮助用户准确地进行各种计算和测量。
该计算器适用于各种工程测量、科学计算、数据分析等工作。
CASIO-fx-5800P的功能下面是CASIO-fx-5800P常用的功能:1. 基本运算功能CASIO-fx-5800P可以进行各种基本运算,如加减乘除、开方、开方根、倒数等等。
2. 三角函数和反三角函数CASIO-fx-5800P 提供了三角函数和反三角函数的计算功能,如正弦函数、余弦函数、正切函数、反正弦函数、反余弦函数、反正切函数等。
3. 统计学计算CASIO-fx-5800P 提供了各种统计学计算功能,如数据输入、平均数、方差、标准差、偏差等。
4. 矩阵功能CASIO-fx-5800P 可以完成任何矩阵的基本计算,如矩阵乘法、矩阵求逆、矩阵行列式、矩阵分解、矩阵特征向量和特征值等。
5. 工程测量CASIO-fx-5800P 可以进行各种工程测量计算,如距离计算、面积计算、容积计算、温度计算、时间计算等。
6. 复数运算CASIO-fx-5800P 可以进行各种复数运算,如加减乘除、转换成极坐标形式等。
7. 方程求解CASIO-fx-5800P 可以解各种方程,如一次方程、二次方程、三次方程、四次方程、多项式方程、微积分方程等。
CASIO-fx-5800P在工程测量中的应用下面,我将介绍CASIO-fx-5800P 在工程测量中的应用。
CASIO-fx-5800P 是一种非常实用的计算器,在工程测量中有着广泛的应用。
程序命令一、基本操作命令1、:(分隔符):不停止程序的执行。
2、/ (输入):暂停程序的执行并显示当前执行的结果。
3、一(变量赋值):将“一”符号左侧元索(数值、表达式、输入的数据)的值赋值给右侧的变量。
4、?(输入提示):通过按键输入的方法向变量赋值时的输入提示。
5、“ ”(显示):引号中的字母、数字、字符、命令或其他文本作为注释文本,在屏幕上显示出来。
二、转移命令1、Goto~Lbl (无条件转移):无需核对前提条件而被立即执行。
由Got。
n和Lbl n构成,当程序执行到Golo和一个标记名称时,在执行后会转至标记有相同标记名称的Lbl处。
如果在由Got。
n所处的同一程序中没有相应的Lbl n,则会发生转移错误(Go ERROR)。
2、O (条件转移):是对两个变量或算式进行比较,并根据结果决定程序如何转移至紧接于O后的语句。
其句法形式有两种:1)V表达式> V关系运算式> V表达式>OV语句1>:V语句2>:・・・2)V表达式>OV语句:<语句2>:该命令与关系运算子(=、≠∖>、V、2、≤)组合使用,其功能如下:句法I:如果“O”命令左侧的条件为真,则执行〈语句1>,然后执行〈语句2>,并依次执行后面的所有内容。
如果“O”命令左侧的条件为假,则跳过V语句1>,然后执行〈语句2>及其后面的所有内容。
句法2:“O”命令左侧的条件运算结果非零会解释为“真”,所以会执行〈语句1>,然后执行V语句2>及其后面的所有内容。
“O”命令左侧的条件运算结果为零会解释为“假”,因此会跳过V语句而执行〈语句2》及其后面的所有内容。
条件转移流程图(L:左边;R:右边;S:语句)(成立时)~~l关系运算子R c>S S-------- 1 ----- (不成立时)f3、计数转移计数转移有两种:Isz (递增)及Dsz (递减)。
其句法格式为:l)IszV变量>:V语句1>:<语句2>:・・・2) DszV变量>:<语句1>:<语句2>:・・・该语句被执行时,变量的值会被递增(或递减)1,此时变量值非为零,则执行〈语句1>,然后执行〈语句2>,并依次执行后面的所有内容。
比积分公式快速CASIO fx-5800P放样程序(比积分公式快速)正算主程序[ZD-KB]“1,2,3,4,5”?Z:?X:?YLbl 1:Fix 4:?K:?B:?A:0→P:0→RZ=1=>Prog“YS-1”Z=2=>Prog“YS-2”Z=3=>Prog“YS-3”Z=4=>Prog“YS-4”Z=5=>Prog“YS-5”Prog“ZDYS”:M-X→I:N-Y→J:Prog“C”: Cls:Locate 1,1,“J=”:Locate 4,1, J°:Locate 1,2,“I=”:Locate 10,2,I:Locate 1,3,“M=”:Locate 7,3,M:Locate 1,4,“N=”:Locate 7,4,N◢Cls:Goto 1反算主程序[ZD-MN]“1,2,3,4,5”?Z:?KLbl 0:Fix 4:?M:?N:M→D:N→ELbl 1:90→A:0→B:0→P:0→RZ=1=>Prog“YS-1”Z=2=>Prog“YS-2”Z=3=>Prog“YS-3”Z=4=>Prog“YS-4”Z=5=>Prog“YS-5”Prog“ZDYS”:Pol(D-M+×10-9,E-N+×10-9:Isin(L-J→A:Icos(L-J→BIf Abs(A)>0.001:Then K+A→K:Goto 1:Else Cls:Locate 1,1,“K=”:Locate 9,2, K:Loc ate 1,3,“B=”:Locate 10,4,B◢IfEnd:Goto 0子程序[C]I+×10-9→I:J+×10-9→J:Pol(I,J:J<0=>J+360→J数据库子程序[YS-1]If K<线元终点里程:Then线元起点切线方位角→C:线元起点X坐标→U:线元起点Y 坐标→V:线元起点里程→O:线元长度→F:±线元起点曲率半径(左转为负,右转为正,直线为零)→P:±线元止点曲率半径(左转为负,右转为正,直线为零)→R:Return:IfEn dIf K<下一条线元终点里程:Then线元起点切线方位角→C:线元起点X坐标→U:线元起点Y坐标→V:线元起点里程→O:线元长度→F:±线元起点曲率半径(左转为负,右转为正,直线为零)→P:±线元止点曲率半径(左转为负,右转为正,直线为零)→R:Re turn:IfEnd子程序[ZDYS]P=0=>×1045→P:R=0=>×1045→R:If PR>0:Then 1→Q:Else -1→Q:IfEnd:PR≥×1090=>0→Q:R<0=>-1→Q:Abs(P→P:Abs(R→R:1÷P→H:180÷π→J:(P-R)÷(2FPR→I:Abs(K-O→W:0.1739274226→N:0.3260725774→M:0.0694318442→S:0.3300094782→L:1-L→G:C+QJSW(H+SWI→T:C+QJLW(H+LWI→L:C+QJGW(H+GWI→G:C+QJ W(1-S)(H+WI(1-S→F:A+C+QJW(H+WI→CU+W(Ncos(T)+Mcos(L)+Mcos(G)+Ncos(F→I:V+W(Nsin(T)+Msin(L)+Msin(G)+Nsin(F →J:C→L:I+Bcos(L→M:J+Bsin(L→N正算主程序[KB-MN]输入:1,2,3,4,5---选择待正算的线路X---测站X坐标Y---测站Y坐标 K---桩号B---距中(左负右正中零)结果:J=测站到放样点的方位角I=测站到放样点的平距M=放样点X坐标N=放样点Y坐标若果求斜交时边桩坐标,主程序[KB-MN]中90→A修改为斜交角度→A反算主程序[MN-KB]输入:1,2,3,4,5---选择待反算的线路K---待反算点附近的大概桩号M---待反算点X坐标 N---待反算点Y坐标结果:K=反算点的桩号 B=反算点的距中(左负右正中零)使用说明:(数据库[YS-1]中,当P或R的值为零时,可以省略输入0→P或0→R)输程序时,例“×1045→P”的小“×10”为计算器面板的白色键“×10X”子程序[ZDYS]中×1045→P相当于10∧(45)→PPR≥×1090=>0→Q即PR≥10∧(90)=>0→Q1、当线元为直线时,其起点、止点曲率半径为零。
F x-5800p 常用程序1、坐标反算(FS )?X :?Y ?Y↙↙∟b ∣0:?:?A A :?:?B B ↙Pol(A-X,B-Y):J Pol(A-X,B-Y):J<<0=>J+360J+360→→J ↙“S=S=””:I :I◢◢“T=T=””:J :J►►DMS DMS◢◢Goto 0↙说明说明::X,Y X,Y——基点坐标A,B A,B——测点坐标2、坐标正算(ZS )∟b ∣0:0:??S :?:?T T :?:?A A :?:?B B ↙Rec(S,T)+A Rec(S,T)+A→→X ↙B+J B+J→→Y ↙“X=X=””:X ◢“Y=Y=””:Y :Y◢◢Goto 0↙说明说明::S —距离T —方位角A,B A,B——基点坐标X,Y X,Y——计算坐标3、坐标转换(ZH —H )?N :?:?E E :?:?Q Q ↙∟b ∣0:0:““1.S =>D ”:“2.D =>S ”:?F ↙I f F=1:Then Goto 1:Eles Goto 2:If End End↙↙∟b ∣1:1:??X :?:?Y Y ↙N+X cos cos((Q )—Y sin sin((Q )→U ↙E+X sin sin((Q )+Y cos cos((Q )→V ↙“X1=X1=””:U ◢:“Y1=Y1=””:V ◢Goto 0↙∟b ∣2:?:?X X :?:?Y Y ↙(X —N )cos cos((Q )+(Y —E )sin sin((Q )→U ↙(N —X )sin sin((Q )+(Y —E )cos cos((Q )→V ↙“X2=X2=””:U ◢“Y2=Y2=””:V ◢Goto 0↙说明:N ,E —施工坐标原点大地坐标Q —施工坐标X 轴在轴在大地坐标系大地坐标系大地坐标系中的中的中的方位角方位角X ,Y —需转换坐标F —判断符F=1F=1,施工,施工,施工→→大地,其他,大地大地,其他,大地→→施工4、竖曲线(SQX )?A :?B :?D :?T :?R :?Z ↙If Z ≥1:Then Goto 1:Eles Goto 2:If End End↙↙∟b ∣1:?:?C C :A+A+Abs(Abs(Abs(((B —A ))÷T (C —D )—(C —D )2÷(2R 2R))→H ↙“H=H=””:H ◢Goto 1↙∟b ∣2:?:?C C :A+A+Abs(Abs(Abs(((B —A ))÷T (C —D )+(C —D )2÷(2R 2R))→H ↙“H=H=””:H ◢Goto 2↙说明:说明:AA —起点(终点)高程B —切线交点高程C —需计算点的需计算点的桩号桩号D —起点(终点)桩号T —切线长R —半径H —C 桩号的高程Z —Z ≥1时为凸曲线,其他为凹曲线5、曲线任意里程坐标正反算1.主程序(TYQXJS)"1.SZ =>XY":"2.XY =>SZ"SZ"::?N :1÷P →C :(P-R)(P-R)÷÷(2HPR)→D:180180÷π÷π→E :If N =1:Then Goto 1:Else Goto 2↙Lbl 1:?:?S S :?:?Z Z :Abs(S-O)→W :Prog "SUB1""SUB1"::"XS=""XS="::X ◢"YS=""YS="::Y ◢Goto 1↙Lbl 2:?X :?:?Y Y :X →I :Y →J :Prog "SUB2""SUB2"::O+W →S:"S=""S="::S ◢"Z=""Z="::Z ◢Goto 2↙2.正算子程序(SUB1)0.1739274226→A :0.3260725774→B :0.0694318442→K :0.3300094782→L :1-L →F :1-K→M:U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Bcos(G+QEFW(C+FWD))+ Acos(G+QEMW(C+MWD)))→X:V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+A sin(G+QEMW(C+MWD)))→Y:G+QEW(C+WD)+90→F:X+ZcosF→X:Y+ZsinF→Y:Return↙3.反算子程序(SUB2)G-90→T:Abs((Y-V)cosT-(X-U)sinT)→W:0→Z:Lbl0:Prog"SUB1":T+QEW(C+WD)→L:(J-Y)cosL-(I-X)sinL→Z:If AbsAbs((Z)<1E-6: Then Goto1:Else W+Z→W:Goto0↙(J-Y)÷÷sinF→Z:Return↙Lbl1:Z=0:Prog"SUB1":(J-Y)三、使用说明1、规定(1)以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0。
主程序文件名:QXJS“ZB +COM - COM”◢Deg;Fix3:10→Dimz“1.KZ⇒XY”:“2.XY⇒KZ”:“N=”?N:if N=1:ThenGoto1:Else Goto2:Lbi1:“K=”?K:“Z=”?Z:Prog“DAT-1”“PJ=”?AAbs(K-O)→W:Prog“SUB1”:“FY-X”:“X=”:X→X◢“FY-Y”:“Y=”Y→Y◢F-A→F:“QX-FWJ=”:F DMS◢0→I: 0→JPol(X-测站点X值,Y-测站点Y值)“α FY=”:J DMS◢“L FY=”:I◢Goto 1Lbi2:“X”?X:“Y”?Y:X→I:Y→J:“K”?K:Lbi3:Prog“DAT-1”:Prog“SUB2”:O+ W→K:IF K≥O+H:ThenO+H+1→K:Goto3:Else“K=”K→K◢“Z=”:Z→Z◢Goto2子程序SUB1(正算子程序)10→Dimz1÷P→ Z[3]:(P-R)÷(2HPR)→D:180÷π→E:0.1739274226→Z[1]:0.3260725774→Z[2]:0.0694318442→Z[5]:0.3300094782→Z[4]:1-Z[4]→F:1-Z[5]→M:U+W(Z[1]Cos(G+QEZ[5]W(Z[3]+Z[5]WD))+Z[2]Cos(G+QEZ[4]W(Z[3]+Z[4]WD))+Z[2]Cos(G+QEFW(Z[3]+FWD))+Z[1]Cos(G+QEMW(Z[3]+MWD)))→X:V+W(Z[1]Sin(G+QEZ[5]W(Z[3]+Z[5]WD))+Z[2]Sin(G+QEZ[4]W (Z[3]+Z[4]WD))+Z[2]Sin(G+QEFW(Z[3]+FWD))+Z[1]Sin(G+QEMW(Z[3]+M WD))) →Y:G+QEW(Z[3]+WD)+ A→F:X+ZCos(F)→X:Y+ZSin(F)→Y子程序SUB2(反算子程序)10→90→A:G-90→T: Abs((Y-V)Cos(T)-(X-U)Sin(T)) →W:0→Z:Lbi0:Prog “SUB1”:T+QEW(Z[3]+WD)→Z:If Abs(Z)→<Z[4]:(J-Y)Cos(Z[4])-(I-X)Sin(Z[4])1*10-6:Then Goto 1:Else W+Z→W: Goto 0:Lbi 1:0→Z:Prog“SUB1”:(J-Y)÷Sin(F)→ZDAT-1(子程序数据库)If K≥起点桩号And K≤终点桩号:Then起点X坐标→U: 起点Y坐标→V:起点里程→O:起边方位角→G:线元长度→H:线元起点半径→P:线圆终点半径→R:(左偏-1,右偏1,直线0)→Q:IfEndN?选择计算方式,输入1表示由里程、边距计算坐标,输入2表示由坐标计算里程和边距。
FX-5800P线路计算程序F[NPT](主程序)Lbl Q(选择单点或多点计算模式)4→DimZ“SELECT MODE”“F0:ONE POINT”“F1:N POINT”?→Z[4]If Z[4]=0:Then Goto B: Else If Z[4]=1:Then Goto A: Else Cls :Goto Q:IfEnd: IfEndLbl A(批量计算直角坐标和极坐标元素入口)Norm 1:Deg:FreqON:ClrStat:0→N:ClsProg"STATION":IF Z[3]=-1:Then Cls:Stop:IfEndClsZ[1]→E“[KS]+Ke]i=”?E:E→Z[1]:Cls“STEP=”?→Z[2]:Cls“Zp=”?Z90→C:Cls:”ANG=”?CLbl 1(循环生成桩号序列)ReP(E)→List Freq[1]ReP(E)+(Z[2]-10(Frac(0.1ReP(E)))→List Freq[2]For 3→M To (Int(((ImP(E)-ReP(E))÷Z[2])+2-1)List Freq[M-1]+Z[2]→List Freq[M]NextLbl 2(循环计算坐标)ImP(E)→List Freq[M+1]For 1→M To (Int((ImP(E)- ReP(E))÷Z[2])+2)List Freq[M]→SProg"DATP[MC]"Prog"TURN[YS]"Prog"ZS"Fix3X→ListX[M]Y→ListY[M]Cls:Norm 1Locate 2,2,”COMPUTER…”Locate 13,2, Intg(((ImP(E)- ReP(E))÷Z[2])+2-M)Fix 3NextLbl 3(提取结果并显示)Cls:”PRESS[MODE][4]=>AnsF[XYK]Or[EXE] =>SET OUT”◄For 1→M To Int((ImP(E)- ReP(E))÷Z[2])+2List X[M]→XList Y[M]→YList Freq[M]→SProg"POL"Prog"DISP.KZ"◄Prog"DISP.XY"◄NextGoto ALbl B(单点计算模式入口)Norm 1:Deg:0→N(置零)Prog"STATION"Cls:90→C:”ANG=”?CLbl 4(单点计算模式)Cls:”Kp=”?SIF S=-1:Then Cls:Stop:IfEndCls:”Zp=”?ZProg"DATP[MC]"Prog"TURN[YS]"Prog"ZS"Prog"POL":Prog"DISP.XY"◄Goto 4STATION(测站输入子程序)ClsZ [2N+3]→E"St[X]+St[Y]i"?EE→Z[2N+3]ReturnDATP[MC](平面数据库子程序)If S≤K ei:Then [ [ K si,X Si , Y Si , T Si , R Si ,R ei,K ei,Q i] ]→Mat A :Return:IfEndIf S≤K e i+1:Then [ [ K si+1,X si+1 , Y si+1 , T si+1, R si+1 ,R ei+1,K ei+1,Q i+1] ]→Mat A:Return:IfEnd .............TURN[YS](将存在矩阵中的线元数据赋给正算标准变量)Mat A[1,1]→OMat A[1,2]→UMat A[1,3]→VMat A[1,4]→GMat A[1,5]→PMat A[1,6]→RMat A[1,7]→HMat A[1,8]→QReturnZS(线路正算预备子程序)Abs(S-O)→W(P-R)÷(2PR(H-O))→DProg"G[ZS]"ReturnG[ZS](高斯-勒戎德4节点近似积分计算线元坐标子程序)Lbl 00.1739274226→A: 0.32607257774→B0.0694318442→K: 0.3300094782→LLbl 1U+W(ACos(G+180QKW(1÷P+KWD)÷π)+BCos(G+180QLW(1÷P+LWD)÷π)+BCos(G+180(1-L)QW(1÷P+(1-L)WD)÷ π)+ACos(G+180(1-K)QW(1÷P+(1-K)WD)÷π))→X V+W(ASin(G+180QKW(1÷P+KWD)÷π)+BSin(G+180QLW(1÷P+LWD)÷π)+BSin(G+180(1-L)QW(1÷P+(1-L)WD)÷π)+ASin(G+180(1-K)QW(1÷P+(1-K)WD)÷π))→Y G+180QW(1÷P+WD)÷π+C→FX+Z Cos(F)→XY+Z Sin(F)→Y360Frac((360+F-C)÷360)→TReturnPOL(极坐标计算子程序)Pol(X-ReP( Z [2N+3 ]),Y-ImP(Z [2N+3 ])+10^(-5))J<0=>J+360→JReturnDISP.K Z(桩号及偏距显示子程序)Fix 3:Cls"K p=":Locate 5,2,SLocate 1,3," Z p="Locate 5,4,ZReturnDISP.XY(极坐标要素及直角坐标显示子程序)Fix 3:Cls"HR=":Locate 5,1,J0"HD=":Locate 5,2,I"X p=":Locate 5,3,X"Y p=":Locate 5,4,YReturn关于程序的几点说明1.写此程序的初衷是应网友“K0+000"之邀,提供一份基本程序供初学者参考之用。
fx-5800p全线坐标放样(交点法)正反算程序fx-5800p全线坐标放样(交点法)正反算程序【QXFYZFS】(主程序名)20→Dim?〝1.ZS.2.FS〞?J:J≠1?Goto2:90→H:〝X(CZ)〞?U:〝Y(CZ)〞?V?Lbi1:〝Kp=〞?P:〝Z-Y+〞?D:Prog〝SUJUKU〞:M+O→N:Prog〝SUBA〞:Prog〝SUBB〞:F-Dcos(Z-H)→F:G-Dsin(Z-H)→G:〝X=〞〝Y=〞〝〞Z?DMS◢U=0?Goto1:Pol(F-U,G-V):J<0?360+J→J:〝DH〞〝〞J?DMS◢Goto1?Lbi2:〝GAILUE(Kp=)〞?P:〝X=〞?U:〝Y=〞?V?Lbi3:Prog〝SUJUKU〞:M+O→N:Prog〝SUBA〞:Prog〝SUBB〞:Z-90→A:(V-G)cos(A)-(U-F)sin(A)→H:IfAbs(H)>0.0001:ThenH+P→P:Goto3:IfEnd:(G-V)÷sin(A)→D〝=〞〝〞Goto2?使⽤说明:20→Dim:扩展额外变量寄存器〝1.ZS.2.FS〞:选择正反算(正算=1反算≠1)90→H:边桩与线路正交〝X(CZ)〞〝Y(CZ)〞:输⼊测站点X、Y坐标值〝Kp=〞、〝Z-Y+〞:输⼊所求点桩号和距中(左-右+中0)〝GAILUE(Kp=)〞:反算时,输⼊所求点概略桩号〝X=〞〝Y=〞:反算时,输⼊所求点X、Y坐标值〝X=〞〝Y=〞〝〞:显⽰所求点X、Y值及所求点切线⽅位⾓。
〝DH〞〝〞:显⽰所求点放样距离及放样⽅位⾓(放样)。
10.〝〞〝〞:反算时,显⽰所求点桩号及距中(左-右+中0)。
〝U=0?Goto1〞〝〞〝〞【SUBA】⼦程序AIfO<0:Then-1→W:Else1→W:IfEnd:WO→A?B2÷24÷R-B^(4)÷2688÷R^(3)+B^(6)÷506880÷R^(5)→Z[6]:C2÷24÷R-C^(4)÷2688÷R^(3)+C^(6)÷506880÷R^(5)→Z[7]:B÷2-B^(3)÷240÷R2+B^(5)÷34560÷R^(4)→Z[8]C÷2-C^(3)÷240÷R2+C^(5)÷34560÷R^(4)→Z[9]Z[8]+(R+Z[7]-(R+Z[6]cos(A))÷sin(A)→S:Z[9]+(R+Z[6]-(R+Z[7]cos(A))÷sin(A)→T:ARπ÷180+(B+C)÷2→L:L-B-C→Q:(R+(Z[6]+Z[7])÷2)cos(A÷2)-R→E:K-S→Z[1]:Z[1]+B→Z[2]:Z[1]+L-C→Z[4]:Z[4]+C→Z[5]【SUBB】⼦程序BX–Scos(M→F:Y-sin(M→G:P>Z[1]?Goto1:X→F:Y→G:P-K→Z[16]:0→Z[17]:M→A:M→Z:Goto5?Lbl1:P>Z[2]?Goto2:P-Z[1]→L:L→Z[14]:B→Z[15]:Prog〝SUBC〞:WZ[17]→Z[17]:M→A:M+90WL(BRπ→Z:Goto5:Lbl2:P>Z[4]?Goto3:P-Z[1]→L:90(2L-B)÷R÷π→A:Rsin(A)+Z[8]→Z[16]:W(R(1-cos(A))+Z[6]→Z[17]:M+WA→Z:M→A:Goto5:Lbl3:P>Z[5]?Goto4:Z[5]-P→L:L→Z[14]:C→Z[15]:Prog〝SUBC〞:X+Tcos(N→F:Y+Tsin(N→G:-Z[16]→Z[16]:WZ[17]→Z[17]:N→A:N-90WL2÷(CRπ→Z:Goto5:Lbl4:X→F:Y→G:P-Z[5]+T→Z[16]:0→Z[17]:N→A:N→Z:Goto5:Lbl5:F+Z[16]cos(A)-Z[17]sin(A→F:G+Z[16]sin(A)+Z[17]cos(A→G:Z<0?360+Z→Z【SUBC】⼦程序CIfZ[14]=0:Then0→Z[16]:0→Z[17]:ElseZ[14]-Z[14]^(5)÷40÷(RZ[15])2+Z[14]^(9)÷3456÷(RZ[15])^(4)→Z[16]:Z[14]^(3)÷6÷(RZ[15])-Z[14]^(7)÷336÷(RZ[15])^(3)+Z[14]^(11)÷42240÷(RZ[15])^(5)→Z[17]:IfEnd 【】IfP<1000:Then522.056→K:5683.105→X:1447.559→Y:183°17°55.68°→M:-19°37°25.5°→O:2500→R:0→B:0→C:Return:IfEnd?IfP<2000:Then1182.2→K:5317.799→X:868.262→Y:337°0°1.8°→M:10^(-50)→O:1→R:0→B:0→C:Return:IfEnd?IfP<3000:Then……0→B:0→C:Return:IfEnd?1182.2→K”。
CASIO Fx-5800P计算器测量计算程序一、井下斜距改成平距和高差的计算程序“SJ=”?S:“CZJ=”?B:“YQG=”?C:“QSG=”?DS×cos(B)→LS×sin(B)-C+D→V“L=”:L◢“GC=”:V◢CLS说明:SJ→斜距;CZJ→垂直角;YQG→仪器高;QSG→前视高;L→平距;GC→高差。
二、测量基本控制导线坐标计算程序“L=”?L:“GC=”?V:“SBJ=”?AW+A→WIF W<180:Then W+180→W: Else W-180→W: IFEndIF W<360:Then W→W: Else W-360→W: IFEndIF W<360:Then W→W: Else W-360→W: IFEndX+L×cos(W)→X:Y+ L×sin(W)→Y:Z+V→Z“FWJ=”:W DMS◢“X=”:X◢“Y=”:Y◢“Z=”:Z◢CLS说明:(1)、把已知的X坐标先存入X、Y坐标存入Y、高程存入Z、方位角存入W(2)、L→平距;GC→高差;SBJ→水平角;FWJ→方位角;X→X坐标;Y→Y坐标;Z→高程。
三、井下测量导线坐标计算程序“SJ=”?S:“CZJ=”?B:“YQG=”?C:“QSG=”?D :“SBJ=”?A S×cos(B)→LS×sin(B)-C+D→VZ+V→ZW+A→WIF W<180:Then W+180→W:Else W-180→W:IFEndIF W<360:Then W→W:Else W-360→W:IFEndIF W<360:Then W→W:Else W-360→W:IFEndX+L×cos(W)→X:Y+ L×sin(W)→Y:Z+V→Z“L=”:L◢“GC=”:V◢“FWJ=”:W DMS◢“X=”:X◢“Y=”:Y◢“Z=”:Z◢CLS说明:(1)、把已知的X坐标先存入X、Y坐标存入Y、高程存入Z、方位角存入W(2)、SJ→斜距;CZJ→垂直角;YQG→仪器高;QSG→前视高;L →平距;GC→高差;SBJ→水平角;FWJ→方位角;X→X坐标;Y→Y坐标;Z→高程。
曲线任意里程中边桩坐标正反算(CASIO fx-5800P计算器)程序一、程序功能及原理1.功能说明:本程序由一个主程序(TYQXJS)和五个子程——正算子程序(SUB-ZS)、反算子程序(SUB-FS)等构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。
本修改版程序既可实现正算全线贯通,亦可实现反算全线贯通。
本程序在CASIO fx-5800P计算器运行。
2.计算原理:利用Gauss-Legendre 5点通用公式正算线路中边桩坐标、线外测点至曲线元起点和终点的垂距的符号是否相异(即Dca×Dcb<0=>该测点在其线元内)进行判断并利用该线元要素反算中桩里程、支距,最后计算出放样数据。
二、源程序1.主程序(TYQXJS)Deg:fix 3119→DimZ“INPUT(0) Or DATA(Else)”?ILbl 0:“1.SZ=>XY,2.XY=>SZ,3.TF=>CK,4.SD=>FY,5.TW=>FY”?NIf N=1 Or N=5:Then Goto 1Else If N=2 Or N=3 Or N=4:Then Goto 2Else Goto 3IfEnd:IfEndLbl 1:“K(m)=”?SIf S<0:Then Goto 0:IfEnd“JL(m)=”?ZIf Z≠0:Then “ANGLE→R(Deg)=”?M:IfEndIf I=0:Then Prog “DAT1”:Else Prog “DAT2”:IfEndS-O→W:If W<0:Then Goto 0:Else If W>H:Then Goto 0:IfEnd:IfEndProg “SUB-ZS”:Prog “SUB-GC”If Z<0:Then“XL(m)=”:X◢“YL(m)=”:Y◢If N=5:Then Prog “SUB-TW”:IfEndElse If Z>0:Then “XR(m)=”:X◢“YR(m)=”:Y◢If N=5:Then Prog “SUB-TW”:IfEndElse “X(m)=”:X◢“Y(m)=”:Y◢“Hs(m)=”:L◢“FWJ=”: F►DMS◢IfEnd:IfEndGoto 1Lbl 2:“X(m)=”?X:If X<0:Then Goto 0:IfEnd“Y(m)=”?YIf N=3 Or N=4:Then “H(m)=”?→Z[2]:IfEndX→Z[4]:Y→Z[5]:90→MIf I=0:Then Prog “DAT1”G+QEH(C+HD)→F:1→J:U→Z[8J]:V→Z[8J+1]G-M→A:F-M→B:Prog “SUB-ZX1”:Goto BG+M→A:F+M→B:Prog “SUB-ZX1”:Goto B:IfEnd0→J:Lbl A: Isz JZ[8J+3]-M→A:Z[8(J+1)+3]-M→B:Prog “SUB-ZX1”If Z[6]Z[7]<0:Then J→J:Prog“DAT1” :Goto B:IfEndZ[8J+3]+M→A:Z[8(J+1)+3]+M→B:Prog “SUB-ZX1”If Z[6]Z[7]<0:Then J→J:Prog “DAT1” :Goto B:Else Goto A:IfEndLbl B:Prog“SUB-FS”O+W→S:Prog “SUB-GC”“K(m)=”:S◢“Hs(m)=”:L◢“JL(m)=”:Z◢If N=3:Then Prog “WIDE”:IfEndIf N=4:Then Prog “SDFY”:IfEndGoto 2Lbl 3:“TYQXJS→END”2. 正算子程序(SUB-ZS)0.1184634425→A: 0.2393143352→B:0.2844444444→Z[1]:0.0469100770→K:0.2307653449→L:0.5→Z[3]U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Z[1]cos(G+QEZ[3]W(C+Z[3]WD))+Bcos(G+QE(1 -L)W(C+(1-L)WD))+Acos(G+QE(1-K)W(C+(1-K)WD)))→XV+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Z[1]sin(G+QEZ[3]W(C+Z[3]WD))+Bsin(G+QE(1-L)W(C+(1-L)WD))+Asin(G+QE(1-K)W(C+(1-K)WD)))→YG+QEW(C+WD)+M→FX+Zcos(F)→X:Y+Zsin(F)→YF-M→F:If F<0:Then F+360→F:IfEndReturn3. 反算子程序(SUB-FS)G-M→T:Abs((Y-V)cos(T)-(X-U)sin(T))→W:0→ZLbl C:Prog “SUB-ZS”T+QEW(C+WD)→L:(Z[5]-Y)cos(L)-(Z[4]-X)sin(L)→ZIf Abs(Z)<10-6:Then Goto D:Else W+Z→W:Goto C:IfEndLbl D:0→Z:Prog “SUB-ZS”:(Z[5]-Y)÷cos(F)→Z:Return4.高程计算子程序(SUB-GC)Prog “DAT3”0.5RAbs(0.01(E-D))→TIf E>D:Then 1→C:Else -1→C:IfEndIf S<A:Then -0.01D→W:Else 0.01E→W:IfEndAbs(A-S)→LIf L>T:Then B+WL→L:Else B+WL+C(T-L)2÷2÷R→L:IfEndReturn5. 垂距计算子程序(SUB-ZX1)(Z[5]-Z[8J+1])cos(A)-(Z[4]-Z[8J])sin(A)→Z[6](Z[5]-Z[8(J+1)+1])cos(B)-(Z[4]-Z[8(J+1)])sin(B)→Z[7]Return6.曲线元要素数据库:DAT1(两条线路,可扩充为多条线路)If I=0:Then Goto E: Else If I=2:Then Goto F:IfEnd:IfEndJ=1=>***→Z[8]:***→Z[9]:***→Z[10]:***→Z[11]:***→Z[12]:***→Z[13]:***→Z[14]:*** →Z[15]:IfEndJ=2=>***→Z[16]:***→Z[17]:***→Z[18]:***→Z[19]:***→Z[20]:***→Z[21]:***→Z[22]:***→Z[23]:IfEndJ=3=>***→Z[24]***→Z[25]:***→Z[26]:***→Z[27]:***→Z[28]:***→Z[29]:***→Z[30]:***→[31]:IfEnd………………………………………………..Goto HLbl F: J=1=>***→Z[8]:***→Z[9]:***→Z[10]:***→Z[11]:***→Z[12]:***→Z[13]:***→Z[14]:*** →Z[15]:IfEndJ=2=>***→Z[16]:***→Z[17]:***→Z[18]:***→Z[19]:***→Z[20]:***→Z[21]:***→Z[22]:***→Z[23]:IfEndJ=3=>***→Z[24]***→Z[25]:***→Z[26]:***→Z[27]:***→Z[28]:***→Z[29]:***→Z[30]:***→[31]:IfEnd(注:如有多个曲线元要素继续添加入数据库DAT1中)Goto GLbl E:“X0=”?U:“Y0=”?V:“S0=”?O:“F0=”?G:“LS=”?H:“R0=”?P:“RN=”?R:“Q=”?Q Lbl G:1÷P→C:(P-R)÷(2HPR)→D:180÷π→E:Return7.隧道放样子程序:SDFY5.5→A:8.5→B:L+1.5→CIf I=1:Then -1→K:Else 1→K:IfEnd 给左右隧道符号赋值1.25K→F:4.25K→L:7.25K→K 给各圆心距路线的偏距赋值Z[2]-C→D 计算测点至圆心的高差D,If D>A:Then Goto 1:Else If D<0:Then Goto 2:IfEnd:IfEndZ-L→E:Abs(E)→E:√(D2+E2)→W:W-A→T: 计算测点至圆心的平距E,实测半径W “R(m)=”:W◢“DR(m)=”:T◢If E≤A:Then D-√(A2-E2)→C:E-√(A2-D2)→L 计算测点水平偏移量L、垂直偏移量C “Dh(m)=”:C◢显示测点垂直偏移量C“DL(m)=”:L◢显示测点水平偏移量LElse E-√(A2-D2)→L“DL(m)=”:L◢IfEnd:ReturnLbl 1Z-L→E:Abs(E)→E:√(D2+E2)→W:W-A→T: 计算测点至圆心的平距E,实测半径W “R(m)=”:W◢“DR(m)=”:T◢If E≤A:Then D-√(A2-E2)→C“Dh(m)=”:C◢IfEnd:ReturnLbl 2:Abs(D)→D:Abs(Z)→Z:Abs(K)→K:Abs(F)→FIf Z>K:Then Z-F→E:Else Z+K→E:IfEnd√(D2+E2)→W:W-B→T“R(m)=”:W◢“Rc(m)=”:T◢If E≤B:Then D-√(B2-E2)→C:E-√(B2-D2)→L 计算测点水平偏移量L、垂直偏移量C “Dh(m)=”:C◢显示测点垂直偏移量C“DL(m)=”:L◢显示测点水平偏移量LElse E-√(B2-D2)→L“DL(m)=”:L◢显示测点水平偏移量LIfEnd:Return8.曲线元要素判断数据库:DAT2(两条线路,可扩充为多条线路)If I=2:Then Goto A:IfEndIf S<第一线元终点里程:Then 1→J:Prog “DAT1”:ReturnElse If S<第二线元终点里程:Then 2→J:Prog “DAT1”:ReturnElse If S<第三线元终点里程:Then 3→J:Prog “DAT1”:ReturnElse If S<第四线元终点里程:Then 4→J:Prog “DAT1”:ReturnIfEnd:IfEnd:IfEnd:IfEndIf S≥第四线元起点里程And S<第五线元终点里程:Then 5→J:Prog “DAT1”:Return .................................Else If S<第n线元里程:Then n→J:Prog “DAT1”:ReturnIfEnd:IfEnd:IfEnd:IfEndLbl AIf S<第一线元终点里程:Then 1→J:Prog “DAT1”:ReturnElse If S<第二线元终点里程:Then 2→J:Prog “DAT1”:ReturnElse If S<第三线元终点里程:Then 3→J:Prog “DAT1”:ReturnElse If S<第四线元终点里程:Then 4→J:Prog “DAT1”:ReturnIfEnd:IfEnd:IfEnd:IfEndIf S≥第四线元起点里程And S<第五线元终点里程:Then 5→J:Prog “DAT1”:Return Else If S<第n线元里程:Then n→J:Prog “DAT1”:ReturnIfEnd:IfEnd:IfEnd:IfEnd .................................9.高程数据库子程序:DAT3(两条线路,可扩充为多条线路)If I=0:Then Goto A:Else If I=2:Then Goto B:IfEnd:IfEndIf S≤46500:Then 46150→A:361.26→B:40000→R:-0.3→D:-1.2→E:ReturnElse If S≤47200:Then 46800→A:353.46→B:20000→R:-1.2→D:1→E:ReturnElse If S≤48400:Then 47500→A:360.46→B:20000→R:1→D:-1.6→E:ReturnElse If S≤49600:Then 48700→A:341.26→B:10000→R:-1.6→D:2.45→E:Return IfEnd:IfEnd:IfEnd:IfEndIf S>49600 And S≤50300:Then 49840→A:369.19→B:100000→R:2.45→D:2.8→E:Return Else If I=2:Then49800→A:368.21→B:150000→R:2.45→D:2.7→E:ReturnIfEnd:IfEndLbl A:“C PEG(m)=”?→A“C H(m)=”?→B“R(m)=”?→R“I1=”?→D“I2=”?→EReturnLbl B49800→A:368.21→B:150000→K:2.45→D:2.7→E:Return10.填方路基宽度检查子程序(WIDE)“WIDTH CHECK”◢“H→MID(m)=”?→A 起坡点与中桩高差常数“DIST→MID(m)=”?→B 起坡点与中桩距离常数“i=”?→C 路基填筑坡度CAbs(Z[2]-L+A)→DAbs(Z)-B-D→E“DL(m)=”:E◢显示实有宽度与应有宽度之差值Return11.坡口坡脚线坐标计算子程序:SUB-TW“TIANWA LINE”◢“DIST→MID(m)=”?A 起坡点与中桩距离常数“H→MID(m)=”?B 起坡点与中桩高差常数“T(1) Or W(Else)=”?C 填方边坡为1,其它为挖方边坡“i=”?E 填方或挖方边坡坡度Abs(Z)-A→D: DE→KIf C=1:Then L-B-K→W:Else L+B+K→W:IfEnd“JS H(m)=”:W◢计算出应有高程“SC H(m)=”?→D 输入实测高程D-W→T“GC(m)=”:T◢显示实测高程与计算高程的差异Return三、使用说明1、规定(1) 以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0。
CASIO fx-5800p道路主线坐标放样程序简化使用程序说明:此程序是根据教科书结合工地实践应用继续开发,本程序包含一个母程序和两个子程序,本程序简化了部分详细输出内容,加快了实地放样计算的速度,本程序还有一大优点就是有“一劳永逸”的效果,先把子程序输入计算器,然后根据曲线要素表,用其中的数据代替母程序中的文字提示(包括括号),输入计算器,在运行母程序,然后检核,每一个曲线至少检查一个点,检核无误后即可,每次去工地放样就可以免带图纸,同时也大大的提高了野外放样计算的速度。
ZBFY(道路主线坐标放样程序母程序):Lbl 0↵“KP=”?P↵If P<(第一个曲线的结束桩号):Then↵(第一个曲线的交点x坐标)→X↵(第一个曲线的交点y坐标)→Y↵(第一个曲线的上一交点x坐标)→M↵(第一个曲线的上一交点y坐标)→N↵(第一个曲线的转角,左-右+)→O↵(第一个曲线的半径)→R↵(第一个曲线的第一缓和曲线长度)→B↵(第一个曲线的第二缓和曲线长度)→C↵(第一个曲线的交点桩号)→K↵Prog“-ZBFY”:Goto 0:IfEnd↵If P<(第二个曲线的结束桩号):Then↵(第二个曲线的交点x坐标)→X↵(第二个曲线的交点y坐标)→Y↵(第二个曲线的上一交点x坐标)→M↵(第二个曲线的上一交点y坐标)→N↵(第二个曲线的转角,左-右+)→O↵(第二个曲线的半径)→R↵(第二个曲线的第一缓和曲线长度)→B↵(第二个曲线的第二缓和曲线长度)→C↵(第二个曲线的交点桩号)→K↵Prog“-ZBFY”:Goto 0:IfEnd↵...(重复If到IfEnd的语句,有n个曲线,就重复n-1次) ...(最后一个曲线的交点x坐标)→X↵(最后一个曲线的交点y坐标)→Y↵(最后一个曲线的上一交点x坐标)→M↵(最后一个曲线的上一交点y坐标)→N↵(最后一个曲线的转角,左-右+)→O↵(最后一个曲线的半径)→R↵(最后一个曲线的第一缓和曲线长度)→B↵(最后一个曲线的第二缓和曲线长度)→C↵(最后一个曲线的交点桩号)→K↵Prog“-ZBFY”:Goto 0 (结束)-ZBFY(带“-”号的程序表示子程序):Deg:Fix3:26→DimZ↵Lbl0↵If O<0:Then -1→W:Else 1→W:IfEnd:W O→A↵B2÷24÷R-B∧(4) ÷2688÷R∧(3)+B∧(6)÷506880÷R∧(5)→Z〔6〕↵C2÷24÷R-C∧(4) ÷2688÷R∧(3)+C∧(6)÷506880÷R∧(5)→Z〔7〕↵B÷2-B∧(3)÷240÷R2+B∧(5)÷34560÷R∧(4)→Z〔8〕↵C÷2-C∧(3)÷240÷R2+C∧(5)÷34560÷R∧(4)→Z〔9〕↵Z〔8〕+(R+ Z〔7〕-(R+ Z〔6〕)cos(A))÷sin(A)→S↵Z〔9〕+(R+ Z〔6〕-(R+ Z〔7〕)cos(A))÷sin(A)→T↵RAπ÷180÷(B+C)÷2→L↵K-S→Z〔1〕↵Z〔1〕+B→Z〔2〕↵Z〔1〕+L÷2+(B-C) ÷4→Z〔3〕↵Z〔1〕+L-C→Z〔4〕↵Z〔4〕+ C→Z〔5〕↵Pol(X-M,Y-N):J →Z〔20〕:J+O→Z〔19〕↵X-Scos(Z〔20〕) →Z〔21〕↵Y-Ssin(Z〔20〕) →Z〔22〕↵X+Tcos(Z〔19〕) →Z〔23〕↵Y+Tsin(Z〔19〕) →Z〔24〕↵If P> Z〔1〕:Then Goto1:IfEnd↵Z〔1〕-P →L↵“XP=”:X-(S+L)cos(Z〔20〕) →F“YP=”:Y-(S+L)sin(Z〔20〕) →GZ〔20〕→Z↵Goto 5↵Lbl 1↵If P> Z〔2〕:Then Goto 2:IfEnd↵P- Z〔1〕→L:L→Z〔14〕:B→Z〔15〕:Prog”-FY”↵“XP=”: Z〔21〕+ Z〔16〕cos(Z〔20〕)-W Z〔17〕sin(Z〔20〕) →F“YP=”: Z〔22〕+ Z〔16〕sin(Z〔20〕)+W Z〔17〕cos(Z〔20〕) →GZ〔20〕+90WL2÷(BRπ)→Z↵Goto 5↵Lbl 2↵If P> Z〔4〕:Then Goto 3:IfEnd↵P- Z〔1〕→L:90(2L-B) ÷R÷π→Z〔13〕↵Rsin(Z〔13〕)+ Z〔8〕→Z〔16〕:R(1-cos(Z〔13〕))+ Z〔6〕→Z 〔17〕↵“XP=”: Z〔21〕+ Z〔16〕cos(Z〔20〕)-W Z〔17〕sin(Z〔20〕) →F“YP=”: Z〔22〕+ Z〔16〕sin(Z〔20〕)+W Z〔17〕cos(Z〔20〕) →GZ〔20〕+W Z〔13〕→Z↵Goto 5↵Lbl 3↵If P> Z〔5〕:Then Goto 4:IfEnd↵Z〔5〕-P→L:L→Z〔14〕:C→Z〔15〕:Prog”-FY”↵“XP=”: Z〔23〕- Z〔16〕cos(Z〔19〕)-W Z〔17〕sin(Z〔19〕) →F“YP=”: Z〔24〕- Z〔16〕sin(Z〔19〕)+W Z〔17〕cos(Z〔19〕) →GZ〔19〕-90WL2÷(CRπ)→Z↵Goto 5↵Lbl 4↵P- Z〔5〕→L↵“XP=”:X+(T+L)cos(Z〔19〕) →F“YP=”:Y+(T+L)sin(Z〔19〕) →GZ〔19〕→Z↵Lbl 5↵“D ANGLE”?H↵If H=0:Then Goto 9:IfEnd:?D↵“XB=”:F+Dcos(Z+H) →Z〔11〕“YB=”:G+Dsin(Z+H) →Z〔12〕Goto 5↵Lbl 9 (结束)-FY(子程序2):If Z〔14〕=0:Then 0→Z〔16〕:0→Z〔17〕:Else↵Z〔14〕- Z〔14〕∧(5) ÷40(RZ〔15〕)2+ Z〔14〕∧(9) ÷3456÷(RZ 〔15〕)∧(4) →Z〔16〕↵Z〔14〕∧(3) ÷6÷(RZ〔15〕)- Z〔14〕∧(7) ÷336÷(RZ〔15〕)∧(3)+ Z〔14〕∧(11) ÷42240÷(RZ〔15〕)∧(5) →Z〔17〕↵IfEnd (结束)CASIO fx-5800p道路匝道坐标放样程序简化使用程序说明:本程序根据主线坐标放样程序的思想编写,原理相同,优点相同,使用相同。
5800公路测量程序使用说明一、程序使用流程本程序数据和主程序是分开的,编程时将不同的工程数据存放到不同的数据文件里,如A匝道,文件名为A,将匝道A所有的曲线线元参数输入A文件里。
运行时只要运行文件名A的程序就可以了,具体运行流程见下图:二、数据文件的编写(一)交点法数据文件编辑交点法编写数据文件必须是对称型的,即直线段→缓和曲线段→圆曲线段→缓和曲线段→直线段,(如果任意一端没有直线段,则把直线段长度看做是0),另外圆曲线两侧缓和曲线的旋转常数必须相等,并且和直线段连接处的半径必须是无穷大。
交点法数据文件编写一般是根据设计图纸提供的平面曲线参数一览表提供的参数来编写,每个弯道包括:弯道起点方位角(C),交点X坐标(D),交点Y坐标(E),缓和曲线长度(F,当没有设缓和曲线时,F=0),交点转交(G,向左转弯,G为负值,向右转弯,G取正值),交点桩号(H),弯道圆曲线半径(R)。
下图是一段市政道路设计参数数据。
根据上图提供的数据,可以编辑成如下的数据文件:文件名:CHLNR3→DimZ “X0”?A:”Y0”?B:“Ln”?L:Abs(L)-Int(Abs(1000L))/1000→Z[3]:Lbl 0:If Z[3]≠0.0001: Then ?L: Els e “Xp”?X:”Yp”?Y:X→Z[1]:Y→Z[2]:IfEnd:Lbl 1:If L>0 :Then 98°39°35.12°→C:4474.384→D:2415 .861→E:140→F:31°17°23°→G:410.007→H:600→R:IfEnd: If L>1060 Then 129°56°58.19°→C:4206.421→D:3093.946→E:70→F:-33°50°48°→G:1285.437→H:600→R:IfEnd:Prog”XLJS”:If Z[3]≠0. 0001:Then Goto 0:Else (Z[1]-X)cos(O)+(Z[2]-Y)sin(O)→N:L+N→L:-(Z[1]-X)sin(O)+(Z[2]-Y)cos(O)→K:If Abs(N)≥0.001:Then Goto 1:Else “L=“:L◢“K=”:K◢IfEnd:Goto 0: IfEnd在面程式中,有两个条件转移语句即If L>0:Then 98°39°35.12°→C:4774.384→D: 2415.861→E:140→F:31°17°23°→G:410.007→H:600→R:IfEndIf L>1060:Then 129°56°58.19°→C:4206.421→D: 3093.946→E:70→F:-33°50°48°→G:1285.437→H:600→R:IfEnd……如果还有其他弯道,可以继续完后加。
在这些存放设计参数的语句前后的程序表达式是固定的。
说明:编辑曲线参数时,每个曲线参数放在一个If L>***.***(两个弯道中间直线段上的任意桩号):Then ***°**°**.**°→C(弯道起点方位角):****.***→D(交点X坐标):****.****→E(交点Y坐标):***.***→F(缓和曲线长度:**°**°**°→G(转角,向左转为负值,向右转为正值):***.***→H(交点里程桩号):***→R(圆曲线半径):IfEnd 条件式语句里,如果有多个弯道,一直按上述形式编下去,变量说明:1、L>***.***弯道参数的起点范围,可以是弯道起点,也可以是弯道前直线段里的任意点桩号2、***°**°**.**°→C 弯道起点方位角3、****.***→D、****.****→E交点X坐标、Y坐标4、***.***→F缓和曲线长度,如果没设置缓和曲线,则缓和曲线长度看做05、**°**°**°→G 转角,向左转为负值,向右转为正值6、***.***→H、交点里程桩号7、***→R 圆曲线半径注意,运行程序时,第一部是输入测站坐标X0,Y0,然后输入近似桩号,主要是为了加快收敛,输入时注意当根据桩号和距中距离计算所求点坐标时,请不要把小数点第四位输入0.0001,如K21+369.0921,请把桩号输入21369.092即可,相反,当根据坐标反算桩号和距中距离时,请在输入时把第四位小数数位0.0001,如K21+200,输入时请输入21200.0001。
(二)线元法数据文件编辑线元法数据文件编辑适合于各种各样的线型组合,特别是在大型立交区或者是不规则的线型组合地方,如小区道路、重丘区山路等有特别明显的有点,本程序为了减少使用者设计参数的输入,特别把直线与缓和曲线以及圆曲线连接的地方只要输入缓和曲线参数就可以了,这样可以减少输入很多设计参数,同时节约大量的内存。
看下图,该图是一个半喇叭型的互通立交,一共是5条匝道,我们以D匝道为例,来看看线元法数据文件的建立。
下表是D 匝道的线元表:D 匝道线元数据分析:从上表中可以看出,D 匝道由三个线元组成,第一段是缓和曲线段,根据上表判断,该缓和曲线属于第一段缓和曲线,其最小半径处桩号为J=K0+039.289,该处坐标X=494347.926,Y=477989. 873,半径为R=40米,方位角W=302°18′26.0″,缓和曲线旋转常数P=55,在缓和曲线终点K0+039.289处,有一圆曲线与其相连接,长度I=39.216。
第二段是圆曲线,第三段又是一段缓和曲线,根据上表判断,该曲线属于第二缓和曲线,曲线最小半径位于与园曲线连接处,桩号J=K0+78.504,坐标为X=494380.677,Y=477971.271,方位角W=358°28′45.9″,最小半径R=40,缓和曲线旋转常数P=-65(为了判断是第一段还是第二缓和曲线,我们通过P 的正负来判断,第一缓和段P 统一用正数表示,第二缓和段统一用负号表示。
起点处相连的圆曲线长度I 可以看做0,也可以看做是39.216.由此我们整理下。
从整个线型全部是向右转向,所以R 全部取正数。
具体如下:第一段缓和曲线线元参数:最小半径处坐标X=494347.926 Y=477989. 873 最小半径R=40最小半径处方位角:W=302°18′26.0″ 缓和曲线旋转常数P=55 与之相连的圆曲线长度I=39.216 最小半径处桩号J=39.289此段数据计算范围可以从K0+000~ K0+78.504 第二段缓和曲线线元参数线元名称起点桩号偏向半径或缓和曲线旋转常数A线元长度(m)线元起点坐标、方位角X(m)Y(m)方位角缓和曲线 DK0+000.00 右偏 55 39.289 494341.902 478027.825 260°38′55.7″ 圆曲线 DK0+039.289 右偏 40 39.216 494347.926 477989. 873 302°18′26.0″ 缓和曲线DK0+078.504右偏65105.625494380.677477971.271358°28′45.9″最小半径处坐标X=494380.677 Y=477971.271最小半径R=40最小半径处方位角:W=358°28′45.9″缓和曲线旋转常数P=65与之相连的圆曲线长度I=39.216最小半径处桩号J= W=358°28′45.9″此段数据计算范围可以从K0+78.504到匝道结束。
当桩号L位于K0+000~ K0+78.504时,曲线参数按第一段编写,当L>78.504时,按第二段缓和曲线编写,当然第二段缓和曲线计算范围也可以从圆曲线起点K0+039.289到K0+78.504中间任意桩号开始。
下面是D匝道的数据程序文件(文件名“DZD”):3→DimZ:X0”?A:”Y0”?B:“Ln”?L: Abs(L)-Int(Abs(1000L))/1000→Z[3]:Lbl 0:If Z[3]≠0.0001: Then ?L: Else “Xp”?X:”Yp”?Y:X→Z[1]:Y→Z[2]:IfEnd:Lbl 1:If L≥0 :Then 494347.926→X:477989. 873→Y:40→R:302°18°26°→W:55→P:39.216→I: 39.289→J:IfEnd: If L≥78.504:Then 494380.677→X:4779 71.271→Y:40→R:358°28°45.9°→W:-65→P:39.216→I: 78.504→J:IfEnd:Prog”FDCH”: Prog”XLJS”: If Z[3]≠0.0001:Then Goto 0:Else (Z[1]-X)cos(O)+(Z[2]-Y)sin(O)→N:L+N→L:-(Z[1]-X)sin(O)+(Z[2]-Y)cos(O)→K:If Abs(N)≥0.001:Then Goto 1:Else “L=“:L◢“K=”:K◢IfEnd:Goto 0: IfEnd在上面程式中,每个缓和曲线的线元参数放在一个If …Then ……IfEnd循环语句中,If 后面紧跟计算的起点范围,终点范围从下段的起点范围结束。
变量定义:1、X、Y 输入缓和曲线半径最小处的X、Y坐标2、R 缓和曲线最小半径,当线路左转时,半径数据前面加“-”号,以判断线路转向。
3、W 输入缓和曲线半径最小处的方位角4、P 缓和曲线旋转常数,第一缓和曲线长度为正数,第二缓和曲线常数为负数。
当不设缓和曲线时,P=05、I 与缓和曲线最小半径端连接的圆曲线长度。
6、J缓和曲线小半径段的桩号。
再看看E 匝道数据文件编辑E 匝道线元设计数据表在E 匝道线元表中,我们可以看出,E 匝道式由一段直线段→缓和曲线段→圆曲线段→缓和曲线段→缓和曲线段→圆曲线段连接起来的。
值得注意的是,在位于K0+248.491处,是两段反向的缓和曲线连接点,在编写数据程序文件时,分三段编写,第一段从K0+000到K0+203.366,第二段从K0+203.366到K0+248.919,第三段从K0+248.919到线路终点K0+331.13。