当前位置:文档之家› [整理]fx-5800P坐标高程计算程序交点法.

[整理]fx-5800P坐标高程计算程序交点法.

CASIO fx-5800P单交点通用型曲线坐标高程计算程序一、说明:本程序采用交点法计算道路基本型曲线坐标及高程,在建立好数据库后,能连续计算全线各桩号的中边桩坐标及高程。

本程序共包括一个主程序和九个子程序,其中有坐标计算、高程计算、坡口坡脚线放样,锥坡放样坐标计算等子程序。

二、内容:1.PM5-3 XYZJS(主程序)“SINGLE BASIC TYPE CURVE”◢“METHOD OF COORDINATE PM5-3”◢Deg:ClrStat:FreqOn:Fix 340→DimZ“INPUT(0) Or DATA(Else)”?N“FUNCTION”?PProg “SUB5-35”If Z[30]<0:Then -1→Z[20]:Else 1→Z[20]:IfEndAbs(Z[30])→DPol(Z[26]-Z[28],Z[27]-Z[29]):ClsIf J<0: Then J+360→Z[11]:Else J→Z[11]:IfEnd 计算ZH→JD方位角Z[11]+Z[30]+180→Z[16] 计算HZ→JD方位角If Z[16]>360:Then Z[16]-360→Z[12]:Else Z[16]→Z[12]:IfEndIf Z[12]>180:Then Z[12]-180→Z[23]:Else Z[12]+180→Z[23]:IfEnd计算JD→HZ方位角S2÷(24R)-S4÷(2688R3)→Z[1] 计算第一缓和曲线内移值0.5S-S3÷(240R2)+S5÷(34560R4)→Z[2] 计算第一缓和曲线切线增长值T2÷(24R)-T4÷(2688R3)→Z[3] 计算第二缓和曲线内移值0.5T-T3÷(240R2)+T5÷(34560R4)→Z[4] 计算第二缓和曲线切线增长值(R+Z[3])÷sin(D)-(R+Z[1])÷tan(D)+Z[2]→Z[5] 计算第一切线长(R+Z[1])÷sin(D)-(R+Z[3])÷tan(D)+Z[4]→Z[6] 计算第二切线长90S÷(πR)→Z[7]:90T÷(πR)→Z[8] 计算第一、二缓和曲线偏角πR(D-Z[7]-Z[8])÷180→Z[9] 计算圆曲线长度S+T+Z[9]→Z[10] 计算曲线总长度Z[25]-Z[5]→List X[1] 计算直缓点桩号1→K:Prog “SUB5-37”List X[1]+S→List X[2]:List X[2]+Z[9]→List X[3] 计算缓圆点、圆缓点桩号Z[26]-Z[5]cos(Z[11])→List Y[1]:Z[27]-Z[5]sin(Z[11])→List Freq[1]If S≠0:Then“ZH PEG(m)=”:List X[1]◢显示直缓点桩号Else “ZY PEG(m)=”:List X[1]◢显示直圆点桩号IfEnd“X(m)=”:List Y[1]◢显示直缓(圆)点X坐标“Y(m)=”:List Freq[1]◢显示直缓(圆)点Y坐标“H(m)=”:Z[24]◢显示直缓(圆)点Z坐标“FWJ=”:Z[11]►DMS◢显示直缓(圆)点切线方位角1→K:Z[11]→Z[13]:Prog “SUB5-34”调子程序计算直缓点边桩坐标2→K:If S≠0:Then Prog “SUB5-31”调子程序计算缓圆点中边桩坐标Else List Y[1]→List Y[K]:List Freq[1]→List Freq[K]Z[11]→Z[17]:IfEnd3→K: Prog “SUB5-32”调子程序计算圆缓点中边桩坐标List X[1]+Z[10]→List X[4] 计算缓直点桩号4→K:Prog “SUB5-37”If T≠0:Then Z[26]+Z[6]cos(Z[23])→List Y[4]Z[27]+Z[6]sin(Z[23])→List Freq[4] 计算缓直点中桩坐标“HZ PEG(m)=”:List X[4]◢显示缓直(圆)点桩号“X(m)=”:List Y[4]◢显示缓直(圆)点X坐标“Y(m)=”:List Freq[4]◢显示缓直(圆)点Y坐标“H(m)=”:Z[24]◢显示缓直(圆)点Z坐标“FWJ=”:Z[23]►DMS◢显示缓直点切线方位角Z[23]→Z[13]:Prog “SUB5-34”调子程序计算缓直(圆)点边桩坐标Else List Y[3]→List Y[K]:List Freq[3]→List Freq[K]:IfEndIf R<30: Then 5→I: Else If R<60: Then 10→I: Else 20→I: IfEnd :IfEnd“INT DIST(m)=”?OIf O>0: Then O→I: IfEnd“ONLY CALC +PEG(1)”?→GIf G=1:Then Goto 1:IfEndK+1→K:Int(Z[31]÷I)I+I→List X[K]If List X[K]>List X[1]:Then Prog “SUB5-31”:Else Prog “SUB5-33”:IfEndDoK+1→K:List X[K-1]+I→List X[K]If List X[K]≤ List X[1]:Then Prog “SUB5-33”Else If List X[K]≤ List X[2]:Then Prog “SUB5-31”Else If List X[K]≤ List X[3]:Then Prog “SUB5-32”Else If List X[K]≤ List X[4]:Then Prog “SUB5-31”Else Prog “SUB5-33”IfEnd:IfEnd:IfEnd:IfEndLpWhile List X[K]+I<Z[32]Lbl 1Do“+PEG(m)=”?FIf F<Z[31]:Then Break:IfEndIf F>Z[32]:Then Break:IfEndK+1→K:F→List X[K]If List X[K]≤ List X[1]:Then Prog “SUB5-33”Else If List X[K]≤ List X[2]:Then Prog “SUB5-31”Else If List X[K]≤ List X[3]:Then Prog “SUB5-32”Else If List X[K]≤ List X[4]:Then Prog “SUB5-31”Else Prog “SUB5-33”IfEnd:IfEnd:IfEnd:IfEndLpWhile F>0“PM5-3→END”2.SUB5-31(缓和段坐标计算子程序)If List X[K]≤ List X[2]:Then S→H:List X[K]-List X[1]→LElse T→H:List X[4]-List X[K]→L:IfEndIf H≠0:Then L-L5÷(40R2H2)+L9÷(3456R4H4)-L13÷(599040R6H6)→XL3÷(6RH)-L7÷(336R3H3)+L11÷(42240R5H5)-L15÷(9676800R7H7)→Y√(X2+Y2)→Z[14]:tan-1(Y÷X)→Z[15]Else 0→Z[14]:0→Z[15]:IfEndIf List X[K]≤List X[2]:Then Z[11]+Z[20]Z[15]→Z[16]List Y[1]+Z[14]cos(Z[16])→List Y[K]List Freq[1]+Z[14]sin(Z[16])→List Freq[K]If H≠0:Then Z[11]+90Z[20]L2÷(πRH)→Z[13]Else Z[11]→Z[13]:IfEndIf List X[K]=List X[2]:Then Z[13]→Z[17]:IfEndElse Z[12]-Z[20]Z[15]→Z[16]List Y[4]+Z[14]cos(Z[16])→List Y[K]List Freq[4]+Z[14]sin(Z[16])→List Freq[K]If H≠0:Then Z[12]-90Z[20]L2÷(πRH)→Z[13]:Else Z[12]→Z[13]:IfEndZ[13]+180→Z[13]:IfEndIf Z[13]<0:Then Z[13]+360→Z[13]:Else If Z[13]>360:Then Z[13]-360→Z[13]:IfEnd:IfEnd Prog “SUB5-37”If List X[K]=List X[2]:Then “HY PEG(m)=”Else If G=1:Then “+PEG(m)=”Else“INT PEG(m)=”:IfEnd:IfEndList X[K]◢显示桩号“X(m)=”:List Y[K]◢显示X坐标“Y(m)=”:List Freq[K]◢显示Y坐标“H(m)=”:Z[24]◢显示Z坐标“FWJ=”:Z[13]►DMS◢显示切线方位角Prog “SUB5-34”:Return3.SUB5-32(圆曲线曲线段坐标计算子程序)List X[K]-List X[2]→L90L÷(πR)→Z[15]:2Rsin(Z[15])→Z[14]Z[17]+Z[20]Z[15]→Z[16]List Y[2]+Z[14]cos(Z[16])→List Y[K]List Freq[2]+Z[14]sin(Z[16])→List Freq[K]Z[17]+2Z[20]Z[15]→Z[13]If Z[13]<0:Then Z[13]+360→Z[13]:Else If Z[13]>360:Then Z[13]-360→Z[13]:IfEnd:IfEnd Prog “SUB5-37”If List X[K]=List X[3]:Then If T≠0:Then “YH PEG(m)=”Else “YZ PEG(m)=”:IfEndElse If G=1:Then “+PEG(m)=”Else“INT PEG(m)=”:IfEnd:IfEndList X[K]◢显示桩号“X(m)=”:List Y[K]◢显示X坐标“Y(m)=”:List Freq[K]◢显示Y坐标“H(m)=”:Z[24]◢显示Z坐标“FWJ=”:Z[13]►DMS◢显示切线方位角Prog “SUB5-34”:Return4.SUB5-33(直线段坐标计算子程序)If List X[K]≤ List X[1]:Then List X[1]-List X[K]→LList Y[1]-Lcos(Z[11])→List Y[K]List Freq[1]-Lsin(Z[11])→List Freq[K]Z[11] →Z[13]Else List X[K]-List X[4]→LList Y[4]+Lcos(Z[23])→List Y[K]List Freq[4]+Lsin(Z[23])→List Freq[K]Z[23]→Z[13]:IfEndProg “SUB5-37”If G=1:Then“+PEG(m)=”Else“INT PEG(m)=”:IfEndList X[K]◢显示桩号“X(m)=”:List Y[K]◢显示X坐标“Y(m)=”:List Freq[K]◢显示Y坐标“H(m)=”:Z[24]◢显示Z坐标“FWJ=”:Z[13]►DMS◢显示切线方位角Prog “SUB5-34”:Return5.SUB5-34(边桩坐标计算子程序)“WL(m),0 NO=”?MIf M<0:Then Prog “SUB5-39”Else If M>0:Then “ANGLE→L(Deg)=”?AZ[13]-A→Z[21]List Y[K]+Mcos(Z[21])→Z[18]List Freq[K]+Msin(Z[21])→Z[19]“XL(m)=”:Z[18]◢“YL(m)=”:Z[19]◢If P=1:Then Prog “SUB5-36”:IfEndElse NO:IfEnd:IfEnd“WR(m),0 NO=”?WIf W<0:Then Prog “SUB5-39”Else If W>0:Then “ANGLE→R(Deg)=”?AZ[13]+A→Z[22]List Y[K]+Wcos(Z[22])→Z[18]List Freq[K]+Wsin(Z[22])→Z[19]“XR(m)=”:Z[18]◢“YR(m)=”:Z[19]◢If P=1:Then Prog “SUB5-36”:IfEndElse NO:IfEnd:IfEndReturn6.SUB5-35(平曲线要素数据库子程序,可扩充为多条线路)If N=2:Then Goto 1:IfEndIf N=0:Then Goto 2:IfEnd“+PEG(m)=”?→FIf F≤47129.607:Then 第一交点桩号→Z[25]:交点X坐标→Z[26]:交点Y坐标→Z[27]:前交点X坐标→Z[28]:前交点Y坐标→Z[29]:转角(左负右正)→Z[30]:第一缓和曲线长度→S:圆曲线半径→R:第二缓和曲线长度→T:本平曲线起点桩号→Z[31]:本平曲线终点桩号→Z[32]:ReturnElse If F≤48000:Then 第二交点桩号→Z[25]:交点X坐标→Z[26]:交点Y坐标→Z[27]:前交点X坐标→Z[28]:前交点Y坐标→Z[29]:转角(左负右正)→Z[30]:第一缓和曲线长度→S:圆曲线半径→R:第二缓和曲线长度→T:本平曲线起点桩号→Z[31]:本平曲线终点桩号→Z[32]:ReturnElse If F≤49009.82:Then 第三交点桩号→Z[25]:交点X坐标→Z[26]:交点Y坐标→Z[27]:前交点X坐标→Z[28]:前交点Y坐标→Z[29]:转角(左负右正)→Z[30]:第一缓和曲线长度→S:圆曲线半径→R:第二缓和曲线长度→T:本平曲线起点桩号→Z[31]:本平曲线终点桩号→Z[32]:ReturnElse If F≤50200:Then 第四交点桩号→Z[25]:交点X坐标→Z[26]:交点Y坐标→Z[27]:前交点X坐标→Z[28]:前交点Y坐标→Z[29]:转角(左负右正)→Z[30]:第一缓和曲线长度→S:圆曲线半径→R:第二缓和曲线长度→T:本平曲线起点桩号→Z[31]:本平曲线终点桩号→Z[32]:ReturnIfEnd:IfEnd:IfEnd:IfEnd…………………………………Lbl 1:If F≤47129.607:Then 第一交点桩号→Z[25]:交点X坐标→Z[26]:交点Y坐标→Z[27]:前交点X坐标→Z[28]:前交点Y坐标→Z[29]:转角(左负右正)→Z[30]:第一缓和曲线长度→S:圆曲线半径→R:第二缓和曲线长度→T:本平曲线起点桩号→Z[31]:本平曲线终点桩号→Z[32]:ReturnElse If F≤48000:Then 第二交点桩号→Z[25]:交点X坐标→Z[26]:交点Y坐标→Z[27]:前交点X坐标→Z[28]:前交点Y坐标→Z[29]:转角(左负右正)→Z[30]:第一缓和曲线长度→S:圆曲线半径→R:第二缓和曲线长度→T:本平曲线起点桩号→Z[31]:本平曲线终点桩号→Z[32]:Return:Else If F≤49009.82:Then 第三交点桩号→Z[25]:交点X坐标→Z[26]:交点Y坐标→Z[27]:前交点X坐标→Z[28]:前交点Y坐标→Z[29]:转角(左负右正)→Z[30]:第一缓和曲线长度→S:圆曲线半径→R:第二缓和曲线长度→T:本平曲线起点桩号→Z[31]:本平曲线终点桩号→Z[32]:ReturnElse If F≤50200:Then 第四交点桩号→Z[25]:交点X坐标→Z[26]:交点Y坐标→Z[27]:前交点X坐标→Z[28]:前交点Y坐标→Z[29]:转角(左负右正)→Z[30]:第一缓和曲线长度→S:圆曲线半径→R:第二缓和曲线长度→T:本平曲线起点桩号→Z[31]:本平曲线终点桩号→Z[32]:ReturnIfEnd:IfEnd:IfEnd:IfEnd…………………………………Lbl 2“JD PEG(m)=”?→Z[25]“JD X(m)=”?→Z[26]“JD Y(m)=”?→Z[27]“ZD X(m)=”?→Z[28]“ZD Y(m)=”?→Z[29]“TURNING ANGLE,-L +R(Deg)=”?→Z[30]“Lh1(m)=”?S“R(m)=”?R“Lh2(m)=”?T“START PEG(m)=”?→Z[31] 本平曲线起点桩号“END PEG(m)=”?→Z[32] 本平曲线终点桩号Return7.SUB5-36(锥坡放样坐标计算子程序)“ZHUIPO FANGYANG”◢“LONG R(m)=”?U 锥坡椭圆的长轴半径U“FW→LONG(Deg)=”?C 锥坡长轴的方位角C“SHORT R(m)=”?V 锥坡椭圆的短轴半径V“LONG→SHORT ANGLE(Deg)=”?Z 锥坡长半轴与短半轴的夹角If Z≥0:Then 1→D:Else -1→D:IfEnd 短半轴在长半轴右侧夹角为正,反之则为负U-V→L 计算锥坡椭圆长短轴的半径差Lbl 1“ADD ANGLE(Deg)=”?J 取锥坡椭圆的等分角度If J>Abs(Z):Then Return:IfEndC+DJ→HZ[18]+Vcos(H)→X:Z[19]+Vsin(H)→YIf J≤90:Then J→H:C→Q:Else 180-J→H:C+180→Q:IfEndLcos(K)→EX+Ecos(Q)→X 计算锥坡椭圆等分角度所对应的椭圆弧点X坐标Y+Esin(Q)→Y 计算锥坡椭圆等分角度所对应的椭圆弧点Y坐标“X(m)=”:X◢显示X坐标“Y(m)=”:Y◢显示Y坐标Goto 18.高程计算子程序(SUB5-37)Prog “SUB5-38”0.5Z[35]Abs(0.01(Z[37]-Z[36]))→Z[38]If Z[37]>Z[36]:Then 1→D:Else -1→D:IfEndIf List X[K]<Z[33]:Then -0.01Z[36]→H:Else 0.01Z[37]→H:IfEndAbs(Z[33]-List X[K])→LIf L>Z[38]:Then Z[34]+HL→Z[24]:Else Z[34]+HL+D(Z[38]-L)2÷(2Z[35])→Z[24]:IfEndReturn9.高程数据库子程序:SUB5-38(两条线路,可扩充为多条线路)If N=0:Then Goto 1:Else If N=2:Then Goto 2:IfEnd:IfEndIf List X[K]≤46500:Then 46150→Z[33]:361.26→Z[34]:40000→Z[35]:-0.3→Z[36]:-1.2→Z[37]:Return Else If List X[K]≤47200:Then 46800→Z[33]:353.46→Z[34]:20000→Z[35]:-1.2→Z[36]:1→Z[37]:ReturnElse If List X[K]≤48400:Then 47500→Z[33]:360.46→Z[34]:20000→Z[35]:1→Z[36]:-1.6→Z[37]:ReturnElse If List X[K]≤49600:Then 48700→Z[33]:341.26→Z[34]:10000→Z[35]:-1.6→Z[36]:2.45→Z[37]:ReturnElse 49800→Z[33]:368.21→Z[34]:150000→Z[35]:2.45→Z[36]:2.7→Z[37]:ReturnIfEnd:IfEnd:IfEnd:IfEndLbl 1:“C PEG(m)=”?→Z[33]“C H(m)=”?→Z[34]“R(m)=”?→Z[35]“I1=”?→Z[36]“I2=”?→Z[37]ReturnLbl 249840→Z[33]:369.19→Z[34]:100000→Z[35]:2.45→Z[36]:2.8→Z[37]:Return10.SUB5-39(坡口坡脚线坐标计算子程序)“TIANWA LINE”◢“L(1) Or R(Else)=”?C 选择中线左右,1为左,其它为右“DIST→ZX(m)=”?U 起坡点与中桩距离常数“H→ZX(m)=”?V 起坡点与中桩高差常数“T(1) Or W(Else)=”?Z 填方边坡为1,其它为挖方边坡“i=”?E 填方或挖方边坡坡度Lbl 1“FY DIST(m)=”?Q 实际计算距离If C=1:Then List Y[K]+Qcos(Z[13]-90)→Z[18]List Freq[K]+Qsin(Z[13]-90)→Z[19]Else List Y[K]+Qcos(Z[13]+90)→Z[18]List Freq[K]+Qsin(Z[13]+90)→Z[19]:IfEnd“X(m)=”:Z[18]◢“Y(m)=”:Z[19]◢Q-U→L: LE→BIf Z=1:Then Z[24]-V-B→Z[39]:Else Z[24]+V+B→Z[39]:IfEnd“JS H(m)=”:Z[39]◢计算出应有高程“SC H(m)=”?→Z[40] 输入实测高程Z[40]-Z[39]→H“GC(m)=”:H◢显示实测高程与计算高程的差异If Abs(H)<0.05:Then “FANGYANG OK!”◢Return:Else Goto 1:IfEnd。

相关主题