发明内容
本发明是一个计算机的自动处理过程,用于分析和解释数字格式的工程图。该过程基本上是对在任何类型工程图中的符号和图形的识别,然后对在该图中的符号和图形元素之间的关系进行分析以提供对该图有意义的解释。图的解释可以以多种方式进行,包括图的定量分析和/或图的3维重建。
符号和图形元素的识别并不新。然而,迄今对图中符号和图形元素的识别仅限制在对这些项的静态识别,而且迄今还不可能分析在符号和图形元素之间的关系以提供有意义的结果。
该过程需要计算机,所述计算机具有一个中央处理单元,该中央处理单元在操作上连接到一个存储设备,一个存储器设备,一个输入设备和一个输出设备。可以使用存储设备来存储将在图中遇到的各种不同符号的模板和预定的算法来确定和识别图中的图形元素。存储设备还可以用来存储任何在分析和解释图时所需要的其它数据或信息。
图的分析按照一组预定的算法进行,这需要中央处理单元从图中分析和解释采取数字格式的符号、图形和文本数据,并处理该信息以确定在符号、图形元素和文本数据之间的关系。
该过程可以用于分析和解释任何类型的工程图,然而,它特别适合用于用户必须处理大量复杂的图的建筑工业。因此,为方便和容易理解,下面参考建筑工程图说明本处理过程。
在分析建筑工程图时,必须从两个主要源亦即结构平面图(framingplan)和详图提取信息。结构平面图表示建筑物逐层的总布局,而详图表示该建筑物逐层的各个结构元素,诸如圆柱、墙壁、梁、楼板和楼梯。
元素的拓扑信息可以从结构平面图提取,而每一结构元素的实际数量和大小可以从相应详图中提取。
每一图中的所有元素按照工业标准约定加标签,以便数量测量员可以精确确定每一项由什么组成。于是,例如对于一个柱平面图,数量测量员将能够查明在该柱内确切数目的钢筋,每一钢筋的大小,在两个相邻柱之间的钢筋重叠的程度。数量测量员必须通过解释该图确定所需要的材料数量。
结构平面图给出建筑物中一层的一个平面视图。该图包括线、弧线、文字等,来表示或隐含部件的位置、大小和它们之间的关系的信息。
在结构平面图和详图中有5种主要类型的部件。这些部件中的某些部件以轮廓形式的正视图表示,而其它的以平面视图表示和一些以表格表示。5类部件是:
1.柱-这些在平面图中作为闭合的圆、矩形或多边形表示。
2.梁-用两组分开的平行线表示边界。拱形梁用同心弧表示。
3.墙壁-形成一个闭合多边形的一组线表示墙壁的基,两组线
(其中大多数线是竖直的)表示墙壁的左或右边缘,两组平行
线表示墙壁的顶。
4.楼梯-在平面图中作为一组或多组平行短线表示,在每两个
短线之间有同样的距离。其形状可以是矩形或不规则多边形,
但是其边界总是墙壁。在剖面图中每一台阶由两个连接的线组
成,其中一根是水平的,一根是垂直的,每一台阶面由两个平
行线组成。
5.楼板-由梁和墙壁围绕的区域,每一个具有作为字符串表示
的名字和一个楼板标志,它指示该楼板的位置和方向。
该过程可以总结如下:
(i)中央处理单元读图中所有的图形基元,诸如线、文字、弧、虚线,并把这些信息存储在各种阵列中为将来分析用。也查明在整个平面图内的图的空间位置,诸如如果该图是一个柱,则中央处理单元将确定该柱位于的楼层和该柱在该特定楼层上的位置。
(ii)然后中央处理单元通过将图中的符号与存储在存储设备中的模板进行比较识别在图中发现的工程符号。符号的识别便利了图中图形元素的识别。
(iii)然后中央处理单元借助预定的算法识别图中表示的诸如柱、梁、墙壁、楼板和楼梯的图形元素,并决定每一元素的大小和形状。
(iv)然后中央处理单元使用每一图形元素的值使得能够建立该图的一个3维模型和/或按照一个数学公式量化每一元素。从而例如能够量化在建设中需要的钢筋的数量、混凝土的体积和/或型材(formwork)的数量。
现在说明该过程的每一阶段。
读图形基元
在该过程开始时中央处理单元读所有图形基元,诸如线、文字等,并记录和存储这些值。在记录和存储每一图形基元的值之外,中央处理单元记录在每一图中的每一图形基元的空间位置。
符号识别
为识别图中的元素,首先必须识别标识这些元素的符号,诸如楼板标志。
每一符号有一个模板,它可以用4个方面说明;
1.组成符号的实体;
2.每一实体必须满足的条件;
3.在不同实体之间的关系;
4.说明该关系的阈值。
模板存储在存储设备中,需要时由中央处理单元访问。
识别符号的过程在图1所示流程图中说明。
然后使保存在各种阵列中的所有图形基元的值经历符号识别分析。符号识别需要中央处理单元比较在每一阵列中的每一图形基元的值与在存储设备中保存的已知符号的值。如果图形基元的值与在存储设备中保存的已知值的预定范围相同或在其内,则该基元被识别为合适的符号。
一旦识别了图中的符号,则可能识别图中的所有部件。
从效率考虑对各种部件的识别顺序进行。
该顺序是首先识别格子系统,以便对在该图中的部件的位置和大小有一个参考。在这之后识别柱,因为这些柱子位于两个垂直的格子线的相交处。接着识别梁,因为它们架在柱上。下一个要识别的部件是墙壁,随后是楼梯和楼板。
柱识别
图中的每一个柱用一个名字标识。为识别柱,中央处理单元通过调用一个预定的算法分析该图。
用于识别一个柱的算法可以说明如下:
1.识别所有格子位置和计算每两个垂直格子的所有交点;
2.在每一格子交点附近寻找诸如“C1”这样的柱字符串。标识每一字符串的位置并在存储设备中存储;
3.如果未发现字符串,则在交点附近寻找以“C”为前缀的字符串,然后查找带这一前缀的所有字符串。然后标识每一字符串的位置并在存储设备中存储;
4.一旦找到柱,则试图在每一柱字符串附近寻找诸如600*400的串。如果找到的话,则标识每一个大小和名字并存储在存储设备中;
5.如果大小未找到,则检索整个结构图来确定是否有用标题串“TYPICAL COLUMN”标识的典型的柱图例。从该图例出发,可能识别在该特定图中的所有柱的大小。然后把这一信息存储在存储设备中。
6.如果未找到典型的柱信息,则假定只有规则形状的柱。
7.如果不存在大小信息,则搜索柱的闭合边界。柱的大小不能大于两个相邻格子之间距离的一半。
梁的识别
梁位于两个柱或一个柱和一个墙壁或另一个梁上。为标识梁,中央处理单元通过调用一个预定的算法分析图。标识梁的算法可以说明如下:
1.通过识别诸如“*B*”的串寻找梁的名字。字符“B”不应该位于串的末尾。然后把这一信息存储到存储设备中;
2.关于每一梁字符串,识别诸如400*500的串以识别梁的宽度和深度。梁可以是水平的或竖直的。如果梁是竖直的,则梁字符串也必须是竖直的。
3.寻找上面识别的每一梁的边界。定位每一相邻元素亦即柱或墙壁的位置。梁必须在两个部件之间。识别在两个元素之间的线并从而识别一个梁边界。
4.如果大小信息存在,则使用该信息确定第二梁边界。如果大小信息不存在,则第二梁边界的距离必须高到一个预定的阈值,且必须也在两个元素之间。在第一梁线下面的第二梁线可以交错或重叠,但是不能是一个虚线。
墙壁识别
墙壁的识别类似于梁的识别并按照下面的算法进行。
1.从图中所有数字数据通过识别字符串“W*”亦即在第一位置包含字符“W”的字符串定位墙壁名。然后把这一信息存储到存储设备中;
2.关于如此识别的每一墙壁,定位诸如“200”的数字串,它指示墙壁的厚度。这一信息存储到存储设备中;
3.使用和识别梁边界同样的步骤定位上面识别的每一墙壁的边界。
楼梯识别
在详图中,楼梯是平面视图和剖面图。因此必须使用两类不同的算法来识别楼梯的不同的视图。对于平面视图,使用下面的算法。
1.在平面图中定位诸如“Staircase No 1”的楼梯字符串;
2.定位一个或多个线组,每一组包含多于4个相同长度的线,在两相邻线之间有相同的距离;
3.定位闭合的边界,每一边界包围该线组并位于该线组的一个切线上。
对于楼梯的剖面图,可以使用下面的算法:
1.定位一条竖直和一条水平线,在这里水平线的一点与竖直线的顶点连接。水平对竖直线的比率一定不能小于0.5和不能大于2。如果这种线存在,则定位多于5组相似于它们的线的地方。这种一组表示一个台阶。
2.定位所有台阶和每一这种楼梯的顶级面和底级面。
楼板识别
楼板的识别不是通过图中任何图形元素,而是通过围绕的部件。
识别楼板的算法如下:
1.通过定位一组线,其中总有两条线看上去像“X”,来定位和识别孔。定位该组中所有线的顶点。如果发现一个闭合边界,则假定它是一个孔。
2.通过比较在图中发现的符号与在存储设备中存储的符号定位和识别楼板标志。
3.使用前面描述的步骤确定所有墙壁和梁的边界,并确定每一元素的中心线。
4.通过识别楼板标志识别每一楼板的边界。楼板标志位于每一楼板的中心。从楼板标志查找该楼板标志左边的第一非水平线。从该线以逆时针方向上查找连接到该线的线。
5.通过识别哪一孔在哪一个楼板边界内连接孔到楼板。
在图2所示流程图中为说明的目的表示出部件的识别。
一旦元素被识别,则知道所有关于这些元素的位置、它们的大小和尺度的数据。使用这些信息,然后有可能解释这些数据来建立图中图形元素的3维模型,从而建立作为整体的建筑物的3维模型。这由中央处理单元执行,它使用一个预定的数学公式组合所有图形基元的数据,包括它们的空间位置,来建立图中表示的建筑物或元素直到3维的图像。通过3维模型,有可能在建设前确定建筑物建设中可能发生的任何问题,诸如不正确地放置任何元素。
从作为上述处理的结果得到的信息有可能确定在建设中需要的钢筋、混凝土、型材和其它元件的数量。另外,可能定位和量化图中发现的所有其它单元,诸如洒水器、门、窗等。
关于每一单元需要的混凝土的体积可以借助一个数学公式根据所有其它单元的尺度计算。
类似地,在建筑各种单元中需要的型材的数量可以从相关单元的尺度决定。
钢筋的量化比混凝土体积或型材数量的量化困难,因为它需要识别图中的哪一条线表示钢筋。
钢筋通常有3个分量,即注释串、多线条和连接线。
钢筋的注释串指示该钢筋的钢类型、直径、数量、序号和位置。多线条表示钢筋的形状,而使用连接线连接注释串与多线条。于是,例如图例5-Y10-23-150 B1意味着有直径10mm的5 Y型钢筋,距离B1(亦即底面1)150mm放置,所有钢筋具有钢筋标志23。
在另一个例子中,图例35 R 10-101-150 SS表示围绕梁绑的单箍筋。号码35表示围绕该梁的箍筋的号码。字母R指示该箍筋的类型。号码10表示该箍筋的钢筋的直径。号码101是钢箍筋的标志,而号码150是沿该梁的箍筋的间隔。
钢筋的识别可以用在图3中表示的流程图表示。
从该图中可以看出,钢筋的识别和确定是对详图通过识别和分析钢注释串,然后定位和分析注释线进行。
钢注释串分析
一个钢注释串有5个主要的元素,亦即数量、类型、直径、号码和位置属性。数量指示钢筋的数量。类型指示钢筋的类型,诸如“T”或“R”或“Y”或“ET”。直径值指的是钢筋的直径,其由在值从10到40的范围内的整数表示。号码值是钢筋的序号,其由一个整数或者一个整数加一个字符表示。位置属性给出加强钢的位置,其可以由一个字符串或句子诸如“ T1&B1”,“E.F”,“T2”“B2”表示。
解释钢注释串的步骤(算法)如下:
1.从数字数据识别一个钢注释串;
2.然后把该串拆分为各个符号。例如,“5Y10-200 T&B”可以分成为“5,Y,1,0,-2,0,0,,T,&,B”;
3.把串中分开的字符分组为正确的字符组。于是对于“5Y10-200T&B”分成组“5”,“Y”,“10”,“-”,“200”,“T”,“&”,“B”;
4.然后中央处理单元将前3组与钢类型的已知特征相比较。这些预先定义的特征存储在存储设备中;
5.如果钢类型组位于该字符串中,则使用它作为参考点并在由中央处理单元分析该参考点之前和之后分组,看它们是否匹配在钢注释串中的成分的预先定义的特征。如果是,则确定该串是钢筋注释串。
在已经定位钢筋注释串后,然后必须进行确定该注释串指的是图中的哪一条线,以便识别钢筋线。注释串通过注释线指示钢筋线。
这借助于标志线相对性分析进行,它测量在一个注释串和一个注释线之间的接近程度。给每一线一个想象的重力场。这一想象的重力场和正常的重力场不一样,因为后者不能表示图的对象之间的正确关系。相应地通过在该线添加符号和排列该串和该线修改该重力场。
影响一条线的重力场的符号包括短线、点和线上的箭头。这些因素改变该重力场的大小、形状区域和方向。在重力场中引入点以形成一条线的重力。一个重力场中的样本点的位置在图4中表示。
图4中的第一个图例是正常重力场,这里在该场中的所有8个点在决定该线和该串之间的关系时被予以考虑。第二图例表示在注释线的一端有一个箭头的线。在这种场合,连接该线的文字通常靠近该线离开箭头的相对端。相应地,箭头端的重力场最小,而在关系判定中不使用点4、5、6。相似地,如果该线两端都有箭头的话,则在关系判定中只使用点3、7。
串和线的排列还改变一条线的重力场。在具有彼此平行的一些钢筋线的地方,可能很困难确定注释串属于哪一个钢筋线。
这示于图5,图中有3条钢筋线和3个注释串,所有都彼此平行。在这种场合,可能很难确定串例如3Y10-91-300 B2指的是哪一条线。
在这种场合,在一组线和文字规则而交替排列时,则在该组中的重力场将改变,使得放弃一定的点,如图5所示。这样在图5中只有样本点2、3、4用于决定在线和串之间的关系。
在识别正确的注释线后,亦即连接到注释串的线,然后决定由注释线指的钢筋线。
注释线分析按照一个预定的算法进行,该算法存储在存储设备中。该算法可以说明如下:
1.从图中定位一条线;
2.决定是否有与该线相交的诸如短线、点、或箭头的符号;
3.根据与该线相交的符号,围绕该线产生一个重力场;
4.然后中央处理单元决定是否存在一组靠近该线交替排列的线和文字,和在该组中的线是否具有与该线同样的角度、取向和长度。如果发现一组线和文字,则根据该排列改变该线的重力场。
5.中央处理单元为在详图中的每一条线产生一个重力场;
6.中央处理单元然后决定在钢注释串和每一注释线之间的距离。
然后可以决定在钢注释串和注释线之间的关系作为具有最近重力场的线。
在确定哪一条注释线是正确的线后,然后必须对该钢筋进行分析。以两种形式指示钢筋,亦即相交的钢筋和箭头点钢筋。前者是一个与注释线相交的多线(polyline),相交点用点符号标志。箭头点钢筋的相交点用一个箭头指示。在相交点处,每一钢筋和注释线必须垂直。如果该钢筋是一个相交钢筋,则在相交点和该点的中心之间的距离必须小于该点的直径的一半。如果该钢筋是一个箭头点钢筋,则在相交点和箭头头部之间的距离必须小于箭头尾之间的距离。
通过进行这一分析,有可能识别钢筋线。一旦钢筋线被识别,则可能计算为建设该单元需要的钢的数量。
现在参考附图说明该处理过程。