APP下载

结构施工图中暗柱识别算法研究

2015-11-22张维锦石学荣王漪璇

华东交通大学学报 2015年2期
关键词:边线逆时针轮廓线

张维锦,汪 雷,石学荣,王漪璇

(华东交通大学土木建筑学院,江西 南昌330013)

在建筑工程全生命周期过程中,施工图以其特有的方式传递设计信息,国内的建筑结构施工图平面整体设计方法(11G01-1,简称平法),把结构构件尺寸和配筋等,按照平面整体表示方法制图规则,整体直接表达在各类构件的结构平面布置图上,再与标准构造详图相配合,构成一套完整的结构设计体系,施工图表示简单、规范。现有的施工图纸均是采用计算机辅助设计软件按11G101-1图集绘制输出电子图纸,工程技术人员通过这种二维的电子图纸提取设计信息进行后续工作,信息的提取效率不高,并且信息认知以及理解很容易因为技术人员的专业知识和疲劳程度不同而产生差异。因此,研究计算机自动识别工程图纸,区分图纸上的图元指代构件,与图纸上字符信息匹配生成三维构件,取代人工读图来保证工作质量和工作效率,是一个非常重要的课题。

针对CAD绘制的图纸识别有很多相关研究,有的通过图形几何特点和拓扑信息区分图形二维信息用来提高图形理解效率[1],还有的识别图纸建筑信息到建筑火灾疏散模拟器,通过信息拟合从而动态模拟建筑中每一个住户在每一个时间点的疏散情况[2]以及面向不同领域的通用识别规则研究[3]。剪力墙及暗柱是住宅建筑中常用的结构形式,其施工图形中暗柱包括定位图以及柱表,平面图中暗柱数量多、柱截面类型多且复杂,在现有三维建模应用软件中尚未发现能比较有效的识别方法,大都采用人工依据暗柱表进行截面设置及钢筋设置,然后进行布置。针对建筑工程结构施工图中暗柱构件,提出一套适用于暗柱定位图批量识别的算法,该算法通过提取对象样本图形特征,结合结构设计人员绘图规范及习惯,适用暗柱图纸识别规则,并应用于“维锦真三维”三维钢筋、工程量算量软件。

1 施工图纸中的暗柱识别机制

对于工程中剪力墙结构及框剪结构,均存在剪力墙。剪力墙可视为由剪力墙暗柱、剪力墙身和剪力墙梁三类构件构成。平法图集11G101-1[4]中剪力墙的平法施工图平面定位图包含暗柱、剪力墙身及连梁。进行图纸识别时,墙柱(即暗柱)、墙身和墙梁三类构件要对应各自属性正确识别。生成的钢筋模型要满足平法图集12G901-1[5]中构件之间的钢筋构造要求。研究提出一种面向暗柱构件的识别规则,通过分析大量施工图中剪力墙的绘制特点,结合大量设计人员绘图习惯,提出一套适用于实际工程图纸中的暗柱识别规则。

1.1 要识别的图纸情况

通过对比分析大量工程图纸,针对暗柱平面定位图的暗柱轮廓线识别算法,需要识别的情况有平面图暗柱无独立的封闭线和平面图暗柱有独立封闭线两种情况,如图1为平面图有独立封闭线与无独立封闭线情况对比;无独立封闭线中暗柱轮廓线与剪力墙段轮廓线重合,柱相当于外轮廓线中加分割线分隔开墙段与柱,而有独立封闭线暗柱为暗柱的轮廓线与剪力墙线是处于不同图层绘制,暗柱的封闭边线能单独选中。

图1 工程图中暗柱图例Fig.1 Embedded column legend of engineering drawings

1.2 识别依据

研究的工程图纸识别是针对于AutoCAD设计的图纸文件,导入的图形为DXF格式,识别与重建中的对象图元(线段、弧线、块信息等)在DXF文件中保存了坐标、方向以及图层信息等。因此,在识别多而杂的图形文件时,利用结构设计人员在绘制施工图纸时把钢筋、柱边线、尺寸线等图元分图层管理的便利,进行图形识别的时候也分图层进行处理,可以减少程序运行时间。

1.3 对象的指定

为了指定一个工程对象的图形,需进行以下3个步骤的操作:

1)拉一个包含暗柱平面图的矩形框或点击暗柱线段使对象线段处于选中状态,并指定对象为暗柱;

2)指定在矩形框内与暗柱无关的线段;

3)指定在矩形框内先处理的对象。

2 对象图形的分析与预处理

在进行暗柱三维重建的轮廓线计算之前,先对指定的暗柱边线图元进行如下预处理,从而在进行封闭的轮廓线判定时避免重复计算同一根线段,同时排除不用计算的无用边。

