首页 > 范文大全 > 正文

Excel在测绘系统中的应用

开篇:润墨网以专业的文秘视角,为您筛选了一篇Excel在测绘系统中的应用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:在测绘测量过程中,有许多地貌很复杂,不规则,因此需测绘的点和面较多,从而产生各种各样的计算、平差、排序、对比和作业记录等问题随随着袖珍计算机与微机的普及,人们已从以往的手工查表、手摇计算机乃至计算器的繁琐计算中彻底解放出来,迈步走向了自动化的批处理时代。更加令人嘱目的是近代测量高新技术GPS和全站仪已在各个领域广泛渗透,人们已不再局限于常规的测量手段,而是以更加随机的空间数据结构模式去面对新的挑战!测量行业的更加智能化和简单化,我们现在要做就是将计算机更加广泛、全面的应用于测量中。为了进一步发挥计算机在常规测量中的应用优势,也为了更好地去加入并推动新技术革命的潮流。

关键字:excel表格测绘系统

中图分类号:P2文献标识码: A

Excel的功能是非常强大的,我们地籍测量中的面积成果表,各个坐标系之间的坐标转换、外业测图后的散点检查等均可以用它完成,你也可以在AutoCAD中直接与Excel通讯,比如一条三维多段线的所有结点的三维坐标直接导入到Excel,比在AutoCAD中用列表的方法要方便的多;我们在实际的测量工作中经常会遇到各种坐标系与当地坐标系的转化问题,用Excel里面简单的程序就能解决. 通过多年来的大量实践表明,运用Excel所编制的程序如:放射点、交点、平行相交、放点、点线距、面积计算、四等水准观测记录及平差计算不仅有效解决了测量内业各种平差计算问题,不仅大大提高了内业的工作效率,而且提高了外业观测速度和测绘成果

xcel是大家很熟悉的办公软件,相信大家在工作中经常使用吧。在测量工作中,你是否感觉到有很不方便的时候?比如,计算一个角度的三角函数值,而角度的单位是60进制的,此时,你一定感到很无奈,因为,Excel本身无法直接计算60进制的角度的三角函数!还有,如果你的工作表中有了点坐标值(二维或者三维),要在CAD中展绘出来,怎样才能又快又直接?不然,就只有拐弯摸角了,很痛苦啊!其实,只要对 Excel进行一些挖掘,就可以发现Excel的功能我们还没有好好的利用呢。Excel本身提供了强大的二次开发功能,只要我们仔细的研究,没有什么能难倒我们的。认识它的强大的二次开发环境VBAIDE,用它来解决上面所提到的问题,就非常容易了。打开Excel,按Alt+F11即进入VBAIDE,学过VB的人一看就知道那就是熟悉的VB界面。下面看看如何定义一个函数,然后利用它来解决60进制的角度的三角函数计算问题。在菜单上依次点击[插入] ->[模块],然后输入对应的代码。这样,就定义了一个名字叫DEG的函数,它的作用就是转换60进制的角度为Excel认识的弧度。编辑完后按Alt+Q即返回Excel,再在某一单元格输入=sin(deg(A1))(A1既可以是单元格的值,也可以是输入的角度值),回车.

工程测量中,经常碰到导线的计算,如果手头没有平差计算程序就只有手工计算了,这时候你曾经想过编个小程序来计算?其实,这很简单,笔者在宛坪(上海至武威)高速公路上做测量监理,因为有大量的导线需要复核,故编写了一个附合导线计算程序,代码很简单,但很实用。值得注意的是,前面提到的DEG函数别忘记加进去。如果自己定义一个名字叫“计算”的按钮,指定此工具的宏为“单一附合导线计算”,那么,只要按下面的格式输入原始数据(斜体是输入的),点“计算”就可以得到计算结果了。当然,你在Excel上同样可以再加个工具按钮,比如叫“展点”,指定宏为“显示对话框”,只要你的Excel有了X,Y或者X,Y,Z(格式如下表),点击“展点” 就可以自动启动A utoCAD展点啦!当然,如果A utoCAD已经启动,就直接在已经打开的A utoCAD文档中展点,展点完毕后,会显示一个对话框,提示“展点完毕“,再切换到A utoCAD看看,你所要展的点是否已经出现了?如果没有输入错误,应该可以得到满意的结果。如果有点号,还可以显示点号,并且可以输入字体的高度。

VBA最大特点和最大优点是利用面向对象(OOP)的ActiveX Automation技术,使语言的引擎在技术上与开发环境分离。它的功能在很大程度上依赖于它的客户显露的Automation接口。同时,由于VBA是基于ActiveX Automation技术,它可以使用任何Automation技术的应用程序共同工作。

基于AutoCAD的VBA应用程序就是高级程序语言的计算功能与AutoCAD的绘图功能结合,使用VBA程序语句来控制对AutoCAD图形的操作。

VBA作为一个集成的开发环境,它提供了高质量的用户化编程能力,能够使AutoCAD数据与其它的VBA应用程序,如Microsoft Excel软件,直接共享,实现无缝连接,交换数据非常方便

Excel中,与表对应的对象是工作表(Sheet或Worksheet),与每一个表格方格对应的对象是单元格区域(range),它可以仅包括一个单元格(cell),也可以由多个单元格合并而成。工作表对象中的cells属性,在单元格的选择方面可以达到与range相同的效果,它是以行(row)和列(gol)作为参数的,对于行和列的选择可以采用变量的形式。在本例中,可设定工作表(Worksheet)的每一行第一列(cells(i,1))为中桩桩号,每一行第二列(cells(i,2))为对应的地面高程。

在AutoCAD中,没有与表对应的对象,但可以根据表中前后桩号定义水平距离,根据地面高程定义垂直距离,将表中数据理解为线条与文字对象的集合。这样,通过读取Microsoft Excel文件中的最小对象—单元格区域(cells(i,j))的主要信息,利用VBA建立AutoCAD与Excel的通信,然后在AutoCAD文件里指定的图层、位置画线条,书写文字。通过循环,遍历所有单元格区域(cells(i,j)),边读边写,最终完成纵断面地面线的绘制

要编写存取Excel的应用程序,必须通过VBA将Excel中的对象能够让用户使用,这就需要参考 Excel对象的数据库——读入坐标点画地面线——设定工作表的每一行第一列——以(0,0,0)为原点,以桩号里程为x坐标,以10倍所对应的地面高程为y坐标,0为z坐标,定义某一桩号对应的地面点坐标;然后循环读取各里程桩号数据信息,定义各桩号所对应的地面点坐标;最后以直线段连接各地面点坐标——定义文字的插入位置 ; 以桩号里程为x坐标,0为y坐标,0为z坐标,确定文字的插入点—— 以单行文字形式创建桩号及高程文字,定义文字的格式、字体、高度、倾斜角度。插入后的文字应逆时针旋转90度。辅助网格线能较为直观地表示桩号及地面高程的对应关系,有助于纵坡设计;以桩号里程为x坐标,0为y坐标,0为z坐标,确定网格线第一点;以桩号里程为x坐标,10倍所对应的地面高程为y坐标,0为z坐标,确定网格线第二点;两点连线,则为网格线。

总结:经常遇到许多类似的大量的、重复的、有逻辑性的操作,只要合理利用VBA,发挥其强大的功能,实现AutoCAD与Excel应用程序的无缝连接,快速交换数据,就可以在短时间内完成所需的设计工作,达到事半功倍的效果。