《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 建筑CAD墻體識別與剪裁算法設(shè)計(jì)
建筑CAD墻體識別與剪裁算法設(shè)計(jì)
2014年微型機(jī)與應(yīng)用第13期
王志勃1,2,畢艷茹2
1.江蘇省電子產(chǎn)品裝備與制造中心,2.淮安信息職業(yè)技術(shù)學(xué)院,江蘇 淮安
摘要: 以建筑AutoCAD矢量圖形文件為研究載體,以墻體為主要研究對象,設(shè)計(jì)了墻體數(shù)據(jù)深度優(yōu)先探測提取算法。根據(jù)提取出的墻體數(shù)據(jù)集合,設(shè)計(jì)了基于凹點(diǎn)分割的墻體裁剪算法,該算法已在實(shí)踐中進(jìn)行了反復(fù)驗(yàn)證,高效可靠。在此基礎(chǔ)上提出了以中軸線+屬性形式代替墻體的設(shè)計(jì)思想,構(gòu)建墻體抽象模型,為建筑工程量自動(dòng)計(jì)算提供數(shù)據(jù)支持。
Abstract:
Key words :

  摘  要: 以建筑AutoCAD矢量圖形文件為研究載體,以墻體為主要研究對象,設(shè)計(jì)了墻體數(shù)據(jù)深度優(yōu)先探測提取算法。根據(jù)提取出的墻體數(shù)據(jù)集合,設(shè)計(jì)了基于凹點(diǎn)分割的墻體裁剪算法,該算法已在實(shí)踐中進(jìn)行了反復(fù)驗(yàn)證,高效可靠。在此基礎(chǔ)上提出了以中軸線+屬性形式代替墻體的設(shè)計(jì)思想,構(gòu)建墻體抽象模型,為建筑工程量自動(dòng)計(jì)算提供數(shù)據(jù)支持。

  關(guān)鍵詞DXF墻體識別凹點(diǎn)判定;剪裁算法

  近年來,隨著計(jì)算機(jī)技術(shù)和信息技術(shù)的迅猛發(fā)展,建筑工程概預(yù)算領(lǐng)域中出現(xiàn)了大量的預(yù)算軟件,但這些軟件只是在人工讀圖并計(jì)算出工程量的基礎(chǔ)上完成定額套用、調(diào)整、費(fèi)用計(jì)算、報(bào)表編制等工作,工程量計(jì)算工作還停留在由預(yù)算師人工識別圖紙的階段。因此,如何實(shí)現(xiàn)工程量的自動(dòng)計(jì)算是目前建筑工程概預(yù)算領(lǐng)域研究的主要熱點(diǎn)之一,而建筑工程圖的自動(dòng)識別問題是制約工程量計(jì)算自動(dòng)化水平提高的主要瓶頸。本文模仿人工識圖的思路與方法,以建筑AutoCAD中墻體識別建模為例,設(shè)計(jì)出一套有效識別墻體、裁剪建模的算法,解決AutoCAD與工程量計(jì)算的接口問題,為實(shí)現(xiàn)建筑工程量計(jì)算的自動(dòng)化提供參考。

  1 AutoCAD矢量文件研究與墻體元素提取

  AutoCAD采用矢量數(shù)據(jù)格式文件DXF存儲圖形信息[1]。DXF是一種被多數(shù)圖形設(shè)計(jì)軟件接受的文件存儲格式,其實(shí)際上已經(jīng)成為一種行業(yè)標(biāo)準(zhǔn)。隨著AutoCAD的新版本不斷推出,對DXF文件格式作了進(jìn)一步調(diào)整,但基本框架保持不變。DXF文件按先后順序分為7大段,其中實(shí)體段是研究的主要目標(biāo),在實(shí)體段中保存著所有離散的圖形圖元[1],這些實(shí)體有Point、Line、Circle、Arc、Trace、Solid、Polyline、Vertex和3Dface等圖形圖元。每段由鍵值對組成,鍵(通常稱為組碼)表明其后的值的類型,使用這些鍵值對可以將AutoCAD圖形元素組織到由記錄組成的區(qū)域中。

  本文在對建筑墻體識別之前,首先將DXF格式文件轉(zhuǎn)化為可讀性更好、被軟件普遍接受的XML格式文件[2-4]。DXF格式文件轉(zhuǎn)換成XML格式文件后的數(shù)據(jù)格式如圖1所示。從DXF文件中讀取的信息還處于離散狀態(tài),之間沒有任何聯(lián)系,在進(jìn)行墻體識別、裁剪、建模之前要對這些離散數(shù)據(jù)進(jìn)行必要的預(yù)處理,使其滿足識別需要。在房屋建筑制圖統(tǒng)一標(biāo)準(zhǔn)[5]中,對建筑制圖中的各種圖形元素畫法都作出了非常具體的規(guī)定,其中墻體具有以下特點(diǎn)。

  (1)任何一段墻體都構(gòu)成一個(gè)封閉的區(qū)域,并且構(gòu)成墻體的線段數(shù)要大于或等于4;

  (2)每段墻體之間通過門、窗等建筑構(gòu)件相連接;

  (3)通常按照建筑中墻體的外型,可以將墻體分為L型、T型、C型、+型、直線型和復(fù)雜的不規(guī)則類型等。建筑圖中墻體的常見形狀如圖2所示。

