国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

分類房屋面積自動統(tǒng)計(jì)的程序?qū)崿F(xiàn)

2016-03-04 14:27廖維榮
無線互聯(lián)科技 2015年8期

廖維榮

摘要:在新城建設(shè)或者舊城改造中,決策者往往想先了解征地拆遷工作量及成本,這樣一來,房屋的建筑面積統(tǒng)計(jì)工作變得尤為重要,傳統(tǒng)的手工計(jì)算既費(fèi)時(shí)費(fèi)力,又難以保證其準(zhǔn)確性,文章應(yīng)用VBA編制程序,實(shí)現(xiàn)了房屋分類面積的自動統(tǒng)計(jì)計(jì)算,使繁重的工作變得簡單高效,并且能保證其準(zhǔn)確與可靠性。

關(guān)鍵詞:房屋面積;分類統(tǒng)計(jì);程序計(jì)算;VBA

1引言

隨著社會經(jīng)濟(jì)的發(fā)展,人們對居住環(huán)境要求越來越高,新城建設(shè)和舊城改造項(xiàng)目進(jìn)行的如火入茶;然而在項(xiàng)目的前期,決策者往往想先了解項(xiàng)目的征地拆遷工作量及成本,這樣一來,房屋的建筑面積統(tǒng)計(jì)便成了該項(xiàng)工作的重中之重。傳統(tǒng)的計(jì)算方法是逐間房屋分類手工計(jì)算,然后再匯總手工計(jì)算,這樣既費(fèi)時(shí)費(fèi)力,也難以保證其準(zhǔn)確性,筆者通過思考并結(jié)合實(shí)際項(xiàng)目,應(yīng)用VB語言編制程序,實(shí)現(xiàn)了分類房屋面積的批量自動統(tǒng)計(jì)。

2傳統(tǒng)手工統(tǒng)計(jì)方法

傳統(tǒng)的手工處理方法一般是借助excel辦公軟件,將房屋預(yù)先編號,逐間房屋分類輸入電子表格,然后計(jì)算,分類統(tǒng)計(jì),這樣一來,如果需要統(tǒng)計(jì)的房屋較多,工作量巨大,全部手工輸入很難保證其正確性,對于大范圍的城區(qū)改造,該種方法顯然不可行。

3計(jì)算機(jī)程序自動統(tǒng)計(jì)

3.1開發(fā)工具介紹

VBA是基于ActiveX技術(shù)的AutoCAD二次開發(fā)工具,可以通過ActiveX與AutoCAD進(jìn)行通信,并操縱AutoCAD的許多功能。它基于Visual Basic版本,是面向?qū)ο篌w系結(jié)構(gòu)的一種編程語言,有著與VB幾乎相同的開發(fā)環(huán)境和語法。VBA依附于主應(yīng)用程序AutoCAD,它與主程序的通信簡單而高效,由于共享內(nèi)存空間,使它有更快的執(zhí)行速度,且其語法結(jié)構(gòu)簡潔,深受廣大工程技術(shù)人員喜愛。

3.2程序思路

第一步,房屋分類歸入不同圖層,樓層數(shù)放入房屋中以備后續(xù)程序讀取。

第二步,程序?qū)AD圖進(jìn)行預(yù)處理,如刪除房屋的多余節(jié)點(diǎn),判斷房屋內(nèi)樓層數(shù)的唯一性,如果樓層數(shù)不等于1(有兩個以上或者一個都沒有),程序終止,將房屋換顏色顯示,回手工處理階段。

第三步,程序按圖層讀取房屋面積及樓層數(shù),按順序?qū)⒆x取的房屋編號,將編號、面積、樓層數(shù)輸出至EXCEL表格,將編號及面積寫入相應(yīng)房屋中心位置己備查詢。

第四步,程序自動統(tǒng)計(jì)所有房屋的總面積輸出至EXCEL表格的匯總行,然后結(jié)束程序。

3.3程序界面

程序界面如圖l所示。

3.4部分源代碼

創(chuàng)造房屋選擇集部分

On Error Resume Next

Call ThisDrawing.SelectionSets("MyssFw").Delete

On Error Resume Next

Set MySelectFw=ThisDrawing.SelectionSets.Add("MyssFw")

If Err Then

Err.Clear

Set MySelect Fw = This Drawing.SeleetionSets("MyssFw")

End If

