水利工程断面图应用论文

时间:2022-07-02 11:13:00

水利工程断面图应用论文

VBA是建立在Office97中的宏语言,现在Autocad2000版内置了VBA开发工具。由于VBA具有VB的语言特点,语言结构简洁,适合工程技术人员开发。

在河道整治、海塘建设、土地整理等大型项目的测量之后,都有一个十分繁琐的过程:画原始纵、横断面图。原始的方法是在测量过后,按照测量的数据,把原始纵横断面画在方格纸上,此种方法既慢,又不规范。现在随着计算机软件的发展,要求测量单位把原始纵横断面图用AUTOCAD表示出来。如果纵横断面图少的话,还可以,如果有大量的原始纵横断面图的话,在测量的同时,就需要有很多人来一笔一划的画。这种方法有很多缺点:

1.需要浪费大量的人力资源,效率低下。

2.容易出错,长时间的重复同一件事情(制图),很容易产生疲倦。

3.出错后不易检查修改。整个原始纵横断面图画好之后,要检查每一个细节,费时费力。

现在,经过我的努力,找到一种画原始纵横断面图的好方法。只要测量人员把测量的数据按照一定的格式输入到数据文件(如txt文本、Excel、数据库等),轻轻点击一下鼠标,整个工程的纵横断面图就画出来了。

测量数据中有断面号、距离、高程等要素,用AUTOLISP和VBA都可以编程读数据、制图。但是,AUTOLISP的语言不如VBA的直观,运行效率也不如VBA的高;同时,AUTOLISP没有很简洁明了的界面,对有些不懂得计算机语言的人来说,在操作上有些困难。而VBA的界面完全可以达到智能化,即操作者只需简单的电脑知识即可完成其操作。

整个制图过程分两步,分别为独立的模块。第一步:创建数据库。利用DAO创建一个数据库,内容包括:图号、中心点的坐标,各个测点的坐标。在创建数据库的时候,要首先知道整个工程一个断面的测点最多有多少。数据库的域只能多,不能少。因为数据库一行就存放一个断面的数据。如果数据库的域少了,则放不下。数据库的域多了没关系,多的部分可以补零。下面介绍一下创建数据库的思路与过程。

使用者打开Autocad2000后,在“工具”菜单下“宏”选项下的“visualbasic编辑器”选项,打开此选项。在添加选项里添加一个新模块。程序的流程图如下:

生成的数据文件可以用来存放一个工程的全部数据,也可以把整个工程的数据分成几大块,分别存放在不同的数据文件。数据库如图:

桩号

第一点距中

心的距离

坐标个数

x坐标0

y坐标0

x坐标1

y坐标1

“第一点距中心的距离”是为了使画出的图形的中心对齐。坐标个数是输入数据的点的个数。后面的坐标从第一点开始,依次输入。默认值均为零。

找到生成的数据文件,然后用Access打开,输入数据。也可以在Excel里,按照数据库同样的格式把数据输好了,再拷贝到Access数据库里。其中的数据文件用的是DAO数据格式。数据库的连接方式很多,有ODBC,DAO,ADO,OLEDB,RDO等数据库连接方式。DAO是建立在MicrosoftJet引擎上的。在VBA中,用户可通过DAO操作Access数据库,十分方便。并且这种数据库的稳定性很好,而其他的数据库格式在VBA中则没有DAO的数据库格式方便,可靠性也不如DAO,因为DAO在数据库的应用中已经大量应用,并且性能可靠。

数据准备好之后,保存数据文件。

第二步:读入数据及制图。

画图的过程中,先是读入所有的数据,给各个变量赋值,然后再按照一定的先后顺序画。每个断面画好之后,变成一个模块,模块的插入点在断面图的左下角。等所有的图形都画好之后,再插入到图框中。图框的大小要先选好。在插入各个断面块体时,要控制插入点的位置,如图:1区为已经插入图形的区域,2、3区为下一幅图要放的区域,4为空白区域。先画好图框,然后x1=0;x2=图框长;y1=0;y2=图框高。

插入第一个断面图,

x1=图形长+a,y1=图形1高+a,

x2=x2-a-x1,y2=y2-a-y1

式中,a为图形与图形之间或图形与图框之间的距离,可以根据图框的大小调节。插入点在相对图框左上角点(a,-y1)处。插入第一个断面图之后,第二个断面图在插入时,有几种情况:

(1)图形大小小于2号区域,即第二幅图形的长<x2并且高<y1,则插入,插入点在相对图框左上角点(x1+a,-y1)处。x1=x1+图形长+a,y1=y1,X2=x2-x1,y2=y2。

(2)图形的高大于2号区域,即第二幅图形的长<x2,但高>y1,则y1=图形2高+a,插入点在相对图框左上角点(x1+a,-y1)处。X1=x1+图形长+a,y1=图形2高+a,X2=x2-x1,y2=图框高-y1。

(3)图形的长大于2号区域,即第二幅图形的长>x2,高<y2,则放在3号区域,

x1=图形2长+a,y1=y1+图形2高+a

插入点在相对图框左上角点(a,-y1)

x2=图框长-max(图形1长+a,图形2长+a)-a

y2=图框高-y1

式中maxmax(图形1长+a,图形2长+a)为取两个值中的最大值。

(4)图形太大,在2、3区域都放不下,则x1、x2、y1、y2恢复原值,另画一个图框,按照刚才的方法,依次插入图形。

图形画好之后,保存图形,然后仔细查看,如果有问题,要核对数据文件里的数据。数据确定准确无误后,重新运行第二步,生成图形文件,保存时覆盖上一次的错误的文件。然后就可以出图。

此种方法有以下优点:

(1)整个过程简洁,不需要测量人员花大量的时间描绘图纸。不论工程的大小,测量数据的多少,一个人即可完成。节约了大量的宝贵的劳动力资源。并且工程量越大,效果越明显。

(2)由于过程简单,不容易出错。

(3)便于检查、修改。测量人员在往数据文件输入数据后,只要校核一下原始数据,即可确认画出的图形准确无误。

(4)为以后的发展奠定基础。以后的测量,如果是用全测仪,测量数据可以保存在磁盘里,只要往计算机里拷贝一下,就可出图,工作效率极度提高。即便不用全测仪,也可用扫描仪把数据文件扫描下来,然后生成数据文件,免去了输入数据的麻烦。工作效率依然很高,并且不易出错。