001.jpg

  構(gòu)成墻體的主要圖元就是線段,墻體是由若干條線段形成的一個(gè)封閉區(qū)域。對于墻體的數(shù)據(jù)提取,可以采用深度優(yōu)先遍歷方法[6-7],在已讀出的大量線段中任意選取一條作為起始點(diǎn),根據(jù)線段兩端的坐標(biāo)去匹配下一條線段,直到回到起點(diǎn)。

  根據(jù)以上特點(diǎn),設(shè)計(jì)用于在離散數(shù)據(jù)中識別提取墻體的算法1。

  算法1:墻體識別提取算法

  (1)?坌l(wèi)ine?奐{linei|i≥1}。

  (2)提取l1起點(diǎn)坐標(biāo)S{x,y,z}。

  (3)提取l1終點(diǎn)坐標(biāo)P{x,y,z},與{linei|i≥1}中其他線段起點(diǎn)坐標(biāo)匹配。

  (4)匹配成功,得到l2,存儲l1,l1=l2。

  (5)LOOP重復(fù)步驟(3)~步驟(4),循環(huán)計(jì)數(shù)器count

  IF P{x,y,z}==S{x,y,z},存儲所有墻體線段;

  IF count>i,放棄所有線段,重新探測。

  經(jīng)過算法1處理后,從眾多離散線段中識別、提取出墻體集合{walli|i≥1}{linei|i≥1}。

  2 墻體圖形裁剪算法設(shè)計(jì)

  在成功獲取墻體集合后,采用提取墻體中軸線的方法建立墻體數(shù)學(xué)模型,但對于形式復(fù)雜的墻體造型,若直接提取中軸線會(huì)造成建筑工程量計(jì)算的重復(fù),導(dǎo)致數(shù)據(jù)偏差,所以還要對墻體進(jìn)行進(jìn)一步的細(xì)分。本文提出了基于凹點(diǎn)多邊形墻體裁剪算法[8-11],將復(fù)雜墻體分割成相對簡單的墻體單元。

  針對平面直角坐標(biāo)系中墻體構(gòu)造的多邊形,判斷凹點(diǎn)及采集算法如下。

  算法2:凹點(diǎn)判斷與墻體裁剪算法

  在建筑CAD中絕大多數(shù)墻體都是水平或鉛直的,同時(shí)存在有一定角度或弧形的墻體。對于水平和鉛直類墻體,可以使用比較法判斷凹點(diǎn);對于有一定角度的墻體,拐點(diǎn)可以采用斜率法進(jìn)行判斷;對于弧形墻體,將進(jìn)行特殊處理,不在本文討論范圍內(nèi)。

  (1)對于水平鉛直墻體的凹點(diǎn)判斷與裁剪算法。

  ①從墻體集合{walli|i≥1}中選取一組封閉墻體數(shù)據(jù),以x分量最小的點(diǎn)作為起點(diǎn)。

  ②嚴(yán)格按照順時(shí)針方向遍歷墻體線段。

  定義:起始線段li(i=1),起點(diǎn)坐標(biāo)s(xi,yi),終點(diǎn)坐標(biāo)e(xi,yi),順時(shí)針鄰接線段為li+1,起點(diǎn)坐標(biāo)s(xi+1,yi+1),終點(diǎn)坐標(biāo)e(xi+1,yi+1),兩線段交點(diǎn)為P,即e(xi,yi)=s(xi+1,yi+1)。

  IF (e|yi>s|yi) and (e|xi+1>e|xi) THEN P為凸點(diǎn);

  IF (e|yi>s|yi) and (e|xi+1<e|xi) THEN P為凹點(diǎn);

  IF (e|yi<s|yi) and (e|xi+1<e|xi) THEN P為凸點(diǎn);

  IF (e|yi<s|yi) and (e|xi+1>e|xi) THEN P為凹點(diǎn);

  簡單來說,從起點(diǎn)開始,x、y坐標(biāo)變化滿足下面規(guī)律就是最簡墻體;否則,若存在凹點(diǎn),就延長線段交于墻體線段集合中的某條線段,并分離出一段墻體。