Dim gpCode(0.To 1)As Integer,dataValue(0.To 1)As Variant

gpCode(0)=0:dataValue(0)="LWPolyline"

gpCode(1)=8:dataValue(1)=layer99

MySelectFw.SelectOnScreen gpCode,dataValue選擇JMD房屋

MySelectFw.Select acSelectionSetAll,,,gpCode,dataValue

N=MvSelectFw.Count

MJZn=0

For I=0 To N-1

Set PL=MySelectFw.Item(I)

M=(UBound(PL.Coordinates)+1)/2

ReDim pointsArray(0 To 3*(M-1)+2)AsDouble

ReDim x(0 To M-1)As Double

ReDim y(0 To M-1)As Double

創(chuàng)建文字選擇集部分

0n Error Resume Next

Call ThisDrawing.SelectionSets("MyssTx").Delete

On Error Resume Next

Set MyselectTx=ThisDrawing.SelectionSets.Add("MyssTx")

If Err Then

Err.Clear

Set MyselectTx =This Drawing.SelectionSets("MyssTx")

End If

輸出至Excel表格部分

mySheet.Ceils(I+3,1).Value="合計(jì)"

mySheet.Cells(I+3,2).Value="一層面積(磚混)"

mySheet.Cells(I+3,3).Value="二層面積(磚混)"

mySheet.Cells(I+3,4).Value="三層面積(磚混)"

mySheet.Cells(I+3,5).Value="四層以上面積(磚混)"

mySheet.Cells(I+3,6).Value="房屋總面積(磚混)"

mySheet.Cells(I+3,11).Value="一層面積(磚木)"

mySheet.Cells(I+3,12).Value="二層面積(磚木)"

mySheet.Cells(I+3,13).Value="三層面積(磚木)"

mySheet.Cells(I+3,14).Value="四層以上面積(磚木)"

mySheet.Cells(I+3,15).Value="房屋總面積(磚木)"

mySheet.Cells(I+3,21).Value="一層面積(簡易)"

mySheet.Cells(I+3,22).Value="二層面積(簡易)"

mySheet.Cells(I+3,23).Value="三層面積(簡易)"

mySheet.Cells(I+3,24).Value="四層以上面積(簡易)"

mySheet.Cells(I+3,25).Value="房屋總面積(簡易)"

mySheet.Cells(I+4,1).Value=N

mySheet.Ceils(I+4,2).Value=ZHI

mySheet.Cells(I+4,3).Value=ZH2

mySheet.Cells(I+4,4).Value=ZH3

mySheet.Ceils(I+4,5).Value=ZH4

mySheet.Cells(I+4,6).Value=ZHZ

mySheet.Ceils(I+4,11).Value=ZM1

mySheet.Cells(I+4,12).Value=ZM2

mySheet.Cells(I+4,13).Value=ZM3

mySheet.Ceils(I+4,14).Value=ZM4

mySheet.Cells(I+4,15).Value=ZMZ

mySheet.Cells(I+4,21).Value=JY1

mySheet.Cells(I+4,22).Value=Jf2

mySheet.Cells(I+4,23).Value=JY3

mySheet.Cells(I+4,24).Value=JY4

mySheet.Cells(I+4,25).Value=UYZ

3.5程序運(yùn)行前CAD截圖

程序運(yùn)行前CAD截圖如圖2所示。

3.6程序運(yùn)行后生成的Excel表格

程序運(yùn)行后生成的Excel表格如圖3所示。

4結(jié)語

分類房屋面積統(tǒng)計(jì)程序基本實(shí)現(xiàn)了房屋面積的自動統(tǒng)計(jì)累加,前期僅需少量的人工干預(yù)(僅將不同結(jié)構(gòu)或用途的房屋歸入不同的圖層即可),后續(xù)程序自動讀取房屋面積與層數(shù),并自動分算至各個樓層,方便快捷,省時(shí)省力。特別對于大面積的房屋面積統(tǒng)計(jì)尤能顯示其優(yōu)越性,譬如幾千甚至上萬個房屋,程序運(yùn)行僅幾秒鐘即可統(tǒng)計(jì)完畢,并且保證準(zhǔn)確可靠。由于筆者本身的學(xué)識和實(shí)踐經(jīng)驗(yàn)受限,程序在自動糾錯和速度方面仍有許多可以改進(jìn)提高的地方,筆者在今后的學(xué)習(xí)和工作中不斷將其完善。