一种DWG建筑图外墙快速提取方法与流程

文档序号:16755164发布日期:2019-01-29 17:17阅读:558来源:国知局
一种DWG建筑图外墙快速提取方法与流程

本发明应用于qcell可视化运维系统,更具体的,涉及一种dwg建筑图外墙快速提取方法。



背景技术:

目前,电信设计院室内qcell布置设计主要采用autocad软件,在建筑设计图上开展二维设计建模,输出二维dwg格式的模型文件,直接基于此dwg格式模型文件,使用多线段命令,在现有的边界点上描绘边界得到多边形,再根据得到的多边形获取到外边墙的多边形,最后给外边墙添加定义,完成对外墙边界的提取,这种方法大量依赖于手工交互,效率低下,而且由于操作人员的素质高低不同,得到的边界会存在偏差或错误,不准确。



技术实现要素:

本发明为克服现有的建筑图外墙提取技术存在依赖手工交互,效率低下且得到的边界不准确的技术缺陷,提供一种dwg建筑图外墙快速提取方法。

为解决上述技术问题,本发明的技术方案如下:

一种dwg建筑图外墙快速提取方法,包括以下步骤:

s1:定义图层指针获取图层上图素的id,识别出图层中的线段;

s2:将得到的线段坐标化,根据所有线段坐标计算楼层平面矩形包围盒的中心坐标;

s3:以矩形包围盒中心为起点生成一簇夹角为低偏差序列的射线,计算各线段与射线的交点;

s4:计算交点与射线起点的距离,得到的最远距离为外边墙;

s5:判断得到的外边墙是否封闭,若是,则得到外边墙;若否,则执行步骤s3。

其中,所述步骤s2中将得到的线段坐标化,即线段起点表示为(x1i,y1i),线段终点表示为(x2i,y2i),则楼层平面矩形包围盒的中心坐标(x,y)计算公式为:

x=(∑(x1i+x2i)/2)/n;

y=(∑(y1i+y2i)/2)/n;

其中,n表示得到的线段有n条。

其中,所述步骤s3中低偏差序列方法具体为:

对于分布在区间[0,2π]之间的低偏差序列dm的生成公式为:

其中,x={xi|0≤xi≤2π,1≤i≤m};j*是在间隔[0,t]之间的序列,0≤t≤2π;b(j;x)是x集合中落入到特定区间j内的点数,|j|是区间j的间隔长度。

其中,在所述步骤s3中,计算各线段与射线的交点坐标的方法具体为:

由图层上的线段可得到线段所在直线可表示为:

y=(y2i-y1i)/(x2i-x1i)*x;

射线方程可表示为:

y=tanα*x;

其中,α为射线与坐标x轴的夹角,联立两方程即可得到交点(x0,y0)。

其中在所述步骤s4中,计算交点与射线起点的距离dis计算公式为:

dis=((x0-x)2+(y0-y)2)1/2

上述方案中,选择质心作为射线的起点,利用低偏差序列生成一系列射线,最后利用射线与线段相交识别楼层外边墙,整个识别过程快速、准确,且智能化程度高,大大提高了工作效率。

与现有技术相比,本发明技术方案的有益效果是:

本发明提供的一种dwg建筑图外墙快速提取方法,将质心作为起点,利用低偏差序列生成一系列射线,通过计算起点与射线、线段交点的距离识别楼层外边墙,整个识别过程快速、准确,且智能化程度高,大大提高了工作效率。

附图说明

图1为一种dwg建筑图外墙快速提取方法流程图。

图2为提取过程的示意图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

如图1、2所示,一种dwg建筑图外墙快速提取方法,包括以下步骤:

s1:定义图层指针获取图层上图素的id,识别出图层中的线段;

s2:将得到的线段坐标化,根据所有线段坐标计算楼层平面矩形包围盒的中心坐标;

s3:以矩形包围盒中心为起点生成一簇夹角为低偏差序列的射线,计算各线段与射线的交点;

s4:计算交点与射线起点的距离,得到的最远距离为外边墙;

s5:判断得到的外边墙是否封闭,若是,则得到外边墙;若否,则执行步骤s3。

更具体的,所述步骤s2中将得到的线段坐标化,即线段起点表示为(x1i,y1i),线段终点表示为(x2i,y2i),则楼层平面矩形包围盒的中心坐标(x,y)计算公式为:

x=(∑(x1i+x2i)/2)/n;

y=(∑(y1i+y2i)/2)/n;

其中,n表示得到的线段有n条。

更具体的,所述步骤s3中低偏差序列方法具体为:

对于分布在区间[0,2π]之间的低偏差序列dm的生成公式为:

其中,x={xi|0≤xi≤2π,1≤i≤m};j*是在间隔[0,t]之间的序列,0≤t≤2π;b(j;x)是x集合中落入到特定区间j内的点数,|j|是区间j的间隔长度。

更具体的,在所述步骤s3中,计算各线段与射线的交点坐标的方法具体为:由图层上的线段可得到线段所在直线可表示为:

y=(y2i-y1i)/(x2i-x1i)*x;

射线方程可表示为:

y=tanα*x;

其中,α为射线与坐标x轴的夹角,联立两方程即可得到交点(x0,y0)。

更具体的,在所述步骤s4中,计算交点与射线起点的距离dis计算公式为:

dis=((x0-x)2+(y0-y)2)1/2

在具体实施过程中,低偏差序列是指一个序列,对于所有n的值,它的子序列{x1,x2,...,xn}均是都低偏差的,一般来说,低偏差是指存在于任何一个子集b中的点数与b的规模是成比例的,用来衡量一个数列均匀分布的程度,低偏差序列的优势是随机产生的数据比使用伪随机数方法产生的随机数分布得更加均匀,有效改善了抽样特性,该方法中使用halton方法产生低偏差序列。

在具体实施过程中,选择质心作为射线的起点,利用低偏差序列生成一系列射线,最后利用射线与线段相交识别楼层外边墙,整个识别过程快速、准确,且智能化程度高,大大提高了工作效率。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1