一种基于配电箱施工图的仿真回路生成方法转让专利

申请号 : CN202210126881.6

文献号 : CN114169288B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王鹏张伟杰姜凌青陈树高继业费晨杰张宏

申请人 : 中节能晶和智慧城市科技(浙江)有限公司

摘要 :

本发明公开了一种基于配电箱施工图的仿真回路生成方法,其包括:解析DXF文件,得到CAD图元组;建立设备图元数据库,存储设备与图元映射关系;将设备图元数据库的所有设备和CAD图元组进行匹配,得到最终结果集;识别最终结果集中的设备组,生成设备拓扑关系结果集;根据设备拓扑关系结果集,生成仿真回路。采用本发明可以实现传统复杂的配置流程自动化图形化,降低实施成本。

权利要求 :

1.一种基于配电箱施工图的仿真回路生成方法,其特征在于包括:

1)获取并解析DXF文件得到实体集,从实体集中循环读取基本图形,将设备图解析成图元数据集合,得到图形信息表即CAD图元组;

2)建立设备图元数据库,存储设备与图元对应关系表;包括:建立包含设备与CAD图元映射关系的对应关系表;

遍历配电箱内所有设备,将每个设备与CAD图元的映射关系录入数据库,完成数据库建立;

3)遍历设备库,并遍历设备库中设备所对应的图元数据库,将设备图元数据库的所有设备图元和CAD图元组中所有图元进行匹配,得到匹配后的设备组及此设备组对应的图元组和集合,存入最终结果集;

4)识别最终结果集中的设备组,生成设备拓扑关系结果集;

5)根据设备拓扑关系结果集,生成仿真回路。

2.根据权利要求1所述的基于配电箱施工图的仿真回路生成方法,其特征在于所述将设备图元数据库的所有设备图元和CAD图元组中所有图元进行匹配,得到匹配后的设备组及此设备组对应的图元组和集合,存入最终结果集包括如下步骤:

1)设备图元数据库的所有设备图元和CAD图元组中所有图元进行匹配后,从CAD图元组取出符合设备图元库要求的图元存入到中间结果集中;

2)对中间结果集进行清理,剔除无效的设备;

3)根据设备图元范围去匹配剔除无效设备后得到的中间结果集中的元件图元,剔除不符合要求的元件图元,得到最终结果集。

3.根据权利要求1所述的基于配电箱施工图的仿真回路生成方法,其特征在于所述识别最终结果集中的设备组并生成设备拓扑关系结果集包括如下步骤:

1)在CAD图元组中删除最终结果集中设备组对应的图元组合集合;

2)计算最终结果集中设备组的全部设备的真实包围盒坐标,得到包围盒坐标集合;

3)对CAD图元组和包围盒坐标集合进行遍历并作距离分析,找出最终结果集中设备之间的拓扑关系。

4.根据权利要求1所述的基于配电箱施工图的仿真回路生成方法,其特征在于还包括预置设备图片库步骤,为生成仿真回路提供设备图片。

5.根据权利要求1至4任一项所述的基于配电箱施工图的仿真回路生成方法,其特征在于包括在浏览器端绘制仿真回路图,步骤包括如下:

1)将设备拓扑关系结果集转换成json字符串;

2)浏览器端发起HTTP请求,拿到上述转换后的json字符串;

3)浏览器端根据拿到的json字符串,绘制设备和设备之间的关系。

说明书 :

一种基于配电箱施工图的仿真回路生成方法

技术领域

[0001] 本发明属于市政道路照明信息化技术领域,具体涉及一种基于配电箱施工图自动生成图形化仿真回路的方法。

背景技术

