曲线坐标计算程序VBA 4.8
- 格式:xls
- 大小:1.12 MB
- 文档页数:32
ZHCHXU(线路坐标、放样计算主程序)提示:必须先执行一次“Defm 60”命令,使扩展变量得到确认Deg:Norm:Lb1 S:Z<1=»{QU}:Q″X o″: U″Y o″ΔFix4: Z≥3=»U=0:K=1mInt Z[Z]kΔFixm:Lb1 A:Z≠.1=»{K}ΔM=K: N=3:Lb1 B:Z[N+3:Rnd:K<Ans=»Prog″D″:Pol(X[N]-X[N-3], Y[N]-Y[N-3:V=J: Pol(X[N+3]-X[N],Y[N+3]-Y[N:W=J: S=Sin-1Sin(W-V:C=AbsS:S=S÷C:H=1k Frac1E4Z[N:G=1E5Frac X[N]k+Frac1E4Y[N:L=GC÷1r+H:E=G+H2÷(24G)-H4÷(2688G3):T=E tan.5C+H÷2-H3÷240 G2:E=E÷Cos.5C-G:R=GS:Z[N:Rnd: Z≥4=»Q=AnsΔP=K-Ans: D=P:X=Rec(-T,V)+ X [N:Y=J+Y[N:D≤0=»A=X+Rec(D,V:B=Y+J:F=V:≠»C=V:O=2:Prog″ H ″ΔP>H=»O=3:D=P-L÷2: C=V+90S+.5Sin-1Sin(W-V: X=Rec(E+G , C)+X[N:Y=J+Y [N: A=X+ Rec(-G , D r÷R+C: B=J+Y:F= D r÷R+C-90SΔP>L-H=»O=4: D=P-L: R=-R:X=Rec(T , W)+X[N:Y=J+Y[N:C=W:D<0=»Prog″ H ″: ≠»O=0:A=X+Rec(D,W:B=J+Y: F=WΔΔH≠0=»E=Abs D÷HΔD=0: P=90:Lb1 0:P″ANG .″:Rec(D , P+F:X=A+I:Y=B+J: Prog″ F ″:Z≥1=»X:Pause 0:Y: Pause 0Δ◄┘Z=.2=»Fix1:Goto SΔ Z≠.1=»{D}Δ Z≥6=»U=1=»D″[HY]″ΔU=2=»D″[QZ]″ΔU=3=»D″[O]″ΔU=4=»D″[YH]″ΔU=5=»D″[HZ]″ΔD″[ZH] ″ΔO=2=»D″D r″ΔO=3=»D″D o″ΔO=4=»D″D2r″ΔD=i=»P=0:D=0:{PD}:Goto 0 Δ Z≥3=»K=Q=»K=Q+H+ln ΔU=1=»K=Q+L÷2ΔU=2=»D=R: U=3:Goto 0ΔU=3=»K=Q+L-HΔU=4=»K=Q+L-.4mΔIsz U:U=6=»Z=Z+3: Goto SΔ Goto AΔD=0=»Z=.1=»M=M-I Cos(F-J): Pause 0:Abs(F-J)÷90:Rnd:Ans=1=»I Sin(F-J:Pause 0:K=M: Goto SΔΔK=M: Goto A ΔFrac D k≠0=»D÷π:A=X:B=Y:P=0: Goto 0 Δ P=90: Goto 0:≠»N=N+3: Goto B◄┘H(数据输入子程序)H≠0=»Rec(D-D5÷90R2H2 ,D2r÷6RH+C:A=I+X:B=J+Y:F=D2r÷2RH+CΔF(计算子程序)Z=.2=»Pol(Qm-Frac X,Um-Frac Y): ≠»K=0=»{XY}Δ Pol(Q-X,U-YΔ Z=.5 =»X: Pause 0:Y:Pause 0: ″X=″:″Y=″▲ΔZ ≠1=»J=J+πr: 60Frac J:Int J+10mInt Ans+6mFrac Ans:Fix 4:Pause 0: Fix 3: I:Pause 0:Z=.2=»Fix 1:100 I:Pause 0:Ans Sin(F-J):Pause 0ΔD(数据输入子程序)A=0:B=0:N=3=»A=0:B=0Δ K>A=»K<B=»0:″TIU NRO″:″NEEKZISAS″: Prog″ZHCHXU ″ΔΔK≥B=»O=1: K≤A=»{O}ΔK=K+AO″KIU″-BOΔ◄┘FD(计算子程序)Lb1 0:{XYLF}:Fix3:Q″X o″: U″Y o″:D=Pol(X-Q,Y-U:J<0=»J=J+360ΔJ:60Frac J:J=Int J+10mInt Ans+6mFrac Ans:Fix 4:Pause 0:D:Fix 3:Pause 0:SHU(基本数据输入子程序)Norm:Lb1 0: {NKRHXY}:NXY:Z[N]=K+1E -7H:X[N]=X+1E-8Int R:Y[N]=Y+1E -4Frac R:N=N+3:Goto 0◄┘说明:1、必须先执行一次“Defm 60”命令,使扩展变量得到确认;2、“m”和“k”均在“FUNCTION”的1-“MATH”里;3、“E”是“EXP”;4、“o”和“r”均在“FUNCTION”的5-“DRG”里;2-----------CASIO fx---4800p <<多条曲线坐标计算程序>> ------整理:刘欣--------<<多条曲线坐标计算程序>>---------3一、程序输入说明:1、输入本程序前必须先扩容60个字节 (特别强调) ;2、输入数时小数点前面的位数只能≤5位,小数点后面只能保留3位;3、每个曲线的编号为3的倍数,第一个曲线N=3;第二个曲线N=6;第三个曲线N=9......;4、输入N后,再输入交点JD的X、Y坐标值,K为曲线起点的里程、H为缓和曲线长度、R为曲线半径;5、输入时最少要输入3个曲线的资料此程序才能运算;二、本程序计算范围说明:1、计算方位角和距离Z=0 例:测站(6551.446, 8080.424) 中桩K3+307.5方位角250-17-28 平距330.872例: 测站(同上) k=0, KIU=π任意点(6600,6600)方位角271-52-43 平距1481.222、计算中边桩坐标Z=13、以上二者兼而有之Z=0.54、根据坐标推算里程桩号 Z=0.15、计算路线中线偏位 Z=0.26、计算曲线逐点坐标 Z=N7、计算斜交涵洞轴线 D=i8、在切线方向前后移动 D=π9、返回输入桩号状态 D=0三、启动主程序“ZHCHXU ”进行计算说明:1、 Z输入1时,再输入中桩的里程K ,即可得到中桩的坐标XY ;D 为中桩左右侧边桩的平距:● 如果该中桩位于直线上,则D 辨别为“D ”;如果该中桩位于第一缓和曲线上,则D 辨别为“D r ”;如果该中桩位于圆曲线上,则D 辨别为“D O ”; 如果该中桩位于第二缓和曲线上,则D 辨别为“D 2r ”;● 左侧边桩为“-”值,即可得到左侧边桩的坐标XY ;右侧边桩为“+”值,即可得到右侧边桩的坐标X 、Y ;2、Z 输入0时,可计算中桩的或任何一个坐标值的方位角和边长,结果显示方位角为度分秒,边长显示米。
程 序 信 息 提 示欢迎你使用本程序!当你看见此页面表示你的Office Excel已禁止“宏”无法正常显示和计算,需要启用“宏”才可进行下一步操作!如果你已启用“宏”请点击左上角“返回界面”按钮进入程序界面进行相关操作!提示 :本程序不支持金山WPS软件和Excel 2003精简版,仅支持微软Microsoft Office Excel 2003以上完整版本才可运行。
退出表格时会自动返回停留在该页面,当启用宏后再次运行本程序时则不会停留在该页面。
若有疑问请详询作者QQ:295188316操作方法:本程序运行环境为Microsoft Office Excel 2003以上版本,运行时要把安全级别设置为“低”或提示启用宏,否则点击程序按钮时会没有任何反映,设置方法如Office Excel 2003版:点击顶部【工具】>>>【宏】>>>【安全性】>>>【安全级】>>>【低】>>>【确定】>>>【重新打开文件即可运行】。
Office Excel 2007版:点击顶部【Office按钮】>>>【Excel选项】>>>【信任中心】>>>【信任中心设置】>>>【宏设置】>>>【启用所有宏】>>>【确定】。
Office Excel 2010版:点击顶部【文件】>>>【选项】>>>【信任中心】>>>【信任中心设置】>>>【宏设置】>>>【启用所有宏】>>>【确定】。
方法如下:>>>【宏】>>>【安全性】>>>【安全级】>>>【低】>>>【确定】>>>【重新打开文件即可运行】。
坐标正算、反算计算方法及在Excel 中的VBA 编程测量中经常需要将某点相对坐标系坐标转换成线路的里程、偏距,或根据线路某一里程偏距计算出对应的相对坐标系坐标,为寻求一种快速简单高效的计算方法,本文对线路正算反算的原理进行了阐述,并结合Excel VBA 编程,将编程和Excel 的拖拽的功能相结合,编制出实用计算表,特别适用于需要大量计算边桩、围护桩的情况。
关键词:坐标方位角坐标正算坐标反算 V AB 编程循环迭代直接算法一、坐标方位角的反算1.坐标方位角反算如图1所示,已知点A 、B 的坐标,求直线AB坐标方位角α。
图1坐标方位角反算直线AB 之间的坐标增量:AB B AAB B Ax x x y y y ∆=−∆=−当0,0AB AB x y ∆>∆>时,角α位于第一象限角:arctan ABABy x α∆=∆当0,0AB AB x y ∆<∆>时,角α位于第二象限角:arctan 180AB ABy x α∆=+°∆当0,0AB AB x y ∆<∆<时,角α位于第三象限角:arctan 180AB ABy x α∆=+°∆当0,0AB AB x y ∆>∆<时,角α位于第二象限角:arctan360AB AB y x α∆=+°∆2.坐标方位角反算的VBA 编程可用VBA 将上述过程定义为一个名为angel()的函数,代码如下:Function angel(x0As Double, y0 As Double, x1 As Double, y1 As Double) As Double dx = x1- x0dy = y1- y0If dx > 0 And dy > 0 Thenangel = Atn(dy / dx)End IfIf dx < 0 And dy > 0 Thenangel = Atn(dy / dx) + 3.14159265358979End IfIf dx < 0 And dy < 0 Thenangel = Atn(dy / dx) + 3.14159265358979End IfIf dx > 0 And dy < 0 Thenangel = Atn(dy / dx) + 3.14159265358979 * 2End IfEnd Function二、直线段坐标正算与反算1.直线段正算图2直线段计算已知HZ 点坐标(x1,y1)、里程N HZ ,ZH 点坐标(x2,y2),正算时已知P 点对应的中桩里程Np 和偏距e (规定沿着线路前进方向,左边偏距为负,右边偏距为正),Np>N HZ ,求P 点对应的坐标。
教你如何通过Excel VBA编写测量坐标计算程序发布日期:2013-01-11 来源:网络作者:未知浏览次数:1704摘要:认识VBA、理解VBA,并利用Office Excel VBA编写测量坐标计算程序。
关键词:Excel VBA 程序坐标编写了解:VBA是什么?简单的说就是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案。
可以用Excel的宏语言来使Excel自动化运行等……Microsoft让它开发出来的应用程序共享一种通用的自动化语言——Visual Basic For Application(VB A),可以认为VBA是非常流行的应用程序开发语言Visual Basic的子集,事实上VBA是V B应用程序的版本,尽管存在有些不同VBA和VB在结构上仍然十分相似。
如果你已经了解VB会发现学习VBA非常快。
相应的学完VBA会给学习VB打下坚实的基础。
理由:选择Excel VBA编程的理由是因为它的计算功能非常强大,是现今任何编程计算器无法逾越的。
它运用范围广,计算速度快,计算精度高,合理化显示等。
或许很多测量人员对Excel VBA还有些陌生,主要是大家寄托于计算器、电脑、手机PDA等系列软件使用。
Excel VBA对于大多数测量人员而没有系统学过计算机语言程序设计的人群来讲有一定含糊,不过只要有基本数学知识、测量常识和逻辑理解的人,都能通过Excel VBA编写设计出称心如意的测量程序。
目标:基于Excel VBA的测量坐标计算程序的设计目标是将繁琐计算过程转入到计算机中,利用程序语言的重复性原理,在计算机中可将坐标计算得出更精确的结果,使坐标计算更加可靠。
最终目标是让用户可以通过Excel VBA自行完成坐标计算程序设计。
认识:学习VBA到底需要什么基础和了解些什么?学习VBA需要认识英文字母、一般的单词(如:函数所用的过程)、数学基础知识、测量常识、逻辑性思维即可。
曲线坐标计算一、圆曲线圆曲线要素:α—-—-----———---—曲线转向角R—-——-—-—-------曲线半径根据α及R可以求出以下要素:T—---——-—————----切线长L---—-—————-——-——曲线长E-—--—---——------外矢距q—-———————--——-——切曲差(两切线长与曲线全长之差)各要素的计算公式为:2αtgR T ⋅=︒⋅=180παR L (弧长))12(sec -=αR E (sec α=cos α的倒数)圆曲线主点里程:ZY=JD -TQZ=ZY +L /2 或 QZ=JD -q /2 YZ=QZ +L /2 或 YZ=JD +T -q JD=QZ +q /2(校核用)1、基本知识◆ 里程:由线路起点算起,沿线路中线到该中线桩的距离。
◆ 表示方法:DK26+284。
56.“+”号前为公里数,即26km ,“+”后为米数,即284。
56m 。
CK -— 表示初测导线的里程。
DK —- 表示定测中线的里程。
K -— 表示竣工后的连续里程。
铁路和公路计算方法略有不同.2、曲线点坐标计算(偏角法或弦切角法)已知条件:起点、终点及各交点的坐标。
1)计算ZY 、YZ 点坐标 通用公式:ii i i i i αT Y Y αT X X i i i i ,1JD ZY ,1JD ZY sin cos --⨯-=⨯-=2)计算曲线点坐标 ① 计算坐标方位角i 点为曲线上任意一点。
li 为 i 点与ZY点里程之差。
弧长所对的圆心角弦切角弦的方位角当曲线左转时用“-",右转时用“+”.② 计算弦长③ 计算曲线点坐标 此时的已知数据为:ZY (x ZY,y ZY )、 aZY- i 、 C 。
根据坐标正算原理:iZY ZY i αC x x -⨯+=cosiZY ZY i αC y y -⨯+=sin切线支距法 这种方法是以曲线起点ZY 或终点YZ 为坐标原点,以切线为X 轴,以过原点的半径为Y 轴,则圆曲线上任意一点的切线支距坐标可通过以下公式求得:πϕϕϕ︒⋅=-==180,)cos 1(sin R l R y R x 式中利用坐标平移和旋转,该点在大地平面直角坐标系中的坐标可由以下公式求得:式中:α为ZY (YZ )点沿线路前进方向的切线方位角.当起点为ZY 时,“±”取“+”,X0=X (ZY ), Y0=Y(ZY ), 曲线为左偏时应以yi=-yi 代入;当起点为YZ 时,“±"取“—”,X0=X (YZ), Y0=Y (YZ), 曲线为左偏时应以yi=—yi 代入;注:1、同弧所对的圆周角等于圆心角的一半2、切线性质 圆的切线与过切点的半径相垂直3、弦切角定理 弦切角等于它所夹弧上的圆周角4、弧长公式由 L/πR=n °/180° 得L=n °πR/ 180°=n πR/180二、缓和曲线(回旋线)缓和曲线主要有以下几类:A:对称完整缓和曲线(基本形)------切线长、ls1与ls2都相等。
统一曲线参数输入万能坐标计算程序姬根杰 李永红中铁十七局集团四公司 重庆 404100E-mail :jcglj.ji@【内容摘要】运用复化辛普生公式、结合Excel VBA (Visual Basic for Application )的编程,对于各种曲线线形,进行统一曲线参数输入,中桩、边桩坐标计算【关键词】曲线 编程 坐标计算在线路测量的计算工作中,离不开直线、圆曲线、缓和曲线(包括完整型和非完整型或卵型)的线元,对于各种线形的中桩坐标、边桩坐标的计算,真是百家争鸣,方法各异,尤其立交桥,组成立交的基本单元是匝道,匝道的平面线形组合相对比较复杂,计算烦琐,特别是卵形曲线的计算更加抽象难懂;主要有曲直法、解析法、拟合法、积木法、综合法、弦切法等。
有没有一种统一的解决方法呢?答案是肯定的, 运用复化辛普生公式、结合Excel VBA (Visual Basic for Application )的编程,在我们普通的Excel 办公软件中,对于各种线形的中桩坐标、边桩坐标的计算,实现了真正意义上的的全线贯通。
使用此程序具有以下优点:1)使重复的批量计算任务自动化,减轻测量内外业计算的工作强度。
2)方便快捷,创建满足工程要求的特定报表。
3)便于测量数据的管理和维护。
一、复化辛普生的基本原理及计算思路抛物形公式 (又称辛普生Simpson 公式): ()[()4()()]62b a b a a bf x dx f a f f b -+≈++⎰ (1)抛物形公式的几何意义:抛物形公式是用抛物线围成的曲边梯形的面积近似代替()f x 围成的曲边梯形的面积。
为了抛物形公式的计算结果满足精度要求,如果我们将积分区间划分成若干个小区间,在各小区间上采用低次的抛物形公式,然后再利用积分的区间可加性,把各区间上的积分加起来,得到新的求积公式,就是复化辛普生Simpson 公式的思想。
图1 抛物形公式示意图在线路中,无论直线、圆曲线、缓和曲线、卵型曲线无论那一种线元,可以看作由若干个小区间组合成的曲线,每个小区间的X、Y坐标增量,利用辛普生公式求积,再利用积分的区间可加性,只需要知道起点A的桩号La、半径Ra、X、Y坐标、方位角Fa以及终点B的桩号Lb、半径Rb,就可以计算AB段线元的任意点坐标和方位角。
单位名称:工程名称:
坐 标 计 算 表
**集团有限公司**路线**标段
单位名称:工程名称:
坐 标 计 算 表
**集团有限公司**路线**标段
单位名称:工程名称:
坐 标 计 算 表
**集团有限公司**路线**标段
单位名称:工程名称:
坐 标 计 算 表
**集团有限公司**路线**标段
单位名称:工程名称:
坐 标 计 算 表
**集团有限公司**路线**标段
单位名称:工程名称:
坐 标 计 算 表
**集团有限公司**路线**标段
单位名称:工程名称:
坐 标 计 算 表
**集团有限公司**路线**标段
单位名称:工程名称:
坐 标 计 算 表
**集团有限公司**路线**标段
单位名称:工程名称:
坐 标 计 算 表
**集团有限公司**路线**标段
单位名称:工程名称:
坐 标 计 算 表
**集团有限公司**路线**标段
单位名称:工程名称:
坐 标 计 算 表
**集团有限公司**路线**标段
单位名称:工程名称:
坐 标 计 算 表
**集团有限公司**路线**标段
单位名称:工程名称:
坐 标 计 算 表
**集团有限公司**路线**标段
单位名称:工程名称:
坐 标 计 算 表
**集团有限公司**路线**标段
单位名称:工程名称:
坐 标 计 算 表
**集团有限公司**路线**标段
单位名称:工程名称:
坐 标 计 算 表
**集团有限公司**路线**标段。