基于AutoCAD等高线自动绘制的程序开发.docx
《基于AutoCAD等高线自动绘制的程序开发.docx》由会员分享,可在线阅读,更多相关《基于AutoCAD等高线自动绘制的程序开发.docx(35页珍藏版)》请在冰豆网上搜索。
基于AutoCAD等高线自动绘制的程序开发
基于AutoCAD等高线自动绘制的程序开发
摘
要.................................................................1
英文摘
要.............................................................2
1绪论.............................................................3
1.1研究的目的和意义3
1.1.1研究目的3
1.1.12研究意义4
1.2研究现状4
1.3研究内容和方法4
1.3.1研究内容4
1.3.2研究目标4
1.3.3研究方法5
2基于VBA对AutoCAD二次开发生成等高线的相关理论知识.................5
2.1AutoCAD相关知识5
2.2VBA相关理论6
2.2.1VBA介绍6
2.2.2VBA集成开发环境环境的进入6
2.3三角网构建的相关理论7
2.3.1构建三角网的几种方法7
2.3.2三角网构建的具体操作8
2.4内插等高线的理论10
3等高线生成的程序.................................................11
3.1展“.dat”数据11
3.1.1展“.dat”数据程序11
3.1.2展“.dat”数据效果13
3.2构建三角网生成等高线13
3.2.1构建三角网生成等高线的程序13
3.2.2构建三角网生成等高线的效果图,图6,错误:
未定义书签。
274结论和建议......................................错误:
未定义书签。
28
4.1结论错误:
未定义书签。
28
4.2存在的问题与建议错误:
未定义书签。
28
参考文献............................................................29
感谢................................................................31
山东农业大学学士学位论文
CONTENTS
Abstract...........................................................................................................................1
EnglishAbstract..............................................................................................................2
1Introduction..................................................................................................................3
1.1Thepurposeofthestudyandsignificance.........................................................3
1.1.1Thepurposeofthestudy....................................................................3
1.1.2Significance........................................................................................3
1.2Studyofthestatusathomeandabroad….......................................................3
1.3Contentandmethods..........................................................................................4
1.3.1Thescopeofthestudy.......................................................................4
1.3.2ResearchGoal....................................................................................4
1.3.3ResearchMethods..............................................................................4
BasedonVBAproductioncontourlinecorrelationknowledge..................................52
2.1AutoCADrelatedknowledge.......................................................................5
2.2VBAcorrelationtheories.........................................................................6
2.2.1VBAintroduced...........................................................................6
2.2.2VBAintegratedenvironmentenvironmententry………..…...6
2.3Triangularnetconstructioncorrelationtheories............................6
2.3.1Constructstriangularnet'sseveralmethods.......................6
2.3.2Triangularnetconstructionconcreteoperations...............8
2.4Interpolationcontourlinetheory......................................................10
3Contourlineproductionprocedure..................................................................11
3.1Exhibition“.dat”data.........................................................................11
3.1.1Exhibition“.dat”dataprocedure........................................11
3.1.2Exhibition“.dat”dataeffect..............................................13
3.2Constructiontriangularnetproductioncontourline.......................14
3.2.1triangularnetproductioncontourlineprocedure...............14
3.2.2Productioncontourlineeffectchart.....................................27
4Conclusionsandrecommendations............................................................................28
4.1Conclusion....................................................................................................28
4.2Problemsandrecommendations...................................................................28References.....................................................................................................................29
Thank............................................................................................................................31
1
山东农业大学学士学位论文
基于AutoCAD等高线自动绘制的程序开发
2006级测绘2班:
李支彬
指导老师:
王有良
【摘要】应用AutoCAD进行地形图的计算机辅助制图能极大地提高工作效率,但因其没有根据数字地形离散点自动产生等高线的功能,用VBA程技术,将外业采集的离散点数据在AutoCAD展点,通过离散点建立三角网,在三角形边上内插等高点的方式,能在AutoCAD中实现等高线的自动绘制。
【关键词】等高线;三角网;VBA;AutoCAD
AutoCADdrawingcontourlinesautomaticallybasedonprogram
development
2
山东农业大学学士学位论文
SurveyingandMappingEngineeringof2006:
lizhibin
Theinstructor:
wangyouliang
【Abstract】ApplicationofAutoCADfortopographicmapsofthecomputer-aidedmappingcangreatlyimproveefficiency,butbecausenobasisfordigitalterrainanalysis(DTMmodel)contourfunctionautomaticallygeneratedusingVBAprocesstechnology,willbecollectedoutsidetheindustrydiscretedatapointsinAutoCADdevelopmentthroughtheestablishmentofdiscretepoints,triangulation,theedgeofthetrianglecontourpointinterpolationmethodisimplementedinAutoCADdrawingcontoursautomatically.
【Keywords】Contourlines;Triangulation;VBA;AutoCAD
1绪论
1.1研究的目的和意义
1.1.1研究目的
在数字成图的过程中,AutoCAD以其强大的图形处理能力而为广大工程技术
人员所喜爱,但是在解决一些比较专业的问题上,尤其是需要将设计计算、数据
处理、图形绘制等问题进行综合处理时,直接使用AutoCAD的交互功能就会感
到力不从,但是AutoCAD的开放性和丰富的开发工具为我们解决AutoCAD这个
问题提供了有效的手段。
目前,有很多工具可以对AutoCAD进行二次开发,如Autolisp、ADS、AR、
VisualLisp、VBA和VB等,在这些工具中每一种都有它的优缺点。
Autolisp
语言是一种嵌入AutoCAD里的解释程序语言,具有编程简单的特点,但在开发大
3
山东农业大学学士学位论文
项目时显得力不从心。
ADS是一种C语言程序设计环境,它与AutoCAD之间并不直接通信,具有很大的灵活性,但不适应当前可视化编程的需要。
ARX程序是Windows动态链拉库程序,执行ARX应用程序所需系统的开销最小,速度最快,但是开发过程相当复杂。
VBA是AutoCAD里AutoCAD2000中新增加的开发工具,
样具有很强的开发能力,而且技术原理也基本相同,VBA还提供了一它与VB一
种高效而强大的集成开发环境,实现对程序的编辑、运行和调试。
可见利用VBA对AutoCAD进行二次开发生成等高线具有显著的优势。
1.1.12研究意义
通过VBA对AutoCAD二次开发技术编写的等高线自动生成程序,在AutoCAD中进行数据处理、图形绘制、综合分析时给我们提供了一个极大的方便。
通过等高线的自动生成,大大节省了时间和测绘内业处理量。
1.2研究现状
AutoCAD(AutoComputerAidedDesign)软件作为一种当今世界上应用最广的计算机辅助设计软件,其二维图形设计功能非常强大,同时满足三维造型设
支持探索各种创新造型。
目前,AutoCAD最新的版本是AutoCAD2010,计的需要,
在AutoCAD2010的安装盘上没有包含VBA,若需要必须到相应网站进行下载安装。
在AutoCAD2010版本之前,用户在制图过程中可根据自身对功能的需求,借用VBA、AutoLISP等作为二次开发的工具,对AutoCAD进行功能定制和二次开发。
二次开发能够提高工作的效率和减轻工作量,其开放式结构能满足不同专业的需要,来实现设计中的应用,达到改进和加强AutoCAD功能的目的。
基于AutoCAD的VBA应用程序,运用AutoCAD的绘图功能与高级程序语言的计算功能,使用VB程序语句在AutoCAD上用VBA技术进行二次开发,能够较好地控制对AutoCAD图形的操作。
1.3研究内容和方法
1.3.1研究内容
研究通过VBA对AutoCAD进行二次开发,编写展点程序将“.dat”格式的数据文件导入AutoCAD、将离散数据生成三角网的程序设计、以及在三角网的基础上内插出等高点,将等高点连接而生成等高线算法的实现问题。
1.3.2研究目标
通过开发实验最终生成等高线自动生成程序,实现AutoCAD中数据文件的展点,自动生成三角网,最终生成等高线,并且采取对应措施,这应将会节省大量的人力、提高内业效率,达到我们实验的真正目的。
4
山东农业大学学士学位论文
1.3.3研究方法
理论结合实验进行研究?
第一步,查阅相关书籍,了解“.dat”数据结构、三角网生成算法以及等高线的生成算法以及实现过程。
第二步,在第一步的基础上,结合VBA程序语言编写数据导入程序,进行程序调试工作,实现数据的自动导入。
第三步,在导入的离散点的基础上,编写程序,实现三角网的构建以及等高线的生成;调试程序,直至达到等高线自动生成的效果。
2基于VBA对AutoCAD二次开发生成等高线的相关理论知识2.1AutoCAD相关知识
AutoCAD是美国Autodesk公司开发的通用计算机辅助绘图、设计系统,因其强大的功能,使用上的便利以及良好的开放性,是世界上最为流行的通用CAD平台(在国内应用非常广泛,影响深远,尤其是在建筑和机械行业,拥有强大的应用和开发队伍,几乎家喻户晓,堪称我国CAD的标准平台(从1982年推出AutoCADR1.0到1997年7月推出AutoCADR14forWindows95/NT,其界面和风格经历了巨大的变化,越来越接近Windows,使用更方便,功能更强大,其中,二次开发技术的不断更新令人注目(
1986年AutoCADV2.18第一次提供AutoLISP程序设计支持,开始可以在一个通用平台上添加特殊功能的能力(1987年AutoCADV2.6对V2.18的AutoLISP作出了较大的修改(
1988年AutoCADR10使AutoLISP程序可以在扩展内存中运行,为编写稍大规模的应用程序提供了可能(1990年AutoCADR11第一次在PC版中提供了对C语言的开发环境的支持,即ADS开发环境,并开始增加三维造型功能(1992年AutoCADR12增强了ADS开发环境,添加了许多新特性,如对可编程对话框(DCL)的支持(1994年AutoCADR13第一次提供了面向对象和C++开发环境(ObjectARX)的支持(此时,AutoCAD内核发生了本质性的变化并开始转向Windows平台(尽管终端用户不感觉到这种变化,但AutoCAD确实走进了一个开放式的、面向对象的CAD平台(遗憾的是AutoCADR13的ObjectARX本身并不完善,在不同的小版本上的ObjectARX程序不兼容,直到AutoCADR13C4版才较稳定(1997年7月
5
山东农业大学学士学位论文
AutoCADR14forWindows95/NT对ObjectAR的支持更加可靠和稳定,并提供了以客户/服务器方式进行控制的ActiveX自动控制支持(此时的AutoCADR14不再支持多种类型的操作系统,只能在MicrosoftWindows95/NT上运行,操作界面完全Windows化(R14进一步完善面向对象的技术,把它作为自身的内核技术并作为二次开发的主要技术(此外,R14配备了Internet工具,方便了Interne上的DWG图形文件的浏览和传送(
另外,1998年5月基于大陆简体汉字的AutoCADR14中文版推出(最近,AutoCAD还增加了对JAVA开发环境的支持(从AutoCAD的变迁过程看出,AutoCAD正在完成Window,Object,Internet的战略转移(AutoCAD的发展过程体现了CAD向4I方向发展的趋势:
Interactive(交互化)不仅面向形状,而且面向多媒体(包括可视化技术);Intelligent(智能化)不仅使用现存的人工智能方法,而且要走向计算机辅助创造;Integrated(集成化)不仅面向生产,而且面向市场;Internet(网络化):
不仅面向网络,而且建立新的组织(因此,使AutoCAD二次开发向4I方向发展,首先应解决的是开发环境或工具的选择,其次才能考虑建立在开发环境或工具之上的其它问题(
2.2VBA相关理论
2.2.1VBA介绍
VBA(VisualBasicforApplication)是由Microsof创建的用来自动执行任务的一个编程环境,是一种面向用户的应用软件编程语言可提供VB(VisualBasic6)的丰富开发功能,利用面向对象(OOP)的ActiveXAutomation技术以使用任何Automatio技术的应用程序共同工作。
由于AutoCAD2005的VBA是嵌入在AutoCAD内部的,与AutoCAD共享内存空间,代码安全在进程内执行,所以执行速度比用C语言开发的ADS应用程序还要快。
作为开发工具,VBA还提供了一种高效而强大的集成开发环境,实现对程序的编辑、运行和调试。
VBA把VB集成于AutoCAD内部,具有以下特点:
?
与VB一样,它是完全面向对象的程序设计语言,其语法简单功能强大、易于掌握;?
VBA用对象的方法将绝大多数AutoCAD功能封装在ActiveX对象中,编程者可通过编程引用对象和方法来操纵AutoCAD;?
通过VBA能够使AutoCAD与其他Windows环境下的应用程序直接共享数据;?
与AutoCAD共享内存空间,其运行速度比其他开发方式(如ADSRX、ADS和LISP)要高许多;?
VBA程序不必编译就可直接执行,便于程序调试。
基于以上特点,作者选用VBA对AutoCAD进行了开发,实现了绘图环境的自动设置,证明了VBA是一种方便、快捷、实用的二次开发工具。
2.2.2VBA集成开发环境环境的进入
第一步:
选择菜单->工具->宏->打开VBA管理器
第二步:
新建一个工程,工程列表框中出现一个名称为ACADProject的工程选择该工程,另存为在适当的位置
6
山东农业大学学士学位论文
第三步:
在VBA管理器对话框单击VisualBasicEditor,进入VBA集成开发环境
2.3三角网构建的相关理论
2.3.1构建三角网的几种方法
长期以来,很多学者都在研究高效快速地构建Delaunay三角网的算法,因此出现了许多成熟的算法,根据构建三角网的步骤,目前平面区域的三角剖分的方法基本上可以归结为三类:
逐点插入算法、分治算法和三角网生长算法。
一、逐点插入方法:
逐点插入方法是Lawson在1977年提出的基本思想为:
在包含所有数据点的初始多边形中,将未处理点依次插入到已经存在的Delaunay三角网格中,并对
以保证新边使用局部优化算法(LOP2LocalOptimizationProcedure)进行优化,生成Delaunay三角网逐点插入算法实现过程如下:
(1)定义一个包含所有数据点的由两个直角三角形构成的矩形框;
(2)在矩形区域内建立初始三角网,可以预设一个点作为初始的顶点;然后迭代以下步骤,直至所有数据点被处理;
(3)插入一个数据点V,在三角网中找出包含V点的三角形,将点V与三角形的三个顶点相连,重构三角形;搜索点在三角网中位置的方法很多,可以采用重心法中心法面积法(利用格林公式计算三角形的面积)来判断点是否在三角形内,也可以利用点与直线的关系来确定;
(4)用LOP局部优化算法优化三角网:
对具有公共边的两个三角形组成的四边形进行判断,如果其中任意一个三角形的外接圆包含另一三角形除公顶点外的第三顶点,则交换公共边如图1所示,使得满足Delaunay三角网的两个性质。
图一.三角网插入算法过程
二、分治算法
Shamos和Hoey基于Voronoi图构