2.1 所有线段的交点做打断处理

如图1所示的暗柱图纸,点选或框选剪力墙的CAD线,处于虚线选中状态后,暗柱轮廓线不管是封闭还是不封闭的线段,均在交点处打断,存储为单段的线段,暗柱分割线与墙线的交点处也进行打断,最后保存所有点的坐标。这个处理在计算机中的实现过程为:先计算每条线段的端点个数M,若M>2,该线段在CAD中就是用多段线绘制,在端点处进行打断,图2为图1中的案例交点打断情况。

图2 对图例中的图元做打断处理后的节点情况图Fig.2 The joint of drawing element after breaking

2.2 删除重叠线段

根据每个人主观绘图的差异,墙线与暗柱线段可能存在重叠,为了减少暗柱边线计算过程中因为线段重叠而重复计算,在预处理时进行线段端点坐标判断,存在端点坐标相同或相反的线段就确定为线段重叠,需要进行删除一根重复线段的处理。

3 暗柱识别方法

图1中为暗柱定位图中不同的暗柱绘制方法,每一个图例中的暗柱都有不同的图形描述形式和特点,因此需要与之相适应的识别方法。

3.1 无独立封闭线的暗柱识别

对于无独立封闭线暗柱识别,所有选中的对象图元都是有用的。剪力墙的平面图全部选中,既要生成暗柱,又要生成剪力墙。整个算法就是通过一个起始节点按逆时针方向找到下一个节点坐标,生成封闭区域的过程。确保所有的柱轮廓线都是按逆时针方向读取,避免重复生成暗柱。所有封闭区域生成暗柱后,再进行暗柱与剪力墙墙段的区分,算法过程如图3,以图1中的无独立封闭线暗柱为例。

图3 算法流程图Fig.3 Algorithm flow chart

3.1.1 节点坐标存储

首先定义一个数组,把图例中的节点存储到一个这个数组当中,节点情况可参照图2,无独立封闭线暗柱储存了20个点的坐标信息,相当于保存了一个点的集合。把数组中的坐标点按X轴、Y轴坐标由小到大排序。

3.1.2 计算节点连接线段数

计算所有节点连接的线段数,用N表示,并保存在数组对应点中。无独立封闭线暗柱的平面图中节点连接的线段数存在2种情况:第1种是N=2,比如1号节点;第2种是N=3,比如2号节点。

3.1.3 找起始节点、起始方向

取数组的第1个坐标点,判断N的值,若N=3 则把该点放到数组的最后一位,再取第2点进行判断,直到取N=2 的点作为起始点,假定为图2无独立封闭线暗柱中1号节点,与该节点连接的线段有1→2、1→7。

以节点1 为起点,计算两条线段与X轴夹角Ai、Aj,当Aj<Ai时,Aj=Aj+360°,当Aj-Ai差值小于180°时,取Ai线段为起始线段;当Aj-Ai差值大于180°时,取Aj线段为起始线段。

结合图例进行分析,如图4把边1→2及1→7的数据取出进行角度计算,取出顺序是任意的,计算第1条边与X轴夹角存储为Ai,计算第2条边与X轴夹角存储为Aj,再定义一个新的整形数据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,同样判断结果为边1→2。

在初始的算法中,这个计算过程在识别柱的时候基本能保证柱的走向为逆时针。但是如果在数组中取到的初始节点为“凹节点”,例如节点11,通过以节点11为起点计算11→12、11→16与X轴夹角,通过这两个夹角值判断的逆时针走向与图4情况是一样的,也为水平的线段11→12,而对于暗柱GYZ2,节点11到节点12为顺时针走向。所以之后的计算加入了数组中坐标排序这一步,从而初始节点的确定时可以排除这些“凹节点”。

3.1.4 找下一条边线

判断节点连接的线段数N,当N=3时,如通过起始节点1号节点逆时针找到的2号节点,判断2号节点连接的另外2条线段为2→3、2→8。如图5所示,以节点2为起点,计算线段2→1与X轴夹角保存为Af,计算剩余2 条线段与X轴夹角As、At。若As<Af,则As=As+360°,若At<Af,则At=At+360°,;定义2 个新的整形数据Ad1与Ad2,令Ad1=As-Af、Ad2=At-Af,比较Ad1与Ad2大小,取角度差值更大的边为下一条边线。上述计算存在2种情况,As、At所对应的线段是不确定的,不管先取出计算角度的是边2→8还是2→3,最后判断的结果都是差值更大的边2→8。

当N=2时,如节点7则不需要判断夹角,直接可以确定7→1为一条柱边线,1号节点坐标与初始节点坐标相同则线段封闭,生成第一个柱。

