坐标及高程计算程序表式电子版
- 格式:xls
- 大小:159.00 KB
- 文档页数:12
小白自学ExcelVBA道路坐标高程计算程序流程1声明1.1 本人是个工作时间不长测量施工员。
1.2听说想轻松愉快的干好测量得学门编程,又听说ExcelVBA是个简单的可视化的常用的……1.3 本人很懒,面对厚厚的全是“昏天暗地”代码的ExcelVBA教科书籍,实在是没心没力。
其实俺还是懂点儿VB编程的(学校学过“=”是赋值,if、while、end的意思,嘿嘿,还有画窗体图框,其他的就都还给老师了)。
1.4 谷歌、度娘,是咱的好帮手。
1.5 仰望的存在,神一般的存在,无私的化身!道路中边桩坐标计算程序120424.xls(王中伟”教授”QQ:595077)曲线坐标计算程序VBA 4.6.xls(陈超”中铁”QQ:295188316)陈师傅的VBA代码乍一看感觉比王老师的让人头痛,怎么说咱们也是个有理想有目标的人,要啃就啃硬骨头!就选~~~嘿嘿~~~王老师的程序吧!1.6 道路中边桩坐标计算程序120424.xls代码获取。
王老师、陈师傅担心不懂编程的人,不小心修改代码导致程序错误,设置了vba密码(个人认为),其次我跟他们不熟,没有正大光明的要的密码,于是求助谷歌度娘,这个关于VBA 密码破解,于是很不厚道的得到了密码,为了方便本次学习,又很不厚道的把道路中边桩坐标计算程序120424.xls的密码贴出来(df750726),神人勿怪呀!2 代码理解ing…我们通过密码打开vba代码窗口,大家可以先把每个表格打开浏览一下代码,是不是感觉很短呀,感觉应该是超级链接的意思,嘿嘿,主要的代码在模块“lx”里,打开下,代码多吧,这就是咱们要肯的骨头。
现在咱们冲呀!2.1 第一段代码理解貌似第一段代码是定义的意思“定义π值”、'定义桩号点”、“'定义坡段”、“'定义基本曲线”①Public Const PI As Double = 3.14159265358979谷歌翻译:Public Const PI As Double公共常量PI 作为双精度浮点型百度百科:双精度浮点数双精度浮点数(Double)用来表示带有小数部分的实数,一般用于科学计算,用8个字节(64位)存储空间,其数值范围为1.7E-308~1.7E+308,双精度浮点数最多有15或16位十进制有效数字,双精度浮点数的指数用“D”或“d”表示。
一个excle模板的制作在当今社会,excle的使用已经是越来越来频繁了,几乎涉及所有的行业,路桥施工也不例外。
我在某路桥公司曾经负责过某项目部的测量工作。
大家都知道,测量最主要的就是计算了,如坐标、高程、横坡度等。
我现在给大家推荐一款我自己编制的关于测量计算的excel模板.首先我会跟大家介绍一下模板的作用,然后再一一讲解此模板的制作过程.首先给大家看一下此模板的界面如下:也许大家咋一看,切~ 这算啥,我也会做这张表格,实在是太简单了.不错,如果仅仅是靠手动输入这样子的数字,也许只要懂一点点excle的人都会制作出这张表格吧。
不过,这张表格并不是你表面所看到的仅仅是几个数字而已,其内在的公式才是它的亮点。
也许这样讲大家还不是很清楚,我继续给大家截个图,看看它里面的公式是什么。
大家注意到上面的公式了吗,并不是仅仅是输入数字就完事的,它是一个自定义函数zb x(),那么后面的都是一样吗?完全正确,后面的都是自定义函数,它们分别是zby()、sqx()、hpz()、hpy()。
也许大家会问,恩,是不错,但是有什么用呢?那让我先给大家简述一下这个自定义函数的用法。
竟然是一个函数,那么它就必须要有一个自变量,这几个函数的自变量又是什么呢?其实这个模板里面所有函数的自变量只有一个,就是桩号。
什么意思?就是只要你给出任意一个桩号,都能得到其对应的坐标、中桩高程和横坡度.假设我们要K38+000~K38+200段落内每隔20M一个断面所有点的坐标、中桩高程、以及左右横坡。
我就用这个模板给大家演示一下(此模板暂时数据只针对黄祁高速公路六标项目部)。
先在桩号那一列把K38+000~K38+200输入进去,可不要真的把字母“K”和加号“+”给输进去,只用输入纯数字就行了,否则计算会出错,之所以在模板里显示的是那样子,只不过是自定义的单元格式而已。
第二步剩下的仅仅就是拖动公式了,后面的都是公式,所以可以一起拖下来,先选定后面的所有单元格,然后向下直接拖动至最后,那么你需要的数据就全部出来了。
786635957WOSHIchunzi1314CASIOfx-4500PA计算器程序和操作一、水准测量高程计算程序1、程序名:H-(1)第一行:L1 lbl 0 第二行:L2 Z:A:{BK}第三行:L3 H=Z+A-B◢第四行:L4 V=K-H ◢第五行:L5 Goto 02、操作步骤①开机:按AC键:②呼出文件名:按FILE键,显示H-(1)文件名为止:③按EXE键,显示Z?,输入水准点BM后视点高程:如129.919;④按EXE键,显示A?,输入后视水准尺读数:如1.633;⑤按EXE键,显示B?,输入前视水准尺读数:如4.186;⑥按EXE键,显示H=127.366,此结果是K3+300中桩地面髙程;⑦按EXE键,显示K?,输入K3+300中桩设计高程127.032;⑧按EXE键,显示V=K-H,-0.334此结果是K3+300中桩挖出数据;⑨按EXE键,显示B?,连续算下去……(-挖;+填)。
二、坐标反算程序①1、程序名;1ZBFS第一行:L1 AB:Fixm:{CD}第二行:L2 Pol(C-A,D-B)◢第三行: L3 W<0 =〉W=W+360第四行:L4 lntW+0.01lnt()+0.006 Frac(60 Frac W)◢2、操作步骤①开机:按AC键:②呼出文件名:按FILE键,显示1ZBFS文件名为止:③按EXE键,显示A?,输入第一点x坐标:如363.567(也可当测站);④按EXE键,显示B?,输入第一点y坐标:如814.454(也可当测站);⑤按EXE键,显示C?,输入第二点x坐标:如406.260 (也可作后视点);⑥按EXE键,显示D?,输入第二点y坐标:如1029.145(也可作后视点);⑦按EXE键,显示Pol(C-A,D-B):218.89476为两点间距离;⑧按EXE键,显示lntW+0.01lnt(60 Frac W)+0.006 Frac(60 Frac W)78.45108两点方位角;(即是78°45′11″)三、坐标正算程序1、程序名;2ZBZS第一行:L1 AB:Lbl5:{ST}第二行:L2 C=A+Rce(S,T)◢第三行:L3 D=B+W◢第四行:L4 Goto52、操作步骤①开机:按AC键:②呼出文件名:按FILE键,显示2ZBZS文件名为止:③按EXE键,显示A?,输入第一点x坐标:如363.567;④按EXE键,显示B?,输入第一点y坐标:如814.454;⑤按EXE键,显示S?,输入两点间距离:如218.89476;⑥按EXE键,显示T?,输入两点方位角:如78°45′10.8″;⑦按EXE键,显示C=A+Rce(S,T),为第二点x坐标:如406.260;⑧按EXE键,显示D=B+W,为第二点y坐标:如1029.14499;四、坐标反算程序②1、程序名;ZF第一行:L1 Lbl 0第二行:L2 A:B:{CD}:C≤0 G=〉oto2第三行:L3 X=C-A第四行:L4 Y=D-B第五行:L5 S=Pol(X,Y)◢第六行:L6 T=W第七行:L7 T<0=〉第八行:L8 T=W ◢第九行:L9 Goto 0第十行:L10 Lbl 1第十一行:L11 T″T″=360+T◢第十二行:L12 Goto 0第十三行:L3 lbl 2第十四行:L14 {AB}第十五行:L15 Goto 02、操作步骤①开机:按AC键:②呼出文件名:按FILE键,显示ZF文件名为止:③按EXE键,显示A?,输入第一点x坐标:如363.567 ;④按EXE键,显示B?,输入第一点y坐标:如814.454;⑤按EXE键,显示C?,输入第二点x坐标:如354.618;⑥按EXE键,显示D?,输入第二点y坐标:如553.341;⑦按EXE键,显示Pol(C-A,D-B)S=Pol(X,Y):261.2663为两点间距离;⑧按EXE键,显示T=268.0371接着按SHIFT °′″键显T=268°2′13.55″为两点的方位角;⑨按EXE键,显示C?,输入下一点x值;⑩重复以上操作方法(略)五、线路直线段点坐标计算程序(1) ㈠本可计算前切线YZ至ZY点(或后切1、程序名;Z-X,Y(1) 线ZY至YZ)间直线上任点中、边桩坐标。
CASIO5800计算器公路测量计算程序程序设计:魏加训2009.2.28Casio 5800计算器数据库型万能坐标正反算计算程序一、主程序:1XYLbl 0:“1.ZS 2.FS”?→V↙If V=1: Then “CZ X” ?H: “CZ Y” ?T:Goto 1: Else If V=2: Then Goto 2 :IfEnd: IfEnd↙Lbl 1: “K××+×××”?D:?Z: “RJ”?G↙Prog “P.Z”↙(注:计算另一线路时修改替换此处和FS子程序中的P.Z为对应线路的数据库名称即可)Prog “ZS” ↙If Z<0: Then Cls:“X(L)=”: “Y(L)=”: Locate 6,1,X : Locate 6,2,Y◢Pol(X-H,Y-T): Cls: “S(L)=”: Locate 6,1,I : "F(L)=":360Frac((J+360)÷360▼DMS◢Goto 1:IfEnd↙If Z=0: Then Cls:“X(Z)=”: “Y(Z)=”: Locate 6,1,X : Locate 6,2,Y : “QXFWJ (Z)=”: 360Frac((J+360)÷360▼DMS◢Pol(X-H,Y-T): Cls: “S(Z)=”: Locate 6,1,I : "F(Z)=":360Frac((J+360)÷360▼DMS◢Goto 1:IfEnd↙If Z >0: Then Cls:“X(R)=”: “Y(R)=”: Locate 6,1,X : Locate 6,2,Y◢Pol(X-H,Y-T): Cls: “S(R)=”: Locate 6,1,I : "F(R)=":360Frac((J+360)÷360▼DMS◢Goto 1:IfEnd↙Lbl 2: 0→Z:0→G:”X” ?M:”Y” ?I:Prog “FS”: Cls:“K=”:“Z=”:Locate 4,1,D : Locate 4,2,Z◢Goto 2↙二、正算子程序:ZS5→N: U(E-1-R-1)÷Abs(K-F)→P: Abs(D-F)÷N→Q: 90Q÷π→S:(注:此处5→N是控制计算精度可修改的,一般取值为4~6即可)C+(NPQ+2UR-1)NS→J:1→L↙A+Q÷6×(Cos (C)+Cos (J) +4∑(Cos (C+((L+0.5)PQ+2UR-1)×(L+0.5)S),L,0,(N-1))+2∑(Cos (C+((LPQ+2UR-1)LS,L,1,(N-1)))+ZCos(J+G) →X :B+Q÷6×(Sin(C)+Sin( J) +4∑(Sin (C+((L+0.5)PQ+2UR-1)×(L+0.5)S),L,0,(N-1))+2∑(Sin (C+((LPQ+2UR-1)LS,L,1,(N-1)))+Z Sin(J+G)→Y ↙三、反算子程序:FSLbl 0:Prog “P.Z”:Prog “ZS”↙(注:计算另一线路时修改替换此处和1XY主程序中的P.Z为对应线路的数据库名称即可)(I-Y)sin(J)+(M-X) cos(J)→ P :D+P→ D ↙If Abs(P)≥0.001:Then Goto 0 : Else Goto 1 : IfEnd↙Lbl 1: (I-Y)cos(J)-(M-X) sin(J) →Z四、曲线元要素数据库格式If D≥线元起点里程:Then线元起点里程→F:线元终点里程→K:线元起点X坐标→A:线元起点Y坐标→B:线元起点切线方位角→C:线元起点半径→R:线元终点半径→E:线元转向(注:左-1,右+1,直线为0) →U: IfEnd↙五、曲线元要素数据库样例:P.ZIf D≥***:Then***→F:***→K: ***→A: ***→B: ***→C: ***→R: ***→E: ***→U: IfEnd↙If D≥***:Then***→F:***→K: ***→A: ***→B: ***→C: ***→R: ***→E: ***→U: IfEnd↙If D≥***:Then***→F:***→K: ***→A: ***→B: ***→C: ***→R: ***→E: ***→U: IfEnd↙...............…………………………………………………………If D≥***:Then***→F:***→K: ***→A: ***→B: ***→C: ***→R: ***→E: ***→U: IfEnd↙(注:如一条路有多个曲线元要素则按顺序排列依次添加入数据库P.Z中)六、程序说明:程序线元判断原则:(1) 以道路中线的前进方向(即里程增大的方向)区分左右;(2) 当所求点位于中线时,Z=0;当位于中线左侧时,Z取负值;当位于中线右侧时,Z取正值。
1.主程序 JDFZBZFS17→DimZ: Norm 2:1→ A " XY=1,FS=2,GC=3,LJKD=4,BPFY=5,BZFY=6”?A:A=1=>Goto1:A=2=>Goto 2: A=3=>Goto 3:A=4=>Goto 4: A=5=>Goto 5: A=6=>Goto 6LbI 1:Prog "DX":LbI A:Prog"QX": 90→B: "PJ1"?B:B →C: "PJ2"?C:B→Z[1]:C→Z[8]:LbI B:1→F: "KM"?Z: Prog"X1":?D:Prog"THB":O→L: Z[2]+Z[1]-Z[8] →E:X+L cos(E) →X:Y+Lsin(E) →Y:Prog"XY":Prog"JS":Goto B LbI 2:2→F:90→Z[1] :Prog"QX":LbI C: "KM"?Z:Prog"X 1": "XO"?X: "Y0"?Y:Prog"THB":Fix 5:Prog"ZD":G oto CLbI 3:Prog"QX": 0→B: "H-B"?B:B→Z[9]:LbI D: "KM"? Z:?D:Prog"H":Fix 5: "H=": H-Z[9] →H◢"I=":I◢Goto DLbI 4:Prog"QX":LbI E: "KM"?Z:?D:Prog"GD":Fix 5:" SJGD=": Locate 6,4,L:Goto ELbI 5:Prog"QX":0.5→B:"TH-GD"?B:B→Z[19]:LbI F:2→F: 90→Z[1]:"KM"?Z:Prog "X1":"X0"?X: "Y0"?Y: "SJ GC"?H: 0→M: "M0(YDMGC) "?M: Prog"BP FY":Fix 3:S→O: "L0=":Locate 6,4,O:Prog"ZD":H-M→G:"TW=": Lcoate 6,4,G: Goto FLbI 6:Prog"DX":LbI G:Prog"QX":LbI H:1→F:90→Z[1]:"KM"?Z: Goto G:Prog"X1":?D:Prog"THB":Prog"XY":Prog"JS":Prog"H":0→M:"M0"?M:Fix 2:H-M→T:"TW=": 6,4,T◢ Goto H2. 坐标计算次程序(THB)LbI J: If F=1:Then Prog "Z":Goto 1:Else Prog "ZX":Goto 2: IfEnd: LbI 1:I+D×COS(Z[2]+Z[1]) →X: J+D×Sin(Z[2]+Z[1]) →Y: LbI 23.路基开挖边线及填方坡脚线放样程序程序名:BP FYLbI H: 13→L:H-M→G: Prog “W1”:If G <0:Then –G →G:G oto W:Else G →G:Goto TLbI W:Z[8]+Z[9]→A: If G >A:Then Goto 1:Else If G >Z[8]: Then Goto 2:Else Goto 3:IfEndLbI 1: L+Z[10]+Z[11]+Z[12]+( G -A-( Z[11]+Z[12])×0.03)×Z[7]+Z[9]×Z[6]+Z[8]×Z[5] →S:Goto ZLbI 2: L+Z[10]+Z[11]+( G -Z[8]- Z[11]×0.03)×Z[6]+Z[8]×Z[5] →S:Goto ZLbI 3: L+ G×Z[5]→S:Goto ZLbI T:Z[16]+Z[17] →B:If G >B:Then Goto 4:Else If G >Z [16]:Then Goto 5:Else Goto 6:IfEndLbI 4: L+Z[18] ×2+ (G -B-2×Z[18]×0.03)×Z[15]+ Z[17]×Z[14]+ Z[16]×Z[13]→S:Goto ZLbI 5: L+Z[18]+( G -Z[16]- Z[18]×0.03)×Z[14]+Z[16]×Z [13]→S:Goto ZLbI 6: L+ G×Z[13]→S:Goto ZLbI Z4.极坐放样计算程序(计算放样点至置仪点方位角及距离)程序名:JSX:Y:Z[11]→K:Z[12]→L:Pol(X-K, Y-L):IF J<0:Then J+360→J:IfEnd:Fix 4:” FWJ=”: J◢DMS◢Fix 5:” S=”: I◢程序名:ZDFix 3:"KM=":Locate 6,4,Z:"D=":Locate 6,4,D5.交点法正算子程序(Z)程序名:ZH2÷R÷24-H∧(4) ÷2688÷R∧(3)→A(圆曲线内移量H表示缓和曲线长)H÷2-H∧(3) ÷240÷R2→B(切垂距)((H2-N2)÷24÷R)÷Sin(Abs(P))-((H∧(4)-N∧(4))/2688/R∧(3)) ÷Sin(Abs(P))→E(R+A)tan(Abs(P) ÷2)+B-E→T:P÷Abs(P) →W0→M:H→CIf Z≤O-T:Then Z-O→S:G→Z[2]:Goto 2: IfEndIf Z≤O-T+H:Then Z-O+T→S:Prog “HX”:G+WK→Z[2]:Goto 4:IfEndIf Z≤O-T+ΠR×Abs(P) ÷180+H÷2-N÷2: Then 180(Z-O+T-0.5H) ÷R÷Π→S: A+R(1-Cos(S))→B H÷2-H∧(3) ÷240÷R2+Rsin(S)→A:R→M:G+WS→Z[2]:Goto 4: IfEnd:O-T+ΠR×Abs(P)÷180+H÷2+N÷2-Z→S:(R+N2÷R÷24-N∧(4)÷2688÷R∧(3))tan(Abs(P) ÷2)+N÷2-N∧(3) ÷240÷R2+E→T :N→H:Prog “HX”:G+P →S:S-WK→Z[2]:U+(T-A)Cos(S)-WBSin(S)→I:V+(T-A)Sin(S)+WBcos(S)→J:Goto 3:LbI 4:U+(A-T)cos(G)-WBsin(G)→I:V+(A-T)Sin(G)+WBcos(G) →J: Goto 3: LbI 2:U+Scos(Z[2])→I:V+Ssin(Z[2]) →J: LbI 3:C→H6. 交点法缓和段转化子程序(HX)程序名:HXS-S∧(5) ÷40÷R2÷H2+S∧(9)÷3456÷R∧(4) ÷H∧(4)→A:S∧(3) ÷6÷R÷H-S∧(7) ÷336÷R∧(3) ÷H∧(3)+S∧(11) ÷42240÷R∧(5) ÷H∧(5)→B:90S2÷Π÷R÷H→K:RS÷H→M7. 交点法反算子程序(ZX)程序名:ZXZ:0→D:LbI 0:Prog “Z”:Pol(X-I,Y-J):J-Z[2] →J:Isin(J) →S:Icos(J) →I:If Abs(I)<0.1:Then Z+I→Z:S→D:Goto 2:Else Goto 1: LbI 1:If M=0:Then Z+I→Z:Goto 0:Eles Pol(M-WS,I):(JMΠ)/180→I:Z+I→Z:Goto 0:IfEndLbI 28.路基标准半幅宽度计算程序程序名GD1→S: Prog “G1”:Z-C→E:(B-A)*E/S+A→L:9. 导线点子程序(DX)程序名:DX“X Z”?K:”YZ”?L:K→Z[11]:L→Z[12]10.高程计算子程序(H)程序名:HP rog “S1”:C-T→F:Z-F→S:C+T→E:G-TI→Q:If T=O:Then Q+SI→H:Goto 0:Else If Z<F:Then Q+SI→H:Goto 0:Else If Z≤E:Then Q+SI+S2÷2÷R→H:Goto 0:LbI 0:H:If D=0:Then Goto I:Else Prog “I”:H+V→H:Goto ILbI I11.高程超高计算程序(I)程序名:IIf Z[3]=1:Then Prog “I1”:Goto 1: IfEndLbI 1: If W=1:Then Goto Z:Else Goto X: IfEndLbI Z:If S=0:Then Abs(D)×M→V:Goto 2:Else Abs(D)×((N-M)×(Z-C)÷S+M)→V:Goto 2:IfEnd:LbI X:If S=0:Then Abs(D)×M→V:Goto 2:Else Abs(D)×(((3((Z-C)÷S)2-2((Z-C)÷S)∧(3))×(N-M))+M)→V:Goto 2:IfEndLbI 2:Abs(D)→E:V÷E→I:I(E-K)→V15.线路选择子程序(线路选择输0时。
高速公路坐标高程计算程序本软件简要说明:一、平曲线计算(主程序)1、J为起算点里程,C、D为起算点的X、Y坐标,F为起算点的切线方位角,R为圆曲线半径(左偏取负,右偏取正),A、B为第一、第二缓和曲线回旋参数,O为圆曲线长度,Ki为该分段的终点里程;2、对于直线段或圆曲线段,起算点可取直线或圆曲线上的任意一点;3、对于带第一、第二缓和曲线的平曲线段,起算点应取HY点;4、K为所求点的里程,T、P为第一偏距、偏角,S、Z为第二偏距、偏角,偏角取从该点的切线顺时针旋转的夹角;5、分段法则:直线单独分段;单一的圆曲线单独分段;缓和曲线1+圆曲线+缓和曲线2为一个整体单独分段,若不存在第一或第二缓和曲线(即不完全缓和曲线)仍然可以计算,A或B可取任意不为零的值;若不存在圆曲线,则O取零;6、无论任何时候A、B不能取零,否则可能导致被零除的错误;7、F、Q切线方位角输入输出均为度.分秒的格式,例如153°24′05.24″=153.240524。
Q改变时,可按照新方位角为基准,结合第一第二偏距、偏角重新计算所求点;8、输入平曲线参数后,默认为计算全线坐标,可修改来计算某段曲线,默认间距也可修改;9、可参考CAD图《平曲线计算图例》;10、生成的中桩CAD脚本设置成在世界坐标系下生成,注意的是世界坐标系与大地测量坐标系的区别是XY坐标是互换的,否则画出的图形与实际相反。
先打开CAD,设置好图层名称、颜色,并设置为当前层,然后单击CAD的工具==>运行脚本==>选中生成的脚本文件即可。
11、输出的坐标结果可以导入到EXCEL中,操作办法为:打开EXCEL,然后把坐标数据复制到单元格里,然后单击数据==>分列==>选中分隔符号==>下一步==>选中TAB键和逗号==>下一步==>完成即可。
下一次可直接在此表中粘贴,数据自动分列。
二、缓和曲线计算(辅助程序)1、本程序为辅助程序,用来从ZH点或HZ点计算整条完全的缓和曲线,若不知道HY点X、Y、Q参数,可用此程序计算出来,然后输入平曲线参数;2、参数设置参考平曲线计算;3、导出到EXCEL的办法同平曲线计算;三、直线计算(辅助程序)1、本程序为辅助程序,若已知P1(X1,Y1),P1-->P2的距离I及方位角J(度.分秒格式),可计算坐标P2(X2,Y2)。
CASIO 9860G SD线元法隧道三维(坐标正反计算、高程)计算程序1. A(此为主程序)Lbl 0:〝1.LC=>XY〝:〝2.XY=>LC〝:〝3.ZHZL=>GC〝:〝PB=>V=1,2,3〞?→V:If V=1:Then GOTO 1 :IfEnd :If V=2:Then GOTO 2 :IfEnd :If V=3:Then GOTO 3 :Else GOTO 0 :IfEnd:Lbl 3:〝ZH=H〝?→H :〝SDZF=Z〝?→Z:Prog〝ZGCZCX〝:GOTO 0:Lbl 1 :〝ZH=L〝?→L:If L>173000 And L<174661.96:Then GOTO 4 :Else GOTO 0 :IfEnd :Lbl 4:L→L:〝SDZF=Q〝?→Q:〝XLZJ,-Z+Y=Q〝:Q+0.125→Q:Prog 〝ZBQXYS〝:〝JSJD=J〝:90→J▲Prog 〝ZSZB〝:〝X=〝:X ▲ 〝Y=〝:Y▲〝FWJ=O〝:O▼DMS▲L→H:Q-0.125→Z:Prog 〝ZGCZCX〝:GOTO 0:Lbl 2:〝XO=M〝?→M:〝YO=R〝?→R:173300→L:If M>3845505.273 And M<3846506.099And R>499371.832 And R<500352.224 :Then GOTO 5:Else GOTO 2:IfEnd :Lbl 5:0→Q:0→J:Prog 〝ZBFS〝:〝LC=L〝:L ▲〝JL=Q〝:Q▲ 〝SDZJ,-Z+Y=Q〝:Q-0.125→Q ▲L→H:Q→Z:Prog 〝ZGCZCX〝:GOTO 02.正算坐标ZBZS( L-S ) / 4→H:90/π→F:HHF(1/T-1/I)/(K-S)→U:2HF/ I→D:C+4D+16 U→O:O+J→P :C+ D+ U→E:C+2D+4U→W:C+3D+9U→G:A+AbsH/3*(cosC+4(cosG+cosE)+2cosW+cosO)+Qcos P→X :B+AbsH/3*(sinC+4(sinG+sinE)+2sinW+sinO)+Qsin P→Y3.反算坐标:ZBFSLbl 0:Prog 〝ZBQXYS〝:Prog 〝ZBZS〝:O-90→Z:(R-Y)cosZ-(M-X) sinZ→P :L+P→L:If Abs P≥0.001:Then GOTO 0 :Else GOTO 1:IfEnd :Lbl 1: (R-Y)cosO-(M-X) sinO→Q4. 曲线元要素数据库:ZBQXYSIf L≥S And L<K :Then **→ S:**→ A:**→ B:**→ C:**→ I:**→ K:* *→ T IfEnd :If L≥S And L<K :Th en **→ S:**→ A:**→ B:**→ C:**→ I:**→ K:* *→ T IfEnd :If L≥S And L<K :Then **→ S:**→ A:**→ B:**→ C:**→ I:**→ K:* *→ T IfEnd :If L≥S And L<K :Then **→ S:**→ A:**→ B:**→ C:**→ I:**→ K:* *→ T IfEnd :If L≥S And L<K :Then **→ S:**→ A:**→ B:**→ C:**→ I:**→ K:* *→ T IfEnd :……………………………If L≥S And L<K :Then **→ S:**→ A:**→ B:**→ C:**→ I:**→ K:* *→ T IfEnd ┘(注:如有多个曲线元要素继续添加入数据库ZBQXYS中)5 高程计算主程序ZGCZCX (后有修改说明)Lbi1 :〝SCGC=X〝?→X:〝R=M〝:5.98→M:〝CS=N〝:1.603→N:Prog"GC SJK":C-D→F:Abs(RF÷2) →T:R AbsF÷F→R:If H≤B-T :Then 0→K:GOTO 2:IfEnd :If H>B-T And H<B+T :Then H-B+T→K :GOTO 2:IfEnd :If H≥B+T :Then 0→K:D→C:GOTO 2:IfEnd :Lbi 2 :〝XLZG=G〝:A-(B-H)C-K^2÷2R→G▲If Z≥0:Then If X>100 Then 〝YO1XGC=J〝:G+N→J▲〝YGCFSKD=J〝:Abs√(M^2-(X-(G+N))^2) →J▲〝YKDCQ,+C,-Q=J〝:J- Abs (Z+0.000) →J▲〝YSBSJGC=J〝:G+N+√(M^2-(Z+0.000)^2) →J▲〝YGCCQ,C+,Q-=J〝:X-J→J▲Else〝YO1XGC=J〝:G+N→J▲〝YSBSJGC=J〝:G+N+√(M^2-(Z+0.000)^2) →J▲ IfEnd :Else 〝ZO1XGC=J〝:G+N→J▲If X>100 :Then〝ZGCFSKD=J〝:Abs√(M^2-(X-(G+N))^2) →J▲〝ZKDCQ,+C,-Q=J〝:J- Abs (Z+0.000) →J▲〝ZSBSJGC=J〝:G+N+√(M^2-(Z+0.000)^2) →J▲〝ZGCCQ,C+,Q-=J〝:X-J→J▲Else〝ZSBSJGC=J〝:G+N+√(M^2-(Z+0.000)^2) →J ▲IfEnd :IfEnd6高程计算主程序子程序:GCSJKIf H>起点桩号 And H≤第一个竖曲线起点桩号Then 第一竖曲线交点高程→A:第一竖曲线交点桩号→B:第一竖曲线前坡度→C:第一竖曲线后坡度→D:第一竖曲线半径→R:IfEnd:If H>第一竖曲线止点桩号 And H≤第二竖曲线起点桩号Then 第一竖曲线交点高程→A:第一竖曲线交点桩号→B:第一竖曲线前坡度→C:第一竖曲线后坡度→D:第一竖曲线半径→R:IfEnd:If H>第一竖曲线止点桩号 And H≤第二竖曲线起点桩号Then 第一竖曲线交点高程→A:第一竖曲线交点桩号→B:第一竖曲线前坡度→C:第一竖曲线后坡度→D:第一竖曲线半径→R:IfEnd………………………(继续添加要素)说明:第一部分坐标部分(1、2、3、4)V=1进入坐标正算 V=2进入坐标反算V=3进入单独的高程计算当V不等于1、2、3时,则返回程序,要求再次输入V值。
道路桩算中边桩坐标高程计算程序道路桩是公路工程中的一种常用设施,用于标示道路的里程或其他信息。
在道路桩的设计施工过程中,需要计算各个中边桩的坐标和高程。
下面是一个用于计算道路桩坐标和高程的程序,进行了详细的说明。
```pythonimport mathdef calculate_coordinate(starting_coordinate, length, angle): """计算中边桩的坐标starting_coordinate: 起始坐标点,格式为(x, y)length: 桩与起始点之间的距离angle: 桩的方向角度,0度为正北方向,顺时针递增return: 计算得到的中边桩坐标,格式为(x, y)"""x = starting_coordinate[0] + length *math.sin(math.radians(angle))y = starting_coordinate[1] + length *math.cos(math.radians(angle))return (x, y)def calculate_elevation(starting_elevation, gradient, length):"""计算中边桩的高程starting_elevation: 起始高程gradient: 高程的斜率,单位为% (百分比) ,即千分之一length: 桩与起始点之间的距离return: 计算得到的中边桩高程"""elevation = starting_elevation + gradient * lengthreturn elevationdef main(:starting_coordinate = (100, 200) # 设置起始坐标点starting_elevation = 300 # 设置起始高程gradient = 0.5 # 设置高程的斜率为0.5%interval = 50 # 设置桩之间的距离为50米total_stakes = 10 # 设置需要计算的桩的总数为10个print("中边桩坐标和高程计算结果:")print("起始坐标点:", starting_coordinate)for i in range(1, total_stakes + 1):length = i * interval # 计算桩与起始点之间的距离angle = 45 + i * 10 # 计算桩的方向角度,每个桩相对于起始点逆时针旋转10度coordinate = calculate_coordinate(starting_coordinate, length, angle) # 计算中边桩坐标elevation = calculate_elevation(starting_elevation, gradient, length) # 计算中边桩高程print("桩{}:坐标:{},高程:{}".format(i, coordinate, elevation))if __name__ == "__main__":main```以上程序使用了Python语言实现了计算道路桩坐标和高程的功能。
1.主程序 JDFZBZFS17→DimZ: Norm 2:1→ A " XY=1,FS=2,GC=3,LJKD=4,BPFY=5,BZFY=6”?A:A=1=>Goto1:A=2=>Goto 2: A=3=>Goto 3:A=4=>Goto 4: A=5=>Goto 5: A=6=>Goto 6LbI 1:Prog "DX":LbI A:Prog"QX": 90→B: "PJ1"?B:B →C: "PJ2"?C:B→Z[1]:C→Z[8]:LbI B:1→F: "KM"?Z: Prog"X1":?D:Prog"THB":O→L: Z[2]+Z[1]-Z[8] →E:X+L cos(E) →X:Y+Lsin(E) →Y:Prog"XY":Prog"JS":Goto B LbI 2:2→F:90→Z[1] :Prog"QX":LbI C: "KM"?Z:Prog"X 1": "XO"?X: "Y0"?Y:Prog"THB":Fix 5:Prog"ZD":G oto CLbI 3:Prog"QX": 0→B: "H-B"?B:B→Z[9]:LbI D: "KM"? Z:?D:Prog"H":Fix 5: "H=": H-Z[9] →H◢"I=":I◢Goto DLbI 4:Prog"QX":LbI E: "KM"?Z:?D:Prog"GD":Fix 5:" SJGD=": Locate 6,4,L:Goto ELbI 5:Prog"QX":0.5→B:"TH-GD"?B:B→Z[19]:LbI F:2→F: 90→Z[1]:"KM"?Z:Prog "X1":"X0"?X: "Y0"?Y: "SJ GC"?H: 0→M: "M0(YDMGC) "?M: Prog"BP FY":Fix 3:S→O: "L0=":Locate 6,4,O:Prog"ZD":H-M→G:"TW=": Lcoate 6,4,G: Goto FLbI 6:Prog"DX":LbI G:Prog"QX":LbI H:1→F:90→Z[1]:"KM"?Z: Goto G:Prog"X1":?D:Prog"THB":Prog"XY":Prog"JS":Prog"H":0→M:"M0"?M:Fix 2:H-M→T:"TW=": 6,4,T◢ Goto H2. 坐标计算次程序(THB)LbI J: If F=1:Then Prog "Z":Goto 1:Else Prog "ZX":Goto 2: IfEnd: LbI 1:I+D×COS(Z[2]+Z[1]) →X: J+D×Sin(Z[2]+Z[1]) →Y: LbI 23.路基开挖边线及填方坡脚线放样程序程序名:BP FYLbI H: 13→L:H-M→G: Prog “W1”:If G <0:Then –G →G:G oto W:Else G →G:Goto TLbI W:Z[8]+Z[9]→A: If G >A:Then Goto 1:Else If G >Z[8]: Then Goto 2:Else Goto 3:IfEndLbI 1: L+Z[10]+Z[11]+Z[12]+( G -A-( Z[11]+Z[12])×0.03)×Z[7]+Z[9]×Z[6]+Z[8]×Z[5] →S:Goto ZLbI 2: L+Z[10]+Z[11]+( G -Z[8]- Z[11]×0.03)×Z[6]+Z[8]×Z[5] →S:Goto ZLbI 3: L+ G×Z[5]→S:Goto ZLbI T:Z[16]+Z[17] →B:If G >B:Then Goto 4:Else If G >Z [16]:Then Goto 5:Else Goto 6:IfEndLbI 4: L+Z[18] ×2+ (G -B-2×Z[18]×0.03)×Z[15]+ Z[17]×Z[14]+ Z[16]×Z[13]→S:Goto ZLbI 5: L+Z[18]+( G -Z[16]- Z[18]×0.03)×Z[14]+Z[16]×Z [13]→S:Goto ZLbI 6: L+ G×Z[13]→S:Goto ZLbI Z4.极坐放样计算程序(计算放样点至置仪点方位角及距离)程序名:JSX:Y:Z[11]→K:Z[12]→L:Pol(X-K, Y-L):IF J<0:Then J+360→J:IfEnd:Fix 4:” FWJ=”: J◢DMS◢Fix 5:” S=”: I◢程序名:ZDFix 3:"KM=":Locate 6,4,Z:"D=":Locate 6,4,D5.交点法正算子程序(Z)程序名:ZH2÷R÷24-H∧(4) ÷2688÷R∧(3)→A(圆曲线内移量H表示缓和曲线长)H÷2-H∧(3) ÷240÷R2→B(切垂距)((H2-N2)÷24÷R)÷Sin(Abs(P))-((H∧(4)-N∧(4))/2688/R∧(3)) ÷Sin(Abs(P))→E(R+A)tan(Abs(P) ÷2)+B-E→T:P÷Abs(P) →W0→M:H→CIf Z≤O-T:Then Z-O→S:G→Z[2]:Goto 2: IfEndIf Z≤O-T+H:Then Z-O+T→S:Prog “HX”:G+WK→Z[2]:Goto 4:IfEndIf Z≤O-T+ΠR×Abs(P) ÷180+H÷2-N÷2: Then 180(Z-O+T-0.5H) ÷R÷Π→S: A+R(1-Cos(S))→B H÷2-H∧(3) ÷240÷R2+Rsin(S)→A:R→M:G+WS→Z[2]:Goto 4: IfEnd:O-T+ΠR×Abs(P)÷180+H÷2+N÷2-Z→S:(R+N2÷R÷24-N∧(4)÷2688÷R∧(3))tan(Abs(P) ÷2)+N÷2-N∧(3) ÷240÷R2+E→T :N→H:Prog “HX”:G+P →S:S-WK→Z[2]:U+(T-A)Cos(S)-WBSin(S)→I:V+(T-A)Sin(S)+WBcos(S)→J:Goto 3:LbI 4:U+(A-T)cos(G)-WBsin(G)→I:V+(A-T)Sin(G)+WBcos(G) →J: Goto 3: LbI 2:U+Scos(Z[2])→I:V+Ssin(Z[2]) →J: LbI 3:C→H6. 交点法缓和段转化子程序(HX)程序名:HXS-S∧(5) ÷40÷R2÷H2+S∧(9)÷3456÷R∧(4) ÷H∧(4)→A:S∧(3) ÷6÷R÷H-S∧(7) ÷336÷R∧(3) ÷H∧(3)+S∧(11) ÷42240÷R∧(5) ÷H∧(5)→B:90S2÷Π÷R÷H→K:RS÷H→M7. 交点法反算子程序(ZX)程序名:ZXZ:0→D:LbI 0:Prog “Z”:Pol(X-I,Y-J):J-Z[2] →J:Isin(J) →S:Icos(J) →I:If Abs(I)<0.1:Then Z+I→Z:S→D:Goto 2:Else Goto 1: LbI 1:If M=0:Then Z+I→Z:Goto 0:Eles Pol(M-WS,I):(JMΠ)/180→I:Z+I→Z:Goto 0:IfEndLbI 28.路基标准半幅宽度计算程序程序名GD1→S: Prog “G1”:Z-C→E:(B-A)*E/S+A→L:9. 导线点子程序(DX)程序名:DX“X Z”?K:”YZ”?L:K→Z[11]:L→Z[12]10.高程计算子程序(H)程序名:HP rog “S1”:C-T→F:Z-F→S:C+T→E:G-TI→Q:If T=O:Then Q+SI→H:Goto 0:Else If Z<F:Then Q+SI→H:Goto 0:Else If Z≤E:Then Q+SI+S2÷2÷R→H:Goto 0:LbI 0:H:If D=0:Then Goto I:Else Prog “I”:H+V→H:Goto ILbI I11.高程超高计算程序(I)程序名:IIf Z[3]=1:Then Prog “I1”:Goto 1: IfEndLbI 1: If W=1:Then Goto Z:Else Goto X: IfEndLbI Z:If S=0:Then Abs(D)×M→V:Goto 2:Else Abs(D)×((N-M)×(Z-C)÷S+M)→V:Goto 2:IfEnd:LbI X:If S=0:Then Abs(D)×M→V:Goto 2:Else Abs(D)×(((3((Z-C)÷S)2-2((Z-C)÷S)∧(3))×(N-M))+M)→V:Goto 2:IfEndLbI 2:Abs(D)→E:V÷E→I:I(E-K)→V15.线路选择子程序(线路选择输0时。