張維錦,汪 雷,石學榮,王漪璇
(華東交通大學土木建筑學院,江西 南昌330013)
在建筑工程全生命周期過程中,施工圖以其特有的方式傳遞設計信息,國內(nèi)的建筑結(jié)構(gòu)施工圖平面整體設計方法(11G01-1,簡稱平法),把結(jié)構(gòu)構(gòu)件尺寸和配筋等,按照平面整體表示方法制圖規(guī)則,整體直接表達在各類構(gòu)件的結(jié)構(gòu)平面布置圖上,再與標準構(gòu)造詳圖相配合,構(gòu)成一套完整的結(jié)構(gòu)設計體系,施工圖表示簡單、規(guī)范?,F(xiàn)有的施工圖紙均是采用計算機輔助設計軟件按11G101-1圖集繪制輸出電子圖紙,工程技術(shù)人員通過這種二維的電子圖紙?zhí)崛≡O計信息進行后續(xù)工作,信息的提取效率不高,并且信息認知以及理解很容易因為技術(shù)人員的專業(yè)知識和疲勞程度不同而產(chǎn)生差異。因此,研究計算機自動識別工程圖紙,區(qū)分圖紙上的圖元指代構(gòu)件,與圖紙上字符信息匹配生成三維構(gòu)件,取代人工讀圖來保證工作質(zhì)量和工作效率,是一個非常重要的課題。
針對CAD繪制的圖紙識別有很多相關(guān)研究,有的通過圖形幾何特點和拓撲信息區(qū)分圖形二維信息用來提高圖形理解效率[1],還有的識別圖紙建筑信息到建筑火災疏散模擬器,通過信息擬合從而動態(tài)模擬建筑中每一個住戶在每一個時間點的疏散情況[2]以及面向不同領(lǐng)域的通用識別規(guī)則研究[3]。剪力墻及暗柱是住宅建筑中常用的結(jié)構(gòu)形式,其施工圖形中暗柱包括定位圖以及柱表,平面圖中暗柱數(shù)量多、柱截面類型多且復雜,在現(xiàn)有三維建模應用軟件中尚未發(fā)現(xiàn)能比較有效的識別方法,大都采用人工依據(jù)暗柱表進行截面設置及鋼筋設置,然后進行布置。針對建筑工程結(jié)構(gòu)施工圖中暗柱構(gòu)件,提出一套適用于暗柱定位圖批量識別的算法,該算法通過提取對象樣本圖形特征,結(jié)合結(jié)構(gòu)設計人員繪圖規(guī)范及習慣,適用暗柱圖紙識別規(guī)則,并應用于“維錦真三維”三維鋼筋、工程量算量軟件。
對于工程中剪力墻結(jié)構(gòu)及框剪結(jié)構(gòu),均存在剪力墻。剪力墻可視為由剪力墻暗柱、剪力墻身和剪力墻梁三類構(gòu)件構(gòu)成。平法圖集11G101-1[4]中剪力墻的平法施工圖平面定位圖包含暗柱、剪力墻身及連梁。進行圖紙識別時,墻柱(即暗柱)、墻身和墻梁三類構(gòu)件要對應各自屬性正確識別。生成的鋼筋模型要滿足平法圖集12G901-1[5]中構(gòu)件之間的鋼筋構(gòu)造要求。研究提出一種面向暗柱構(gòu)件的識別規(guī)則,通過分析大量施工圖中剪力墻的繪制特點,結(jié)合大量設計人員繪圖習慣,提出一套適用于實際工程圖紙中的暗柱識別規(guī)則。
通過對比分析大量工程圖紙,針對暗柱平面定位圖的暗柱輪廓線識別算法,需要識別的情況有平面圖暗柱無獨立的封閉線和平面圖暗柱有獨立封閉線兩種情況,如圖1為平面圖有獨立封閉線與無獨立封閉線情況對比;無獨立封閉線中暗柱輪廓線與剪力墻段輪廓線重合,柱相當于外輪廓線中加分割線分隔開墻段與柱,而有獨立封閉線暗柱為暗柱的輪廓線與剪力墻線是處于不同圖層繪制,暗柱的封閉邊線能單獨選中。
圖1 工程圖中暗柱圖例Fig.1 Embedded column legend of engineering drawings
研究的工程圖紙識別是針對于AutoCAD設計的圖紙文件,導入的圖形為DXF格式,識別與重建中的對象圖元(線段、弧線、塊信息等)在DXF文件中保存了坐標、方向以及圖層信息等。因此,在識別多而雜的圖形文件時,利用結(jié)構(gòu)設計人員在繪制施工圖紙時把鋼筋、柱邊線、尺寸線等圖元分圖層管理的便利,進行圖形識別的時候也分圖層進行處理,可以減少程序運行時間。
為了指定一個工程對象的圖形,需進行以下3個步驟的操作:
1)拉一個包含暗柱平面圖的矩形框或點擊暗柱線段使對象線段處于選中狀態(tài),并指定對象為暗柱;
2)指定在矩形框內(nèi)與暗柱無關(guān)的線段;
3)指定在矩形框內(nèi)先處理的對象。
在進行暗柱三維重建的輪廓線計算之前,先對指定的暗柱邊線圖元進行如下預處理,從而在進行封閉的輪廓線判定時避免重復計算同一根線段,同時排除不用計算的無用邊。
如圖1所示的暗柱圖紙,點選或框選剪力墻的CAD線,處于虛線選中狀態(tài)后,暗柱輪廓線不管是封閉還是不封閉的線段,均在交點處打斷,存儲為單段的線段,暗柱分割線與墻線的交點處也進行打斷,最后保存所有點的坐標。這個處理在計算機中的實現(xiàn)過程為:先計算每條線段的端點個數(shù)M,若M>2,該線段在CAD中就是用多段線繪制,在端點處進行打斷,圖2為圖1中的案例交點打斷情況。
圖2 對圖例中的圖元做打斷處理后的節(jié)點情況圖Fig.2 The joint of drawing element after breaking
根據(jù)每個人主觀繪圖的差異,墻線與暗柱線段可能存在重疊,為了減少暗柱邊線計算過程中因為線段重疊而重復計算,在預處理時進行線段端點坐標判斷,存在端點坐標相同或相反的線段就確定為線段重疊,需要進行刪除一根重復線段的處理。
圖1中為暗柱定位圖中不同的暗柱繪制方法,每一個圖例中的暗柱都有不同的圖形描述形式和特點,因此需要與之相適應的識別方法。
對于無獨立封閉線暗柱識別,所有選中的對象圖元都是有用的。剪力墻的平面圖全部選中,既要生成暗柱,又要生成剪力墻。整個算法就是通過一個起始節(jié)點按逆時針方向找到下一個節(jié)點坐標,生成封閉區(qū)域的過程。確保所有的柱輪廓線都是按逆時針方向讀取,避免重復生成暗柱。所有封閉區(qū)域生成暗柱后,再進行暗柱與剪力墻墻段的區(qū)分,算法過程如圖3,以圖1中的無獨立封閉線暗柱為例。
圖3 算法流程圖Fig.3 Algorithm flow chart
3.1.1 節(jié)點坐標存儲
首先定義一個數(shù)組,把圖例中的節(jié)點存儲到一個這個數(shù)組當中,節(jié)點情況可參照圖2,無獨立封閉線暗柱儲存了20個點的坐標信息,相當于保存了一個點的集合。把數(shù)組中的坐標點按X軸、Y軸坐標由小到大排序。
3.1.2 計算節(jié)點連接線段數(shù)
計算所有節(jié)點連接的線段數(shù),用N表示,并保存在數(shù)組對應點中。無獨立封閉線暗柱的平面圖中節(jié)點連接的線段數(shù)存在2種情況:第1種是N=2,比如1號節(jié)點;第2種是N=3,比如2號節(jié)點。
3.1.3 找起始節(jié)點、起始方向
取數(shù)組的第1個坐標點,判斷N的值,若N=3 則把該點放到數(shù)組的最后一位,再取第2點進行判斷,直到取N=2 的點作為起始點,假定為圖2無獨立封閉線暗柱中1號節(jié)點,與該節(jié)點連接的線段有1→2、1→7。
以節(jié)點1 為起點,計算兩條線段與X軸夾角Ai、Aj,當Aj<Ai時,Aj=Aj+360°,當Aj-Ai差值小于180°時,取Ai線段為起始線段;當Aj-Ai差值大于180°時,取Aj線段為起始線段。
結(jié)合圖例進行分析,如圖4把邊1→2及1→7的數(shù)據(jù)取出進行角度計算,取出順序是任意的,計算第1條邊與X軸夾角存儲為Ai,計算第2條邊與X軸夾角存儲為Aj,再定義一個新的整形數(shù)據(jù)Ad,令Ad=Aj-Ai。圖例中角度計算存在2種情況:第一種情況是計算的第1條邊為1→2,則Ai=0° 、Aj=90° ,Ad=Aj-Ai=90°-0°=90°<180° 取與X 軸夾角為0°的邊1→2;第2 種情況計算的第1 條邊為1→7,則Ai=90°、Aj=0°,因為Aj<Ai,所以Aj=Aj+360°,Ad=Aj-Ai=360°-90°=270°>180°取與X軸夾角為360°的邊1→2,同樣判斷結(jié)果為邊1→2。
在初始的算法中,這個計算過程在識別柱的時候基本能保證柱的走向為逆時針。但是如果在數(shù)組中取到的初始節(jié)點為“凹節(jié)點”,例如節(jié)點11,通過以節(jié)點11為起點計算11→12、11→16與X軸夾角,通過這兩個夾角值判斷的逆時針走向與圖4情況是一樣的,也為水平的線段11→12,而對于暗柱GYZ2,節(jié)點11到節(jié)點12為順時針走向。所以之后的計算加入了數(shù)組中坐標排序這一步,從而初始節(jié)點的確定時可以排除這些“凹節(jié)點”。
3.1.4 找下一條邊線
判斷節(jié)點連接的線段數(shù)N,當N=3時,如通過起始節(jié)點1號節(jié)點逆時針找到的2號節(jié)點,判斷2號節(jié)點連接的另外2條線段為2→3、2→8。如圖5所示,以節(jié)點2為起點,計算線段2→1與X軸夾角保存為Af,計算剩余2 條線段與X軸夾角As、At。若As<Af,則As=As+360°,若At<Af,則At=At+360°,;定義2 個新的整形數(shù)據(jù)Ad1與Ad2,令Ad1=As-Af、Ad2=At-Af,比較Ad1與Ad2大小,取角度差值更大的邊為下一條邊線。上述計算存在2種情況,As、At所對應的線段是不確定的,不管先取出計算角度的是邊2→8還是2→3,最后判斷的結(jié)果都是差值更大的邊2→8。
當N=2時,如節(jié)點7則不需要判斷夾角,直接可以確定7→1為一條柱邊線,1號節(jié)點坐標與初始節(jié)點坐標相同則線段封閉,生成第一個柱。
圖4 進行角度計算的兩條邊Fig.4 The two edges of angular calculation
圖5 下一條邊判斷Fig.5 Identification of next edge
3.1.5 提取柱名稱
CAD的字符是特殊圖元,捕捉點在左下角。通過字符內(nèi)是否存在字母“Z”進行判斷是否是柱的名稱,從而排除墻名稱字符“Q”。有柱名稱引線(圖例中的柱即有柱名稱引線)可以通過引線引導找到字符信息,沒有柱名稱引線時通過判斷離柱最近的柱名稱字符確定。剪力墻段提取不到柱名稱。
3.1.6 刪除暗柱CAD線
對使用過一次的坐標點連接線段數(shù)都做減1處理,即N=N-1,把N<2 的點及線段刪除。從而進行下一個柱邊線判斷時不用再判斷這些線段;并且數(shù)組中點2、8連接線段數(shù)N均重置為2。如圖6所示。
圖6 刪除N<2節(jié)點Fig.6 canceling the joints of N<2
3.1.7 下一個柱的識別
將數(shù)組重置后,在新的數(shù)組中找到新的起始節(jié)點,假設為圖5中的8號節(jié)點,在找到逆時針方向得出下一個封閉邊線為8→2→3→9→8。
識別到封閉輪廓線后進行柱名稱的提取,因為墻段是沒有名稱的,所以先識別為無名稱的暗柱。
3.1.8 區(qū)分剪力墻段與暗柱
根據(jù)剪力墻段與暗柱構(gòu)件的特點進行區(qū)分:首先,剪力墻段一定是節(jié)點數(shù)為4的單段暗柱,直接排除“L”形、“T”形、“十”字形等形狀的暗柱;其次,對單段暗柱的4條邊中點進行判斷,有且僅有2條邊的中點落在其他暗柱上則為剪力墻。
對于有獨立封閉線暗柱識別,可以識別前刪除墻線,只選中暗柱邊線,所有選中的對象圖元都是有用的,計算過程要比無獨立封閉線暗柱計算簡單的多。整個算法就是通過一個起始節(jié)點按逆時針方向找到下一個節(jié)點坐標的過程,確保所有的柱輪廓線都是按逆時針方向生成,避免重復生成暗柱。
以圖2中的有獨立封閉線暗柱為例:存儲的1—20號坐標點連接線段數(shù)均為2,在數(shù)組中按X軸、Y軸坐標由小到大對坐標進行排序。計算時先確定起始節(jié)點和起始方向。首先取數(shù)組中存儲的第一個點,因為進行了節(jié)點排序,所以取到的節(jié)點可以排除“凹點”,如5號和8號節(jié)點。假定起始節(jié)點為1號節(jié)點。然后判斷起始逆時針走向為1→2,確定方向后按逆時針循環(huán)直到確定邊9→1,1的坐標與起始坐標相同,柱的邊線確定為1→2→6→5→10→9→1。最后找到該柱最近的名稱字符提取柱的名稱“AZ1”。
較無獨立封閉線的暗柱更為簡單的是識別完成一個柱之后對所有使用過的點可以直接刪除,不需要進行判斷。最后,循環(huán)之前的計算方法,在新的數(shù)組中找到新的起始節(jié)點,假設為圖2中的14號節(jié)點,在找到逆時針方向為14→18,得出下一個柱邊線為14→18→17→13→14,刪除使用過的節(jié)點后在進行下一個柱識別,直到數(shù)組中無可用的點。
在維錦真三維軟件平臺上導入暗柱的DXF格式圖紙,初始算法中的識別規(guī)則,計算方法針對于最簡單的有獨立封閉線的暗柱,選中暗柱邊線,識別到的柱如圖7(a);在初始的算法基礎上增加連接線段數(shù)為3的節(jié)點處柱邊線判斷,修改識別完成一個柱之后CAD底圖刪除的限制條件,增加剪力墻段的判斷從而生成針對無獨立封閉線的計算方法,識別到的柱柱結(jié)果如圖7(b),將柱及剪力墻進行了區(qū)分識別。
圖7 識別結(jié)果Fig.7 Result of identification
研究對剪力墻施工圖紙進行特征分析,獲取圖中各類線段的特征并由此建立一種暗柱識別規(guī)則的方法。并且考慮了以下幾個因素保證了識別的效率以及準確性:有多余的線段影響的圖紙通過對端點存儲次數(shù)排除無用邊;暗柱無獨立封閉線,采用邊刪除邊生成的方法識別。上述方法已應用于一個三維模型算量軟件中進行三維重建圖紙識別并取得較好效果。
[1]SHERAZ AHMED, MARCUS LIWICKI, MARKUS WEBE, et al.Improved automatic analysis of architectural floor plans[C]//International Conference on Document Analysis and Recognition(ICDAR),2011:864-973.
[2]ZHI G S, LO S M, FANG Z.A graph-based algorithm for extracting unit and loops from architectural floor plans for a building evacuation model[J].Computer Aided Design,2003,35:1-14.
[3]GUO TIANTIAN, ZHANG HUI, WEN YAMEI.An improved example-driven symbol recognition approach in engineering drawings[J].Computer&Graphics,2012,36:835-845.
[4]中國建筑標準設計研究院.11G-101-1混凝土結(jié)構(gòu)施工圖平面整體表示方法制圖規(guī)則和構(gòu)造詳圖[S].北京:中國計劃出版社,2011.
[5]中國建筑標準設計研究院.12G-901-1混凝土結(jié)構(gòu)施工鋼筋排布規(guī)則與構(gòu)造詳圖[S].北京:中國計劃出版社,2012.