[0002] 在现在的智慧化市政道路照明控制中,上层的照明软件平台需要在平台中清晰地查看某组灯的亮、暗、电量等情况,在特殊情况下,也需要对路灯故障进行排查,而道路上的配电箱是其关键的控制节点,平台中往往使用配电箱的电路控制图来直观展示上述信息。在以往,工作人员需要依据配电箱电路CAD图纸,人工识别图中图元及图元间关系,再使用相应的图形设计软件将图元和关系绘画出来,得到仿真回路,并手动建立图元和实际设备的对应关系,上述步骤耗费大量人力,且容易出错,一旦配电箱布置进行调整,也会导致上述工作的重复。因此,如果能根据配电柜CAD图纸自动生成仿真回路,势必能大大降低时间成本,提高生产效率。
[0003] 公开号为CN104484499A的中国发明专利申请文献,提到了一种基于CAD图纸的仿真图纸快速生成方法,其用已设计的动态图元去动态识别和替换CAD图纸中对应的静态图元,并人工赋予图元属性。该专利文献立足点在变电站二次回路领域,关注整体的电路回路,其上述特点不适用于配电箱仿真回路自动生成并在照明平台中的应用,另外,针对CAD图纸中的图元识别过程中也并未做详细说明。

发明内容

[0004] 为解决现有技术上述问题,本发明提出了一种基于配电箱施工图自动生成图形化仿真回路的方法,以实现传统复杂的配置流程自动化图形化,降低实施成本。
[0005] 为此,本发明提出一种基于配电箱施工图的仿真回路生成方法,其包括:
[0006] 1)获取并解析DXF文件,得到CAD图元组;
[0007] 2)建立设备图元数据库,存储设备与图元对应关系表;
[0008] 3)将设备图元数据库的所有设备和CAD图元组进行匹配,得到最终结果集;
[0009] 4)识别最终结果集中的设备组,生成设备拓扑关系结果集;
[0010] 5)根据设备拓扑关系结果集,生成仿真回路。
[0011] 作为优选,所述解析DXF文件包括:从DXF中读取基本图形和描述,形成图形信息表,该图形信息表即为CAD图元组。
[0012] 作为优选,所述建立设备图元数据库包括如下步骤:
[0013] 1)建立CAD图元字典表,为每个图元设定一个唯一值;
[0014] 2)建立设备与图元对应关系表,包括记录设备与图元对应关系、与设备对应的图元参数阈值和设备图元范围信息;
[0015] 3)遍历配电箱内所有设备,并将每个设备与CAD图元的映射关系录入数据库。
[0016] 作为优选,所述将设备图元数据库CAD图元组进行匹配包括如下步骤:
[0017] 1)遍历设备图元数据库中的所有设备和解析得到的CAD图元组,从CAD图元组取出符合设备图元库要求的图元存入到中间结果集中;
[0018] 2)对中间结果集进行清理,剔除无效的设备;
[0019] 3)根据设备图元范围去匹配剔除无效设备后得到的中间结果集中的元件图元,剔除不符合要求的元件图元,得到最终结果集。
[0020] 作为优选,所述识别最终结果集中的设备组并生成设备拓扑关系结果集包括如下步骤:
[0021] 1)在CAD图元组中删除最终结果集中设备组对应的图元组合集合;
[0022] 2)计算最终结果集中设备组的全部设备的真实包围盒坐标,得到包围盒坐标集合;
[0023] 3)对CAD图元组和包围盒坐标集合进行遍历并作距离分析,找出最终结果集中设备之间的拓扑关系。
[0024] 作为优选,还包括预置设备图片库步骤,为生成仿真回路提供设备图片。
[0025] 与现有技术相比,本发明具有如下有益效果:
[0026] 1)创新性地提出了一种市政道路照明配电柜中电器设备与CAD电路设计图中的图元建立映射的方法,并利用此方法对常用市政道路照明配电柜的设备与CAD图元进行一一映射。
[0027] 2)创新性地定义了一种数据格式,来描述CAD电路中图元的类别、数量及图元间的关系,将实际的CAD图像转成了一串字符的描述,且图形信息保存较为完整,不失真。
[0028] 3)在对CAD电路图图元的识别中,本发明利用程序直接读取其DXF文件,此方法相对于使用图像识别技术去读取CAD图元而言,可避免大量的CAD图纸来训练,且准确率更高、速度更快。
[0029] 4)本发明通过一系列步骤方法将静态的专业的CAD图纸转化为浏览器端能展现的、更直观的仿真回路,其易读性更高、浏览途径更便捷,非电路专业人士也能直接在浏览器端轻易看懂。
[0030] 5)与传统纯人工转换CAD图纸到浏览器显示相比,本发明提出的方法有更低的成本,更好的效率。

