一种基于AutoCAD平台提取室内分布图纸中器件连接关系的方法与流程

文档序号:11155839阅读:218来源:国知局
一种基于AutoCAD平台提取室内分布图纸中器件连接关系的方法与制造工艺
本发明涉及AutoCAD程序架构和ObjectARX的二次开发技术,特别涉及一种基于AutoCAD平台提取室内分布图纸中器件连接关系的方法。
背景技术
:AutoCAD是美国Autodesk公司研制开发的一款计算机辅助设计软件;是目前Windows系统中应用最广泛、使用人数最多的CAD软件。ObjectARX本质上是Windows系统的一个动态链接库(DLL),可直接共享AutoCAD的地址空间,也可直接利用AutoCAD的核心数据结构和代码,使得二次开发者可以直接访问AutoCAD的数据库结构、图形系统以及CAD几何造型核心。在AutoCAD平台上绘制室内分布图纸时,经常将一个复杂的器件图形组合成一个图块,并将器件的一些信息作为属性存在于图块中,图块的使用可提高绘制重复图形的效率,大大减少重复性操作,节省存储空间,便于修改AutoCAD图纸。提取室内分布图纸中器件之间的连接关系,需要获得连线的起始位置和实际长度信息及其与之相连器件的唯一属性标识及编号等信息,将这些信息压入到自定义的容器对象中,也可将容器对象中的数据以Excel表格或其他形式提取出来。如果人工进行提取操作,工作量大,从而耗费大量的时间,且效率低下。有鉴于此,有必要提出了一种基于AutoCAD平台提取室内分布图纸中器件连接关系的方法,以解决上述问题。技术实现要素:本发明目的在于:解决了AutoCAD平台下室内分布图纸中器件连接关系的提取问题,并将结果存储在容器对象中,便于后续的数据库操作。本发明的技术方案是:一种基于AutoCAD平台提取室内分布图纸中器件连接关系的方法,其特征在于,器件在图纸中都以图块的形式表示,该方法包括:步骤1、读取并存储连线信息:在AutoCAD平台上打开室内分布图纸,选定操作区域,从操作区域中获取全部连线的起点位置ps、终点位置pe和实际长度L,创建用于存放器件连接关系的容器,并将连线起点位置ps的x轴坐标psx和y轴坐标psy及实际长度L存储到所述容器中;步骤2、计算并获取器件的最值点:从所述操作区域内过滤出所有器件,根据单个器件的形状计算出器件的最小外接矩形,并记录最小外接矩形的一对对角顶点,即获得最小外接矩形在x轴上的最小值xmin,最大值xmax、y轴上的最小值ymin,最大值ymax,重复本步骤,获取所有器件的最值点;步骤3、计算并获取连线两端相连的器件:3.1、获取与连线起点相连的器件:对于单个器件,连线起点位置ps的x轴坐标为psx,y轴坐标为psy;1)若连线起点位置ps既不满足xmin≤psx≤xmax也不满足ymin≤psy≤ymax,则确定该器件与所述连线起点不相连;2)若连线起点位置ps满足xmin≤psx≤xmax但不满足ymin≤psy≤ymax,则所述连线起点与器件最小外接矩形的最短距离为:dmin=(|ymin-psy|,|ymax-psy)min3)若连线起点位置ps不满足xmin≤psx≤xmax但满足ymin≤psy≤ymax,则所述连线起点与器件最小外接矩形的最短距离为:dmin=(|xmin-psx|,|xmax-psx)min4)若连线起点位置ps即满足xmin≤psx≤xmax也满足ymin≤psy≤ymax,则所述连线起点与器件最小外接矩形的最短距离为:dmin=(dxmin,dymin)min其中dxmin=(|xmin-psx|,|xmax-psx|)min,dymin=(|ymin-psy|,|ymax-psy|)min5)若满足dmin<<(xmax-xmin,ymax-ymin)min,则确定该器件就是与所述连接起点相连的器件,否则说明该器件与所述连线起点不相连;重复步骤3.1,直到获取与连线起点相连的器件;3.2、获取与连线终点相连的器件:对于单个器件,连线终点位置pe的x轴坐标pex,y轴坐标为pey;1)若连线终点位置pe既不满足xmin≤pex≤xmax也不满足ymin≤pey≤ymax,则确定该器件与所述连线终点不相连;2)若连线终点位置pe满足xmin≤pex≤xmax但不满足ymin≤pey≤ymax,则所述连线终点与器件最小外接矩形的最短距离为:dmin=(|ymin-pey|,|ymax-pey|)min3)若连线终点位置pe不满足xmin≤pex≤xmax但满足ymin≤pey≤ymax,则所述连线终点与器件最小外接矩形的最短距离为:dmin=(|xmin-pex|,|xmax-pex|)min4)若连线终点位置pe即满足xmin≤pex≤xmax也满足ymin≤pey≤ymax,则所述连线终点与器件最小外接矩形的最短距离为:dmin=(dxmin,dymin)min其中dxmin=(|xmin-pex|,|xmax-pex|)min,dymin=(|ymin-pey|,|ymax-pey|)min5)若满足dmin<<(xmax-xmin,ymax-ymin)min,则确定该器件就是与所述连接终点相连的器件,否则说明该器件与所述连线终点不相连;重复步骤3.2,直到获取与连线终点相连的器件;步骤4、自定义器件端口编号并存储器件信息:通过与连线相连接的器件与原图纸库中的器件作对比,判定该器件是否为图纸库中原有的器件,若是则按照步骤4.1对器件端口进行编号,若否则按照步骤4.2对器件端口进行编号;4.1、对图纸数据库中原有的器件编号:对于图纸库中原有的器件,通过比较库中器件基点与端口的位置,确定器件基点与各端口的相对位置关系,通过这种相对位置关系确定每个端口在图纸中的位置,并对各个端口进行编号,编号规则为输入端口的编号为0,以输入端口为参考,以顺时针方向对其它端口进行递增编号;4.2、对图纸数据库中后添加的器件编号:1)对于所有的连线,利用步骤3中连线和器件相连接的判断方法,通过与连线相连的器件,获取与该器件相连接的所有连线,并记录与该器件相连的端口点坐标;2)以最小外接矩形的中心点作为顺时针旋转的中心点O,以中心点O作一条平行于x轴的单位向量然后依次计算和的夹角,其中Ai表示第i个端口点,其中i≥1,角度范围为0°~360°,根据夹角的大小,将各端口点通过顺时针旋转方向进行排序;3)以中心点O到器件最小外接矩形的左下角的顶点A(xmin,ymin)为起始矢量顺时针旋转,将第一个旋转到的端口点编号为0,依次顺时针旋转对其他接口递增编号;4.3、存储器件信息:读取全部连线起点相连器件的唯一属性标识,并与连线连接的端口编号一起存储到所述容器中;读取全部连线终点相连器件的唯一属性标识,并与连线连接的端口编号一起存储到所述容器中。进一步地,步骤1中:在室内分布图纸中,连线的实际长度、衰耗信息以文本的形式存放在连线周围,从而作为连线的标注属性信息,计算所述操作区域中的文本位置pt到所述连线的垂直距离dt,若满足dt<ht/2,其中ht为文本的高度,则该文本中的内容是连线的标注属性信息,从其中可获取所述连线的实际长度L。本发明的有益效果是:本发明与现有技术在AutoCAD平台下室内分布图纸中器件连接关系的提取方面具有以下积极效果:能够之间将连线的起点位置、连线的实际长度、连线两端相连器件的唯一属性标识及编号等信息提取出来,并将所提取的数据存储到自定义的容器对象中,也可将容器对象中的数据以Excel表格或其他形式提取出来,极大的提高了工作效率。附图说明图1本发明公开的一种基于AutoCAD平台提取室内分布图纸中器件连接关系的流程图;图2本发明实施例中的二功分器的最小外接矩形;图3本发明实施例中的二功分器的端口编号;图4本发明实施例中的库中后添加器件的端口编号;具体实施方式以下将参照图1-4对本发明的具体实施方式进行说明。如图1所示,本发明实施例提供了一种基于AutoCAD平台提取室内分布图纸中器件连接关系的方法,其包括以下步骤:步骤1、读取并存储连线信息:在AutoCAD平台上打开室内分布图纸,选定操作区域,从操作区域中获取全部连线的起点位置ps、终点位置pe和实际长度L,创建用于存放器件连接关系的容器对象,并将连线起点位置ps的x轴坐标psx和y轴坐标psy及实际长度L存储到所述容器中;步骤2、计算并获取器件的最值点:从所述操作区域内过滤出所有器件,根据单个器件的形状计算出器件的最小外接矩形,并记录最小外接矩形的一对对角顶点,即获得最小外接矩形在x轴上的最小值xmin,最大值xmax、y轴上的最小值ymin,最大值ymax,重复这一步骤,获取所有器件的最值点;步骤3、计算并获取连线两端相连的器件:3.1、获取与连线起点相连的器件:对于单个器件,所述连线起点位置ps的x轴坐标为psx,y轴坐标为psy;1)若连线起点位置ps既不满足xmin≤psx≤xmax也不满足ymin≤psy≤ymax,则确定该器件与所述连线起点不相连;2)若连线起点位置ps满足xmin≤psx≤xmax但不满足ymin≤psy≤ymax,则所述连线起点与器件最小外接矩形的最短距离为:dmin=(|ymin-psy|,|ymax-psy|)min3)若连线起点位置ps不满足xmin≤psx≤xmax但满足ymin≤psy≤ymax,则所述连线起点与器件最小外接矩形的最短距离为:dmin=(|xmin-psx|,|xmax-psx|)min4)若连线起点位置ps即满足xmin≤psx≤xmax也满足ymin≤psy≤ymax,则所述连线起点与器件最小外接矩形的最短距离为:dmin=(dxmin,dymin)min其中dxmin=(|xmin-psx|,|xmax-psx|)min,dymin=(|ymin-psy|,|ymax-psy|)min5)若满足dmin<<(xmax-xmin,ymax-ymin)min,则确定该器件就是与所述连接起点相连的器件,否则说明该器件与所述连线起点不相连;重复步骤3.1,直到获取与连线起点相连的器件;3.2、获取与连线终点相连的器件:对于单个器件,所述连线终点位置pe的x轴坐标pex,y轴坐标为pey;1)若连线终点位置pe既不满足xmin≤pex≤xmax也不满足ymin≤pey≤ymax,则确定该器件与所述连线终点不相连;2)若连线终点位置pe满足xmin≤pex≤xmax但不满足ymin≤pey≤ymax,则所述连线终点与器件最小外接矩形的最短距离为:dmin=(|ymin-pey|,|ymax-pey|)min3)若连线终点位置pe不满足xmin≤pex≤xmax但满足ymin≤pey≤ymax,则所述连线终点与器件最小外接矩形的最短距离为:dmin=(|xmin-pex|,|xmax-pex|)min4)若连线终点位置pe即满足xmin≤pex≤xmax也满足ymin≤pey≤ymax,则所述连线终点与器件最小外接矩形的最短距离为:dmin=(dxmin,dymin)min其中dxmin=(|xmin-pex|,|xmax-pex|)min,dymin=(|ymin-pey|,|ymax-pey|)min5)若满足dmin<<(xmax-xmin,ymax-ymin)min,则确定该器件就是与所述连接终点相连的器件,否则说明该器件与所述连线终点不相连;重复步骤3.2,直到获取与连线终点相连的器件;步骤4、自定义器件端口编号并存储器件信息:通过与连线相连接的器件与原图纸库中的器件作对比,判定该器件是否为图纸库中原有的器件,若是则按照步骤4(a)对器件端口进行编号,若否则按照步骤4(b)对器件端口进行编号;4.1、对图纸数据库中原有的器件编号:对于图纸库中原有的器件,通过比较库中器件基点与端口的位置,确定器件基点与各端口的相对位置关系,通过这种相对位置关系确定每个端口在图纸中的位置,并对各个端口进行编号,编号规则为输入端口的编号为0,以输入端口为参考,以顺时针方向对其它端口进行递增编号;4.2、对图纸数据库中后添加的器件编号:1)对于所有的连线,利用步骤3中连线和器件相连接的判断方法,通过与连线相连的器件,获取与该器件相连接的所有连线,并记录与该器件相连的端口点坐标;2)以最小外接矩形的中心点作为顺时针旋转的中心点O,以中心点O作一条平行于x轴的单位向量然后依次计算和的夹角,其中Ai表示第i个端口点,其中i≥1,角度范围为0°~360°,根据夹角的大小,将各端口点通过顺时针旋转方向进行排序;3)以中心点O到器件最小外接矩形的左下角的顶点A(xmin,ymin)为起始矢量顺时针旋转,将第一个旋转到的端口点编号为0,依次顺时针旋转对其他接口递增编号;4.3、存储器件信息:读取全部连线起点相连器件的唯一属性标识,并与连线连接的端口编号一起存储到所述容器中;读取全部连线终点相连器件的唯一属性标识,并与连线连接的端口编号一起存储到所述容器中;下面根据本发明所述方法编制的软件实现在选定AutoCAD图纸操作区域内提取室内分布图纸中器件连接关系到Excel表格的方法进行详细说明,该方法具体包括以下步骤:1、读取并存储连线信息:在AutoCAD软件中加载编写生成的“.arx”应用程序文件,在AutoCAD命令行输入操作命令,根据AutoCAD命令行“选择对象”的提示,选定室内分布图纸操作区域,从操作区域中获取全部连线的起点位置ps、终点位置pe和实际长度L,编写所述vector容器的结构体,创建用于存放器件连接关系的vector容器对象,并将连线起点位置ps的x轴坐标psx和y轴坐标psy及实际长度L存储到所述vector容器中;2、计算并获取器件的最值点:自定义编写图块缓冲区链表(structresbuf*pcb),以编写的链表pcb为过滤器,从所述区域内过滤出所有的器件,根据单个器件的形状计算出器件的最小外接矩形,并记录最小外接矩形的一对对角顶点,即获得最小外接矩形在x轴上的最小值xmin,最大值xmax、y轴上的最小值ymin,最大值ymax,重复这一步骤,获取所有器件的最值点。在本实例中以属性为PS8-B2F的二功分器为例,其最小外接矩形在x轴上的最小值xmin=337.8509,最大值xmax=339.4613、y轴上的最小值ymin=13.3700,最大值ymax=17.2957,其最小外接矩形图如图2所示;3、计算并获取连线两端相连的器件:3.1、获取与连线起点相连的器件:对于本例中属性为PS8-B2F的二功分器,所述连线起点位置ps的x轴坐标为psx,y轴坐标为psy;1)若连线起点位置ps既不满足337.8509≤psx≤339.4613也不满足13.3700≤psy≤17.2957,则确定该二功分器与所述连线起点不相连;2)若连线起点位置ps满足337.8509≤psx≤339.4613但不满足13.3700≤psy≤17.2957,则所述连线起点与该二功分器最小外接矩形的最短距离为:dmin=(|13.3700-psy|,|17.2957-psy|)min3)若连线起点位置ps不满足337.8509≤psx≤339.4613但满足13.3700≤psy≤17.2957,则所述连线起点与该二功分器最小外接矩形的最短距离为:dmin=(|337.8509-psx|,|339.4613-psx|)min4)若连线起点位置ps即满足337.8509≤psx≤339.4613也满足13.3700≤psy≤17.2957,则所述连线起点与该二功分器最小外接矩形的最短距离为:dmin=(dxmin,dymin)min其中dxmin=(|337.8509-psx|,|339.4613-psx|)min,dymin=(|13.3700-psy|,|17.2957-psy|)min5)若满足dmin<<((339.4613-337.8509,17.2957-13.3700)min=1.6104),则确定该二功分器就是与所述连接起点相连的器件,否则说明该二功分器与所述连线起点不相连;重复步骤3.1,直到获取与连线起点相连的器件;3.2、获取与连线终点相连的器件:对于本例中属性为PS8-B2F的二功分器,所述连线终点位置pe的x轴坐标pex,y轴坐标为pey;1)若连线终点位置pe既不满足337.8509≤pex≤339.4613也不满足ymin≤pey≤ymax,则确定该二功分器与所述连线终点不相连;2)若连线终点位置pe满足337.8509≤pex≤339.4613但不满足13.3700≤pey≤17.2957,则所述连线终点与该二功分器最小外接矩形的最短距离为:dmin=(|13.3700-pey|,|17.2957-pey|)min3)若连线终点位置pe不满足337.8509≤pex≤339.4613但满足13.3700≤pey≤17.2957,则所述连线终点与该二功分器最小外接矩形的最短距离为:dmin=(|337.8509-pex|,|339.4613-pex|)min4)若连线终点位置pe即满足337.8509≤pex≤339.4613也满足13.3700≤pey≤17.2957,则所述连线终点与该二功分器最小外接矩形的最短距离为:dmin=(dxmin,dymin)min其中dxmin=(|337.8509-pex|,|339.4613-pex|)min,dymin=(|13.3700-pey|,|17.2957-pey|)min5)若满足dmin<<((339.4613-337.8509,17.2957-13.3700)min=1.6104),则确定该二功分器就是与所述连接终点相连的器件,否则说明该二功分器与所述连线终点不相连;重复步骤3.2,直到获取与连线终点相连的器件;4、自定义器件端口编号并存储器件信息:通过与连线相连接的器件与原图纸库中的器件作对比,判定该器件是否为图纸库中原有的器件,若是则按照步骤4(a)对器件端口进行编号,若否则按照步骤4(b)对器件端口进行编号;4.1、对图纸数据库中原有的器件编号:对于图纸库中原有的器件,以二功分器为例,通过比较库中二功分器的基点与各端口的位置,确定二功分器的基点与各端口的相对位置关系,通过这种相对位置关系确定每个端口在图纸中的位置,并对各个端口进行编号,编号规则为输入端口的编号为0,以输入端口为参考,以顺时针方向对其它端口进行递增编号;二功分器的接口编号如图3所示;4.2、对图纸数据库中后添加的器件编号:1)对于所有的连线,利用步骤3中连线和器件相连接的判断方法,通过与连线相连的器件,获取与该器件相连接的所有连线,并记录与该器件相连的端口点坐标;以二功分器为例,假设二功分器为库中后添加的器件,各端口的坐标为a(337.8509,15.3329),b(339.4613,16.6897),c(339.4613,13.9760);2)以该二功分器最小外接矩形的中心点作为顺时针旋转的中心点O,以中心点O作一条平行于x轴的单位向量然后依次计算和的夹角,角度范围为0°~360°,根据夹角的大小,将各端口点通过顺时针旋转方向进行排序;3)以中心点O到该二功分器最小外接矩形的左下角的顶点A(337.8509,13.3700)为起始矢量顺时针旋转,将第一个旋转到的端口点编号为0,依次顺时针旋转对其他接口递增编号;该二功分器的接口编号如图4所示;4.3、存储器件信息:读取全部连线起点相连器件的唯一属性标识,并与连线连接的端口编号一起存储到所述vector容器中;读取全部连线终点相连器件的唯一属性标识,并与连线连接的端口编号一起存储到所述vector容器中;上述操作完成后,系统会自动弹出表格保存对话框,从该对话框中输入表格名称并自定义表格存储位置,点击“保存”后,此时初始化器件连接关系的Excel表格已经建立,此时遍历所述vector容器中的数据,将数据提取到所述器件连接关系的Excel表格中;操作完成后,系统提示“操作成功”,完成器件关系的提取,所述器件连接关系的Excel表格如表1所示。StartXYEndCablePS7-B2F-2339.737104.2301T3-B2F/6dB-0C-4mT2-B2F/6dB-2313.569104.0079PS7-B2F-0C-11mPS8-B2F-2339.461313.976T15-B2F/6dB-0C-4mPS5-B2F-2397.548232.0079ANT21-B2F-0C-18mPS5-B2F-1397.548234.7216ANT20-B2F-0C-3mPS6-B2F-2397.548214.0079ANT24-B2F-0C-18mPS6-B2F-1397.548216.7216ANT23-B2F-0C-2mT5-B2F/6dB-2370.56933.3647PS5-B2F-0C-10mT5-B2F/6dB-1368.24334.7498ANT19-B2F-0C-10mT15-B2F/6dB-2370.56915.3647PS6-B2F-0C-14mT15-B2F/6dB-1368.24316.7498ANT22-B2F-0C-2mPS4-B2F-2397.548250.0079ANT18-B2F-0C-6mPS4-B2F-1397.548252.7216ANT17-B2F-0C-19mPS8-B2F-1339.461316.6897T5-B2F/6dB-0C-12mT14-B2F/6dB-2313.56915.3647PS8-B2F-0C-6mT14-B2F/6dB-1311.24316.7498PS4-B2F-0C-24mPS3-B2F-2397.548268.0079ANT15-B2F-0C-3mPS3-B2F-1397.548270.7216ANT14-B2F-0C-19mT13-B2F/15dB-2285.06915.3647T14-B2F/6dB-0C-5mT13-B2F/15dB-1282.74316.7498ANT16-B2F-0C-2mT12-B2F/10dB-2256.56915.3647T13-B2F/15dB-0C-9mT12-B2F/10dB-1254.24316.7498PS3-B2F-0C-23mPS2-B2F-2397.5482122.0079ANT6-B2F-0C-2mPS2-B2F-1397.5482124.7216ANT5-B2F-0C-18mT4-B2F/6dB-2399.069104.0079ANT9-B2F-0C-24mT4-B2F/6dB-1396.743105.393ANT8-B2F-0C-2mT11-B2F/20dB-2228.06915.3647T12-B2F/10dB-0C-14mT11-B2F/20dB-1225.74316.7498ANT13-B2F-0C-3mT1-B2F/6dB-2370.569123.3647PS2-B2F-0C-14mT1-B2F/6dB-1368.243124.7498ANT4-B2F-0C-3mT3-B2F/6dB-2370.569104.0079T4-B2F/6dB-0C-14mT3-B2F/6dB-1368.243105.393ANT7-B2F-0C-3mT10-B2F/20dB-2199.56915.3647T11-B2F/20dB-0C-13mT10-B2F/20dB-1197.24316.7498ANT12-B2F-0C-7mPS1-B2F-2397.5482140.0079ANT3-B2F-0C-19mPS1-B2F-1397.5482142.7216ANT2-B2F-0C-5mPS7-B2F-1339.737106.9438T1-B2F/6dB-0C-14mT9-B2F/20dB-2171.06915.3647T10-B2F/20dB-0C-12mT9-B2F/20dB-1168.74316.7498ANT11-B2F-0C-6mT2-B2F/6dB-1311.243105.393PS1-B2F-0C-12mT8-B2F/20dB-2142.56915.3647T9-B2F/20dB-0C-11mT8-B2F/20dB-1140.24316.7498ANT10-B2F-0C-5mT7-B2F/10dB-2114.06915.3647T8-B2F/20dB-0C-3mT7-B2F/10dB-1111.74316.7498T2-B2F/6dB-0C-5mT6-B2F/20dB-285.56915.3647T7-B2F/10dB-0C-5mT6-B2F/20dB-183.24316.7498ANT1-B2F-0C-10m13-064.246815.3045T6-B2F/20dB-0C-3m当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1