收藏 分销(赏)

Casio5800交点法与线元法(积木法)匝道坐标正反算放样程序.docx

上传人:s4****5z 文档编号:8899592 上传时间:2025-03-07 格式:DOCX 页数:5 大小:26.13KB
下载 相关 举报
Casio5800交点法与线元法(积木法)匝道坐标正反算放样程序.docx_第1页
第1页 / 共5页
Casio5800交点法与线元法(积木法)匝道坐标正反算放样程序.docx_第2页
第2页 / 共5页
点击查看更多>>
资源描述
Casio5800交点法与线元法(积木法)匝道坐标正反算放样程序 (XUFENG 2011.2.14) 本人一直以来想找一个交点法与线元法相结合的坐标正反算程序,在网上找了很久很久,没能找到一个较为满意的,有幸在测量空间看到大歪哥的《Casio5800交点法程序》与《线元法(积木法)匝道坐标正反算放样程序》,根据歪哥意见“需要的自行修改结合XY框架自己修改为数据库反算程序等”,本人不才,采用最笨的办法将两个程序综合了一下,使之能既能进行交点法正反算,又能进行线元法正反算。在此特别感谢大歪哥! 将程序发上来,愿与大家一同交流学习欢迎大家吐口水,只要能进步就行! 程序由一个主程序ZBZFS和8个子程序(JS、XY-A、XY-B、JDYS、1、2、3、4)构成,运行时只需运行主程序即可! 本程序适用于单交点对称型、不对称型、无缓和曲线单圆曲线型一个交点范围内(含交点前后有直线段时)的曲线要素核对和坐标正反算,手工输入要素,对设计图纸的“直线、曲线转角表”中交点数据进行复核验证,并能对单一线元进行坐标正反算。 1主程序名:ZBZFS(功能:进入计算主程序) 65→Dimz↙ Deg:Fix 3↙ "1.JD ZFS  2. ZHADAO ZFS"? I: I→Z[61]: "1.ZHONG SHU JS 2. JS"? I↙ If I=1: Then Goto1: Else Goto2:IfEnd↙ LbI 1 :If Z[61]=1: Then Prog"JDYS":Else  Cls:"K0"?A:"KN"?L :"X0"?U :"Y0"?V :"F0"?W :"R0"?P :"RN"?Q:"ZX:-1,+1,0"?G:IfEnd↙ LbI 2 :Prog"JS" 2子程序名:JS(功能:选择正算或反算模式) Cls:"XC"?H:"YC"?Z↙ Cls:"1.ZS  2.FS"? I: I=2=>Goto 3↙ LbI 1 : Cls: If Z[61]=1: Then"JD ZS KX+XXX"?K :Prog"4": Else "ZHADAO ZS KX+XXX"?K :IfEnd↙ LbI  2: Cls:90→B: Cls:"RJ Or 0  To K"?B:B=0 =>Goto 1:"Z"?T↙ Prog "XY-A"↙ X+Tcos(M+B)→X↙ Y+Tsin(M+B)→Y↙ 360Frac((M+360)÷360→M↙ Pol(X-H,Y-Z : 360Frac((J+360)÷360→J↙ 2→O: Prog "XY-B":Goto 2↙ LbI 3 : Cls: If Z[61]=1: Then"JD FS KN+"?K:"X"?C:"Y"?D:Prog"4":Else Cls: " ZHADAO FS":"X"?C:"Y"?D:IfEnd↙ LbI 4 :Prog "XY-A"↙ (D-Y)sin(M)+(C-X)cos(M)→H↙ If Abs(H)>X10-3 :Then K+H→K:Goto 4:IfEnd↙ (D-Y)÷cos(M)→T↙ 3→O: Prog "XY-B":Goto 3↙ 3子程序名: XY-A(功能:坐标计算程序) 5→N: G(Q-1-P-1)÷Abs(L-A)→F: Abs(K-A)÷N→R: 90R÷π→S: W+(FNR+2GP-1)NS→M:1→E↙ U+R÷6×(Cos (W)+Cos (M) +4∑(Cos (W+((E+0.5)FR+2GP-1)×(E+0.5)S),E,0,(N-1))+2∑(Cos (W+((EFR+2GP-1)ES,E,1,(N-1)))→X ↙ V+R÷6×(sin (W)+sin (M) +4∑(sin (W+((E+0.5)FR+2GP-1)×(E+0.5)S),E,0,(N-1))+2∑(sin (W+((EFR+2GP-1)ES,E,1,(N-1)))→Y↙ 4子程序名: XY-B(功能:显示正算或反算结果) If O=2:Then↙ Cls :"K×××=":"Z=":"X=":"Y=": Locate 6,1, K : Locate 4, 2, T : Locate 4,3, X : Locate 4,4, Y◢ If T=0 :Then Cls :"QF(Z)=": Locate 8,1, M:M▼DMS◢ IfEnd↙ Cls :"K×××=":"S=": Locate 6,1, K : Locate 4, 2, I : "F=":J:J▼DMS◢ IfEnd↙ If O=3:Then "X=":"Y=":"K×××=":"Z=": Locate 4,1,C: Locate 4, 2, D : Locate 6,3,K :Locate 4,4,T◢ IfEnd:Cls↙ 5子程序名:4(功能:将交点参数转为线元计算参数) LbI 1: IF Z[48]<0 :Then -1→Z[62] : Else:1→Z[62]:IfEnd LbI 2: If K≥Z[57]:Then Z[57]→A  :Z[1]→L  :Z[23]→U  :Z[24]→V : Z[31]→W : 10^45→P   :10^45→Q : 0→G:IfEnd↙ LbI 3:If K≥Z[1]:Then Z[1]→A : Z[2]→L : Z[19]→U : Z[20]→V  :Z[29]→W : 10^45→P   :Z[46]→Q : Z[62]→G: IfEnd↙ LbI 4:If K≥Z[2]:Then Z[2]→A : Z[4]→L  :Z[25]→U : Z[26]→V  :Z[32]→W : Z[46]→P  : Z[46]→Q : Z[62]→G: IfEnd↙ LbI 5:f K≥Z[4]:Then Z[4]→A : Z[5]→L : Z[27]→U  :Z[28]→V : Z[33]→W : Z[46]→P  : 10^45→Q : Z[62]→G: IfEnd↙ LbI 6:If K≥Z[5]:Then Z[5]→A : Z[5]+1000→L  :Z[21]→U : Z[22]→V : Z[30]→W  :10^45→P :  10^45→Q : 0→G : IfEnd↙ 6子程序名:JDYS(功能:输入交点要素、显示交点要素及主点坐标) Cls : " BP"?H:H→Z[57]:"K(JD)"?K:K→Z[41] :"X(JD)"?X :X→Z[42]:"Y(JD)"?Y:Y →Z[43]:"LS1"?B:B→Z[44] :"LS2"?C:C →Z[45]: ?R:R →Z[46]:"(ZH)FWJ°"?M:M→Z[47] : "α(Z-,Y+)°"?O:O→Z[48] : Z[47]+Z[48]→Z[49]: Prog "1":Prog "2"↙ Cls :"T1=":"T2=":"L=":"LY=": Locate 4,1, Z[50] : Locate 4,2, Z[51]: Locate 4,3, Z[52] : Locate 4,4, Z[53]◢ Cls :"E=": Locate 7,1, Z[54] Cls :"K(QD)=": "X=": "Y=": "FWJ="Locate 7,1,Z[57] :Locate 7,2, Z[23] :Locate 7,3, Z[24] :Locate 7,4, Z[31] ◢ Cls :"K(ZH)=": "X=": "Y=": "FWJ=":Locate 7,1,Z[1] : Locate 7,2, Z[19] :Locate 7,3, Z[20] :Locate 7,4, Z[29]◢ Cls : "K(HY)=": "X=": "Y=": "FWJ=": Locate 7,1,Z[2] : Locate 7,2, Z[25] :Locate 7,3, Z[26] :Locate 7,4, Z[32]◢ Cls :"K(QZ)=": Locate 7,1,Z[3]◢ Cls :"K(YH)=": "X=": "Y=": "FWJ=": Locate 7,1,Z[4] : Locate 7,2, Z[27] :Locate 7,3, Z[28] :Locate 7,4, Z[33]◢ Cls :"K(HZ)=": "X=": "Y=": "FWJ=": Locate 7,1,Z[5] : Locate 7,2, Z[21] :Locate 7,3, Z[22] :Locate 7,4, Z[30]◢ 7子程序名: 1(功能:计算交点要素) If Z[48]<0 :Then  -1→Z[55] : Else 1→Z[55] : IfEnd : Z[55]* Z[48]→Z[56] ↙ Z[44] 2 ÷24÷Z[46]- Z[44]^(4)÷2688÷Z[46] ^(3) →Z[6] ↙ Z[45] 2 ÷24÷Z[46]- Z[45]^(4)÷2688÷Z[46] ^(3) →Z[7] ↙ Z[44]÷2-Z[44]^(3)÷240÷Z[46]2 →Z[8] ↙ Z[45]÷2-Z[45]^(3)÷240÷Z[46]2 →Z[9] ↙ Z[8]+(( Z[46]+Z[7]-( Z[46]+Z[6])cos(Z[56]))÷sin(Z[56]))→Z[50]↙ Z[9]+(( Z[46]+Z[6]-( Z[46]+Z[7])cos(Z[56]))÷sin(Z[56]))→Z[51]↙ Z[46]* Z[56]π÷180+( Z[44]+ Z[45]) ÷2→Z[52]↙ Z[46]* Z[56]π÷180-( Z[44]+ Z[45]) ÷2→Z[53]↙ (Z[46]+(Z[6]+Z[7])÷2)÷cos(Z[56]÷2)- Z[46]→Z[54]↙ Z[41]-Z[50]→Z[1] ↙↙ Z[1]+Z[44]→Z[2] ↙↙ Z[2]+Z[53]÷2→Z[3]↙ Z[1]+Z[52]-Z[45]→Z[4]↙ Z[4]+Z[45]→Z[5]↙ 8子程序名: 2(功能:计算主点坐标及切线方位角) Z[42]-Z[50]cos(Z[47])→Z[19]: (直缓坐标) Z[43]-Z[50]sin(Z[47])→Z[20]↙ Z[47]→Z : 360Frac((Z+360)÷360→Z[29] (方位角) Z[42]+Z[51]cos(Z[49])→Z[21]: (缓直坐标) Z[43]+Z[51]sin(Z[49])→Z[22]↙ Z[49]→Z: 360Frac((Z+360)÷360→Z[30] (方位角) Z[1]-Z[57]→L↙     (H→Z[57]为前直线起点桩号) Z[42]-( Z[50]+L)cos(Z[47])→Z[23]↙       (前直线起点坐标) Z[43]-( Z[50]+L)sin(Z[47])→Z[24]↙ Z[47]→Z : 360Frac((Z+360)÷360→Z[31]↙   (方位角) Z[44]→Z[12]:Z[44]→Z[13]:Prog"3"↙ Z[4]-Z[1]→L:90(2L-Z[44])÷Z[46]÷π→Z[11]↙ Z[46]sin(Z[11])+Z[8]→Z[14]:Z[46](1-cos(Z[11]))+Z[6]→Z[15]↙       Z[19]+Z[14]cos(Z[47])-Z[55]Z[15]sin(Z[47])]→Z[27]↙  (圆缓点坐标) Z[20]+Z[14]sin(Z[47])+Z[55]Z[15]cos(Z[47])]→Z[28]↙ Z[47]+Z[55]Z[11]→Z: 360Frac((Z+360)÷360→Z[33]↙(方位角) Z[2]-Z[1]→L:90(2L-Z[44])÷Z[46]÷π→Z[58]↙ Z[46]sin(Z[58])+Z[8]→Z[14]:Z[46](1-cos(Z[58]))+Z[6]→Z[15]↙       Z[19]+Z[14]cos(Z[47])-Z[55]Z[15]sin(Z[47])]→Z[25]↙  (缓圆点坐标) Z[20]+Z[14]sin(Z[47])+Z[55]Z[15]cos(Z[47])]→Z[26]↙ Z[47]+Z[55]Z[58]→Z: 360Frac((Z+360)÷360→Z[32]↙(方位角) 9子程序名: 3(主点坐标计算辅助程序) If Z[12]=0 :Then 0→Z[14]: 0→Z[15]:Else↙ Z[12]- Z[12]^(5)÷40÷(Z[46]*Z[13])2+ Z[12]^(9)÷3456÷(Z[46]*Z[13])^(4) →Z[14]↙ Z[12]^(3)÷6÷(Z[46]*Z[13])-Z[12]^(7)÷336÷(Z[46]*Z[13])^(3)+ Z[12]^(11) ÷42240÷(Z[46]*Z[13])^(5)→Z[15] ↙ IfEnd↙ 程序说明: 1、进入程序:1.JD ZFS  2. ZHADAO ZFS? 选1为交点法正反算(以后操作均为交点法计算),选2为线元法正反算(以后操作均为线元法计算) 2、ZHONG SHU JS 2. JS?选1重输参数,选2直接进入交点法或线元法正反算(参数为已输过的参数) 3、参数输入: 一、交点法已知数据输入: BP?上一交点ZH桩号 K(JD)?交点桩号 X(JD)?交点X坐标 Y(JD)?交点Y坐标 LS1  ?第一缓和曲线长度 LS2  ?第二缓和曲线长度 R  ? 圆曲线半径 (ZH)FWJ°?交点前(即前交点至本交点也即ZH点)的正切线方位角 α(Z-,Y+)?本交点处线路转角(左转为负,右转为正,度分秒输入) 交点法计算要素显示: T1=第一切线长 T2=第二切线长 L=曲线总长 LY=圆曲线长 E=曲线外距 K(ZH)=直缓点桩号 K(HY)=缓圆点桩号 K(QZ)=曲中点桩号 K(YH)=圆缓点桩号 K(HZ)=缓直点桩号 二、线元法已知数据输入: K0? KN? R0? RN?F0?X0? Y0?ZX? 分别为线元起点桩号 、终点桩号、起点半径、终点半径、起点切线方位角、起点X坐标、起点Y坐标、线元转向。 4、XC ?    YC? 输入置镜点即测站的X,Y坐标 5、1.ZS 2.FS选1正算 选2反算 程序线元判断原则: (1) 以道路中线的前进方向(即里程增大的方向)区分左右; (2) 当所求点位于中线时,Z=0;当位于中线左侧时,Z取负值;当位于中线右侧时,Z取正值。 (3) 当线元为直线时,其起点、终点的曲率半径为无穷大,以10的45次代替输入×10x45。 (4) 当线元为圆曲线时,无论其起点、终点与什么线元相接,其曲率半径均等于圆弧的半径。 (5) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45次代替输入×10x45;与圆曲线相接时,曲率半径等于圆曲线的半径。终点与直线相接时,曲率半径为无穷大,以10的45次代替输入×10x45;与圆曲线相接时,曲率半径等于圆曲线的半径。 (6) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。终点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。 6、循环计算部份: 输入与显示简单说明 JD ZS KX+XXX? 或 ZHADAO ZS KX+XXX?输入所求的桩号(交点法或线元法 ) Z ?              输入所求点距中线的边距(在中线输零,左负右正) RJ?              输入边桩时左右边桩连线与线路前进方向中桩切线的右交角(当输入数字0时进入下一个桩号计算输入) X =、Y =            计算得出的所求点的左、中、右 的X Y坐标 QF(Z)= ×××            计算得出所求点的中桩切线方位角   F= ×××    计算得出置镜点到测点的方位角 S= ×××   计算得出置镜点到测点的水平距离     JD FS KN+?  交点法反算时需输入反算点所在(前直线,前缓和段、圆曲线、后缓和段、后直线)线元中的任一点桩号(定位线元用) X=×××    反算输入所求点的X坐标 Y=×××     反算输入所求点的Y坐标 K=×××      计算得出求点所对应的里程 Z=×××       计算得出求点到所对应的里程的垂直距离 (负就是左边,正就是右边)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服