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