基于工作区的工程图纸识别系统及方法、排模系统及方法_2

文档序号:9471541阅读:来源:国知局
图元在识别工作区的范围内。
[0082]通过设置工作区,使得本发明系统具有如下特点:(I)无损识别。应用这种发明,加载到软件的CAD图纸,不会被分割损伤。配合“CAD图纸存储”模块,还可再反存为CAD格式。(2)不用整理分割图纸,大大提高了工作效率。(3)可以绘制“矩形”和“多边形”工作区范围,更灵活地满足实际工程图纸的需要。(4)本发明还具有“绘制多个工作区”的特征,可以在屏幕上绘制多个工作区,建立多个工作后,用鼠标选择某个工作为主工作区,主工作区用不同区的边框线条进行显示。需要时,识别将副工作区的信息同时识别。
[0083]【CAD智能识别提取模块】
[0084]CAD智能识别提取模块用以智能分析工作区内建设工程图纸线条间的相互位置关系和文字标注,将线条转化为实体构件,从而生成三维建筑模型。具体地,CAD智能识别提取模块从CAD图中分离出要识别的构件相关的图元信息,从分离出来的图元信息中分析构件的相关信息,并生成构件实体。所述CAD智能识别提取模块包括:柱墙构件识别提取单元、梁构件识别提取单元、纵梁与横梁分散标注识别单元、板构件识别提取单元、构件编辑单元。
[0085]-柱墙构件识别提取单元用以在CAD图纸载入排模系统后,通过识别CAD图元的图层信息,将“柱”和“剪力墙”所在图层的图元所构成的平面形状智能识别为排模系统中的“柱”和“剪力墙”构件;结合识别CAD图纸上的“层高”数据信息,从而进一步生成构件的三维实体模型。
[0086]-梁构件识别提取单元用以将CAD图纸加载进来后,通过识别CAD图元的图层信息,将“梁”所在图层的图元所构成的平面形状,再结合CAD图纸所标注的梁的尺寸数据,智能识别为排模系统中的“梁”构件;结合识别CAD图纸上的“层高”数据信息,从而进一步生成构件的三维实体模型。
[0087]-纵梁与横梁分散标注识别单元用以识别纵梁与横梁的分散标注;将X向梁与Y向梁的分散标注(如用两张图来表示标注)集中起来识别。
[0088]-板构件识别提取单元用以将CAD图纸加载进来后,通过识别CAD图元的图层信息,将“柱”、“墙”、“梁”所在图层的图元所构成的面状区域智能识别为排模系统中的“板”构件;结合识别CAD图纸上的“层高”数据信息,从而进一步生成构件的三维实体模型。
[0089]-构件编辑单元用以对识别提取出的构件进行编辑;包括针对所有构件的公共编辑,包括旋转、复制、移动、镜像、删除,以及针对不同构件的编辑,包括针对梁构件合并、打断、伸缩。
[0090]其中,所述柱墙构件识别提取单元包括墙构件识别提取单元、柱构件识别提取单
J Li ο
[0091]所述墙构件识别提取单元包括:墙边线选取子单元、墙边线图层更改子单元、墙标注选取子单元、墙边线分组子单元、墙构件计算子单元、墙标注获取子单元、墙构件生成子单元。
[0092]-墙边线选取子单元用以按相同图层、相同颜色的快速方式选取墙边线,墙边线包括直线和圆弧;或用普通的选择方式、即通过鼠标在屏幕点选来选择墙边线。
[0093]-墙边线图层更改子单元用以将选取的墙边线的图层更改到预先设置的墙边线图层中。
[0094]-墙标注选取子单元用以按相同图层、相同颜色的快速方式选取墙标注;或用普通的选择方式、即通过鼠标在屏幕点选来选择墙标注;更改其图层到预先设置的墙标注图层中。
[0095]-墙边线分组子单元用以对墙边线图层中的墙边线按平行线分组,相互平行的线段分到同一组中,相同圆心的圆弧认为是平行线。
[0096]-墙构件计算子单元对同一组中的平行线,计算其相互间的距离,如果距离与预先设置的墙宽度相同则认为是一道墙,计算此平行线的中心线,以平行线的中心线作为墙中心线,平行线间的距离作为墙宽。
[0097]-墙标注获取子单元用以在墙中心线两边、距离为两个墙宽的范围内搜索墙标注,将找到的最近的标注作为此墙的标注。
[0098]-墙构件生成子单元用以根据找到的墙中心线生成墙构件。
[0099]所述柱构件识别提取单元包括:柱边线选取子单元、柱边线图层更改子单元、柱标注选取子单元、柱边线分组子单元、最大外包多边形搜索子单元、柱构件生成子单元、循环生成控制子单元、全部柱构件生成子单元、标注子单元。
[0100]-柱边线选取子单元用以按相同图层、相同颜色的快速方式选取柱边线,包括直线和圆弧;或者用普通的选择方式、即用鼠标在屏幕点选来选择柱边线。
[0101]-柱边线图层更改子单元用以将选取的柱边线的图层更改到预先设置的柱边线图层中。
[0102]-柱标注选取子单元用以按相同图层、相同颜色的快速方式选取柱标注,或者用普通的选择方式、即用鼠标在屏幕点选来选择柱标注;更改其图层到预先设置的柱标注图层中。
[0103]-柱边线分组子单元用以对柱边线图层中的柱边线分组,相互之间有交点的,或者距离在设定距离内的分为同一组;两线段的距离为线段的两个端点到另一线段的距离,相互计算后,取其中的较小值。
[0104]-最大外包多边形搜索子单元用以在同一组线段中,从顶点的X坐标值最小的线段搜索其最大的外包多边形;从一个起始线段出发,从线段集中寻找与之相连的多边形;当起始边在多边形内或边上时,找到的是包含起始边的多边形,此多边形作为板边界;当起始边在多边形外,包括选段集的左、右、上、下处的线段,则找到的是线段集的外包多边形,此多边形作为柱的轮廓。最大外包多边形搜索子单元搜索最大的外包多边形的方法包括:
(I)线段集中所有线段与起始线段求交,找出与起始线段有交点的所有线段;(2)在这些线段中,寻找交点离起始线段的起点最近的线段,但交点不能为起点;(3)在交点处打断所有的线段,包括起始线段;起始线段被打断后,起点到交点之间的线段作为新的起始线段;
(4)按起始线段终点到起点方向作为零度,计算打断后的线段与起始线段的夹角;(5)将夹角最小且不为O的线段作为下一个起始线段,当前起始线段作为要寻找的多边形的一条边;(6)如果下一个起始线段的终点和已找到的多边形的边的某个顶点相同,则该边为多边形的起始边,找到的下一起始线段为多边形的终止边,起始边、终止边以及其之间的线段一起构成最终寻找到的多边形;(7)如果下一个起始线段与已找到的多边形线段不能形成多边形,则从第(I)步开始重复此过程,直到找到多边形为止;如果线段集中没有线段了,则认为没有多边形,也停止寻找。
[0105]-柱构件生成子单元与最大外包多边形搜索子单元连接,用以找到一个外包多边形,将其作为柱的轮廓线,生成一个柱构件;同时从组中删除外轮廓线,以及外轮廓内部的线段。
[0106]-循环生成控制子单元利用最大外包多边形搜索子单元、柱构件生成子单元重复搜索及生成动作,搜索出所有的外包多边形并生成所有柱构件。
[0107]-全部柱构件生成子单元通过最大外包多边形搜索子单元、柱构件生成子单元、循环生成控制子单元搜索完全部线段组,生成全部柱构件。
[0108]-标注子单元用以从柱标注中搜索柱构件对应的标注;标注的文字距离最近的柱轮廓边线不超过文字高度的1.5倍,如果有多个符合要求的柱标注,则按最近的为准;距离的计算方式为:以文字的外包矩形的四个顶点中离柱轮廓线段最近的距离作为文字到轮廓线段的距离。
[0109]所述梁构件识别提取单元包括:梁边线选取子单元、梁边线图层更改子单元、梁标注选取子单元、标注文字识别子单元、梁边线分组子单元、梁构件计算子单元、梁标注获取子单元、梁构件生成子单元。
[0110]-梁边线选取子单元用以按相同图层、相同颜色的快速方式选取梁边线,包括直线和圆弧;或者用普通的选择方式、即通过鼠标在屏幕点选来选择梁边线。
[0111]-梁边线图层更改子单元用以将选取的梁边线的图层更改到预先设置的梁边线图层中。
[0112]-梁标注选取子单元用以按相同图层、相同颜色的快速方式选取梁标注;或者用普通的选择方式、即通过鼠标在屏幕点选来选择梁标注;更改其图层到预先设置的梁标注图层中。
[0113]-标注文字识别子单元用以从所有的梁标注中识别出设定尺寸的标注文字,前一个为梁宽度,后一个为梁高度,并记录到一个梁宽度数组中。
[0114]-梁边线分组子单元用以对墙边线图层中的梁边线按平行线分组,相互平行的线段分到同一组中,相同圆心的圆弧认为是平行线。
[0115]-梁构件计算子单元用以对同一组中的平行线,计算其相互间的距离,如果距离与梁宽度数组中的某一个宽度相同则认为是一道梁,计算此平行线的中心线,作为梁中心线,梁宽为梁宽数组中对应的宽度。
[0116]-梁标注获取子单元用以在梁中心线两边,距离为两个梁宽的范围内搜索梁标注,将找到的最近的标注作为此梁的标注。
[0117]-梁构件生成子单元用以根据梁中心线生成梁构件。
[0118]纵梁与横梁分散标注识别单元包括:保存梁标注子单元、调用梁标注子单元。
[0119]-保存梁标注子单元用以设置纵向梁标注工作区/横向梁标注工作区,并设置原点,提取纵向梁标注/横向梁标注;将提取的纵向梁/横向梁的标注信息进行保存;
[0120]-调用梁标注子单元用以设置横向梁标注工作区/梁向梁标注工作区,并设置原点,将之前保存的纵向梁/横向梁的标注信息呈现到横向梁标注/纵向梁标注上。
[0121]比如要将Y向梁标注复制,粘贴到X向梁图上。
[0122]本发明方案提出两个模块,一个是“保存梁标注”子单元,另一个是“调用梁标注”子单元。“保存梁标注”子单元相当于只复制梁配筋图上的标注信息,“调用梁标注”子单元相当于将复制的梁标注信息进行粘贴。
[0123]本发明方案,结合前述的“多工作区”,还可进一步提高效率,将纵梁和横梁的图纸设为两个工作区,同时识别两个工作区内梁标注信息。
[0124]采用这一方案,优点是:(I)无损识别,不需要“复制”、“粘贴”这样的操作,不操作CAD原图。(2)不需要隐藏图层这些操作,大大提高工作效率。(3)不需要像复制粘贴那样用鼠标有屏幕上频繁缩放移动的操作,大大提高工作效率。
[0125]保存梁标注模块实现方式为:设置“纵向梁标注”工作区;设置原点;提取“纵向梁标注”;点击“保存标注”子单元,将提取的纵向梁的标注信息进行保存。
[0126]调用保存的“纵向梁标注”模块实现方式为:设置“横向梁标注”工作区;设置原点;点击“调用标注”子单元对应的按钮,将之前保存的纵向梁的标注信息呈现到横向梁标注上。上述实现方式中,也可以先保存“横向梁标注”,再在“纵向梁标注”上进行调用。
[0127]所述板构件识别提取单元包括:板边界线段生成子单元、边界线段打断子单元、边界线段移动子单元、判断子单元、内轮廓搜索子单元、第一板构件生成子单元、第二板构件生成子单元、板构件标注获取子单元。
[0128]-板边界线段生成子单元用以提取墙、梁的中心线、柱的轮廓线作为板的边界线段。
[0129]-边界线段打断子单元在所有的边界线段的交点处打断边界线段。
[0130]-边界线段移动子单元用以对每段不是垂直的边界线段,取其中点,如果是墙、梁线段,则向上移动一个墙、梁宽度,如果是柱轮廓线,则向上移动设定距离。
[0131]-判断子单元用以判断所述边界线段移动子单元选取的中点是否在已找到的板轮廓内,如果是则通过边界线段移动子单元继续向上移动,直至上述中点不在已找到的板轮廓内。
[0132]-内轮廓搜索子单元用以以所述边界线段移动子单元选取的中点向右作一射线,作为选中板的起始边界;从此边界开始,在所有的板边界线段中搜索内轮廓。内轮廓搜索子单元搜索内轮廓的方法包括:(I)线段集中所有线段与起始线段求交,找出与起始线段有交点的所有线段;(2)在这些线段中,寻找交点离起始线段的起点最近的线段,但交点不能为起点;(3)在交点处打断所有的线段,包括起始线段;起始线段被打断后,起点到交点之间的线段作为新的起始线段;(4)按起始线段终点到起点方向作为零度,计算打断后的线段与起始线段的夹角;(5)将夹角最小且不为O的线段作为下一个起始线段,当前起始线段作为要寻找的多边形的一条边;(6)如果下一个起始线段的终点和已找到的多边形的边的某个顶点相同,则该边为多边形的起始边,找到的下一起始线段为多边形的终止边,起始边、终止边以及其之间的线段一起构成最终寻找到的多边形;(7)如果下一个起始线段与已找到的多边形线段不能形成多边形,则从第(I)步开始重复此过程,直到找到多边形为止;如果线段集中没有线段了,则认为没有多边形,也停止寻找。
[0133]-第一板构件生成子单元用以通过内轮廓搜索子单元找到一个内轮廓,则作为板的边界线,生成一个板构件。
[0134]-第二板构件生成子单元用以通过边界线段移动子单元、判断子单元、内轮廓搜索子单元、板构件生成子单元搜索出所有的内轮廓并生成板构件。
[0135]-板构件标注获取子单元用以从板标注中搜索板构件对应的标注;标注的文字应在板轮廓内,以找到的第一个标注作为板构件的标注。
[0136]【补充绘图编辑模块】
[0137]补充绘图编辑模块用以将已经识别提取好的三维实体模型发送到排模系统,在进行排模之前,补充绘制楼梯踏步和外墙线条,对CAD智能识别的构件进行全方位编辑修改,生成符合排模需要的三维实体模型。
[0138]【全自动智能排模模块】
[0139]全自动智能排模模块用以进行智能排模;根据智能识别提取模块生成的三维建筑模型采用3D空心布尔算法生成空心模板面,再根据模板面之间的相互关系及设定参数(包括各模板的参数)生成角模板及平面模板,再根据技术规范生成安全的支撑体系及对拉体系。所述全自动智能排模模块包括:模板面生成单元、模板组件生成单元。
[0140]模板面生成单元用以根据智能识别提取模块生成的三维建筑模型采用3D空心布尔算法生成空心模板面,再根据模板面之间的相互关系及设定参数生成角模板及平面模板。模板组件生成单元计算分析出各种构件需要支设模板的面域,然后在这些面域上进行整体排模。
[0141]所述模板面生成单元包括:模板面获取子单元、模板面扣减子单元。
[0142]-模板面获取子单元用以根据建筑规则从多面体中分离出需要布置建筑模板的面,要布置模板的面称作模板面;对多面体的每个面,按其法线与铅垂线的夹角来判断是否布置模板,当夹角超过预设角度时认为是模板面,将其从多面体中复制并分离出来;对不同类型的构件设置不同的角度,以准确获取不同构件的模板面;从而提高识别的效率及精确度。
[0143]-模板面扣减子单元用以对从构件多面体中分离出来的各个模板面进行扣减计算后,才能得到真正需要布置模板的面;扣减计算是用三维布尔算法中的差运算来实现的,对所有模板面按照扣减规则,依次与相邻的构件多面体进行扣减计算,扣除不需要布置模板的部分,最终得到需要布置建筑模板的面。所述模板面扣减子单元的多面体三维布尔差计算方法包括用第一多面体减去第二多面体的流程。
[0144]所述模板面扣减子单元包括:二叉树构造子单元、第一分割子单元、第一多面体处理子单元、第二分割子单元、第二多面体处理子单元、差面保存子单元。
[0145]-二叉树构造子单元用以构造第一多面体、第二多面体的空间分区二叉树。
[0146]-第一分割子单元用以对第一多面体中的每个面依次与第二多面体中的面求交,将第一多面体的面分割成第二多面体的面的正反两部分,每部分再与第二多面体的其它面求交,也同样分成两部分;这样依次与第二多面体中的所有面进行求交计算,将第一多面体的面分割成很多面。
[0147]-第一多面体处理子单元用以对第一多面体分解出来的面,用第二多面体的空间分区二叉树判断是否在第二多面体的内部;若在第二多面体内部的面则去掉,在第二多面体外部的面则作为差的一部分保留。
[0148]-第二分割子单元用以对第二多面体中的每个面依次与第一多面体中的面求交,将第二多面体的面分割成第一多面体的面的正反两部分,每部分再与第一多面体的其
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1