基于纵横梁的工程图纸识别系统及方法、排模系统及方法_2

文档序号:9547312阅读:来源:国知局
相同则认为是一道墙,计算此平行线的中心线,以平行线的中心线作为墙中心线,平行线间的距离作为墙宽。
[0079]-墙标注获取子单元用以在墙中心线两边、距离为两个墙宽的范围内搜索墙标注,将找到的最近的标注作为此墙的标注。
[0080]-墙构件生成子单元用以根据找到的墙中心线生成墙构件。
[0081]所述柱构件识别提取单元包括:柱边线选取子单元、柱边线图层更改子单元、柱标注选取子单元、柱边线分组子单元、最大外包多边形搜索子单元、柱构件生成子单元、循环生成控制子单元、全部柱构件生成子单元、标注子单元。
[0082]-柱边线选取子单元用以按相同图层、相同颜色的快速方式选取柱边线,包括直线和圆弧;或者用普通的选择方式、即用鼠标在屏幕点选来选择柱边线。
[0083]-柱边线图层更改子单元用以将选取的柱边线的图层更改到预先设置的柱边线图层中。
[0084]-柱标注选取子单元用以按相同图层、相同颜色的快速方式选取柱标注,或者用普通的选择方式、即用鼠标在屏幕点选来选择柱标注;更改其图层到预先设置的柱标注图层中。
[0085]-柱边线分组子单元用以对柱边线图层中的柱边线分组,相互之间有交点的,或者距离在设定距离内的分为同一组;两线段的距离为线段的两个端点到另一线段的距离,相互计算后,取其中的较小值。
[0086]-最大外包多边形搜索子单元用以在同一组线段中,从顶点的X坐标值最小的线段搜索其最大的外包多边形;从一个起始线段出发,从线段集中寻找与之相连的多边形;当起始边在多边形内或边上时,找到的是包含起始边的多边形,此多边形作为板边界;当起始边在多边形外,包括选段集的左、右、上、下处的线段,则找到的是线段集的外包多边形,此多边形作为柱的轮廓。最大外包多边形搜索子单元搜索最大的外包多边形的方法包括:(1)线段集中所有线段与起始线段求交,找出与起始线段有交点的所有线段;(2)在这些线段中,寻找交点离起始线段的起点最近的线段,但交点不能为起点;(3)在交点处打断所有的线段,包括起始线段;起始线段被打断后,起点到交点之间的线段作为新的起始线段;(4)按起始线段终点到起点方向作为零度,计算打断后的线段与起始线段的夹角;(5)将夹角最小且不为0的线段作为下一个起始线段,当前起始线段作为要寻找的多边形的一条边;(6)如果下一个起始线段的终点和已找到的多边形的边的某个顶点相同,则该边为多边形的起始边,找到的下一起始线段为多边形的终止边,起始边、终止边以及其之间的线段一起构成最终寻找到的多边形;(7)如果下一个起始线段与已找到的多边形线段不能形成多边形,则从第(1)步开始重复此过程,直到找到多边形为止;如果线段集中没有线段了,则认为没有多边形,也停止寻找。
[〇〇87]-柱构件生成子单元与最大外包多边形搜索子单元连接,用以找到一个外包多边形,将其作为柱的轮廓线,生成一个柱构件;同时从组中删除外轮廓线,以及外轮廓内部的线段。
[〇〇88]-循环生成控制子单元利用最大外包多边形搜索子单元、柱构件生成子单元重复搜索及生成动作,搜索出所有的外包多边形并生成所有柱构件。
[〇〇89]-全部柱构件生成子单元通过最大外包多边形搜索子单元、柱构件生成子单元、循环生成控制子单元搜索完全部线段组,生成全部柱构件。
[0090]-标注子单元用以从柱标注中搜索柱构件对应的标注;标注的文字距离最近的柱轮廓边线不超过文字高度的1.5倍,如果有多个符合要求的柱标注,则按最近的为准;距离的计算方式为:以文字的外包矩形的四个顶点中离柱轮廓线段最近的距离作为文字到轮廓线段的距离。
[0091] 所述梁构件识别提取单元包括:梁边线选取子单元、梁边线图层更改子单元、梁标注选取子单元、标注文字识别子单元、梁边线分组子单元、梁构件计算子单元、梁标注获取子单元、梁构件生成子单元。
[0092]-梁边线选取子单元用以按相同图层、相同颜色的快速方式选取梁边线,包括直线和圆弧;或者用普通的选择方式、即通过鼠标在屏幕点选来选择梁边线。
[〇〇93]-梁边线图层更改子单元用以将选取的梁边线的图层更改到预先设置的梁边线图层中。
[0094]-梁标注选取子单元用以按相同图层、相同颜色的快速方式选取梁标注;或者用普通的选择方式、即通过鼠标在屏幕点选来选择梁标注;更改其图层到预先设置的梁标注图层中。
[〇〇95]-标注文字识别子单元用以从所有的梁标注中识别出设定尺寸的标注文字,前一个为梁宽度,后一个为梁高度,并记录到一个梁宽度数组中。
[0096]-梁边线分组子单元用以对墙边线图层中的梁边线按平行线分组,相互平行的线段分到同一组中,相同圆心的圆弧认为是平行线。
[〇〇97]-梁构件计算子单元用以对同一组中的平行线,计算其相互间的距离,如果距离与梁宽度数组中的某一个宽度相同则认为是一道梁,计算此平行线的中心线,作为梁中心线,梁宽为梁宽数组中对应的宽度。
[〇〇98]-梁标注获取子单元用以在梁中心线两边,距离为两个梁宽的范围内搜索梁标注,将找到的最近的标注作为此梁的标注。
[0099]-梁构件生成子单元用以根据梁中心线生成梁构件。
[〇1〇〇] 纵梁与横梁分散标注识别单元包括:保存梁标注子单元、调用梁标注子单元。
[〇1〇1]-保存梁标注子单元用以设置纵向梁标注工作区/横向梁标注工作区,并设置原点,提取纵向梁标注/横向梁标注;将提取的纵向梁/横向梁的标注信息进行保存;
[0102]-调用梁标注子单元用以设置横向梁标注工作区/梁向梁标注工作区,并设置原点,将之前保存的纵向梁/横向梁的标注信息呈现到横向梁标注/纵向梁标注上。
[0103]比如要将Y向梁标注复制,粘贴到X向梁图上。
[0104]本发明方案提出两个模块,一个是“保存梁标注”子单元,另一个是“调用梁标注”子单元。“保存梁标注”子单元相当于只复制梁配筋图上的标注信息,“调用梁标注”子单元相当于将复制的梁标注信息进行粘贴。
[0105]本发明方案,结合前述的“多工作区”,还可进一步提高效率,将纵梁和横梁的图纸设为两个工作区,同时识别两个工作区内梁标注信息。
[0106]采用这一方案,优点是:(1)无损识别,不需要“复制”、“粘贴”这样的操作,不操作CAD原图。(2)不需要隐藏图层这些操作,大大提高工作效率。(3)不需要像复制粘贴那样用鼠标有屏幕上频繁缩放移动的操作,大大提高工作效率。
[0107]保存梁标注模块实现方式为:设置“纵向梁标注”工作区;设置原点;提取“纵向梁标注”;点击“保存标注”子单元,将提取的纵向梁的标注信息进行保存。
[0108]调用保存的“纵向梁标注”模块实现方式为:设置“横向梁标注”工作区;设置原点;点击“调用标注”子单元对应的按钮,将之前保存的纵向梁的标注信息呈现到横向梁标注上。上述实现方式中,也可以先保存“横向梁标注”,再在“纵向梁标注”上进行调用。
[0109]所述板构件识别提取单元包括:板边界线段生成子单元、边界线段打断子单元、边界线段移动子单元、判断子单元、内轮廓搜索子单元、第一板构件生成子单元、第二板构件生成子单元、板构件标注获取子单元。
[〇11〇]-板边界线段生成子单元用以提取墙、梁的中心线、柱的轮廓线作为板的边界线段。
[〇111]-边界线段打断子单元在所有的边界线段的交点处打断边界线段。
[0112]-边界线段移动子单元用以对每段不是垂直的边界线段,取其中点,如果是墙、梁线段,则向上移动一个墙、梁宽度,如果是柱轮廓线,则向上移动设定距离。
[0113]-判断子单元用以判断所述边界线段移动子单元选取的中点是否在已找到的板轮廓内,如果是则通过边界线段移动子单元继续向上移动,直至上述中点不在已找到的板轮廓内。
[0114]-内轮廓搜索子单元用以以所述边界线段移动子单元选取的中点向右作一射线,作为选中板的起始边界;从此边界开始,在所有的板边界线段中搜索内轮廓。内轮廓搜索子单元搜索内轮廓的方法包括:(1)线段集中所有线段与起始线段求交,找出与起始线段有交点的所有线段;(2)在这些线段中,寻找交点离起始线段的起点最近的线段,但交点不能为起点;(3)在交点处打断所有的线段,包括起始线段;起始线段被打断后,起点到交点之间的线段作为新的起始线段;(4)按起始线段终点到起点方向作为零度,计算打断后的线段与起始线段的夹角;(5)将夹角最小且不为0的线段作为下一个起始线段,当前起始线段作为要寻找的多边形的一条边;(6)如果下一个起始线段的终点和已找到的多边形的边的某个顶点相同,则该边为多边形的起始边,找到的下一起始线段为多边形的终止边,起始边、终止边以及其之间的线段一起构成最终寻找到的多边形;(7)如果下一个起始线段与已找到的多边形线段不能形成多边形,则从第(1)步开始重复此过程,直到找到多边形为止;如果线段集中没有线段了,则认为没有多边形,也停止寻找。
[0115]-第一板构件生成子单元用以通过内轮廓搜索子单元找到一个内轮廓,则作为板的边界线,生成一个板构件。
[0116]-第二板构件生成子单元用以通过边界线段移动子单元、判断子单元、内轮廓搜索子单元、板构件生成子单元搜索出所有的内轮廓并生成板构件。
[0117]-板构件标注获取子单元用以从板标注中搜索板构件对应的标注;标注的文字应在板轮廓内,以找到的第一个标注作为板构件的标注。
[0118]【补充绘图编辑模块】
[0119]补充绘图编辑模块用以将已经识别提取好的三维实体模型发送到排模系统,在进行排模之前,补充绘制楼梯踏步和外墙线条,对CAD智能识别的构件进行全方位编辑修改,生成符合排模需要的三维实体模型。
[0120]【全自动智能排模模块】
[0121]全自动智能排模模块用以进行智能排模;根据智能识别提取模块生成的三维建筑模型采用3D空心布尔算法生成空心模板面,再根据模板面之间的相互关系及设定参数(包括各模板的参数)生成角模板及平面模板,再根据技术规范生成安全的支撑体系及对拉体系。所述全自动智能排模模块包括:模板面生成单元、模板组件生成单元。
[0122]模板面生成单元用以根据智能识别提取模块生成的三维建筑模型采用3D空心布尔算法生成空心模板面,再根据模板面之间的相互关系及设定参数生成角模板及平面模板。模板组件生成单元计算分析出各种构件需要支设模板的面域,然后在这些面域上进行整体排模。
[0123]所述模板面生成单元包括:模板面获取子单元、模板面扣减子单元。
[0124]-模板面获取子单元用以根据建筑规则从多面体中分离出需要布置建筑模板的面,要布置模板的面称作模板面;对多面体的每个面,按其法线与铅垂线的夹角来判断是否布置模板,当夹角超过预设角度时认为是模板面,将其从多面体中复制并分离出来;对不同类型的构件设置不同的角度,以准确获取不同构件的模板面;从而提高识别的效率及精确度。
[0125]-模板面扣减子单元用以对从构件多面体中分离出来的各个模板面进行扣减计算后,才能得到真正需要布置模板的面;扣减计算是用三维布尔算法中的差运算来实现的,对所有模板面按照扣减规则,依次与相邻的构件多面体进行扣减计算,扣除不需要布置模板的部分,最终得到需要布置建筑模板的面。所述模板面扣减子单元的多面体三维布尔差计算方法包括用第一多面体减去第二多面体的流程。
[0126]所述模板面扣减子单元包括:二叉树构造子单元、第一分割子单元、第一多面体处理子单元、第二分割子单元、第二多面体处理子单元、差面保存子单元。
[0127]-二叉树构造子单元用以构造第一多面体、第二多面体的空间分区二叉树。
[0128]-第一分割子单元用以对第一多面体中的每个面依次与第二多面体中的面求交,将第一多面体的面分割成第二多面体的面的正反两部分,每部分再与第二多面体的其它面求交,也同样分成两部分;这样依次与第二多面体中的所有面进行求交计算,将第一多面体的面分割成很多面。
[0129]-第一多面体处理子单元用以对第一多面体分解出来的面,用第二多面体的空间分区二叉树判断是否在第二多面体的内部;若在第二多面体内部的面则去掉,在第二多面体外部的面则作为差的一部分保留。
[0130]-第二分割子单元用以对第二多面体中的每个面依次与第一多面体中的面求交,将第二多面体的面分割成第一多面体的面的正反两部分,每部分再与第一多面体的其它面求交,也同样分成两部分;这样依次与第一多面体中的所有面进行求交计算,将第二多面体的面分割成很多面。
[0131]-第二多面体处理子单元用以对第二多面体分解出来的面,用第一多面体的空间分区二叉树判断是否在第一多面体的内部;若在第一多面体内部的面则去掉,在第一多面体外部的面则作为差的一部分保留。
[0132]-差面保存子单元用以将第一多面体、第二多面体中作为差的面保存到结果多面体中即完成二维布尔差运算。
[0133]所述二叉树构造子单元构造多面体的空间分区二叉树的过程中,空间分区二叉树的每个节点包含三个子节点,分别为法线正面部分的面、即正侧,法线负面部分的面、即负侦牝以及共面的面、即共面部分,二叉树构造子单元的构造方法包括如下步骤:
[0134]A10.将所有面添加到第一个节点;
[0135]All.将节点中的第一个面作为节点的标准平面,保存到当前树节点的共面部分中,并从多面体中去掉该面;
[0136]A12.对剩下的每个面作如下操作:判断该面与标准平面的关系;完全在法线正面则保存到正侧节点;完全在法线负面的部分保存到负侧节点;共面的面保存到共面部分;与标准平面交叉的面,则用标准平面分割该面为两部分,正面部分保存到正侧,负面部分保存到负侧;
[0137]A13.对正侧、负侧部分的节点,重复进行Al 1至A13的操作,直到没有正侧、负侧的面为止。
[0138]第一多面体处理子单元、第二多面体处理子单元判断面在多面体的内或外的方法归结为判断面中的一个点是否在多面体的内或外,方法包括:将点与空间分区二叉树的每个节点的标准平面进行比较;若点在标准平面的正侧,则用正侧子节点继续判断,如果正侧没有子节点,则表示点在多面体外部;若点在标准平面的负侧,则用负侧子节点继续判断,如果负侧没有子节点,则表示点在多面体内部;若点在标准平面上,判断是否在节点的共面部分面中,如果在则认为是多面体内部,否则认为在多面体外部。
[0139]所述模板组件生成单元包括:交接部分模板组件生成子单元、优化排模子单元、支撑组件生成子单元、穿墙孔及背楞生成子单元、编号生成子单元。
[0140]-交接部分模板组件生成子单元用以在各交接部分,按照建筑模板的标准组件,生成C槽、龙骨、支撑块的模板组件。
[0141 ]-优化排模子单元用以在中间面域部位,按建筑模板的标准尺寸,进行优化排模。
[0142]-支撑组件生成子单元用以按照建筑模板相关规范,生成梁板构件支撑块,早拆支撑组件。
[0143]-穿墙孔及背楞生成子单元用以按照建筑模板相关规范,生成柱墙构件穿墙孔及背榜。
[0144]-编号生成子单元用以对每块模板生成编号。
[0145]所述交接部分模板组件生成子单元包括角模生成子单元,穿墙孔及背楞生成子单元包括对拉螺栓模板布置子单元、背愣生成子单元,优化排模子单元包括普通墙柱模板生成子单元,支撑组件生成子单元包括板底模板布置生成子单元。
[0146]角模生成子单元用以对所有组成模板面的多边形边界,依次搜索与其相邻的另一个模板面的边界;如果找到相邻边界,如果两个面的夹角小于180度,且不等于0、180度,则在该边界布置阴角模;如果大于180度,则布置阳角模;如果形成阴角模的两个面,有一个是法线向下的水平面,则该阴角模为顶角模;布置顶角模时,判断顶角模边界的端点处是否有另外方向的顶角模,如果有,则在该端点处布置转角模板,同时在转角模板后面布置易拆模板,或者设置为不布置易拆模板。
[0147]对拉螺栓模板布置子单元用以对需布置对拉螺栓的墙柱模板进行布置;对每一个墙柱模板面,寻找平行、背对且距离最近的墙柱模板面;如果距离小于设定值,则在这两个模板面上布置对拉螺栓模板;将两个面投影到同一个平面,同时从同一个方向布置模板,间隔布置开口模板和普通模板;开口模板上有对拉螺栓孔的模板;把布置好的模板反投影回各自墙柱模板面上,即完成对拉螺栓模板布置。
[0148]普通墙柱模板生成子单元用以不考虑和对面墙模板对应的问题,直接从墙的任意一端开始依次布置普通模板。
[0149]背愣生成子单元用以对墙柱模板面,在设定的标高处布置背愣;超过设定标高的部分,按设置的布置间距布置背愣。
[0150]板底模板布置生成子单元用以寻找板底模板面的最长边;沿最长边方向布置模板;先布置一排普通模板,再布置一排支撑模板,支撑模板按普通支撑模板、支撑块方式间隔布置,重复进行,直到模板面全部布置完毕。
[0151]【检查及编辑模块】
[0152]检查及编辑模块对全自动智能排模模块输出的模板进行检查及编辑。所述检查及编辑模块包括:检查单元、模板编辑单元。检查单元用以通过三维仿真显示对自动排模的结果进行检查;模板编辑单元用以对模板进行编辑。
[0153]所述检查单元包括:三维仿真模型生成子单元、模板拖拉检
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1