图4 进行角度计算的两条边Fig.4 The two edges of angular calculation

图5 下一条边判断Fig.5 Identification of next edge

3.1.5 提取柱名称

CAD的字符是特殊图元,捕捉点在左下角。通过字符内是否存在字母“Z”进行判断是否是柱的名称,从而排除墙名称字符“Q”。有柱名称引线(图例中的柱即有柱名称引线)可以通过引线引导找到字符信息,没有柱名称引线时通过判断离柱最近的柱名称字符确定。剪力墙段提取不到柱名称。

3.1.6 删除暗柱CAD线

对使用过一次的坐标点连接线段数都做减1处理,即N=N-1,把N<2 的点及线段删除。从而进行下一个柱边线判断时不用再判断这些线段;并且数组中点2、8连接线段数N均重置为2。如图6所示。

图6 删除N<2节点Fig.6 canceling the joints of N<2

3.1.7 下一个柱的识别

将数组重置后,在新的数组中找到新的起始节点,假设为图5中的8号节点,在找到逆时针方向得出下一个封闭边线为8→2→3→9→8。

识别到封闭轮廓线后进行柱名称的提取,因为墙段是没有名称的,所以先识别为无名称的暗柱。

3.1.8 区分剪力墙段与暗柱

根据剪力墙段与暗柱构件的特点进行区分:首先,剪力墙段一定是节点数为4的单段暗柱,直接排除“L”形、“T”形、“十”字形等形状的暗柱;其次,对单段暗柱的4条边中点进行判断,有且仅有2条边的中点落在其他暗柱上则为剪力墙。

3.2 有独立封闭线的暗柱识别

对于有独立封闭线暗柱识别,可以识别前删除墙线,只选中暗柱边线,所有选中的对象图元都是有用的,计算过程要比无独立封闭线暗柱计算简单的多。整个算法就是通过一个起始节点按逆时针方向找到下一个节点坐标的过程,确保所有的柱轮廓线都是按逆时针方向生成,避免重复生成暗柱。

以图2中的有独立封闭线暗柱为例:存储的1—20号坐标点连接线段数均为2,在数组中按X轴、Y轴坐标由小到大对坐标进行排序。计算时先确定起始节点和起始方向。首先取数组中存储的第一个点,因为进行了节点排序,所以取到的节点可以排除“凹点”,如5号和8号节点。假定起始节点为1号节点。然后判断起始逆时针走向为1→2,确定方向后按逆时针循环直到确定边9→1,1的坐标与起始坐标相同,柱的边线确定为1→2→6→5→10→9→1。最后找到该柱最近的名称字符提取柱的名称“AZ1”。

较无独立封闭线的暗柱更为简单的是识别完成一个柱之后对所有使用过的点可以直接删除,不需要进行判断。最后,循环之前的计算方法,在新的数组中找到新的起始节点,假设为图2中的14号节点,在找到逆时针方向为14→18,得出下一个柱边线为14→18→17→13→14,删除使用过的节点后在进行下一个柱识别,直到数组中无可用的点。

4 实验结果

在维锦真三维软件平台上导入暗柱的DXF格式图纸,初始算法中的识别规则,计算方法针对于最简单的有独立封闭线的暗柱,选中暗柱边线,识别到的柱如图7(a);在初始的算法基础上增加连接线段数为3的节点处柱边线判断,修改识别完成一个柱之后CAD底图删除的限制条件,增加剪力墙段的判断从而生成针对无独立封闭线的计算方法,识别到的柱柱结果如图7(b),将柱及剪力墙进行了区分识别。

图7 识别结果Fig.7 Result of identification

5 结论

研究对剪力墙施工图纸进行特征分析,获取图中各类线段的特征并由此建立一种暗柱识别规则的方法。并且考虑了以下几个因素保证了识别的效率以及准确性:有多余的线段影响的图纸通过对端点存储次数排除无用边;暗柱无独立封闭线,采用边删除边生成的方法识别。上述方法已应用于一个三维模型算量软件中进行三维重建图纸识别并取得较好效果。

[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混凝土结构施工图平面整体表示方法制图规则和构造详图[S].北京:中国计划出版社,2011.

[5]中国建筑标准设计研究院.12G-901-1混凝土结构施工钢筋排布规则与构造详图[S].北京:中国计划出版社,2012.

猜你喜欢

边线逆时针轮廓线
海岸水边线提取方法在GF-2卫星影像中的适应性研究
逆时针旋转的水
基于HTML5的凸轮廓线图解法App教学软件研究
心情不好
节日帽
认识足球(六)
突破矩形上边线买入法(1)
逆时针跑,还是顺时针跑?
逆时针跑,还是顺时针跑?
多轮廓线的三维形体重构技术研究与实现*