CN113486484B - 一种网格布线方法、装置及存储介质 - Google Patents
一种网格布线方法、装置及存储介质 Download PDFInfo
- Publication number
- CN113486484B CN113486484B CN202110812778.2A CN202110812778A CN113486484B CN 113486484 B CN113486484 B CN 113486484B CN 202110812778 A CN202110812778 A CN 202110812778A CN 113486484 B CN113486484 B CN 113486484B
- Authority
- CN
- China
- Prior art keywords
- grid
- wiring
- model
- path
- axis direction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/18—Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/14—Pipes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S10/00—Systems supporting electrical power generation, transmission or distribution
- Y04S10/50—Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开一种网格布线方法,包括:定义布线元素;构建上下文组件;构建2d网格模型,通过在2d网格上,将相应模型的连接口,通过管线进行连接布线;点与点之间连接,形成网状结构;生成2d路径;将2d网格路径结合网格高度,生成3d路径,最终形成3d布线结果。该方法简化、抽象,扩展性好,能快速支持多种布线业务。本发明还公开了一种网格布线装置及一种可读存储介质,同样具有上述有益效果。
Description
技术领域
本发明属于布线技术领域,特别是涉及一种网格布线方法、装置及一种可读存储介质。
背景技术
布线方法可用于许多领域,以装饰装修为例,随着我国国民经济持续稳定的发展以及人民生活水平的不断提高,尤其是作为国国民经济五大支柱产业之一的建筑业及房地产业的迅猛发展,装饰装修需求日益扩大,给装饰业提供了持续、良好的市场前景。装饰企业总数达25万家左右,直接从业人员高达1000万人,年装饰工程总产值9000多亿元,年增加值2830亿元,装饰行业产值占国内生产总值6%左右;行业年增长速度在20%以上。
水暖电装修属于装饰装修行业的隐蔽工程装修,装修后很少做修改。水暖电模型的放置位置以及其管线布置需要符合一定的国家标准与行业惯例,并且一般是由经验丰富的水电工人现场施工而成。
装饰装修设计软件正是在这种需求的推动下应运而生,并且随着计算机图形学与计算机视觉技术的发展,应用场景也越来越广。装饰装修设计软件是一种将计算机图形学应用在装饰装修领域的软件。
在使用装饰装修设计软件进行设计的过程中,绝大多数依赖于手工设计,缺乏智能生成功能。具体到装饰装修设计软件中的水暖电装修,用户必须花费大量的精力进行模型的放置和调整,模型之间关系的建立和调整,管线的布置和调整。针对不同的线路类型分别有不同的国家标准,针对不同的户型又有不同的布置方法,不同的用户也有不同的需求,甚至随着区域的不同习惯的不同,也会导致布置的规则存在区别,而这些不同的智能生成方式是国家标准没有明确限制的。
布线业务,是水暖电的管线生成的重要组成。
布线业务,分类很多,有通用的布线要求,也有专用的布线要求。开发出网格布线引擎,通用引擎和业务定制统一,简化、抽象,扩展性好,能快速的支持多种布线业务,是其核心优点。
发明内容
本发明要解决的技术问题在于,提出一种网格布线方法,该方法简化、抽象,扩展性好,能快速支持多种布线业务;本发明解决的其他技术问题是提供一种网格布线装置及一种可读存储介质,同样具有达到上述目的。
本发明提供一种网格布线方法,包括如下步骤:
步骤S1,定义布线元素
布线元素包括模型、管线;模型为布线用到的实体,不同布线业务的模型组成不同,具有几何属性;模型上设置连接口,连接口为管线的起点和终点;
步骤S2,构建上下文组件
上下文组件,包括布线业务需要用到的各种元素,以及布线的中间过程状态;
步骤S3,构建2d网格模型
2d网格由同一平面内的水平线、垂直线组成,水平线和垂直线交叉形成网格点;几何元素包括直线、点、轮廓线、长方形区域和单位网格方向,所述轮廓线可以为不规则形状,限制需要生成直线的范围;所述长方形区域为抽象的实体或虚体,承载多种业务功能;2d网格具有高度,布线线路在2d网格上路径能够拐弯;
根据各业务指定的布线顺序,在2d网格上,将相应模型的连接口,通过管线进行连接布线;点与点之间连接,形成网状结构;
使用路径查找算法,使得网格中多个点,找到成本最低的连接路径;
步骤S4,生成2d路径
一个起点模型,连接到多个终点模型;起点模型到每个终点模型,都有一个路径;把多个路径合并起来,生成2d树状路径;
步骤S5,生成3d布线结果
将2d网格路径结合网格高度,生成3d路径,最终形成3d布线结果。
进一步地,步骤S3中,
网格的点在1条直线或2条相互垂直的直线上;在一条直线上的点列表排序,用于按X轴方向、负X轴方向、Y轴方向、负Y轴方向查找临近点;
单位网格方向分为正X轴方向,正Y轴方向,负X轴方向,负Y轴方向;连接口统一转为2d网格的单位网格方向,若连接口与单位网格方向夹角小于45则转为该方向;
路径拐弯的几何实现包括:路径的前进方向分为直行、向左拐弯、向右拐弯;单个弯分为向左拐弯或向右拐弯;Z型弯分为向左拐弯+向右拐弯,或者向右拐弯+向左拐弯;U型弯分为向左拐弯+向左拐弯,或者向右拐弯+向右拐弯。
进一步地,索引步骤为:
使用固定间距的水平线和垂直线,切分坐标轴,得到固定大小的小方块,使用小方块左下角的顶点座标作为小方块id;将每一个长方形区域和与其有交集的全部小方块进行关联;通过倒排索引就可以将一个小方块id对应到相应的长方形区域,其中一个小方块id可以对应多个长方形区域;
查询时,针对指定的一个点、线段或长方形区域,计算出所属的小方块,用该小方块id去查索引,得到多个长方形区域时进行去重。
进一步地,对于同一个直线上的点,如果只有前后2个临近点,则通过删除该点进行合并。
进一步地,步骤S3中,
当模型上有成对的连接口要求布线的路径一致时,把一个连接口的2d布线结果,拷贝一份,获得副本布线结果;
然后,结合另一个成对的连接口,在副本布线结果基础上修改连接口附近的线段,得到最终的布线结果。
进一步地,步骤S5中,3d路径通过2d网格高度判断冲突,如果3d路径部分重叠或者路径平行且间隔很近,则发生冲突;
用网格高度值的范围,找到多个网格布线结果;然后用x值范围或y值范围,找到多个2d网格线段,并且判断和当前的线段是否冲突。
另外,本发明了一种网格布线装置,包括定义布线元素模块、构建上下文组件模块、构建2d网格模型模块、生成2d路径模块、生成3d布线结果模块;
定义布线元素模块,布线元素包括模型、管线;所述模型为布线用到的实体,不同布线业务的模型组成不同,具有几何属性;模型上设置连接口,所述连接口为管线的起点和终点;
构建上下文组件模块,上下文父类,包含布线业务需要用到的公共属性,每个布线系统,使用独立的上下文类,继承统一的上下文父类,再增加需要使用的属性;
构建2d网格模型模块,2d网格由同一平面内的水平线、垂直线组成,水平线和垂直线交叉形成网格点;几何元素包括直线、点、轮廓线、长方形区域、单位网格方向,所述轮廓线可以为不规则形状,限制需要生成直线的范围;所述长方形区域为抽象的实体或虚体,承载多种业务功能;2d网格具有高度,布线线路在2d网格上路径能够拐弯;
根据各业务指定的布线顺序,在2d网格上,将相应模型的连接口,通过管线进行连接布线;点与点之间连接,形成网状结构;
使用路径查找算法计算点的成本;
生成2d路径模块,一个起点模型,连接到多个终点模型;起点模型到每个终点模型,都有一个路径;把多个路径合并起来,生成2d树状路径;
生成3d布线结果模块,将2d网格路径结合网格高度,生成3d路径,最终形成3d布线结果。
进一步地,网格的点在1条直线或2条相互垂直的直线上;在一条直线上的点列表排序,用于按X轴方向、负X轴方向、Y轴方向、负Y轴方向查找临近点;
单位网格方向分为正X轴方向,正Y轴方向,负X轴方向,负Y轴方向;连接口统一转为2d网格的单位网格方向,若连接口与单位网格方向夹角小于45则转为该方向;
路径拐弯的几何实现包括:路径的前进方向分为直行、向左拐弯、向右拐弯;单个弯分为向左拐弯或向右拐弯;Z型弯分为向左拐弯+向右拐弯,或者向右拐弯+向左拐弯;U型弯分为向左拐弯+向左拐弯,或者向右拐弯+向右拐弯。
进一步地,3d路径通过2d网格高度判断冲突,如果3d路径部分重叠或者路径平行且间隔很近,则发生冲突;
用网格高度值的范围,找到多个网格布线结果;然后用x值范围或y值范围,找到多个2d网格线段,并且判断和当前的线段是否冲突。
本发明还提供一种可读存储介质,可读存储介质上存储有程序,程序被处理器执行时实现所述的网格布线方法的步骤。
为解决上述技术问题,本发明提供了一种网格布线方法,该方法通过部件上下文类、构建2d网格模型,将生成的2d网格路径,最终形成3d布线结果。
实现了:
1.系统高度抽象,复用性好,性能稳定。
2.易于理解,易于扩展。可以按照具体业务个性化修改。
3.通用引擎和业务定制统一。
本发明还公开了一种网格布线装置及一种可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的网格布线引擎的分层图;
图2为本发明实施例提供的模型、连接口、管线的关系;
图3为本发明实施例提供的布线的先后顺序;
图4为本发明实施例提供的新风布线的先后顺序;
图5为本发明实施例提供的2d网格的几何表示;
图6为本发明实施例提供的网格的点和临近点;
图7为本发明实施例提供的2d网格的方向;
图8为本发明实施例提供的2d网格的路径拐弯;
图9为本发明实施例提供的2d网格的长方形区域索引;
图10为本发明实施例提供的点与点的连接关系表示;
图11为本发明实施例提供的树状2d路径生成;
图12为本发明实施例提供的拷贝2d路径生成;
图13为本发明实施例提供的合并同一个直线上的点;
图14为本发明实施例提供的布线流程图;
图15为本发明实施例提供的水空调的布线效果图;
图16为本发明实施例提供的新风的布线效果1;
图17为本发明实施例提供的新风的布线效果2;
图18为本发明实施例提供的中央空调的布线效果1;
图19为本发明实施例提供的中央空调的布线效果2。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。
本发明的核心是提供一种网格布线方法,本实施例以装饰装修行业的布线为例。如图1所示,本方法包括定义布线元素、构建上下文组件、构建2d网格模型、生成2d路径以及生成3d布线结果。
1.定义布线元素
1.1户型
户型可以有单层、多层。
房间种类很多,如客厅、厨房、卧室、卫生间等。某些布线业务要求避让指定的房间。比如,新风布线要求避让厨房、卫生间。
墙区分普通墙、承重墙。布线可以穿墙。尽量减少穿墙。某些布线业务要求管线优先沿着墙边走。比如,新风顶部布线,水管布线。
柱子必须避让,不能穿柱子。
门洞在墙上,穿门洞同时也会穿墙。某些布线业务要求管线优先穿门洞。比如,新风底部布线。
1.2模型
这里指布线用到的家具。比如,入户水源,中央空调外机,水空调水泵等。
模型有几何属性,如长宽高,中心点,正面朝向。模型,有些有贴面属性,可以贴地面,可以贴顶面,可以贴墙面。模型,需要避让管线。比如,新风管线不能穿新风机。
每个布线业务的模型组成,往往不同。水空调布线的模型包括,主机、水箱、水泵、水力平衡分配器、内机等。中央空调布线的模型包括,内机、外机等。
1.3连接口
连接口归属于模型,有几何属性,如中心点、朝向。
连接口是管线的起点和终点。多个连接口连接管线,组成复杂的网状结构。
一个模型可以有1个或多个连接口。顶面新风口有1个连接口。污风外气口有1个连接口。水空调内机有2个连接口,分别连接供水线、回水线。
1.4管线
每个布线系统生成独立的管线。整体要求,整齐,美观,横平竖直。
管线避让柱子,避让模型。管线可以穿墙,可以穿门。平行的管线,需要间隔一定的距离。管线可以交叉,但不能重叠。
模型、连接口、管线的关系如图2所示。
1.5布线的先后顺序
一组连接口做一次布线。
有很多组连接口需要先排序,然后依次生成布线。连接口属于模型。
模型的先后顺序就是布线的先后顺序。
多个布线如果没有强依赖关系,也可以调换布线顺序。图3为布线的先后顺序,图4为新风布线的先后顺序。
2.构建上下文组件
上下文组件,包括布线业务需要用到的各种元素,以及布线的中间过程状态;本实施例采用面向对象的类来实现。上下文父类,包含布线业务需要用到的公共属性。比如,户型对象、原始模型列表、网格box2d及索引、布线结果等。每个布线系统使用独立的上下文类,继承统一的上下文父类,再增加需要使用的属性。
3.构建2d网格模型
2.1 2d网格
核心属性包括网格轮廓、水平线列表、垂直线列表、网格直线的缓存。
网格轮廓限制网格的范围。获得网格轮廓的包围盒BBox2d,限制水平线、垂直线的范围。
网格直线的缓存,给网格直线去重。如果是水平线,就用y值去重。如果是垂直线,就用x值去重。
2d网格的几何表示见图5。
2.2 2d网格的直线
核心属性包括直线类型、x值、y值、点的列表。
对于水平线y值有意义,x值没有意义;对于垂直线x值有意义,y值没有意义。
点的列表,一个直线上有很多个点,排好序。水平线用y值排序,垂直线用x值排序。
2.3 2d网格的点
核心属性包括2d点、水平线、垂直线、x方向的临近点、负x方向的临近点、y方向的临近点、负y方向的临近点。
点可以在1个直线上,也可以在2个相互垂直的直线上。
直线的点列表已经有序,进而可以算出x方向、负x方向、y方向、负y方向的临近点。
对于网格路径查找,会遍历点的临界点,因此要提前把临近点设置好。
如图6,点和临近点的位置关系。
点为P1,则x方向、负x方向、y方向、负y方向的临近点分别为P3、P4、P2、P5。点为P4,则x方向、负x方向、y方向、负y方向的临近点分别为P1、P11、P6、P8。点为P2,则x方向、负x方向、y方向、负y方向的临近点分别为P7、P6、P10、P1。
2.4 2d网格的单位网格方向
单位网格方向只有四个:正X轴方向(1,0),正Y轴方向(0,1),负X轴方向(-1,0),负Y轴方向(0,-1)。
3d环境下,模型可以任意角度旋转,连接口的方向可以是任意方向。如果连接口需要网格布线,则必须把连接口的方向,统一转为2d网格的单位向量,若连接口与单位网格方向夹角小于45则转为该方向;见图7。
假设一个连接口的方向是(0.87,0.0007),则转为网格方向(1,0)。
假设一个连接口的方向是(-0.00654,-3.67),则转为网格方向(0,-1)。
2.5 2d网格的高度
2d网格有高度。比如,新风顶面布线使用一个顶部的2d网格,新风地面布线使用一个底部的2d网格。
2d网格的高度一般由起点连接口的z值决定,也可以手工指定一个高度z值。
两个2d网格的高度的差值,如果比较小,可能导致管线冲突。
2.6 2d网格的路径拐弯
布线线路会弯曲,体现在2d网格上就是路径拐弯。布线业务对拐弯有要求,比如,减少拐弯,U型弯不能太短等等。
如图8所示,拐弯的几何实现包括:
路径的前进方向可以分为直行、向左拐弯、向右拐弯。
单个弯表示为,向左拐弯,或者向右拐弯。
Z型弯表示为,向左拐弯+向右拐弯,或者向右拐弯+向左拐弯。
U型弯表示为,向左拐弯+向左拐弯,或者向右拐弯+向右拐弯。
还可以组合成更加复杂的拐弯。
拐弯的代码实现方法为:
在路径上,沿着一个点往回找,就能找到上一个拐弯的点和线段。继续往回找,就能多找到几个拐弯的点和线段,这样就可以算出连续的拐弯方向。多个拐弯方向,就可以组合成多种拐弯。
2.7 2d网格的长方形区域
可以把各种实体、虚体,抽象成长方形区域(简称box2d),进而承载多种业务功能。
使用box2d的例子,避让家具,避让柱子,处理墙,指定区域的不同权重等。
2.8 2d网格的box2d索引
box2d区域很多,为了快速查找,使用索引来优化查询性能。
使用固定间距的水平线和垂直线,切分坐标轴,可以得到固定大小的小方块。
小方块有4个顶点,使用左下角的顶点座标,作为小方块id,id格式为"xIndex,yIndex"。每一个box2d,计算出有交集的全部小方块,用小方块id做索引。一个小方块id可以对应多个box2d,也即倒排索引的结构。
查询时,针对指定的一个点或一个线段或一个box2d,计算出所属的小方块。用小方块id去查索引,就得到多个box2d,同时做去重。
如图9所示。假设:水平线间距=2,垂直线间距=2。
块1,x范围0.5,4.7,y范围2.4,7.3,对应的小方块id为"0,1""0,2""0,3""1,1""1,2""1,3""2,1""2,2""2,3"。块2,x范围5.2,9.8,y范围5.3,8.6,对应的小方块id为"2,2""2,3""2,4""3,2""3,3""3,4""4,2""4,3""4,4"。
建立倒排索引。key="0,1"value=块1。key="0,2"value=块1。key="0,3"value=块1。key="1,1"value=块1。key="1,2"value=块1。key="1,3"value=块1。key="2,1"value=块1。key="2,2"value=块1,块2。key="2,3"value=块1,块2。key="2,4"value=块2。key="3,2"value=块2。key="3,3"value=块2。key="4,2"value=块2。key="4,3"value=块2。key="4,4"value=块2。
点1,x=5.3,y=3.6,对应的小方块id="2,1"。查索引,得到value=块1。
线段1,x范围2.5,9.7,y范围5.6,9.7,对应的小方块id="1,4""2,4"。查索引,得到value=块2
2.9 2d网格的路径查找
使用A星算法或其他路径查找算法,核心点在于计算点的成本。
当前点的成本=起点到前一个点的成本+前一个点到当前点的成本
引擎提供计算当前点的成本的接口,给每个布线业务单独实现此接口,定制当前点的成本,从而实现不同的路径效果。
计算点的成本的因素(部分举例):
点在轮廓内,点在轮廓外,
计算起点模型、终点模型、起点连接口、终点连接口和线路的关系,
第一次拐弯,单个弯,Z型弯,U型弯,W型弯,
穿墙,离墙距离,沿着墙边,穿门洞,
避让模型,避让柱子,避让指定房间,
优先走指定的区域,避免走指定的区域,避免四通,避免立三通
十字线区域走线,尽量走优先级高的区域,尽量不走优先级低的区域
避免和其他的线路重叠,避免和其他的线路太近
3.路径表示和优化
3.1点与点的连接关系表示
布线结果为网状结构,一个点可以和多个点连接。
把点与点双向绑定,支持2d点、3d点。
如图10。有一个布线结果,包含多个点。
M→Q R
N→Q P
P→N
Q→M N T
R→M
T→Q
3.2树状2d路径生成
一个起点模型,连接到多个终点模型。起点模型到每个终点模型,都有一个路径,把多个路径合并起来,就生成了树状路径。使用2d网格路径查找,生成单个路径。使用前缀树,把多个单个路径生成一个树状路径。
如图11。起点为A,终点为NGZ。3个单个路径,使用前缀树,合并成一个树状路径。
3.3拷贝2d路径生成
模型上可以有成对的连接口。有时成对的连接口,要求布线的路径一致。
首先,把一个起点连接口的2d布线结果拷贝一份,获得副本布线结果。然后,结合另一个成对的起点连接口,和对应的终点连接口,通过修改连接口附近的线段,少量修改副本布线结果,就得到最终的布线结果。
如图12。实线表示原有的布线结果,虚线表示拷贝生成的布线结果。
A、A2成对,B、B2成对,C、C2成对。A到B、A到C有布线结果。拷贝一份A到B,再做一些线路偏移调整,得到A2到B2的布线结果;拷贝一份A到C,再做一些线路偏移调整,得到A2到C2的布线结果。
3.4合并同一个直线上的点
对于同一个直线上的点,如果只有前后2个临近点,则可以合并点,减少点的数量。支持2d点、3d点。
如图13,ABCDE在同一个直线上,CD被合并后剩余ABE。
4.解决3d路径冲突
3d路径,核心的线路用2d网格生成,所以主要解决2d网格的2d路径的冲突。
3d路径交叉不算冲突;3d路径部分重叠,或路径平行且间隔很近算冲突。
2d网格有高度,两个2d网格,如果高度间隔比较小,则可能导致路径冲突。
3d路径冲突举例
3d管线A Point3d(100,300,2000)---Point3d(500,300,2000)
3d管线B Point3d(200,300,2000)---Point3d(700,300,2000)
3d管线C Point3d(200,300,3000)---Point3d(700,300,3000)
管线A和管线B,高度相同,有一部分线路重叠了,导致冲突。
管线A和管线C,高度相差1000,没有冲突。
网格布线结果,把2d网格路径分为网格高度和网格线路两部分。
网格2d线路,构建索引。水平线用y值建索引,垂直线用x值建索引。
判断冲突时,用网格高度z值的范围,找到多个网格布线结果,然后用x值范围或y值范围,找到多个网格2d线段,并且判断和当前的线段是否冲突。
5.执行布线流程
如图14所示布线流程包括,新建上下文、填充模型、填充户型数据、构建网格box2d索引、绑定模型与模型、绑定连接口与连接口、构建2d网格、查找2d网格路径、构建3d布线结果。
此流程是通用的流程。每个布线业务都使用此流程作为主要的流程,其中可以加入自定义的流程节点,做一些自定义处理。
5.1新建上下文
上下文父类,包含布线业务需要用到的公共属性。比如,户型对象、原始模型列表、网格box2d及索引、布线结果等。每个布线系统使用独立的上下文类,继承统一的上下文父类,再增加需要使用的属性。
5.2填充模型
找到一个布线系统需要使用的全部模型,把原始模型转换成对应的布线模型对象。
布线模型父类包含模型对象的公共属性。比如,原始模型,起点连接口与终点连接口的对应关系,起点连接口与2d网格的对应关系等。
每个布线系统使用独立的布线模型类,继承统一的布线模型父类,再增加需要使用的属性,比如相关的模型列表。
5.3填充户型数据
处理墙、柱子、门洞等,生成对应的网格box2d。每个布线系统,都会使用到户型数据。
5.4构建网格box2d索引
布线业务主要有顶部布线、底部布线二种需求。网格box2d,包含顶部网格box2d列表、底部网格box2d列表,对应的网格box2d索引,分为顶部网格box2d索引,底部网格box2d索引。
5.5绑定模型与模型
模型和模型之间有绑定关系,一对多。比如新风机与一个新风顶分支器绑定,新风顶分支器与多个新风顶内风口绑定。每个模型类都是单独的类,所以把被关联的模型直接作为模型的属性。
5.6绑定连接口与连接口
生成连接口组。一对多,一个起点连接口对应多个终点连接口。一个连接口可以绑定其他多个连接口,表示可以一起生成管线。
5.7构建2d网格
一个连接口组必须在一个2d网格中。一个2d网格可以包含多个连接口组,一个起点连接口对应一个2d网格。
5.8查找2d网格路径
按照各业务指定的布线顺序,依次使用2d网格、连接口组做布线逻辑,获得2d布线结果。
5.9构建3d布线结果
布线系统,最终会生成3d布线结果。需要把2d布线结果转为3d布线结果,再加上其他的附加3d布线结果。
2d网格路径+网格高度=3d网格路径。
3d网格路径+到连接口的3d路径=3d布线结果。
图15~19为应用本发明方法实现的具体布线效果。
本发明公开的一种网格布线装置,包括定义布线元素模块、构建上下文组件模块、构建2d网格模型模块、生成2d路径模块、生成3d布线结果模块;各模块分别实现以上公开的网格布线方法的步骤。
本申请公开的一种可读存储介质,其上存储有程序,程序被处理器执行时实现上述网格布线方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,存储介质的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
Claims (10)
1.一种网格布线方法,其特征在于,包括如下步骤:
步骤S1,定义布线元素
布线元素包括模型、管线;模型为布线用到的实体,不同布线业务的模型组成不同,具有几何属性;模型上设置连接口,连接口为管线的起点和终点;
步骤S2,构建上下文组件
上下文组件,包括布线业务需要用到的各种元素,以及布线的中间过程状态;
步骤S3,构建2d网格模型
2d网格由同一平面内的水平线、垂直线组成,水平线和垂直线交叉形成网格点;几何元素包括直线、点、轮廓线、长方形区域和单位网格方向,所述轮廓线为不规则形状,限制需要生成直线的范围;所述长方形区域为抽象的实体或虚体,承载多种业务功能;2d网格具有高度,布线线路在2d网格上路径能够拐弯;
根据各业务指定的布线顺序,在2d网格上,将相应模型的连接口,通过管线进行连接布线;点与点之间连接,形成网状结构;
使用路径查找算法,使得网格中多个点,找到成本最低的连接路径;
步骤S4,生成2d路径
一个起点模型,连接到多个终点模型;起点模型到每个终点模型,都有一个路径;把多个路径合并起来,生成2d树状路径;
步骤S5,生成3d布线结果
将2d网格路径结合网格高度,生成3d路径,最终形成3d布线结果。
2.根据权利要求1所述的一种网格布线方法,其特征在于,步骤S3中,
网格的点在1条直线或2条相互垂直的直线上;在一条直线上的点列表排序,用于按X轴方向、负X轴方向、Y轴方向、负Y轴方向查找临近点;
单位网格方向分为正X轴方向,正Y轴方向,负X轴方向,负Y轴方向;连接口统一转为2d网格的单位网格方向,若连接口与单位网格方向夹角小于45则转为该方向;
路径拐弯的几何实现包括:路径的前进方向分为直行、向左拐弯、向右拐弯;单个弯分为向左拐弯或向右拐弯;Z型弯分为向左拐弯+向右拐弯,或者向右拐弯+向左拐弯;U型弯分为向左拐弯+向左拐弯,或者向右拐弯+向右拐弯。
3.根据权利要求2所述的一种网格布线方法,其特征在于,长方形区域使用索引进行查找,索引步骤为:
使用固定间距的水平线和垂直线,切分坐标轴,得到固定大小的小方块,使用小方块左下角的顶点座标作为小方块id;将每一个长方形区域和与其有交集的全部小方块进行关联;通过倒排索引就可以将一个小方块id对应到相应的长方形区域,其中一个小方块id可以对应多个长方形区域;
查询时,针对指定的一个点、线段或长方形区域,计算出所属的小方块,用该小方块id去查索引,得到多个长方形区域时进行去重。
4.根据权利要求3所述的一种网格布线方法,其特征在于,对于同一个直线上的点,如果只有前后2个临近点,则通过删除该点进行合并。
5.根据权利要求3所述的一种自适应的网格布线方法,其特征在于,步骤S3中,
当模型上有成对的连接口要求布线的路径一致时,把一个连接口的2d布线结果,拷贝一份,获得副本布线结果;
然后,结合另一个成对的连接口,在副本布线结果基础上修改连接口附近的线段,得到最终的布线结果。
6.根据权利要求1-5中任一项所述的一种网格布线方法,其特征在于,步骤S5中,3d路径通过2d网格高度判断冲突,如果3d路径部分重叠或者路径平行且间隔很近,则发生冲突;
用网格高度值的范围,找到多个网格布线结果;然后用x值范围或y值范围,找到多个2d网格线段,并且判断和当前的线段是否冲突。
7.一种网格布线装置,其特征在于,包括定义布线元素模块、构建上下文组件模块、构建2d网格模型模块、生成2d路径模块、生成3d布线结果模块;
定义布线元素模块,布线元素包括模型、管线;所述模型为布线用到的实体,不同布线业务的模型组成不同,具有几何属性;模型上设置连接口,所述连接口为管线的起点和终点;
构建上下文组件模块,上下文父类,包含布线业务需要用到的公共属性,每个布线系统,使用独立的上下文类,继承统一的上下文父类,再增加需要使用的属性;
构建2d网格模型模块,2d网格由同一平面内的水平线、垂直线组成,水平线和垂直线交叉形成网格点;几何元素包括直线、点、轮廓线、长方形区域、单位网格方向,所述轮廓线为不规则形状,限制需要生成直线的范围;所述长方形区域为抽象的实体或虚体,承载多种业务功能;2d网格具有高度,布线线路在2d网格上路径能够拐弯;
根据各业务指定的布线顺序,在2d网格上,将相应模型的连接口,通过管线进行连接布线;点与点之间连接,形成网状结构;
使用路径查找算法计算点的成本;
生成2d路径模块,一个起点模型,连接到多个终点模型;起点模型到每个终点模型,都有一个路径;把多个路径合并起来,生成2d树状路径;
生成3d布线结果模块,将2d网格路径结合网格高度,生成3d路径,最终形成3d布线结果。
8.根据权利要求7所述的一种网格布线装置,其特征在于,网格的点在1条直线或2条相互垂直的直线上;在一条直线上的点列表排序,用于按X轴方向、负X轴方向、Y轴方向、负Y轴方向查找临近点;
单位网格方向分为正X轴方向,正Y轴方向,负X轴方向,负Y轴方向;连接口统一转为2d网格的单位网格方向,若连接口与单位网格方向夹角小于45则转为该方向;
路径拐弯的几何实现包括:路径的前进方向分为直行、向左拐弯、向右拐弯;单个弯分为向左拐弯或向右拐弯;Z型弯分为向左拐弯+向右拐弯,或者向右拐弯+向左拐弯;U型弯分为向左拐弯+向左拐弯,或者向右拐弯+向右拐弯。
9.根据权利要求7所述的一种网格布线装置,其特征在于,3d路径通过2d网格高度判断冲突,如果3d路径部分重叠或者路径平行且间隔很近,则发生冲突;
用网格高度值的范围,找到多个网格布线结果;然后用x值范围或y值范围,找到多个2d网格线段,并且判断和当前的线段是否冲突。
10.一种可读存储介质,其特征在于,可读存储介质上存储有程序,程序被处理器执行时实现如权利要求1-5中任一项所述的网格布线方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110812778.2A CN113486484B (zh) | 2021-07-19 | 2021-07-19 | 一种网格布线方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110812778.2A CN113486484B (zh) | 2021-07-19 | 2021-07-19 | 一种网格布线方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113486484A CN113486484A (zh) | 2021-10-08 |
CN113486484B true CN113486484B (zh) | 2023-07-18 |
Family
ID=77941198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110812778.2A Active CN113486484B (zh) | 2021-07-19 | 2021-07-19 | 一种网格布线方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113486484B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101980216A (zh) * | 2010-10-18 | 2011-02-23 | 清华大学 | 基于网块的快速多层布线方法 |
JP2019113723A (ja) * | 2017-12-25 | 2019-07-11 | セイコーエプソン株式会社 | ワイヤーグリッド偏光素子、ワイヤーグリッド偏光素子の製造方法、および電子機器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012063934A (ja) * | 2010-09-15 | 2012-03-29 | Toshiba Corp | 配線基板の配線経路決定方法及び半導体装置の配線経路決定方法 |
-
2021
- 2021-07-19 CN CN202110812778.2A patent/CN113486484B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101980216A (zh) * | 2010-10-18 | 2011-02-23 | 清华大学 | 基于网块的快速多层布线方法 |
JP2019113723A (ja) * | 2017-12-25 | 2019-07-11 | セイコーエプソン株式会社 | ワイヤーグリッド偏光素子、ワイヤーグリッド偏光素子の製造方法、および電子機器 |
Also Published As
Publication number | Publication date |
---|---|
CN113486484A (zh) | 2021-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109711018B (zh) | 一种二维到三维的户型设计方法 | |
CN106599493B (zh) | 一种三维大场景中bim模型的可视化实现方法 | |
CN111324965B (zh) | 一种基于云的通用参数化模型解析方法及设计系统 | |
KR101741015B1 (ko) | 공동주택의 환경성능·에너지 해석을 위한 통합 분석 시스템 및 분석 방법 | |
CN102201129B (zh) | 一种三维可视化地铁综合管线运营维护系统及维护方法 | |
CN100561523C (zh) | 一种三维模型网格重建方法 | |
CN107515991A (zh) | 一种基于bim技术的户型全装修模拟展示方法及展示系统 | |
CN112883476A (zh) | 建筑空间的布局方法、装置及电子设备 | |
CN103177167A (zh) | 一种橱柜设计的方法 | |
CN109544687B (zh) | 一种定向分层分户图扩展方法 | |
CN110046426A (zh) | 一种从bim实体模型自动提取多细节层次gis表面模型的方法 | |
CN113486484B (zh) | 一种网格布线方法、装置及存储介质 | |
CN111915720B (zh) | 一种建筑物Mesh模型到CityGML模型的自动转换方法 | |
Adão et al. | Procedural generation of traversable buildings outlined by arbitrary convex shapes | |
Hu et al. | Batch modeling of 3d city based on esri cityengine | |
Zhang | [Retracted] Application of Landscape Architecture 3D Visualization Design System Based on AI Technology | |
CN116721218A (zh) | 一种三维不动产模型轻量化方法、系统及设备 | |
Song et al. | Web3D-based automatic furniture layout system using recursive case-based reasoning and floor field | |
Hajek | Creation of information-rich 3D model in Geographic Information System-case study at the castle kozel | |
CN114218640A (zh) | 一种基于人工智能的假山体量设计方法 | |
CN114117661A (zh) | 一种铁塔精细化模型数字化建模方法 | |
CN113962182A (zh) | 电路设计方案的生成方法、装置、计算机设备和存储介质 | |
CN114417538A (zh) | 一种高自由度的空调设备选型方法及计算机可读存储介质 | |
CN102324105A (zh) | 日光温室三维建模方法 | |
CN102831282A (zh) | 基于gocad软件的二维图件生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |