专利名称:基于复杂网络边介数的模块划分方法
技术领域:
本发明涉及机械产品设计领域,具体涉及ー种基于复杂网络边介数的模块划分方法。
背景技术:
面向大批量定制和大批量定制的设计技术是建立在模块化基础上的。产品的模块化设计是在对一定范围内的不同功能或相同功能不同性能、不同规格的产品进行功能分析的基础上,划分并设计出一系列功能模块。通过模块的选择和组合可以构成不同的产品,通过对不同模块的组合实现了以有限资源生产出尽可能多的产品品种。产品模块化是企业产品资源重用的基础,也是实现产品配置设计和变型设计的关键。产品模块化综合考虑了产品对象,把产品按照功能分解成不同用途和性能的模块,并使模块的接ロ(结合要素、形状和尺寸等)标准化,选择不同的模块可以迅速组成满足各种要求的产品。模块化设计是大批量定制的一个关键使能技木。许多专家和学者对模块化设计进行了大量的研究,并取得了一定的成果,但是模块化设计的ー些关键技术如模块划分等仍然没有得到完善解決。近年来,随着复杂网络理论研究的发展,其应用领域也越来越广。但主要集中在交通网、互联网、电カ网等领域,在机械领域里的应用极少。
发明内容
本发明所要解决的技术问题是提供一种基于复杂网络边介数的模块划分方法,该模块划分方法对技术人员的设计经验依赖较低,且具有一定的通用性,并可以在一定程度上实现智能化,可以在较短的时间内实现对机械产品的模块划分。为解决上述问题,本发明是通过以下方案实现的一种基于复杂网络边介数的模块划分方法,包括如下步骤(I)给出给定机械产品内部所有零部件相互之间的装配约束关系式;(2)根据给定机械产品的零部件数及上述零部件间的装配约束关系建立装配关系网络;(3)计算给定机械产品零部件的装配关系网络中各条边的边介数;(4)去掉网络中边介数最大的边,将网络分成若干子网络;(5)对各个子网络重复计算边介数和去掉网络中边介数最大的边的过程,直到分解的所有子网络符合设定的模块划分粒度为止,此时所得子网络即为划分出的功能模块;(6)根据划分出的功能模块建立功能模块库,该功能模块库记录有各个功能模块所包含的零部件。当步骤(3)对无权无向无环网络进行边介数搜索时,其过程如下采用循环与邻接表的数据结构将网络的所有结点及其对应的邻接点按顺序依次存入邻接表,然后从网络中任选一条边依次捜索所有包含该边的任意两点间的最短路径,并记录该边的边介数,如此循环,直到网络中所有边的边介数都求出来为止。
本发明将复杂网络的有关理论应用到模块划分中,则可以很好地分析机械产品中零部件装配关系。如果用结点来表示机械产品中的零件或部件,以边来表示零件或部件之间的装配关系,因为零部件间的联接关系是相互的,且只考虑它们的联接关系,不考虑装配关系重要程度,这样就可以组成ー个无权无向无环网络。计算出各边的边介数,则可以形象清晰地看到各联接关系的紧密和重要程度,边介数越大,说明它的联接重要度越大,逐步去掉边介数大的边,就可以将整个机械网络分成一个ー个的小集团(即模块)。改变去掉边介数的程度,即可得到不同粒度的模块形式。这样就可以得到多种模块划分方案以供分析选择。与现有技术相比,本发明能够在对企业某型成熟系列化机床销售数据和订单进行数据分析后,对未来产品的发展和客户的个性化需求进行了定位和预测。在此基础上,成功地实现了 1、按照功能、结构特点及加工装配等条件,进行了模块划分;2、通过自定义算法,合理地对模块间的接ロ进行了标准化;3、实现了模块的捜索以及变型设计技术下定制模块的快速生成;4、实现了模块在软件环境下的自动组合。通过模块化设计使得机床设计周期从3个月缩短到几个小时即可完成。
图1为ー种无权无向无环网络;图2为边介数搜索流程图;图3为基于复杂网络边介数集聚特性的模块划分框图;图4为移除边11-24后所得的两个子网络W11、W24 ;图5为移除边9-17后所得的两个子网络W9、W17 ;图6为由图1所示网络划分的五个子模块(a、b、c、d、e)。
具体实施例方式下面对本发明一种基于复杂网络边介数的模块划分方法进行详细说明參数化建模技术是当今CAD技术中非常重要的建模技术之一,是产品建模中ー个很重要的手段,被普遍应用在系列化产品的设计之中。參数化模型是通过约束表达产品模型的形状特征,定义一组參数来控制产品的设计结果,因此可以通过修改设计參数来更改产品模型或创建相似产品模型。參数化设计的基本思想是在基于约束的产品描述方法上,以ー组參数来控制产品几何模型所对应的一组结构尺寸,且參数和尺寸之间是显式对应的关系,因而可以通过修改尺寸參数来驱动几何模型。參数化设计方法与传统设计方法的主要区别是前者采用的基于约束的产品描述方法将产品的整个设计过程进行了存储,所以可以设计出一族相似的产品;而后者设计出的是单ー的产品。经过十几年的发展,如今零件级的參数化设计技术已经相对成熟,ー些常用的三维设计软件(如SolidWorkS、CATIA、UG、PRO/E等)都提供了易学易用的零件级參数化设计功能。但到目前为止,部件级和产品级的參数化建模技术还不够成熟,主要是先对零件级实施參数化技木,建立零件级的參数化模型,再通过对零件级參数化模型添加装配约束来构建部件级与产品级的參数化模型。各种产品都是由不同部件或零件组成的,而部件又是由子部件或零件组成的,因此,按此规律逐层分解,最終可以将整个产品分解成最小的组成单元,即零件。如果先采用參数化技术建立零件级的參数化模型,再通过同一部件中各零件之间装配约束关系(尺寸约束关系)进行装配,就可以建立由零件级的參数化模型以及装配约束关系(主要为尺寸约束关系)所组成的部件级參数化模型,以此类推,一直可以类推到产品,即产品的參数化模型可以通过零件级的參数化模型和各零件之间的装配约束关系而得到。本发明选用现今比较流行的SolidWorks三维造型软件作为參数化设计工具。Solidfforks三维造型软件是美国SolidWorks公司在继承和总结大量机械CAD软件设计经验的基础上,于1995年11月首家推出的基于Windows环境下开发的三维CAD软件,因为其技术创新符合CAD技术发展的潮流与趋势,自从诞生以来,便受到广大用户的青睐,尤其是中小型企业。目前,SolidWorks三维软件在机械行业被普遍采用,是市场份额增长较快、市场前景较好、技术发展较快、性价比较优的软件之一。SolidWorks软件拥有十分強大的功能,涵盖了零件造型、钣金设计、曲面建模、从装配图的设计到工程图的绘制、从有限元分析到动态仿真等领域。它可以通过草图绘制、拉イ申、旋转、抽壳、阵列等操作来实现零件建摸;可以通过扫描、放样、填充等功能来实现复杂曲面绘制;可以通过智能化装配技术完成零部件装配,而且可以动态的查看装配体的仿真 运动,并对运动的零部件进行动态的干涉检查和间隙检查;可以完成三维图到工程图的自动转化,包括尺寸及公差等信息的标注;可以通过SolidWorks提供的COSMOSXPress插件模块,直接对零件进行有限元分析等功能。(I)装配约束关系的提取当前主流的三维软件,如SolidWorks、CATIA、UG、PR0/E等,都提供了二次开发接ロ(API),使用户能在软件本身功能的基础上开发新的功能模块,满足特定的需求。因此,可以通过二次开发技木,对相关的三维软件进行二次开发,开发装配约束关系提取模块,利用该模块可以提取相应三维软件中打开的产品三维模型的装配约束关系。本发明利用VisualC++6. 0平台对SolidWorks2008进行二次开发,开发出能与SolidWorks2008集成的装配约束关系提取模块。利用该模块可以很方便地提取出SolidWorks2008环境下打开的产品參数化模型中零部件之间的装配约束关系。(1.1) Solidfforks 二次开发方法简介SolidWorks软件在提供強大的设计、分析等功能的同吋,为了满足用户进行二次开发的个性化需求,提供了大量的API (应用程序接ロ )函数,这些API函数是SolidWorks的 0LE(0bject Linking and Embedding,对象的嵌入与链接)或 COM (Component ObjectModel,组件对象模型)接ロ。任何支持OLE和COM的编程语言都可以作为SolidWorks的开发工具。SolidWorks 二次开发技术分为基于OLE自动化技术和基于COM技术两种。其中COM技术可以使用的SolidWorks API更多,并且可控制SolidWorks的运行方式,生成*. exe和*. dll格式的文件。通过基于COM技术对SolidWorks进行二次开发,不仅生成的*. exe文件和*. dll文件都可以作为COM的组件,而且可以利用Visual C++编写基于COM技术的DLL程序,实现对SolidWorks底层的ー些开发,且这类代码的执行效率很高,可以直接在SolidWorks界面中添加新菜单和新工具条等,当运行程序注册成功后即可以生成为SolidWorks的插件,从而实现与SolidWorks的无缝集成,是目前二次开发方法中应用最多的ー种。本发明所开发的产品装配关系提取模块就是采用COM开发技木,以VisuaLC++6. 0作为开发平台,利用C++语言,通过 SolidWorks2008API 对 SolidWorks2008 进行二次开发而成。(1. 2) SolidWorks 二次开发方法的关键技术(1. 2. DSolidfforks API 程序结构一个完整的SolidWorks应用程序体系结构由Visual C++6. 0应用程序设计向导自动创建的程序框架、添加的SolidWorks Addin对象、新的.cpp源文件和需要的程序代码等部分組成。从整个程序结构的体系上看,程序设计者主要做以下两个工作一是实现Visual C++6. 0开发平台在SolidWorks运行环境中设计的接ロ程序和终止程序;ニ是根据实际功能要求编写SolidWorks 二次开发应用程序主体部分。前者是完成Visual C++6. 0与SolidWorks的无缝对接,后者是完成应用程序要求的ー个或多个.cpp源文件。ConnectToSff ()是对象初始化函数,是连接到SolidWorks的入ロ函数,相当于C程序中的MainO函数,当SolidWorks中加载插件时优先被调用,其格式为
权利要求
1.基于复杂网络边介数的模块划分方法,其特征是包括如下步骤 (1)给出给定机械产品内部所有零部件相互之间的装配约束关系式; (2)根据给定机械产品的零部件数及上述零部件间的装配约束关系建立装配关系网络; (3)计算给定机械产品零部件的装配关系网络中各条边的边介数; (4)去掉网络中边介数最大的边,将网络分成若干子网络; (5)对各个子网络重复计算边介数和去掉网络中边介数最大的边的过程,直到分解的所有子网络符合设定的模块划分粒度为止,此时所得子网络即为划分出的功能模块; (6)根据划分出的功能模块建立功能模块库,该功能模块库记录有各个功能模块所包含的零部件。
2.根据权利要求1所述基于复杂网络边介数的模块划分方法,其特征是当步骤(3)对无权无向无环网络进行边介数搜索时,其过程是采用循环与邻接表的数据结构将网络的所有结点及其对应的邻接点按顺序依次存入邻接表,然后从网络中任选一条边依次搜索所有包含该边的任意两点间的最短路径,并记录该边的边介数,如此循环,直到网络中所有边的边介数都求出来为止。
全文摘要
本发明公开一种基于复杂网络边介数的模块划分方法,其首先根据给定机械产品内部所有零部件相互之间的装配约束关系式建立装配关系网络;然后计算给定机械产品零部件的装配关系网络中各条边的边介数,并去掉网络中边介数最大的边,将网络分成若干子网络;最后对各个子网络重复计算边介数和去掉网络中边介数最大的边的过程,直到分解的所有子网络符合设定的模块划分粒度为止,此时所得子网络即为划分出的功能模块;并据此建立功能模块库。该模块划分方法对工程技术人员的经验要求较低,且具有一定的通用性,并可以在一定程度上实现智能化,可以在较短的时间内实现对机械产品的模块划分。
文档编号G06F17/50GK103020400SQ201310001959
公开日2013年4月3日 申请日期2013年1月5日 优先权日2013年1月5日
发明者杨运泽, 刘夫云, 邓艳容, 匡兵, 李雪梅, 孙永厚, 许坤, 赵海新, 鲍家定, 景晖 申请人:桂林电子科技大学