在autocad2000中应用vba技术自动绘制等高线

在autocad2000中应用vba技术自动绘制等高线

ID:11269636

大小:1.87 MB

页数:7页

时间:2018-07-11

在autocad2000中应用vba技术自动绘制等高线_第1页
在autocad2000中应用vba技术自动绘制等高线_第2页
在autocad2000中应用vba技术自动绘制等高线_第3页
在autocad2000中应用vba技术自动绘制等高线_第4页
在autocad2000中应用vba技术自动绘制等高线_第5页
资源描述:

《在autocad2000中应用vba技术自动绘制等高线》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、在AutoCAD2000中应用VBA技术自动绘制等高线王永新福州市土地管理局计算机中心350004摘要:应用AutoCAD进行地形图的计算机辅助制图能够极大地提高工作效率,但其没有自动生成等高线的功能,本人用VBA技术,将外业采集的离散点通过建立三角网,在三角形边上内插等高点的方式,能够在AutoCAD中实现等高线的自动绘制。内容:VB是最为常用的支持ActiveXAutomation技术的开发工具,其语法简单、功能强大。VBA是VB的子集,由于AutoCAD2000的VBA是嵌入在AutoCAD内部的,共享Auto

2、CAD内存空间,可以很好地与AutoCAD沟通。运用VBA技术自动绘制等高线将极大地提高绘图效率,缩短项目的周期。平面等高线自动绘制有很多方法,其中较为简单和比较常用的是三角网法。用三角网方法绘制等高线包括四个主要过程:根据离散分布的数据点(离散点)建立不规则的三角形网;在三角形边上内插等高点;找等高线的起迄点并追踪全部等高点;连接等高点绘成光滑曲线。下面介绍三角网法绘制等高线具体的算法过程。一、建立三角网假设在AutoCAD模型空间的平面上已经有n个离散点,点的类型为具有3D坐标的Point实体。为了保证等值点内插

3、的精度,要使形成的每个三角形尽可能呈锐角三角形,并保证各个三角形之间互不交叉且不重复。具体联结的方法是:1、确定第一个三角形设L为每次自动连成的三角形编号,K为每次用来扩展的三角形编号。首先设L=1,从n个离散点中找出左下角的点赋给Ver(L,1),作为第一个三角形的第一个顶点,找出距离该点最近的点赋给Ver(L,2),作为第一个三角形的第二个顶点,找出距离这两点连线中点最近且不和这两点在一条直线上的点赋给Ver(L,3),作为第一个三角形的第三个顶点。这样,就形成一号三角形的顶点信息,K=1。72、三角形扩展由第一

4、号三角形向外扩展,直到将全部的离散点连成三角网的过程是:首先从K号三角形的第一条边(Ver(K,1)、Ver(K,2))向外扩展,为了避免三角形的交叉,以第一条边为界,显然,位于顶点Ver(K,3)同侧的离散点必须被排除,(见图1),利用直线判别正负区的原理可以实现这一要求。为此,首先建立正负区判别式:F(X,Y)=Y–A·X–B式中:A=(Y2–Y1)/(X2–X1)B=(Y1X2–Y2X1)/(X2–X1)X1、Y1和X2、Y2分别为扩展边两端点的坐标。〉0离散点位于正区显然,F(X,Y)==0离散点位于该直线上

5、图1直线判别正负区的原理(斜线部分为不能扩展的点)〈0离散点位于负区将K号三角形的第三个顶点Ver(K,3)的坐标代入F(X,Y),结果赋给M1,然后将其余离散点的坐标也代入F(X,Y),结果赋给M2,凡M1=M2或M2=0的离散点都被排除,对符合判别条件的离散点,利用三角形边角关系的余弦定理:c²=a²+b²-2abcosC,找出与扩展边上的两点组成的角在所有的三角形中为最大,该点就作为新的三角形的第三个顶点Ver(L,3),此时的L=L+1。为了避免三角形的交叉和重复,对该顶点还要进行一次检查判断,其方法是根据三

6、角形的任一边最多只能为两个三角形共用这一条件,进行全等比较。即判断新的三角形的三条边是否已分别被前面形成的三角形共用过两次,如果是,则此三角形无效,此时L=L-1。否则,为有效三角形。K号三角形的第一条边扩展完后,就可转向其它两条边重复上述扩展工作,每当形成一个新的三角形时,必须使L=L+1。直至K号三角形的三条边都做完扩展工作以后,再取出另一个三角形(K=K+1)来继续做新三角形的扩展工作,当K=L并且L≠1时,表示全部三角形扩展结束,这时三角网就形成了。依据上述原理和方法,自动联结三角网的程序设计流程图见附图1。

7、一、在三角形边上内插等高点建立了三角网信息后,接着找出位于离散点间等高点的平面位置。显然等高点的内插都是在三角形边上进行的。下面讨论任一三角形的空间情况:平面三角形1’2’3’对应于空间三角形123,三角形的三个顶点1、2、3的高程值分别为Z1、Z2、Z3,图2中B1B2线为空间等高线,b1b2线为投影等高线,两者之间的距离为等高线的高程值,用Z表示,则有:7Z=

8、B1b1

9、=

10、B2b2

11、平面三角形1’2’3’上是否有等高点取决于空间三角形123是否与高程为Z的水平面相交。即为了在三角形边上内插等高点,首先采用下式,

12、判别该边有无等高点通过:(Z–Z1)·(Z–Z2)≥0时,则该边无等高点,否则必有等高点。(Z–Z1)·(Z–Z3)≥0时,则该边无等高点,否则必有等高点。(Z–Z2)·(Z–Z2)≥0时,则该边无等高点,否则必有等高点。在确定三角形边上存在等高点后,用下述线性内插公式,求取图2中b1、b2点的平面坐标:图2内插等高点示意图式中的(X1,Y1,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。