1、基于Solidworks的产品BOM生成系统开发毕业设计论文 南 阳 理 工 学 院 本科生毕业设计(论文) 学院(系): 机电工程系 专 业: 机械设计制造及其自动化 南阳理工学院本科生毕业设计(论文)基于Solidworks 的产品BOM生成系统开发Development of Products BOM Generating SystemBased on Solidworks总 计: 31页表 格: 2个插 图: 32 幅南 阳 理 工 学 院 本 科 毕 业 设 计(论文)基于Solidworks的产品BOM生成系统开发Development of Products BOM Genera
2、ting SystemBased on Solidworks学 院(系): 机电工程系 专 业: 机械设计及其自动化 学 生 姓 名: xxxxxx 学 号: 94107024 指 导 教 师(职称): 陈永辉 (讲师) 评 阅 教 师: 王志奎 (教授) 完 成 日 期: 2011年5月 南阳理工学院 Nanyang Institute of Technology 基于Solidworks的产品BOM生成系统开发 机械设计制造及其自动化专业 马倩【摘 要】产品物料明细(BOM)整理和生成是产品研发的重要环节之一,是企业物料采购、生产计划和成本核算的基础。目前,多数企业对图纸BOM的生成仍处于
3、手工操作模式,效率底,容易遗漏出错。而对于复杂产品BOM的生成通常需要设计人员花费大量的时间和精力才能完成,严重影响了新产品研发的效率。本课题以VB为开发平台语言,以Access为数据库存储平台,结合ADO数据库接口技术和VBA技术。针对Solidworks三维设计软件的二次开发技术进行研究,通过配置符合企业标准的工程图图框、标题栏和明细栏格式,通过调用Solidworks支持的API函数,实现对SolidWorks工程图纸信息的快速准确提取,能够自动构建产品装配结构及其明细。同时也能为企业后期的PDM和ERP系统集成提供数据接口。软件实现的功能符合设计任务书预期要求,运行结果达到预期目的。【
4、关键词】Solidworks;数据库;产品明细;应用程序接口Development of Products BOM Generating System Based on SolidworksMechanical Design,Manufacturing and Automation Major Ma QianAbstract: Collecting and generating BOM of product is an important part in product development. At the same time, it is the base of materials pur
5、chasing, product planning and cost accounting. At present, the generation of drawings BOM is still by hand in most enterprises, which not only has low efficiency, but also is easy to make errors. For the generation of complex product BOM, designers often need to spend a lot of time and effort to fin
6、ish it, which has seriously affected the efficiency of new product development . This paper adapts VB as the development platform language, uses Access as the database storage platform, combines ADO database interface technology and VBA technology. By means of studying the secondary development tech
7、nology of Solidworks , setting the template of Solidworks drawings frame, title panel and BOM, and calling the API functions supported by Solidworks, this software can achieve extraction of SolidWorks drawing information fastly and accurate and also be able to automatically build the product assembl
8、y BOM. Instead, It can provide basic data for the integration of PDM and ERP in future .The function achieved the system can meet excepted requirement of design assignment and its running results realize intended purpose. Key words: Solidworks ; database ; BOM ; API 1 研究背景和意义 Solidworks是一套基于Windows的
9、CAD/CAE/CAM/PD桌面集成系统,是由美国Solidworks公司在总结和继承了大型机械CAD软件的基础上,在Windows环境下实现的第一个机械三维CAD软件,于1995年11月研制成功。它集成了设计、分析、加工和数据管理的整个过程,所获得的分析和加工模拟成果成为产品模型的属性,在Solidworks的特征管理器中清晰地列出了详细的数据信息。它还可以动态模拟装配过程,进行静态干涉检查、计算质量特征,如质心、惯性矩等。它将2D绘图与3D造型技术融为一体,能自动地生成零部件尺寸、材料明细表(BOM)、具有指引线的零部件编号等技术资料,从而简化了工程图样的生成过程。同时有中英文两种界面可供
10、选择,其先进的特征树结构使操作更加简便和直观。具有较好的开发性接口和功能扩广性。能轻松实现各种CAD软件之间的数据转换传送。Solidworks是一种非常优秀的三维机械软件,其易学易用、全中文界面等特点使广大工程技术人员爱不释手。目前Solidworks是市场分额增长最快、技术发展最快、市场前景最好、性能价格比最优的软件。在全球的销量已经达20万套,排名处于3D CAD软件销售榜首,遥遥领先于其他同类产品。但是Solidworks也并不是十全十美的,不可能完全满足特定企业的特殊要求。例如,由于该软件是外国人写的,不适合中国的国际(如标题栏、明细表、放大图的标注、剖视图的标注、装配图的序号、标题
11、栏等),也没有适合我国国际的标准件库。因此,为了合适特定企业的特殊需求,形成企业自己的特色,使Solidworks在我国的企业中有效地发挥作用,并使常用的或重复的任务自动化,提高效率,就必须对其进行本体化和专业化的二次开发工作。为了方便用户进行二次开发,Solidworks提供了几百个API(Application Program Interfce,应用程序接口)函数,这些API函数是Solidworks的OLE(Object Linking and Embedding,对象的嵌入与链接)或COM(Component Object Model,组件对象模型)接口,用户可以使用VBVBAVCDe
12、lpin等高级语言对Solidworks进行二次开发,建立适合用户需要的,专用的Solidworks功能模块【1】。目前针对Solidworks软件,国内外企业面临着一个关键的问题,现在企业使用Solidworks 软件出完工程图后,编制系统明细表(手工编制)是一项很复杂而麻烦的工作。因此,研究如何将结构设计人员从该项任务中解脱出来是一项非常有价值的工作。另外,随着企业信息化工程的实施,如果能够将Solidworks所产生的相关信息自动提取出来,导入到企业信息化系统中,实现无缝集成,将为企业的采购、生产、计划等相关的子系统提供有价值的信息,为实现全部信息无纸化办公铺平道路。2 课题研究内容及要
13、求 采用Visual Basic对SolidWorks进行二次开发,实现了在SolidWorks工程图环境下明细栏的自动添加与调整,并能够将Solidworks所产生的相关信息自动提取出来,导入到企业信息化系统中。以陆德公司的产品级配斗为实例,对于在参数化驱动之后重新生成的装配模型及工程图中,实现了根据零部件名称及数量等参数自动生成相对应的明细栏,并进行了一系列的优化与调整,解决了添加明细栏时工作繁琐,速度慢,出错多及难以用程序控制的缺点。添加完明细栏后,生成国家标准工程图。接着读取工程图中的自定义属性信息,然后采用ADO技术将读取的信息保存到Access数据库中。具体提取方式主要采用了选择和
14、遍历技术,逐个遍历工程图中零件自定义属性并进行统计后导入到相应的数据表中。本课题在充分利用Solidworks的API函数基础上,以VB语言为开发平台,以Access为数据库,以excel报表模板,采用基于三层结构的C/S开发模式和ADO数据库访问技术开发出Solidworks明细表生成软件,实现了自动分析并提取由SolidWorks软件所设计的产品结构信息,自动构建正确的产品结构树,并能够导出为符合金蝶/K3 ERP导入格式要求的电子表格文件。软件实现功能:1. 自动读取SolidWorks设计信息并生成产品BOM;2. 自动分析SolidWorks零部件装配关系;3. 能够导出产品综合明细
15、和分类明细;4. 导出符合企业格式要求的Excel文件。3 课题研究关键技术3.1 Solidworks的API接口 编制明细表所需要的信息全部存储于Solidworks三维图及相关的工程图中,如果利用开发工具能够调用Solidworks的API函数,直接就能够获得Solidworks明细表全部原始信息。Solidworks本身也为用户进行二次开发提供全方位的接口函数。为了方便用户进行二次开发,Solidworks提供了几百个API(Application Program Interfce,应用程序接口)函数,这些API函数是Solidworks的OLE(Object Linking and
16、Embedding,对象的嵌入与链接)或COM(Component Object Model,组件对象模型)接口。接口是一个COM的术语,它包含了Solidworks中使用到的类。Solidworks是使用面向对象技术设计的,在Solidworks之下是表示软件各个方面的对象模型。为了将API暴露给使用其他编程语言的开发者,COM编程允许Solidworks将实际的Solidworks对象的函数功能暴露给外部世界。COM编程已经超出了本书的涵盖范围,但是读者应该理解API是由一组接口组成的,这些接口被组织为接口对象模型(interface object model)。一般来说将接口看作一个对象
17、(object),这些词语意思相同2。Solidworks支持OLE标准,完全实现了OLE自动化。作为一个OLE服务器,Solidworks提供了大量的OLE对象,以及这些对象所拥有的方法、属性和事件,用户通过在应用程序中对这些OLE对象及其方法和属性的操作,可以在自己开发的应用软件中实现诸如生成直线、构造实体、检查曲面表面参数等几乎所有的Solidworks软件的功能。Solidworks API对象模型如图3-1所示。 图3-1 Solidworks API对象模型使用Solidworks API进行开发时,每个对象中必须包含Solidworks 2009 Constant type li
18、brary。这个类型库包含了Solidworks API方法使用的所有常量定义。实际运行中,传递给方法的是常量定义而不是他们所代表的实际数值。这能保证程序在安装了新版本的Solidworks之后仍然能正常运行。实际使用的数值可能因为版本不同而不同,但是常量定义是相同的,不会改变,只会添加。使用VBA在Solidworks中录制宏时,会自动添加这个库。要验证这一点,编辑任何一个在Solidworks 2009 中录制的宏,并从菜单中选择【工具】/【引用】。弹出的【引用】对话框中显示了课题中已包含的类型库,如图3-2所示。 图3-2 Solidworks 2009 Constant Type Li
19、brary 用户可以使用VBVBAVCDelpin等高级语言对Solidworks进行二次开发,建立适合用户需要的,专用的Solidworks功能模块。3.2 课题采用Visual Basic为开发语言 任何支持OLE和COM的编程语言都可以作为Solidworks的开发工具。Solidworks二次开发有两种,一种是基于自动化技术的,另一种开发方式是基于COM的。COM技术可以使用更多的Solidworks API,并可控制Solidworks运行的方式,生成*.dll格式的文件,也就是Solidworks的插件3。现在开发工具比较多,比如VB、VC、C+、C#、Delphi等。最最简单的二
20、次开发工具是VBA,在涉及Excel时用VBA最为方便。VBA常用于录制宏,得到基本程序框架。易学易用的高级开发语言是VB,但功能有限。功能强大的语言是VC,但是入门难。Delphi集中了VB和VC两者的优点,学习过程中很容易上手,而且功能也非常强大,尤其在界面设计、数据库编程和网络编程方面更是独到之处。遗憾的是Solidworks常常不支持Delphi+OLE4。开发工具的选择主要考虑以下几个因素:(1) 对API函数接口的集成支持5。(2) 利用数据库存储因素。(3) 报表的实现。综合考虑以上因素,选择VB语言作为开发工具,它在以上因素上都占有优势,尤其是充分发挥它在开发数据库的专长和完全
21、控制Excel报表的灵活性上,是其他工具无法比拟的。Visual Basic 6.0是美国微软公司推出的Windows应用程序开发平台家族中的一员,它沿用了早期Basic语言的一些语法格式,是一个功能强大的应用程序开发工具6。Visual Basic 6.0是一种面向对象(Object Oriented Programming,OOP)的程序设计方法,它强调直接以问题域(即现实世界)中的事物为中心来考虑和认识问题,并按照这些事物的本质特征把它们抽象为对象,作为软件系统的基础。在OOP方法中,将对象作为系统中最基本的运行实体,对象中封装了描述该对象的特殊属性(数据)和行为方式(方法)。整个程序即
22、由各种不同类型的对象组成,各对象既是一个独立的实体,又可通过一定的方式相互作用7。Visual Basic6.0易学易用、功能强大的特点使其得到了广泛的应用。其强大的可视化用户界面设计,是程序员从复杂的界面设计中解脱出来,是编程成为一种享受。Visual Basic 6.0 不但可以开发小型单机数据库管理系统,而且也可以开发集多种应用程序于一体的网络数据库系统。因此使得它成为目前使用最广泛的编程语言之一。3.3 系统采用ADO数据库连接技术当计算机从早期的计算工具逐步变化成现在的信息处理和管理工具时,它就和数据库建立了密切的关系。在当今信息爆炸的时代,只有通过数据库并结合计算机的高速计算能力才
23、可能实现对大量信息的及时处理和分析。数据库技术作为当前一项衡量国家信息化程度的标准被大力推行,尤其在我国信息化刚刚起步的阶段,数据库更是被大力发展。目前在我国从事信息事业的人员中有70%的人员从事着与数据库相关的工作。由此可见数据库在我国的发展前景。数据库系统主要有三大部分组成:数据库管理系统(DBMS,专门负责组织和管理数据信息的程序)、数据库应用程序(它使我们能够获取、显示和更新由DBMS存储的数据)、数据库(按一定结构组织在一起的相关数据的集合)8。随着DBMS技术的发展,目前的数据库系统正向着客户机服务器模式发展。客户机服务器数据库将DBMS和数据库应用程序分开,从而提高了数据库系统的
24、处理能力。数据库应用程序运行在一个或多个用户工作站(客户机)上,并通过网络与运行在其它计算机上(服务器)的一个或多个DBMS进行通信。常见的访问数据库的方法有使用ADO、DAO、RDO控件等。目前,由于ADO具有灵活而又有效的访问数据库的方式,故成为比较常用的访问数据库的方法和手段9。ADO(Active Data Object,活动数据对象)是一种基于COM(组件对象模型)的自动化接口(Idispatch)技术,是一个与编程语言无关的COM组件系统。并以OLE DB(对象联接和镶入的数据库)为基础,经过OLE DB精心包装后的数据库访问技术,是数据访问对象DAO、远程数据对象RDO和开放数据
25、库互联ODBC三种方式的扩展,利用它可以快速地创建数据应用程序。ADO提供了一组非常简单并将一般通用的数据访问细节进行封装的对象,主要有三个对象成员:Connection、Command 和Recordset,以及几个集合对象:parameters、Fields和Errors等,ADO对象模型如图3-3所示10。 图3-3 ADO的对象模型3.4 产品BOM导出采用Excel格式明细表有相应的国家标准,其报表的选择非常重要,所得到的报表结果将直接关系到软件最后使用的成败,所以选择得到广泛使用的Excel作为信息输出的格式。采用Excel作为报表的输出工具,用户可以在已经定义好的模板基础上,使系
26、统能直接在相关的地方插入信息。这样的好处是:Excel是最常用的办公软件,一般是装机必备工具;用户可以自定义模板;可以充分利用Excel强大的表格处理功能;可以允许用户调整输出的报表信息;以后可随时调出所生成的报表直接使用。以陆德公司的产品级配斗为实例,通过使用Excel电子表格能够将Solidworks所产生的相关信息(各零部件之间相互关系及其代号(标准件号)、名称、数量、材料等属性信息)自动提取出来,导入到企业信息化系统中,实现无缝集成,将为企业的采购、生产、计划等相关的子系统提供有价值的信息,为实现全部信息无纸化办公铺平道路。同时为企业的工作人员带来了快捷、高效的解决方案,解决了添加明细
27、栏时工作繁琐,速度慢,出错多及难以用程序控制的缺点。为此,对于本课题,我们设计了一个电子表格,此表格清晰地反映了零件的相关属性,如序号、代号、名称、材料、数量、单重、总重等信息。电子表格界面如图3-4所示。 图3-4 电子表格界面 4 系统需求分析与总体设计4.1 需求分析需求分析是指通过详细调查现实世界要处理的对象,明确用户的各种需求,达到确定新系统的功能的目的。需求分析是数据库结构设计的第一阶段,也是非常重要的一个阶段。在这个阶段主要是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。信息要求是指用户需要从数据库中获得信息的内容与性质。由用户的信息要求可以导出数据要
28、求,即在数据库中需要存储哪些数据。处理要求是指用户要求完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理,得到系统所要处理数据的流程图。系统的功能必须能够满足用户的信息要求、处理要求、安全性与完整性要求。需求分析首先调查清楚用户的实际需求并进行初步分析,与用户达成共识后,再进一步分析与表达这些需求。需求分析可分为问题分析、需求描述及需求评审三个阶段。问题分析阶段,分析人员通过对问题及环境的理解、分析和综合,清除用户需求的模糊性、歧义性和不一致性。需求描述阶段的任务是生成需求规格说明书和初步的用户手册。需求评审阶段的任务是工作人员在用户和软件设计人员的配合下对生成的需求规
29、格说明和用户手册进行复核,以确保软件需求的全面性、精确性和一致性。对企业来说,构建产品结构树(明细)、进行图纸审核和生成产品综合明细及分类明细是产品研发的最后一环,也是多数企业信息化最薄弱的环节(均以手工完成),速度慢,效率低,容易出错,极大的影响了新产品研发的效率。本课题实现了自动分析并提取由SolidWorks软件所设计的产品结构信息,自动构建正确的产品结构树,并能够导出为符合金蝶/K3 ERP导入格式要求的电子表格文件。4.2 总体设计 利用 SolidWorks 出工程图,由于软件本身没有自带符合国标的工程图模板,给我们出工程图带来了不少的麻烦。而且装配图上的明细栏的信息必须手动才可以
30、输入到工程图中,这样给企业带来很多的麻烦。我们采用VB程序编程自动生成符合我国标准的工程图。从图4-1中可以看出,生成国际标准工程图和提取零件工程图自定义属性是整个设计过程的重要组成部分。在提取BOM之前,需要把装配图中的相关信息转换到工程图中,形成国家标准的工程图。在工程图中生成明细栏时,每个零件的相关属性都是要能与材料明细栏所对应的列进行自动链接的,目的是能够通过链接自动在明细栏对应位置写入相关属性。为此,必须在零部件建模时设置其相关属性,其中与明细栏相关的属性包括重量、材料、序号、代号、名称、数量、比例等。在读取零部件的自定义属性时,具体读取方式主要采用了选择和遍历技术,逐个遍历装配体模
31、型中零件树的种类与个数并进行统计后写人文件。需要注意的是,装配完成之后应该把装配模型中零件树的顺序按照明细栏的最后要求进行重新排列,目的是能够保证写入文件时记录的数据是按照明细栏的顺序排列的,减少排列出错的可能性。在生成国际标准工程图的过程中,采用先根据企业的需求建立明细栏模板,再通过程序进行添加的方法来实现工程图中明细栏的添加。由于它是在新的装配体零部件更名完成后进行这一系列的操作,因此就不会出现明细栏无法识别的情况;同时在模型参数化驱动完成后,通过相关程序统计部件中的零件数目,并存储在专门的文件或程序控件中,这样在通过程序初步添加明细栏以后写人相应零部件的数量、名称、材料、质量等属性,最后
32、就可以在最终工程图中完成符合企业要求的明细栏的添加过程。 图4-1 设计系统流程图4.3 结构设计使用Windows操作系统、开发维护系统即Visual Basic软件系统、一套数据库系统Access 2003即可。它们之间的关系如图所示。 图4-2 简单的应用系统4.4 功能模块设计 根据以上对陆德公司的企业现状和基于Solidworks的产品BOM生成系统的需求分析及目标设计,设计好数据库系统,然后开发应用程序可以考虑的窗体的系统,每一个窗体实现不同的功能,可以设计下面的几个模块。(1) 登录模块:用来实现用户的登录等操作。(2) 用户账号密码修改模块:用来实现用户密码的修改等操作。(3) 读取BOM模块:用来读取级配斗工程图中自定义属性的信息等操作。(4) 产品BOM管理模块:用来实现建立产品结构树,并把零件的信息读取到Listview中,最后导出产品明细,生成明细表等操作。(5) 帮助窗口模块
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1