002.jpg

  裁剪算法過程演示如圖3所示。在圖3(a)中,選出A為遍歷起點(diǎn)。遍歷過程為:AB(Y↑)→BC(X↑)→CD(Y↓)→DE(X↓)→EF(Y↑)→FG(X↓),在EF-FG線段交點(diǎn)處出現(xiàn)凹點(diǎn),記錄F點(diǎn)信息,向墻體集合中添加輔助線段FX,并將EF延長到X,即用EX代替DF,并將CD、DE、EX、XC從墻體集合中分離出來形成單獨(dú)集合。重復(fù)以上算法,對剩余墻體集合繼續(xù)遍歷,任何一段復(fù)雜的墻體集合通過該算法都能分解成為最簡墻體,即得到墻體的最簡形式。

  (2)使用斜率判定非水平鉛直墻體的凹點(diǎn)。

  定義:d為相鄰兩條線段的斜率差,由于墻體線段不在水平鉛直狀態(tài),無需考慮分母為零的情況。

  IF(e|yi>s|yi)

  IF d>0 THEN P為凹點(diǎn)

  IF d<0 THEN P為凸點(diǎn)

  IF(e|yi>s|yi)

  IF d>0 THEN P為凸點(diǎn)

  IF d<0 THEN P為凹點(diǎn)

  3 墻體數(shù)據(jù)模型構(gòu)建

  圖紙識別的最終目的是要建立起墻體的數(shù)學(xué)模型,并在此基礎(chǔ)上實(shí)現(xiàn)對建筑工程量的估算[12]。模型是全面反映墻體形狀和結(jié)構(gòu)的基礎(chǔ),并附加以必要的屬性。墻體的中軸線是確定墻體的核心數(shù)據(jù),利用分解后的簡單墻體中平行的兩長邊端點(diǎn)信息,可以確定中軸線兩端點(diǎn)坐標(biāo),并將該段墻體的厚度等設(shè)計(jì)參數(shù)一并存入中軸線數(shù)據(jù)結(jié)構(gòu)中,形成一個(gè)關(guān)于墻體中軸線鏈表。設(shè)墻體的兩條平行邊為l1和l2,起點(diǎn)為s,終點(diǎn)為e,則中軸線兩端點(diǎn)坐標(biāo)為:

  _5PHX[TNP3@3BWN03%JS7[Y.jpg

  可以用鏈表構(gòu)造其內(nèi)部存儲結(jié)構(gòu),鏈表的節(jié)點(diǎn)定義如圖4所示。

003.jpg

  有了以上軸線抽象模型,可以方便、準(zhǔn)確地計(jì)算墻體的長度,重構(gòu)墻體輪廓,方便后期建筑工作量提取[13]。

  本文在對AutoCAD矢量數(shù)據(jù)文件大量研究的基礎(chǔ)上,以建筑工程中墻體為例,設(shè)計(jì)了墻體深度優(yōu)先識別提取算法;針對提取的復(fù)雜墻體,設(shè)計(jì)了基于凹點(diǎn)分割的墻體裁剪算法,并以墻體中軸線模型加屬性的方式重構(gòu)墻體,為工程量計(jì)算提供有效支持。在算法設(shè)計(jì)過程中注重與具體問題相結(jié)合,加入識別裁剪過程中的輔助因素,降低了通用算法的復(fù)雜度,使算法簡潔而高效。

  參考資料

  [1] Autodesk Inc. DXF Reference. http://www.autodesk.com/techpubs/autocad/acadr14/dxf/.

  [2] 王志勃.基于DXF文件格式的讀取與XML轉(zhuǎn)換[J].新學(xué)術(shù),2007(6):240-243.

  [3] 劉傳亮,陸建德.AutoCAD DXF文件格式與二次開發(fā)圖形軟件編程[J].微機(jī)發(fā)展,2004(9):101-104.

  [4] 舒飛.中文版AutoCAD 2004二次開發(fā)標(biāo)準(zhǔn)教程[M].上海:上海科學(xué)普及出版社,2004.

  [5] GB/T 50001-2001. 房屋建筑制圖統(tǒng)一標(biāo)準(zhǔn)[S].

  [6] DOSCH P H, MASINI G. Reconstruction of the 3D structure of a building from the 2D Drawings of its Floors[J].  Proceedings of the 5th International Conference on Document Analysis and Recognition, Bangalore(India),1999:487-490.

  [7] Yu Yuhong, SAMAL A. A system for recognizing a large class of engineering drawings[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,1997,19(8): 868-890.

  [8] 宋曉眉,程昌秀,周成虎.簡單多邊形頂點(diǎn)凹凸性判斷算法綜述[J].國土資源遙感,2011,90(3):25-30.

  [9] 陳炳發(fā),錢志峰,廖文和.簡單多邊形凸凹性自識別算法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2002(3):214-218.

  [10] FEITO F, TORRES J C, URENA A. Orientation, simplicity, and inclusion test for planar polygons[J]. Computers & Graphics,1995,19(4):595-600.

  [11] DORI D, Liu Wenyin. Automated CAD conversion with the machine drawing under standing system:Concepts algorithm and performance[J]. IEEE Transaction on System, Man and Cybernetics, part A: System and Humans, 1999,29(4):411-416.

  [12] 孫靜波,侯秀萍,鄭虹.建筑圖數(shù)字化存貯與工程量計(jì)算模型的實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2003(10):222-225.

  [13] 陸再林,張樹有,譚建榮.基于圖形理解的預(yù)算工程量提取算法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2002(5):442-446.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 亚洲中文字幕不卡无码| 国产xx肥老妇视频| 亚洲精品视频在线观看你懂的| 亚洲五月丁香综合视频| 宅男66lu国产在线观看| 久久综合香蕉久久久久久久| 班主任丝袜脚夹茎故事| 国产亚av手机在线观看| 500福利视频导航| 岛国大片在线播放| 久久精品人妻中文系列| 欧美视频在线网站| 又黄又刺激视频| 黑人巨大战冲田杏梨| 国内精品区一区二区三| 中国国语毛片免费观看视频 | 美女免费网站xx美女女女女女女bbbbbb毛片| 国产精品乳摇在线播放| jizzjizzjizzjizz日本| 日本三级片网站| 亚洲另类自拍丝袜第1页| 男人j放进女人j网站免费| 国产a级特黄的片子视频| 精品第一国产综合精品蜜芽| 在线精品免费视频无码的| 丁香六月色婷婷| 日本乱妇bbwbbw| 亚洲AV高清在线观看一区二区| 波多野结衣中文一区| 免费的涩涩视频在线播放| 老鸭窝视频在线观看| 国产商场真空露出在线观看| 三级网站在线免费观看| 夜夜精品无码一区二区三区| 一级做a爰片性色毛片刺激| 日本亚洲欧美在线视观看| 亚洲AV午夜成人片| 欧美性69式xxxx护士| 亚洲精品中文字幕乱码三区| 丰满妇女强制高潮18XXXX| 永久免费观看的毛片的网站|