《边坡变形监测曲线.ppt》由会员分享,可在线阅读,更多相关《边坡变形监测曲线.ppt(9页珍藏版)》请在三一办公上搜索。
1、边坡变形监测曲线自动成图系统的开发,项目的提出:,近 10 多年来,我国因崩塌、滑坡、泥石流而死亡的人数达近万人,每年因滑坡造成的损失高达250400 亿元。另外,高层建筑、大坝、桥梁等的变形也给人民的生命财产带来严重的威胁。对滑坡的变化趋势进行预测是减灾防灾的基础,地质勘察和分析是滑坡评价预测的基本方法和手段,变形位移监测作为辅助性手段,在分析滑坡体结构、成因,评价预测滑坡稳定性及发展趋势等方面具有重要意义。,边坡位移监测曲线能够更直观的反映边坡的发展和变形规律,而传统的绘图方式精度差、效率低。为了提高绘图的精度及效率,我们基于内嵌于AutoCAD 的VBA 语言二次开发出了位移监测曲线自动
2、生成系统。只要把变监测数据按一定的格式输入到外部数据文件中,利用该系统就可自动生成曲线,大大提高了监测数据的处理速度,提高了绘图精度及质量。,设计原理与基础:Visual Basic for Application(VBA)是Microsoft面向最终用户的应用软件编程语言。它最早出现于Microsoft的Excel和Project中,如今VBA已成为VB和所有Office产品的组件。常用的绘图软件AutoCAD也已支持VBA作为二次开发工具。VBA最大特点和最大优点是利用面向对象(OOP)的ActiveX Automation技术,使语言的引擎在技术上与开发环境分离。它的功能在很大程度上依赖
3、于它的客户显露的Automation接口。同时,由于VBA是基于ActiveX Automation技术,它可以使用任何Automation技术的应用程序共同工作。基于AutoCAD的VBA应用程序就是高级程序语言的计算功能与AutoCAD的绘图功能结合,使用VBA程序语句来控制对AutoCAD图形的操作。VBA作为一个集成的开发环境,它提供了高质量的用户化编程能力,能够使AutoCAD数据与其它的VBA应用程序,如Microsoft Excel软件,直接共享,实现无缝连接,交换数据非常方便。,在Microsoft Excel中,与表对应的对象是工作表(Sheet或Worksheet),与每一
4、个表格方格对应的对象是单元格区域(range),它可以仅包括一个单元格(cell),也可以由多个单元格合并而成。工作表对象中的cells属性,在单元格的选择方面可以达到与range相同的效果,它是以行(row)和列(gol)作为参数的,对于行和列的选择可以采用变量的形式。在本例中,可设定工作表(Worksheet)的每一行第一列(cells(i,1)为时间累积量,每一行第二列(cells(i,2)为对应的水平位移累积量,每一行第三列(cells(i,3)为对应的垂直位移累积量。在AutoCAD中,没有与表对应的对象,但可以根据表中时间间隔定义水平距离,根据水平与垂直累积量定义垂直距离,将表中数
5、据理解为线条与文字对象的集合。这样,通过读取Microsoft Excel文件中的最小对象单元格区域(cells(i,j)的主要信息,利用VBA建立AutoCAD与Excel的通信,然后在AutoCAD文件里指定的图层、位置画线条,书写文字。通过循环,遍历所有单元格区域(cells(i,j),边读边写,最终完成边坡位移曲线的绘制。,工作过程:,在AutoCAD中创建Excel应用程序 要编写存取Excel的应用程序,必须通过VBA将Excel中的对象能够让用户使用,这就需要参考Excel对象的数据库。其步骤如下:(1)打开AutoCAD的VBA编辑器(命令:VBAIDE);(2)选择“工具”“
6、引用”项,在弹出的“引用”对话框的“可使用的引用”列表框内,选择“Microsoft Excel 11.0 Object Library”项;(3)单击“确定”按钮;(4)接下来使用下列代码可创建完整的应用程序对象实例:Dim Excel As Excel.Application激活要与之通信的Excel应用程序On Error Resume Next Set Excel=GetObject(,Excel.Application)If Err 0 Then Set Excel=CreateObject(Excel.Application)End If,2.读入坐标点画位移曲线(1)设定工作表(
7、Worksheet)的每一行第一列(cells(i,1)为时间,每一行第二列(cells(i,2)为水平位移累积量,每一行第三列(cells(i,3)为对应的垂直位移累积量。由于时间的值远小于位移值,因此将时间值乘以10。(2)以(0,0,0)为原点,以时间累积量乘以10为x坐标,对应的水平或垂直累积量为y坐标,0为z坐标,分别绘制出水平移动累计图,与垂直移动累计图。进而完成边坡位移图形的绘制。(3)下述代码可读入Excel数据信息画位移曲线Dim i As Integer Dim lineobj As AcadLine Dim sPt(0 To 2)As Double Dim ePt(0 T
8、o 2)As Double读入坐标画位移曲线Worksheets(“sheet1”).Activate i=2 由第二行起 Do Until cells(i,1).Value=If cells(i+1,1)=0 Then Exit Do End If sPnt(0)=cells(i,1).Value sPnt(1)=10*cells(i,2).Value sPnt(2)=0 ePnt(0)=cells(i+1,1).Value ePnt(1)=10*cells(i+1,2).Value ePnt(2)=0 Set lineobj=ThisDrawing.ModelSpace.AddLine(sPnt,ePnt)i=i+1 Loop,演示结果:,系统的推广:,运用此程序可以精确而简便的绘制边坡位移曲线,避免了大量的重复劳动,节省了人力物力。边坡位移曲线绘制中,经常遇到许多类似的大量的、重复的、有逻辑性的操作,只要合理利用VBA,发挥其强大的功能,实现AutoCAD与Excel应用程序的无缝连接,快速交换数据,就可以在短时间内完成所需的设计工作,达到事半功倍的效果。,