利用AutoCAD的VBA实现城市给水管网绘图自动化_第1页
利用AutoCAD的VBA实现城市给水管网绘图自动化_第2页
利用AutoCAD的VBA实现城市给水管网绘图自动化_第3页
利用AutoCAD的VBA实现城市给水管网绘图自动化_第4页
利用AutoCAD的VBA实现城市给水管网绘图自动化_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

利用AutoCAD的VBA实现城市给水管网绘图自动化摘要:城市给水管网的平差、优化计算的结果图的绘制是一项较为繁琐的工作,文章介绍了由管网的基本数据自动绘制管网图的方法,重点介绍了由管网的一个基本关系矩阵经过转换,派生成相应的一系列衔接矩阵的方法,并由此完成管网图的绘制和标注工作,大幅度地提高了工作效率,改善了出图的质量。关键字:给水管网基本关系矩阵衔接矩阵绘图标注0引言目前,在给排水水工程设计工工作中,已经经有不少城市市管网的专业业设计软件,但但许多软件仍仍然存在不少少问题,譬如如界面使用不不习惯,数据据输入经常出出错等等,因因此,使用率率不高。AutoCCAD是工程界使使用频率最高高,同时也是是最基本的绘绘图软件。不不少设计人员员通常习惯于于自己利用AutoCCAD的二次开发发工具,编制制一些实用、方方便的程序。由由于在城市给给水管网优化化计算中,绘绘图也是一项项比较繁琐的的工作,它涉涉及到大量数数据的标注。因因此,不少给给排水设计工工作人员都在在努力开发更更适合人们思思维习惯的软软件,减少像像标注数据这这样的重复性性工作。本文文正是着眼于于这一思想,利利用AutoCCAD20000中的VBA编制了一个个非常实用的的绘图程序,使使给水管网绘绘图工作基本本上到达自动动化。所谓VBA就是是VisuaalBassicfoorAppplicattion的简称,它它不仅可以执执行并存取AutoCCAD环境的所有有资源,还可可以整合其他他具有VBA能力的应用用程序。VBA通过AutoCCADAcctiveXXAutoomatioon接口把信息息传送给AutoCCAD,而AutoCCADVBBA也允许VBA环境与AutoCCAD同时执行并并通过ActivveXAuutomattion接口提供AutoCCAD的程序。由由于AutoCCAD、ActivveXAuutomattion与VBA的结合方式式提供了功能能强大的接口口,不仅可以以操作AutoCCAD的内部对象象件,更可以以在其他的应应用程序之间间传送或接受受数据[1]]。文中介绍绍的方法是::先用VisuaalFORRTRAN编写程序进进行管网的优优化计算,把把计算结果生生成一个数据据文件,再在在AutoCCAD中,利用VBA编写程序,直直接调用该数数据文件,自自动进行绘图图、标注。1绘图绘制管网图的方方法有两种思思路:一是以以节点为主的的绘图方法,二二是以管段为为主的绘图方方法。1.1以节点为为主的绘图方方法由于管网的各个个节点之间的的关系可以用用管网的基本本关系矩阵环环—节点矩阵表示示出来。因此此,可以利用用环—节点矩阵绘制制给水工程的的管网图。如如果直接利用用绘制管网图图,在环与环环之间的公共共管段处就会会重复绘制。因因此,必须把把环—节点矩阵进行行一系列数据据转换,以保保证公共管段段不重复调用用绘图和标注注命令。利用用环—节点矩阵,其其中I表示管网的的环,J表示该环的的节点标号,经经过转换生成成一系列用于于绘图的下三三角矩阵:节节点识别衔接接矩阵、管长长衔接矩阵、管管径衔接矩阵阵、管段流量量衔接矩阵和和管段水头损损失衔接矩阵阵,N表示管网的的节点数。1.1.1基基本关系矩阵阵基本关系矩阵表表示以环号为为行,以最大大环的节点数数为列构成的的矩阵,写成成计算机语言言(FORTTRAN)就是一个二二维数组,即即KL(I,,J),其中中M就是基本关关系矩阵的行行号,也即是是管段所在的的环号I,N就是基本关关系矩阵的列列,即环的节节点数。KLL(I,J))的值就等于于管网的节点点号。由于环环是一个封闭闭的环,所以以各个环的首首节点号等于于尾节点[22][3][4]。图11.1.2数数据转换给水管网基本上上都是由线段段构成,通常常情况下,绘绘制直线都是是以点为基础础,从直线的的起点开始绘绘图。只要输输入各点的坐坐标,在循环环语句中调用用VBA中的绘制直直线命令就可可以自动绘图图。因此,绘绘制管网图的的思路是:输输入各点的坐坐标,根据各各节点之间的的衔接关系,自自动绘制管网网图。要保证证绘图时各管管段,特别是是公共管段做做到不重不漏漏,关键就是是要保证节点点识别衔接矩矩阵完全正确确,衔接矩阵阵不仅在绘图图时使用,而而且在计算标标注优化计算算结果的起点点坐标、旋转转角度时都需需要用到。由基本关系矩阵阵自动生成节节点识别衔接接矩阵的方法法是:先由基基本关系矩阵阵生成一个过过渡矩阵,再再由生成一个个下三角矩阵阵衔接矩阵(也可以生成成一个上三角角衔接矩阵,其其它的衔接矩矩阵一定也要要是上三角矩矩阵)。其具体体做法是先假假设,这样,节节点K,L就表示相邻邻的两个节点点,再令,若若节点K,L不相邻,令令,这样就得得到一个对称称矩阵,对角角线元素全部部等于0。再由生成成一个下三角角节点识别衔衔接矩阵(本文介绍的的都是生成的的下三角矩阵阵)[5][66]。以图1为例,如下所所示:例如:B(1,,1)=0,就就表示节点1,B(1,22)=1,表表示节点1,2为相邻节点点,1—2管段需要绘绘制。B(11,3)=00,表示1,3节点不相邻邻,就不需要要绘制。2—1管段与1—2管段表示同同一管段,在在绘图时只能能绘一根管段段。为了排除除多余的一根根管段,就必必须用一个下下三角(或上三角)矩阵来识别别节点是否为为相邻节点。图1的下三角节点识别衔接矩阵各元素的值等于矩阵对角线以下对应的各元素的值,矩阵的值如上所示。用同样的方法,将将管段的管长长、管径、管管段流量、管管段水头损失失转换为下三三角矩阵。这这里限于篇幅幅,管长衔接接矩阵、管径径衔接矩阵、管管段流量衔接接矩阵和管段段水头损失衔衔接矩阵就不不再列出。判判断这些衔接接矩阵不为0时,将它们们分别按同样样的顺序,只只输出一列到到一个数据文文件里,在标标注时调用。数数据的转换既既可以在优化化程序里完成成,也可以在在VBA绘图程序里里完成。但在在VBA绘图程序里里,还需要将将二维数组转转换为一维数数组,不如在在优化程序里里简捷方便,因因为如果在优优化程序里完完成这步工作作,在VBA的绘图程序序中只需设置置一维数组,直直接读入这些些数据就可以以了。1.2以管段段为主的绘图图方法以管段为主的绘绘图方法就是是先对管网的的各个管段和和节点进行编编号,然后根根据管网的各各个管段的编编号,写出由由管段的起点点号和终点号号构成的一维维矩阵,,表示管段的的起点号,表表示管段的终终点号。以图1为例。,的值值为以管段为循环单单位,,作为方法的两两个参数。1.3绘图绘图是调用VBBA中的方法来来绘制直线,的调用形式是,即它有两个接口参数,一个是起始点的坐标(),另一个是终止点的坐标()。因为方法只可以绘制三维线,所以它的两个参数是两个三维坐标矩阵。在VBA中,定义数组时通常写成(0to2),其中表示x轴方向的坐标值,表示y轴方向的坐标值,表示z轴方向的坐标值。定义同一样。在这里,我们把所有节点的x轴坐标定义为一个一维数组,y轴坐标定义为一个一维数组,z轴坐标定义为一个一维数组,表示管网的节点。绘图坐标赋值时,设置一个循环语句,直接把x轴的坐标赋给(0),y轴的坐标赋给(1),z轴的坐标赋给(2),这里把z轴的坐标全部赋为0就可以了。然后再根据节点识别衔接矩阵,在时,调用VBA中的方法,绘制节点i—j之间的直线,并设置直线的线宽、颜色和图层等。表示节点流量的小箭头和标注节点流量等的小图标可以采用插入块参照或插入外部参照两种方法来完成,需要强调的是,在制作块或外部图形文件时,把小箭头和标注小图标放在地起,一定要使箭头的底部端点和小图标的底部端点的坐标值为,这样,在插入块或外部参照时,才能准确地插入到指定点的位置。2管段的数据据标注通常绘制管网图图时,标注数数据要占用三三分之二以上上的时间。现现在利用程序序设计完全可可以达到自动动完成标注。因因为数据文件件有一部分是是自动生成的的,如标注文文字的起始点点坐标、角度度等等。所以以标注前首先先要整理、检检查数据文件件。数据文件通常由由以下几部分分组成:一是是管网的环数数、节点数、管管段数、最大大的环的管段段数,以及各各个环的局部部管段数,基基本关系矩阵阵的列就等于于,基本关系系矩阵的列就就等于。利用用它可以减少少输入部分不不必输入的数数据。二是基基本关系矩阵阵和的值。三是是各个节点的的三个轴向坐坐标值。四是是各个节点的的节点流量、节节点的相对水水压和节点的的地面标高。五五是优化计算算的最终结果果。标注文字字的起始点的的坐标,既可可以在绘图程程序中计算,也也可以在优化化计算程序中中算出,输出出到数据文件件中。其中,优优化计算的结结果,管长、管管径、管段流流量和管段的的水头损失在在数据文件输输入时,是作作为字符串形形式输入的。在编制数据文件件时,通常将将管长和管径径分为一组,按“管长—管径”的格式输出一列,将管段流量和管段水头损失分为一组,按“流量—水头损失”的格式接着在“管长—管径”的末尾输出一列。例如,1—2管段的管长为1270m,管径为300mm,管段流量为62.24/m3,水头损失为5.32m,在数据文件中的存放方式为“1270—300”,“62.24—5.32”。需要强调的是,“1270—300”在读入时是作为字符串读入的,中间不能留有空格,否则“1270—300”将不是作为一个字符串读入。“流量—水头损失”的标注同“管长—管径”的标注。为了绘图的美观,通常把它们分别标注在管段的两侧时。其中,标注管段流量和水头损失时,不考虑流向,标注的是它们的绝对值,流向单独标注[8]。流向一般用一个箭头在管段上表示,位于管段的中点,箭头指向与管段流量的方向一致。标注数据的起始始点的坐标、数数据的旋转方方向需要根据据节点识别衔衔接矩阵和管管段的两个节节点的坐标值值计算得出。节节点流量标注注时,起始点点的坐标也是是在节点坐标标的基础上计计算得出。同同样管段的节节点号、环号号的标注也均均自动完成。其其中,标注环环号时,还需需要用基本关关系矩阵计算算出标注点的的坐标,注意意此时只能取取基本关系矩矩阵的列。绘图、标注最终终结果见图2图2在绘图和标注完完成后,局部部可能有重叠叠的地方,再再手工稍微调调整即可。3结束语利用上述介绍的的方法,只需需输入管网的的基本数据后后,就可以完完成绘图和标标注的自动化化生,再作局局部就可以获获得满意的图图形。这种方方法容易掌握握,编程的思思路与大多数数人的工作思思路的一致。利利用这种方法法编写的程序序,不仅可以以大幅度提高高给水工程设设计人员的工工作效率,还还可以改善绘绘图的质量。参考文献献[1]二代龙龙震工作室.AuttoCAD程序设计实实作[M].北京:电子子工业出版社社.20022,5[2]王国明明.城镇给排水水工程程序设设计[M].合肥:合肥肥工业大学出出版社.20022,125—129[3]王国明明,颜高锋.环状给水管管网计算的一一种数据转换换方法[J].合肥工业大大学学报(自然科学版),20

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论