水利工程斷面圖的應用論文
VBA是建立在Office97中的宏語(yǔ)言,現在A(yíng)utocad2000版內置了VBA開(kāi)發(fā)工具。由于VBA具有VB的語(yǔ)言特點(diǎn),語(yǔ)言結構簡(jiǎn)潔,適合工程技術(shù)人員開(kāi)發(fā)。
在河道整治、海塘建設、土地整理等大型項目的測量之后,都有一個(gè)十分繁瑣的過(guò)程:畫(huà)原始縱、橫斷面圖。原始的方法是在測量過(guò)后,按照測量的數據,把原始縱橫斷面畫(huà)在方格紙上,此種方法既慢,又不規范,F在隨著(zhù)計算機軟件的發(fā)展,要求測量單位把原始縱橫斷面圖用AUTOCAD表示出來(lái)。如果縱橫斷面圖少的話(huà),還可以,如果有大量的原始縱橫斷面圖的話(huà),在測量的同時(shí),就需要有很多人來(lái)一筆一劃的畫(huà)。這種方法有很多缺點(diǎn):
1.需要浪費大量的人力資源,效率低下。
2.容易出錯,長(cháng)時(shí)間的重復同一件事情(制圖),很容易產(chǎn)生疲倦。
3.出錯后不易檢查修改。整個(gè)原始縱橫斷面圖畫(huà)好之后,要檢查每一個(gè)細節,費時(shí)費力。
現在,經(jīng)過(guò)我的努力,找到一種畫(huà)原始縱橫斷面圖的好方法。只要測量人員把測量的數據按照一定的格式輸入到數據文件(如txt文本、Excel、數據庫等),輕輕點(diǎn)擊一下鼠標,整個(gè)工程的縱橫斷面圖就畫(huà)出來(lái)了。
測量數據中有斷面號、距離、高程等要素,用AUTOLISP和VBA都可以編程讀數據、制圖。但是,AUTOLISP的語(yǔ)言不如VBA的直觀(guān),運行效率也不如VBA的高;同時(shí),AUTOLISP沒(méi)有很簡(jiǎn)潔明了的界面,對有些不懂得計算機語(yǔ)言的人來(lái)說(shuō),在操作上有些困難。而VBA的界面完全可以達到智能化,即操作者只需簡(jiǎn)單的電腦知識即可完成其操作。
整個(gè)制圖過(guò)程分兩步,分別為獨立的模塊。第一步:創(chuàng )建數據庫。利用DAO創(chuàng )建一個(gè)數據庫,內容包括:圖號、中心點(diǎn)的坐標,各個(gè)測點(diǎn)的坐標。在創(chuàng )建數據庫的時(shí)候,要首先知道整個(gè)工程一個(gè)斷面的測點(diǎn)最多有多少。數據庫的域只能多,不能少。因為數據庫一行就存放一個(gè)斷面的`數據。如果數據庫的域少了,則放不下。數據庫的域多了沒(méi)關(guān)系,多的部分可以補零。下面介紹一下創(chuàng )建數據庫的思路與過(guò)程。
使用者打開(kāi)Autocad2000后,在“工具”菜單下“宏”選項下的“visualbasic編輯器”選項,打開(kāi)此選項。在添加選項里添加一個(gè)新模塊。程序的流程圖如下:
生成的數據文件可以用來(lái)存放一個(gè)工程的全部數據,也可以把整個(gè)工程的數據分成幾大塊,分別存放在不同的數據文件。數據庫如圖:
樁號
第一點(diǎn)距中
心的距離
坐標個(gè)數
x坐標0
y坐標0
x坐標1
y坐標1
“第一點(diǎn)距中心的距離”是為了使畫(huà)出的圖形的中心對齊。坐標個(gè)數是輸入數據的點(diǎn)的個(gè)數。后面的坐標從第一點(diǎn)開(kāi)始,依次輸入。默認值均為零。
找到生成的數據文件,然后用Access打開(kāi),輸入數據。也可以在Excel里,按照數據庫同樣的格式把數據輸好了,再拷貝到Access數據庫里。其中的數據文件用的是DAO數據格式。數據庫的連接方式很多,有ODBC,DAO,ADO,OLEDB,RDO等數據庫連接方式。DAO是建立在MicrosoftJet引擎上的。在VBA中,用戶(hù)可通過(guò)DAO操作Access數據庫,十分方便。并且這種數據庫的穩定性很好,而其他的數據庫格式在VBA中則沒(méi)有DAO的數據庫格式方便,可靠性也不如DAO,因為DAO在數據庫的應用中已經(jīng)大量應用,并且性能可靠。
數據準備好之后,保存數據文件。
第二步:讀入數據及制圖。
畫(huà)圖的過(guò)程中,先是讀入所有的數據,給各個(gè)變量賦值,然后再按照一定的先后順序畫(huà)。每個(gè)斷面畫(huà)好之后,變成一個(gè)模塊,模塊的插入點(diǎn)在斷面圖的左下角。等所有的圖形都畫(huà)好之后,再插入到圖框中。圖框的大小要先選好。在插入各個(gè)斷面塊體時(shí),要控制插入點(diǎn)的位置,如圖:1區為已經(jīng)插入圖形的區域,2、3區為下一幅圖要放的區域,4為空白區域。先畫(huà)好圖框,然后x1=0;x2=圖框長(cháng);y1=0;y2=圖框高。
插入第一個(gè)斷面圖,
x1=圖形長(cháng)+a,y1=圖形1高+a,
x2=x2-a-x1,y2=y2-a-y1
式中,a為圖形與圖形之間或圖形與圖框之間的距離,可以根據圖框的大小調節。插入點(diǎn)在相對圖框左上角點(diǎn)(a,-y1)處。插入第一個(gè)斷面圖之后,第二個(gè)斷面圖在插入時(shí),有幾種情況:
(1)圖形大小小于2號區域,即第二幅圖形的長(cháng)<x2并且高<y1,則插入,插入點(diǎn)在相對圖框左上角點(diǎn)(x1+a,-y1)處。x1=x1+圖形長(cháng)+a,y1=y1,X2=x2-x1,y2=y2。
(2)圖形的高大于2號區域,即第二幅圖形的長(cháng)
(3)圖形的長(cháng)大于2號區域,即第二幅圖形的長(cháng)>x2,高<y2,則放在3號區域,
x1=圖形2長(cháng)+a,y1=y1+圖形2高+a
插入點(diǎn)在相對圖框左上角點(diǎn)(a,-y1)
x2=圖框長(cháng)-max(圖形1長(cháng)+a,圖形2長(cháng)+a)-a
y2=圖框高-y1
式中maxmax(圖形1長(cháng)+a,圖形2長(cháng)+a)為取兩個(gè)值中的最大值。
(4)圖形太大,在2、3區域都放不下,則x1、x2、y1、y2恢復原值,另畫(huà)一個(gè)圖框,按照剛才的方法,依次插入圖形。
圖形畫(huà)好之后,保存圖形,然后仔細查看,如果有問(wèn)題,要核對數據文件里的數據。數據確定準確無(wú)誤后,重新運行第二步,生成圖形文件,保存時(shí)覆蓋上一次的錯誤的文件。然后就可以出圖。
此種方法有以下優(yōu)點(diǎn):
(1)整個(gè)過(guò)程簡(jiǎn)潔,不需要測量人員花大量的時(shí)間描繪圖紙。不論工程的大小,測量數據的多少,一個(gè)人即可完成。節約了大量的寶貴的勞動(dòng)力資源。并且工程量越大,效果越明顯。
(2)由于過(guò)程簡(jiǎn)單,不容易出錯。
(3)便于檢查、修改。測量人員在往數據文件輸入數據后,只要校核一下原始數據,即可確認畫(huà)出的圖形準確無(wú)誤。
(4)為以后的發(fā)展奠定基礎。以后的測量,如果是用全測儀,測量數據可以保存在磁盤(pán)里,只要往計算機里拷貝一下,就可出圖,工作效率極度提高。即便不用全測儀,也可用掃描儀把數據文件掃描下來(lái),然后生成數據文件,免去了輸入數據的麻煩。工作效率依然很高,并且不易出錯。