附图说明

[0031] 为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0032] 图1为本发明一种基于配电箱CAD图的仿真回路生成方法实施例的具体步骤流程示意图;
[0033] 图2为本发明实施例的一个示意设备A的电路图;
[0034] 图3为由图2解析出来的CAD图元数据集合;
[0035] 图4为本发明实施例DXF图元数据字典;
[0036] 图5为本发明实施例设备A与DXF图元的映射关系表;
[0037] 图6为本实施例使用预置设备图元数据库匹配CAD图元组从而得到实际设备图元组的流程示意图;
[0038] 图7为本实施例在清理中间结果集后得到的数据集结构示意图;
[0039] 图8本发明实施例比对并取出所有符合阈值的设备图元组流程图;
[0040] 图9为本发明实施例剔除CAD中不存在的设备图元流程示意图;
[0041] 图10为本发明实施例在根据图元范围剔除不合理图元后得到的数据结果集示例;
[0042] 图11为本发明实施例建立了设备拓扑关系后得到的数据结果示例;
[0043] 图12为本发明实施例建立的预置设备图片库。

具体实施方式

[0044] 下面结合本发明的附图和具体实施例,对本发明作进一步的详细说明。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。
[0045] 参见图1,为本实施例的一种基于配电箱CAD图的仿真回路生成方法总体流程,具体步骤如下:
[0046] 步骤S1:获取DXF文件,先将DWG格式的CAD图转化为DXF格式。
[0047] AutoCAD系统的标准图形输出文件是DWG格式,因为版权问题,其包含信息被加密了,为了与其它系统交换数据,AutoCAD提供了DXF文件作为图形数据交互文件。DXF格式是AutoCAD图形文件中包含的所有信息的一种带标记数据的表示方式。带标记数据是指文件中的每个数据元素前面都带有一个称为组码的整数。组码的值表明了随后的数据元素的类型,还指出了数据元素对于给定对象(或记录)类型的含义。实际上,图形文件中所有用户指定的信息都可以用 DXF 格式表示。这一步的转换直接用AutoCAD完成。
[0048] 步骤S2:解析DXF文件,得到CAD图元组。
[0049] 一个典型的DXF文件包含6段,包括:Header、Classes、Tables、Blocks、Entities、Objects,其中Entities实体集记录了文件重要的图形数据,主要包含各类图元的名称、线型名、所属图层、颜色索引等。AutoCAD支持的实体有多种,比较常见的有圆、直线、点、射线、折线、长方形、文本等。本实施例只做DXF中Entities实体集的内容解析。
[0050] 在该步骤中,本实施例使用netDxf这一组件来解析DXF文件。netDxf是基于.net的开源组件,它遵守MIT开源协议,此协议允许使用者免费使用或者修改该组件。
[0051] 以下是解析DXF文件的具体步骤:
[0052] S21,在VS(.Net集中开发环境)中通过NuGet包管理器导入netDxf。
[0053] S22,编写代码读取和加载DXF文件,示例代码如下:
[0054] DxfDocument dxfDocument = DxfDocument.load(dxfFilePath);其中dxfDocument 为一个读取实例,dxfFilePath为DXF文件存放路径。
[0055] S23,从DXF的Entities实体集中,循环读取线、圆、弧线、长方形等基本图形和描述,形成一个图形信息表,该表即为此CAD图元组。
[0056] 例如,图2所示设备A电路图,将被解析为图3所示格式的图元数据集合,即图2设备A的图形信息表。
[0057] 以上解析过程将建立默认以左上角为原点(即x,y的坐标皆为0)的二维坐标系。
[0058] 图3 所示图元数据集合中,Line表示线段,其括号内s后跟的值代表线的起点坐标,e代表线的终点坐标,w代表线宽。Circle表示一个圆,其括号内p后跟的值代表圆心坐标,r代表半径。
[0059] 以图3第一行为例。line(s={4,0},e={4,4},w=1)为例,表明CAD电路图中存在一条线段,该线段的起点坐标为(4,0),终点坐标为(4,4),线粗为1,由坐标信息可显然得出,此线段为一条长度为4的竖线。
[0060] 可以看出,图2是十条线段和一个圆的组合,十条线段中有两条为斜线,这些图元相互之间有一定的关系,如两条斜线在圆内,下方三条横线依次缩短等。而图3所示的图元数据集合,通过对其坐标进行计算,也可以得到上述关系信息。
[0061] 换言之,设备A的图形被不失真地转换为了另外一种形式去描述,转换后的结果内容同样保存了图元类别、数量、关系信息,且更容易被后续步骤相应程序处理。
[0062] 需要说明的是,DXF文件可以包括不止一个设备,那么,解析得到的CAD图元组即为针对所有设备的图元组。DXF中所有设备将被解析成上述的图元数据集合描述,此集合描述在程序中以对象形式存储。
[0063] 步骤S3:建立本地设备图元数据库,此数据库的作用是存储设备库中设备和图元库中的CAD基本图元的映射关系。
[0064] 如S2所述,DXF解析后将得到一系列最基本的形状,如线段、圆形、三角形等,而在实际业务中,往往是多个基本形状组合成一个有意义的设备或者节点。本步骤将归纳各设备的基本CAD图元组合,以此建立设备图元数据库,具体步骤如下:
[0065] S31,建立CAD图元字典表。AutoCAD的DXF中定义了图元库,包括了接近50个基本图元,图4是其部分常用的图元。系统为每个图元设定一个唯一值,作为后期建立映射关系备用。
[0066] S32,建立设备与图元对应关系表。
[0067] 图5是一个典型的例子,其表明了设备A与CAD图元的映射关系。在步骤S2中讲到,此设备由十个基本的CAD图元组成,但每个图元的值又有所不同。在图5中,设备编码是按照一定规则赋予的唯一编码,CAD图元类型是图4的图元编码。
[0068] 如图5所示,本实施例不仅映射了设备与图元对应关系,还记录了该设备对应的图元参数阈值和设备图元范围信息。CAD图元参数阈值是指图元的特性参数的识别范围,比如第一行数据,图元构成为circle的,其有一个关键参数D,D为半径在3到8之间的图元将被识别;如果为斜线,则倾斜角a=45度将被识别到;而如果为线段,则有两个关键参数,长度L和朝向H,如果长度L在一定范围内,朝向H为0,则被识别为横线。最后一列的设备图元范围表明该设备总体的长宽应为多少范围内。
[0069] S33,遍历配电箱内所有设备,将每个设备与CAD图元的映射关系及对应的CAD图元参数阈值和设备图元范围录入数据库,完成数据库预置。
[0070] S4:使用S3的设备图元数据库匹配S2得到的CAD图元组,得到最终结果集R,此结果集存储了匹配到的设备组及此设备组对应的图元组和集合。
[0071] 此步骤将遍历S3得到的设备图元数据库中所有的设备及其对应图元,根据图元的参数及参数阈值去比对CAD图元组。参见附图6,该步骤包括以下子步骤:
[0072] S41,遍历设备图元数据库中的所有设备和解析得到的CAD图元组,从CAD图元组取出符合设备图元数据库要求的图元存入到中间结果集中。
[0073] 本实施例中,本步骤的遍历包含三重遍历,分别是:遍历设备图元数据库中的所有设备、遍历设备图元数据库中所有设备的图元库和遍历解析得到的CAD图元组。
[0074] 设设备图元数据库为D,包括了n个设备Di,i=1,2……n。每个设备Di中包含一个图元库T, 图元库T包括m个图元Ti,i=1,2……m。设S2步骤解析出来的CAD图元组为F,包括了k个图元Fi,i=1,2……k。本步骤实际是在遍历中比较设备图元数据库中图元Ti与CAD图元组图元Fi的相匹配关系,并将匹配上的结果存入到中间结果集Rm中。
[0075] 本实施例中,中间结果集Rm为一个双重Map数据结构,第一重Map的Key为具体某一个设备M的设备ID,value为第二重Map,第二重Map的subkey是设备M下的图元G的ID,subvalue为一个List,存储所有与图元G相匹配的目标图元。双重Map数据结构为现有数据结构,在此不赘述。本实施例的双重Map数据结构参见图7。
[0076] 参见图8,本S41步骤详细流程如下:
[0077] 本实施例中,需要先遍历设备库D,取出具体设备Di,针对具体设备Di,再遍历其所对应的图元库,拿到具体图元Ti,以Ti依次去比对CAD图元组中所有图元Fi,这里比较两个方面,一是图元类型,线段对线段,圆对圆;二是比对Ti所带的参数阈值信息与Fi匹配与否,如果上述二者比对结果都能匹配上,则将Fi存入到中间数据结果集Rm中。直到所有设备Di都完成比对。
[0078] 举例说明。如在图5中有设备A,图5最后一行表明设备A需要一条长度在3和6之间,h=1即竖直朝向的线段,于是在解析出来的CAD图元组中进行搜索,以图3为例,其第一行是一条长度为4的竖线(根据起止点坐标计算可知),则满足要求,并将其存入中间结果集中,继续循环到第二行,发现第二行的图元是一条横线,不满足竖线的要求,则跳过,一直到CAD图元组循环完毕。
[0079] 在上述过程中,该设备图元可能匹配到0个,1个或者多个目标图元,当其匹配结果是空时,则说明该设备实际上在该CAD图元组中不存在,此类设备应从结果集中删除,以减少数据处理量,此过程在下一步进行。
[0080] S42,在此步骤中,需要对S41步骤的中间结果集Rm进行清理,因为S41步骤中并不会主动剔除无效的设备,因此这一步主要是剔除实际不存在的设备。
[0081] 参见9,该步流程需要遍历中间结果集Rm的二层Map结构,先遍历第一层Map从中取出具体设备Di,再遍历第二层Map即对Di对应的图元库中图元的数量进行判断,如果目标图元数量为0,则表明该设备实际上在该CAD图元组中不存在,将该设备从中间结果集中删除,再继续取出下一个具体设备进行判断,直到结束。
[0082] S43,该步骤循环处理S42步骤得到的中间结果集,根据步骤S3中设定的图元范围去匹配上一步中间结果集中的图元,在处理过程中剔除不符合要求的图元,然后得到符合条件的集合。
[0083] 由于有的设备与设备之间的图元相似度比较高,执行步骤S41和S42后匹配得到并存入中间结果集Rm的目标图元会很多,其中有些图元不是真正构成该设备的图元,所以需要用设备图元范围去取出符合条件的图元或删除不符合条件的图元。
[0084] 该步骤采用贪心算法,即在图元的排列组合中,以深度优先先寻找完全满足条件的一组图元组合,如果找到,则将此组图元组合存到最终结果集R中,并在中间结果集的第二重Map的subvalue中删除此组合。如果找不到则回退一次继续尝试,直到完成最初一层图元的遍历后放弃,如此则表明在CAD图纸没有此设备。
[0085] 假设经过步骤S42后,得到一个中间结果集,此中间结果集结构如下表1。在图7中,包含了D1,D2……,其中设备D1由四个图元组成,分别为T1到T4,经过上述S41、S42两个步骤后,T1匹配到了F1、F3、F8,T2匹配到了F10,T3匹配到了F11、F12,T4匹配到了F13。经过本步骤S43,对上述数据进行排列组合,找到了符合条件(即在图元范围内)的一个或者多个组合:F3、F10、F12、F13。在本实施例中,可能会有如下表1的排列过程:
[0086] 表1:取出符合某设备图元范围图元的排列组合及步骤
[0087] 步骤 组合列表 动作1 F1 第一轮初始图元
2 F1,F10 F10与F1距离超出组件大小范围,此组合不符合要求,舍弃。因T2只有F10,故放弃F1。
3 F3 第二轮初始图元
4 F3,F10 满足条件,继续下一轮循环
5 F3,F10,F11 不满足条件,故放弃F11,跳过此元件选取下一个。
6 F3,F10,F12 满足条件
7 F3,F10,F12,F13 满足条件,且找到一组完全合适的组合,将此组合存入最终结果集R中,并从中间结果集中删除F3,F10,F12,F13,然后继续循环。
8 F8 第三轮初始图元
9 F8,无 因为F10已经被删除,表T2中已经没有可选项,故针对设备D1的循环结束。后续进行设备D2的排列组合。
[0088] 图10是一个最终结果集数据结构示例,在图10中左边列为设备组,有设备D1,设备D2……,其中设备D1的T1图元对应CAD图元组的F3图元,T2图元对应CAD图元组的F10图元,T3图元对应CAD图元组的F12图元,T4图元对应CAD图元组的F13图元,设备D2、D3等类似,在此不做赘述。
[0089] S5:识别最终结果集R中设备组,并生成设备拓扑关系结果集。具体步骤如下:
[0090] S51,在CAD图元组中删除由步骤S4所得到的最终结果集R中设备组对应的图元组合集合,由此,CAD图元组中将只有线段图元集合。
[0091] S52,根据步骤S4中得到的最终结果集R中设备组对应的图元组合集合,计算出最终结果集R中设备组中全部设备的包围盒坐标,即找到设备的左上,左下,右上,右下四个点的坐标,此四个坐标合围而成的区域即为该设备的包围盒坐标。将所有设备的包围盒坐标存入包围盒坐标集合Z中。针对图2,设备A的包围盒坐标为(0,0)(0,24)(0,8)(8,24)。
[0092] S53,对只有线段图元的CAD图元组和包围盒坐标集合Z,进行遍历并作距离分析,找出最终结果集R中每个设备图元包含的线段的起点或终点,得到设备之间的拓扑关系。需要说明的是,如果是第一个设备和最后一个设备,则前者只有后连接线段,后者只有前连接线段。
[0093] CAD图元组中的某一线段图元的起点或者终点坐标如果在包围盒坐标集合Z中某一个包围盒内,则表明该线段连接了此包围盒代表的设备。当上述遍历和判断完成后,可以知道设备组中设备与设备的拓扑关系,再将拓扑关系存入到最终结果集R中。如:当只有线段图元的CAD图元组中有一条线段的起点坐标在设备D1的包围盒内,终点坐标在设备D2的包围盒内时,表明设备D2与设备D1相连,且设备D2在设备D1之后。如图11所示,为进行本步骤处理后最终结果集R结构实施例。 S6:预置设备图片库。预置设备图片库用来为自动生成仿真回路图,提供设备矢量图片。预置设备图片库预先存储了仿真回路用到的全量设备图片,以备后续在页面端直接生成仿真回路,相应简略图示见图12。其中,设备图片信息字段存储相应预置图片的base64二进制编码,设备编码字段用来和步骤S5生成的拓扑关系中的设备编码关联,设备类别是对设备编码的中文文字说明。
[0094] S7:根据步骤S5生成的数据集,步骤S6预置的设备图片库,生成仿真回路图。下面,以照明平台由本发明实施例配电箱施工图仿真回路生成方法生成的仿真回路并在浏览器端展示该仿真回路的具体实例。
[0095] 当前照明平台基本采用B/S架构,因此需要将前面步骤所述结果数据传递至浏览器端,由浏览器绘制回路图。
[0096] 假设当前照明平台已经稳定运行,要加入一个新的配电柜仿真回路,经过前述步骤已经得到最终的设备结果集,则要将此结果集转换成浏览器端显示的仿真回路的具体步骤如下:
[0097] S71,将S5步骤生成的设备拓扑关系结果集,转成json(JavaScript Object Notation, JS 对象简谱)字符串。
[0098] S72,浏览器端程序发起HTTP请求,拿到上述json字符串。
[0099] S73,浏览器端程序根据拿到的json字符串,利用svg  (Scalable Vector Graphics, 可缩放矢量图形),技术绘制设备和设备之间的关系。其中需要利用image标签嵌入相应的设备图片,利用设备相对坐标数据定位图片,利用设备和设备之间的拓扑关系构建图片之间的连线。最终生成完整的仿真回路。