已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南 阳 理 工 学 院 本科生毕业设计(论文) 学院(系): 机电工程系 专 业: 机械设计制造及其自动化 学 生: xxxx 指导教师: xxxxxxx 完成日期 2011 年 5 月南阳理工学院本科生毕业设计(论文)基于Solidworks 的产品BOM生成系统开发Development of Products BOM Generating SystemBased on Solidworks总 计: 31页表 格: 2个插 图: 32 幅南 阳 理 工 学 院 本 科 毕 业 设 计(论文)基于Solidworks的产品BOM生成系统开发Development of Products BOM Generating SystemBased on Solidworks学 院(系): 机电工程系 专 业: 机械设计及其自动化 学 生 姓 名: xxxxxx 学 号: 94107024 指 导 教 师(职称): 陈永辉 (讲师) 评 阅 教 师: 王志奎 (教授) 完 成 日 期: 2011年5月 南阳理工学院 Nanyang Institute of Technology基于Solidworks的产品BOM生成系统开发 基于Solidworks的产品BOM生成系统开发 机械设计制造及其自动化专业 马倩【摘 要】产品物料明细(BOM)整理和生成是产品研发的重要环节之一,是企业物料采购、生产计划和成本核算的基础。目前,多数企业对图纸BOM的生成仍处于手工操作模式,效率底,容易遗漏出错。而对于复杂产品BOM的生成通常需要设计人员花费大量的时间和精力才能完成,严重影响了新产品研发的效率。本课题以VB为开发平台语言,以Access为数据库存储平台,结合ADO数据库接口技术和VBA技术。针对Solidworks三维设计软件的二次开发技术进行研究,通过配置符合企业标准的工程图图框、标题栏和明细栏格式,通过调用Solidworks支持的API函数,实现对SolidWorks工程图纸信息的快速准确提取,能够自动构建产品装配结构及其明细。同时也能为企业后期的PDM和ERP系统集成提供数据接口。软件实现的功能符合设计任务书预期要求,运行结果达到预期目的。【关键词】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 purchasing, 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 finish 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 technology 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 assembly 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 33目 录1 研究背景和意义12 课题研究内容及要求23 课题研究关键技术23.1 Solidworks的API接口23.2 课题采用Visual Basic为开发语言43.3 系统采用ADO数据库连接技术53.4 产品BOM导出采用Excel格式74 系统需求分析与总体设计74.1 需求分析74.2 总体设计84.3 结构设计94.4 功能模块设计104.5 数据库设计124.5.1 建立Access 数据库124.5.2 在VB中添加ADO引用154.6 软件界面设计164.6.1 创建主窗体164.6.2 创建功能子窗体175 软件运行环境205.1 硬件需求205.2 软件需求205.3 软件安装步骤206 软件运行情况206.1 用户登录模块206.2 读取工程图BOM216.2.1 设置零部件的自定义属性226.2.2 读取零部件的自定义属性226.2.3 生成明细栏236.2.4 提取工程图中的文字信息236.3 产品BOM管理模块276.4 自动生成产品明细表模块27结束语29参考文献30致谢311 研究背景和意义 Solidworks是一套基于Windows的CAD/CAE/CAM/PD桌面集成系统,是由美国Solidworks公司在总结和继承了大型机械CAD软件的基础上,在Windows环境下实现的第一个机械三维CAD软件,于1995年11月研制成功。它集成了设计、分析、加工和数据管理的整个过程,所获得的分析和加工模拟成果成为产品模型的属性,在Solidworks的特征管理器中清晰地列出了详细的数据信息。它还可以动态模拟装配过程,进行静态干涉检查、计算质量特征,如质心、惯性矩等。它将2D绘图与3D造型技术融为一体,能自动地生成零部件尺寸、材料明细表(BOM)、具有指引线的零部件编号等技术资料,从而简化了工程图样的生成过程。同时有中英文两种界面可供选择,其先进的特征树结构使操作更加简便和直观。具有较好的开发性接口和功能扩广性。能轻松实现各种CAD软件之间的数据转换传送。Solidworks是一种非常优秀的三维机械软件,其易学易用、全中文界面等特点使广大工程技术人员爱不释手。目前Solidworks是市场分额增长最快、技术发展最快、市场前景最好、性能价格比最优的软件。在全球的销量已经达20万套,排名处于3D CAD软件销售榜首,遥遥领先于其他同类产品。但是Solidworks也并不是十全十美的,不可能完全满足特定企业的特殊要求。例如,由于该软件是外国人写的,不适合中国的国际(如标题栏、明细表、放大图的标注、剖视图的标注、装配图的序号、标题栏等),也没有适合我国国际的标准件库。因此,为了合适特定企业的特殊需求,形成企业自己的特色,使Solidworks在我国的企业中有效地发挥作用,并使常用的或重复的任务自动化,提高效率,就必须对其进行本体化和专业化的二次开发工作。为了方便用户进行二次开发,Solidworks提供了几百个API(Application Program Interfce,应用程序接口)函数,这些API函数是Solidworks的OLE(Object Linking and Embedding,对象的嵌入与链接)或COM(Component Object Model,组件对象模型)接口,用户可以使用VBVBAVCDelpin等高级语言对Solidworks进行二次开发,建立适合用户需要的,专用的Solidworks功能模块【1】。目前针对Solidworks软件,国内外企业面临着一个关键的问题,现在企业使用Solidworks 软件出完工程图后,编制系统明细表(手工编制)是一项很复杂而麻烦的工作。因此,研究如何将结构设计人员从该项任务中解脱出来是一项非常有价值的工作。另外,随着企业信息化工程的实施,如果能够将Solidworks所产生的相关信息自动提取出来,导入到企业信息化系统中,实现无缝集成,将为企业的采购、生产、计划等相关的子系统提供有价值的信息,为实现全部信息无纸化办公铺平道路。2 课题研究内容及要求 采用Visual Basic对SolidWorks进行二次开发,实现了在SolidWorks工程图环境下明细栏的自动添加与调整,并能够将Solidworks所产生的相关信息自动提取出来,导入到企业信息化系统中。以陆德公司的产品级配斗为实例,对于在参数化驱动之后重新生成的装配模型及工程图中,实现了根据零部件名称及数量等参数自动生成相对应的明细栏,并进行了一系列的优化与调整,解决了添加明细栏时工作繁琐,速度慢,出错多及难以用程序控制的缺点。添加完明细栏后,生成国家标准工程图。接着读取工程图中的自定义属性信息,然后采用ADO技术将读取的信息保存到Access数据库中。具体提取方式主要采用了选择和遍历技术,逐个遍历工程图中零件自定义属性并进行统计后导入到相应的数据表中。本课题在充分利用Solidworks的API函数基础上,以VB语言为开发平台,以Access为数据库,以excel报表模板,采用基于三层结构的C/S开发模式和ADO数据库访问技术开发出Solidworks明细表生成软件,实现了自动分析并提取由SolidWorks软件所设计的产品结构信息,自动构建正确的产品结构树,并能够导出为符合金蝶/K3 ERP导入格式要求的电子表格文件。软件实现功能:1. 自动读取SolidWorks设计信息并生成产品BOM;2. 自动分析SolidWorks零部件装配关系;3. 能够导出产品综合明细和分类明细;4. 导出符合企业格式要求的Excel文件。3 课题研究关键技术3.1 Solidworks的API接口 编制明细表所需要的信息全部存储于Solidworks三维图及相关的工程图中,如果利用开发工具能够调用Solidworks的API函数,直接就能够获得Solidworks明细表全部原始信息。Solidworks本身也为用户进行二次开发提供全方位的接口函数。为了方便用户进行二次开发,Solidworks提供了几百个API(Application Program Interfce,应用程序接口)函数,这些API函数是Solidworks的OLE(Object Linking and Embedding,对象的嵌入与链接)或COM(Component Object Model,组件对象模型)接口。接口是一个COM的术语,它包含了Solidworks中使用到的类。Solidworks是使用面向对象技术设计的,在Solidworks之下是表示软件各个方面的对象模型。为了将API暴露给使用其他编程语言的开发者,COM编程允许Solidworks将实际的Solidworks对象的函数功能暴露给外部世界。COM编程已经超出了本书的涵盖范围,但是读者应该理解API是由一组接口组成的,这些接口被组织为接口对象模型(interface object model)。一般来说将接口看作一个对象(object),这些词语意思相同2。Solidworks支持OLE标准,完全实现了OLE自动化。作为一个OLE服务器,Solidworks提供了大量的OLE对象,以及这些对象所拥有的方法、属性和事件,用户通过在应用程序中对这些OLE对象及其方法和属性的操作,可以在自己开发的应用软件中实现诸如生成直线、构造实体、检查曲面表面参数等几乎所有的Solidworks软件的功能。Solidworks API对象模型如图3-1所示。 Sldworks模板零件图装配图工程图零件部件装配单元图纸视图布局注解配置特征设计树特性草图模板参数模型属性选择图3-1 Solidworks API对象模型使用Solidworks API进行开发时,每个对象中必须包含Solidworks 2009 Constant type library。这个类型库包含了Solidworks API方法使用的所有常量定义。实际运行中,传递给方法的是常量定义而不是他们所代表的实际数值。这能保证程序在安装了新版本的Solidworks之后仍然能正常运行。实际使用的数值可能因为版本不同而不同,但是常量定义是相同的,不会改变,只会添加。使用VBA在Solidworks中录制宏时,会自动添加这个库。要验证这一点,编辑任何一个在Solidworks 2009 中录制的宏,并从菜单中选择【工具】/【引用】。弹出的【引用】对话框中显示了课题中已包含的类型库,如图3-2所示。 图3-2 Solidworks 2009 Constant Type Library 用户可以使用VBVBAVCDelpin等高级语言对Solidworks进行二次开发,建立适合用户需要的,专用的Solidworks功能模块。3.2 课题采用Visual Basic为开发语言 任何支持OLE和COM的编程语言都可以作为Solidworks的开发工具。Solidworks二次开发有两种,一种是基于自动化技术的,另一种开发方式是基于COM的。COM技术可以使用更多的Solidworks API,并可控制Solidworks运行的方式,生成*.dll格式的文件,也就是Solidworks的插件3。现在开发工具比较多,比如VB、VC、C+、C#、Delphi等。最最简单的二次开发工具是VBA,在涉及Excel时用VBA最为方便。VBA常用于录制宏,得到基本程序框架。易学易用的高级开发语言是VB,但功能有限。功能强大的语言是VC,但是入门难。Delphi集中了VB和VC两者的优点,学习过程中很容易上手,而且功能也非常强大,尤其在界面设计、数据库编程和网络编程方面更是独到之处。遗憾的是Solidworks常常不支持Delphi+OLE4。开发工具的选择主要考虑以下几个因素:(1) 对API函数接口的集成支持5。(2) 利用数据库存储因素。(3) 报表的实现。综合考虑以上因素,选择VB语言作为开发工具,它在以上因素上都占有优势,尤其是充分发挥它在开发数据库的专长和完全控制Excel报表的灵活性上,是其他工具无法比拟的。Visual Basic 6.0是美国微软公司推出的Windows应用程序开发平台家族中的一员,它沿用了早期Basic语言的一些语法格式,是一个功能强大的应用程序开发工具6。Visual Basic 6.0是一种面向对象(Object Oriented Programming,OOP)的程序设计方法,它强调直接以问题域(即现实世界)中的事物为中心来考虑和认识问题,并按照这些事物的本质特征把它们抽象为对象,作为软件系统的基础。在OOP方法中,将对象作为系统中最基本的运行实体,对象中封装了描述该对象的特殊属性(数据)和行为方式(方法)。整个程序即由各种不同类型的对象组成,各对象既是一个独立的实体,又可通过一定的方式相互作用7。Visual Basic6.0易学易用、功能强大的特点使其得到了广泛的应用。其强大的可视化用户界面设计,是程序员从复杂的界面设计中解脱出来,是编程成为一种享受。Visual Basic 6.0 不但可以开发小型单机数据库管理系统,而且也可以开发集多种应用程序于一体的网络数据库系统。因此使得它成为目前使用最广泛的编程语言之一。3.3 系统采用ADO数据库连接技术当计算机从早期的计算工具逐步变化成现在的信息处理和管理工具时,它就和数据库建立了密切的关系。在当今信息爆炸的时代,只有通过数据库并结合计算机的高速计算能力才可能实现对大量信息的及时处理和分析。数据库技术作为当前一项衡量国家信息化程度的标准被大力推行,尤其在我国信息化刚刚起步的阶段,数据库更是被大力发展。目前在我国从事信息事业的人员中有70%的人员从事着与数据库相关的工作。由此可见数据库在我国的发展前景。数据库系统主要有三大部分组成:数据库管理系统(DBMS,专门负责组织和管理数据信息的程序)、数据库应用程序(它使我们能够获取、显示和更新由DBMS存储的数据)、数据库(按一定结构组织在一起的相关数据的集合)8。随着DBMS技术的发展,目前的数据库系统正向着客户机服务器模式发展。客户机服务器数据库将DBMS和数据库应用程序分开,从而提高了数据库系统的处理能力。数据库应用程序运行在一个或多个用户工作站(客户机)上,并通过网络与运行在其它计算机上(服务器)的一个或多个DBMS进行通信。常见的访问数据库的方法有使用ADO、DAO、RDO控件等。目前,由于ADO具有灵活而又有效的访问数据库的方式,故成为比较常用的访问数据库的方法和手段9。ADO(Active Data Object,活动数据对象)是一种基于COM(组件对象模型)的自动化接口(Idispatch)技术,是一个与编程语言无关的COM组件系统。并以OLE DB(对象联接和镶入的数据库)为基础,经过OLE DB精心包装后的数据库访问技术,是数据访问对象DAO、远程数据对象RDO和开放数据库互联ODBC三种方式的扩展,利用它可以快速地创建数据应用程序。ADO提供了一组非常简单并将一般通用的数据访问细节进行封装的对象,主要有三个对象成员:Connection、Command 和Recordset,以及几个集合对象:parameters、Fields和Errors等,ADO对象模型如图3-3所示10。ADO对象及集合Connection对象Command对象Recordset对象Record对象Stream对象ErrorstPropertiesParametersPropertiesFieldsPropertiesFields 图3-3 ADO的对象模型3.4 产品BOM导出采用Excel格式明细表有相应的国家标准,其报表的选择非常重要,所得到的报表结果将直接关系到软件最后使用的成败,所以选择得到广泛使用的Excel作为信息输出的格式。采用Excel作为报表的输出工具,用户可以在已经定义好的模板基础上,使系统能直接在相关的地方插入信息。这样的好处是:Excel是最常用的办公软件,一般是装机必备工具;用户可以自定义模板;可以充分利用Excel强大的表格处理功能;可以允许用户调整输出的报表信息;以后可随时调出所生成的报表直接使用。以陆德公司的产品级配斗为实例,通过使用Excel电子表格能够将Solidworks所产生的相关信息(各零部件之间相互关系及其代号(标准件号)、名称、数量、材料等属性信息)自动提取出来,导入到企业信息化系统中,实现无缝集成,将为企业的采购、生产、计划等相关的子系统提供有价值的信息,为实现全部信息无纸化办公铺平道路。同时为企业的工作人员带来了快捷、高效的解决方案,解决了添加明细栏时工作繁琐,速度慢,出错多及难以用程序控制的缺点。为此,对于本课题,我们设计了一个电子表格,此表格清晰地反映了零件的相关属性,如序号、代号、名称、材料、数量、单重、总重等信息。电子表格界面如图3-4所示。 图3-4 电子表格界面 4 系统需求分析与总体设计4.1 需求分析需求分析是指通过详细调查现实世界要处理的对象,明确用户的各种需求,达到确定新系统的功能的目的。需求分析是数据库结构设计的第一阶段,也是非常重要的一个阶段。在这个阶段主要是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。信息要求是指用户需要从数据库中获得信息的内容与性质。由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据。处理要求是指用户要求完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理,得到系统所要处理数据的流程图。系统的功能必须能够满足用户的信息要求、处理要求、安全性与完整性要求。需求分析首先调查清楚用户的实际需求并进行初步分析,与用户达成共识后,再进一步分析与表达这些需求。需求分析可分为问题分析、需求描述及需求评审三个阶段。问题分析阶段,分析人员通过对问题及环境的理解、分析和综合,清除用户需求的模糊性、歧义性和不一致性。需求描述阶段的任务是生成需求规格说明书和初步的用户手册。需求评审阶段的任务是工作人员在用户和软件设计人员的配合下对生成的需求规格说明和用户手册进行复核,以确保软件需求的全面性、精确性和一致性。对企业来说,构建产品结构树(明细)、进行图纸审核和生成产品综合明细及分类明细是产品研发的最后一环,也是多数企业信息化最薄弱的环节(均以手工完成),速度慢,效率低,容易出错,极大的影响了新产品研发的效率。本课题实现了自动分析并提取由SolidWorks软件所设计的产品结构信息,自动构建正确的产品结构树,并能够导出为符合金蝶/K3 ERP导入格式要求的电子表格文件。4.2 总体设计 利用 SolidWorks 出工程图,由于软件本身没有自带符合国标的工程图模板,给我们出工程图带来了不少的麻烦。而且装配图上的明细栏的信息必须手动才可以输入到工程图中,这样给企业带来很多的麻烦。我们采用VB程序编程自动生成符合我国标准的工程图。从图4-1中可以看出,生成国际标准工程图和提取零件工程图自定义属性是整个设计过程的重要组成部分。在提取BOM之前,需要把装配图中的相关信息转换到工程图中,形成国家标准的工程图。在工程图中生成明细栏时,每个零件的相关属性都是要能与材料明细栏所对应的列进行自动链接的,目的是能够通过链接自动在明细栏对应位置写入相关属性。为此,必须在零部件建模时设置其相关属性,其中与明细栏相关的属性包括重量、材料、序号、代号、名称、数量、比例等。在读取零部件的自定义属性时,具体读取方式主要采用了选择和遍历技术,逐个遍历装配体模型中零件树的种类与个数并进行统计后写人文件。需要注意的是,装配完成之后应该把装配模型中零件树的顺序按照明细栏的最后要求进行重新排列,目的是能够保证写入文件时记录的数据是按照明细栏的顺序排列的,减少排列出错的可能性。在生成国际标准工程图的过程中,采用先根据企业的需求建立明细栏模板,再通过程序进行添加的方法来实现工程图中明细栏的添加。由于它是在新的装配体零部件更名完成后进行这一系列的操作,因此就不会出现明细栏无法识别的情况;同时在模型参数化驱动完成后,通过相关程序统计部件中的零件数目,并存储在专门的文件或程序控件中,这样在通过程序初步添加明细栏以后写人相应零部件的数量、名称、材料、质量等属性,最后就可以在最终工程图中完成符合企业要求的明细栏的添加过程。 图4-1 设计系统流程图4.3 结构设计使用Windows操作系统、开发维护系统即Visual Basic软件系统、一套数据库系统Access 2003即可。它们之间的关系如图所示。数据库数据库应用程序用户用户用户开发人员 图4-2 简单的应用系统4.4 功能模块设计 根据以上对陆德公司的企业现状和基于Solidworks的产品BOM生成系统的需求分析及目标设计,设计好数据库系统,然后开发应用程序可以考虑的窗体的系统,每一个窗体实现不同的功能,可以设计下面的几个模块。(1) 登录模块:用来实现用户的登录等操作。(2) 用户账号密码修改模块:用来实现用户密码的修改等操作。(3) 读取BOM模块:用来读取级配斗工程图中自定义属性的信息等操作。(4) 产品BOM管理模块:用来实现建立产品结构树,并把零件的信息读取到Listview中,最后导出产品明细,生成明细表等操作。(5) 帮助窗口模块:用来提供河南陆德筑机有限公司的版本、设计人员及指导老师等信息的查询。系统的功能模块结构图如图4-3所示。基于Solidworks的产品BOM生成系统开发文件读取BOMBOM管理窗口帮助登录修改密码帮助主题关于本程序图4-3 系统的功能模块结构图本课题根据功能模块图设计规划出的实体有登录实体、用户账号密码修改实体、读取BOM实体、BOM管理实体、帮助窗口实体。各个实体具体的描述E-R图如下。登录实体E-R图如图4-4所示。用户账号密码登录图4-4 登录实体E-R图用户账号密码修改实体E-R图如图4-5所示。账号密码用户账号密码修改确认密码图4-5 用户账号密码修改实体E-R图读取BOM实体E-R图如图4-6所示。批量读取Solidworks工程图纸信息待整理文件用时工作路径读取BOMBOM管理图4-6 读取BOM实体E-R图产品BOM管理实体E-R图如图4-7所示。Solidworks产品BOM管理产品BOM表产品结构树导出明细表用时图4-7 产品BOM管理实体E-R图帮助窗口实体E-R图如图4-8所示。版本设计关于本应用程序指导老师 图4-8 帮助窗口实体E-R图 4.5 数据库设计4.5.1 建立Access 数据库本课题数据库采用Access 2003,采用ADO数据库连接接口。使用Access设计器建立系统需要的数据表如下。BOM表,如图4-10所示。BOMDetail表,如图4-11所示。ManUser表,如图4-12所示。PathTmp表,如图4-13所示。 图4-9 建立数据库 data.mdb 图4-10 BOM表 图4-11 BOMDetail表 图4-12 ManUser表 图4-13 PathTmp表4.5.2 在VB中添加ADO引用在Visual Basic环境下,选择【工程】【引用】命令,在随后出现的对话框中,选择“Microsoft Active Data Object 2.8 Library”,然后单击“确定”按钮,如图4-14所示。 图4-14 引用ADO连接数据库在程序设计的公共模块中,先定义ADO连接对象。语句如下:Public ConnStr As String 连接本地数据库Public Conn As New ADODB.Connection 连接本地数据库然后在子程序中,用如下的语句即可打开数据库。ConnStr = Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=true;Jet OLEDB:Database Password=;Persist Security Info=True;Data Source= & App.Path & datadata.mdbConn.CursorLocation = adUseClientIf Conn.State = 0 Then Conn.Open ConnStrIf Conn.State = 0 Then MsgBox 连接本地数据库失败,系统自动退出。, vbOKOnly, 信息提示: Unload Me: End4.6 软件界面设计设计好的界面如图4-15所示。这是一个多文档界面(MDI)应用程序,可以同时显示多个文档,每个文档显示在各自的窗体中。MDI应用程序中常有包含子菜单的“窗体”选项,用于在窗体或文档之间切换。菜单应用程序中,有5个菜单选项,每个选项对应着E-R图中的一个子课题。 图4-15 基于Solidworks的产品BOM生成系统界面4.6.1 创建主窗体首先创建一个工程,命名为基于Solidworks的产品BOM生成系统,选择【工程】【添加MDI窗体】命令,则在课题中添加了主窗体。在主窗体中的工具栏中,选择菜单编辑器,创建如图4-16所示的菜单结构。图4-16 菜单编辑4.6.2 创建功能子窗体选择【工程】【添加窗体】命令,添加子窗体。在新建的Visual Basic工程自带的窗体中,将其属性MIDChild改为True。则这个窗体成为MID窗体的子窗体。下面分别给出这些子窗体。(1) 登录子窗体如图4-17所示。图4-17 登录子窗体(2) 用户账户密码修改子窗体如图4-18所示。 图4-18 用户账户登录修改子窗体 (3) 批量读取Solidworks工程图纸信息子窗体如图4-19所示。 图4-19 批量读取Solidworks工程图纸信息子窗体(4) Solidworks产品BOM管理子窗体如图4-20所示。 图4-20 Solidworks产品BOM管理子窗体(5) 关于本应用程序子窗体如图4-21所示。 图4-21 关于本应用程序子窗体5 软件运行环境5.1 硬件需求 (1)PIII以上处理器(2)1024MB(至少512MB)RAM(3)250MB以上可用硬盘空间5.2 软件需求(1)Windows2000、XP及以上操作系统(2)Visual Basic 6.0或以上(2)Microsoft Excel 2003或以上版本(3)Solidworks 2009或以上版本5.3 软件安装步骤(1)确保当前操作系统为Windows 2000或以上版本;(2)在当前操作系统上安装Office 2003办公软件;(3)在当前操作系统上安装Solidworks绘图软件并进行注册;(4)按照常规安装方法安装本软件。本软件正确安装之后,会自动在桌面建立一个快捷启动图标,可直接双击该图标运行本软件。6 软件运行情况6.1 用户登录模块单击系统桌面上的“登录”图标,进入软件系统前需要首先进行身份认证,弹出“用户登录”窗口,如图6-1所示。图6-1 用户登录窗口单击“确定”按钮进入系统主界面,如图6-2所示。图6-2 系统主界面6.2 读取工程图BOM在图6-2中单击系统主菜单中的“读取BOM”,或单击标准工具栏中的“读取BOM”按钮,系统调出“批量读取Solidworks工程图纸信息”窗口,如图6-3所示。图6-3 批量读取Solidworks工程图纸信息在6-3中浏览工作路径中显示的信息,点击“提取BOM”按钮,读取工程图中的自定义信息,然后采用ADO技术将读取的信息保存到Access数据库中。6.2.1 设置零部件的自定义属性在提取BOM之前,需要把装配图中的相关信息转换到工程图中,形成国家标准的工程图。在工程图中生成明细栏时,每个零件的相关属性都是要能与材料明细栏所对应的列进行自动链接的,目的是能够通过链接自动在明细栏对应位置写入相关属性。为此,必须在零部件建模时设置其相关属性,图6-4为级配带DD的自定义属性,其中与明细栏相关的属性包括序号、代号、名称、重量、数量、材料、比例等。 图6-4 级配带DD的自定义属性6.2.2 读取零部件的自定义属性在读取零部件的自定义属性时,具体读取方式主要采用了选择和遍历技术,逐个遍历装配体模型中零件树的种类与个数并进行统计后写人文件。需要注意的是,装配完成之后应该把装配模型中零件树的顺序按照明细栏的最后要求进行重新排列,目的是能够保证写入文件时记录的数据是按照明细栏的顺序排列的,减少排列出错的可能性。数据读取的流程如图6-5所示: 图6-5 数据读取流程图6.2.3 生成明细栏 生成明细栏是比较重要的一步,通过调用API函数InsertBomTable2,插人预先设置好的明细栏模板。接下来,通过零件序号信息访问对应的零件,读取零件建模时输入的自定义属性值,并以填入或更新TableAnn的Text属性值的方式依次写入到相应的位置。6.2.4 提取工程图中的文字信息读取工程图中的自定义信息,然后采用ADO技术将读取的信息保存到Access数据库中。具体提取方式主要采用了选择和遍历技术,逐个遍历工程图中零件自定义属性并进行统计后导入到相应的数据表中。导入BOM表中的信息如表6-6所示。 表6-6 BOM表导入BOMDetail表中的信息如表6-7所示。 表6-7 BOMDetail表读取工程图信息的主要源代码如下:If Me.List1.ListCount 1 Then MsgBox 请首先选择要提取的Solidworks工程图。, vbOKOnly, 操作提示: Exit SubIf Not ConSolidWorks Then Exit SubSet swModel = swApp.ActiveDocConn.Execute Delete From BOMConn.Execute Delete From BOMDetailFor i = 0 To Me.List1.ListCount - 1 Me.List1.ListIndex = i GetCurrDRWBOM Me.List1.TextNext确定BOM表 各项 装配 关系If rs.State Then rs.Closers.Open Select ID,代号,父代号 From BOM, Conn, adOpenDynamic, adLockOptimisticWhile Not rs.EOF If rst.State Then rst.Close sql = Select BOM单 From BOMDetail Where 代号 = & rs(代号) & rst.Open sql, Conn, adOpenForwardOnly, adLockReadOnly 如果找到 代号,则相应BOM单 对应 BOM 表中的代号即为其 父代号 If Not rst.EOF Then i = rst(BOM单) rst.Close rst.Open select 代号 From BOM Where BOM单= & i, Conn, adOpenForwardOnly, adLockReadOnly If Not rst.EOF Then rs(父代号) = rst(代号) rs.Update End If End If rs.MoveNextWend在此程序中,首先连接Solidworks三维软件,通过遍历所有工程图中的自定义信息,然后把提取的信息通过数据库导到数据表中,并确定BOM表中各项的装配关系。最后对于BOM表,把“代号”的数值赋值给“父代号”。若提取图纸BOM信息结束,则会弹出对话框,提示“批量提取图纸BOM完成”。以下为调用的子程序。调用“连接Solidworks”的主要源代码如下:If swApp Is Nothing Then Set swApp = GetObject(, SldWorks.Application) If Err Then Err.Clear Set swApp = CreateObject(SldWorks.Application) If Err Then MsgBox Err.Description Exit Function End If End IfEnd If此程序中主要采用了调用Solidworks的API函数。调用“GetCurrDRWBOM”的主要源代码如下:Set swModel = swApp.NewDocument(FileName, 0, 0, 0)Set swDraw = swModelGetCurrDRWBOM = FalseHaveMXL = False获取当前工程图自定义 属性 信息-BTL.TCode = Trim(swModel.CustomInfo(图样代号)If AscW(Right(BTL.TCode, 2) = 13 Then BTL.TCode = Left(BTL.TCode, Len(BTL.TCode) - 2)End IfBTL.TName = swModel.CustomInfo(图样名称)BTL.TDesigner = swModel.CustomInfo(设计)BTL.TMaterial = swModel.CustomInfo(材料)BTL.TNum = swModel.CustomInfo(数量)BTL.TWeight = swModel.CustomInfo(重量)BTL.TScale = swModel.CustomInfo(比例)写入数据库 BOM 表sql = Insert Into BOM(代号,名称,材料,数量,重量,设计,比例) Values( & BTL.TCode & , & BTL.TName & _ , & BTL.TMaterial & , & BTL.TNum & , & BTL.TWeight & , & BTL.TDesigner & , & BTL.TScale & )Conn.Execute sqlFor i = 0 To 500 DoEventsNextIf rs.State Then rs.Closers.Open Sel
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年马鞍山市第二中学博望分校招聘教辅人员1名笔试备考试卷带答案解析
- 中国科学院半导体研究所2026年度招聘备考题库附答案
- 2025四川南充市公路管理局南充市水务局遴选3人笔试模拟试卷附答案解析
- 2025民生银行总行资产经营管理部社会招聘笔试备考试卷带答案解析
- 2026芜湖造船厂校园招聘历年真题汇编附答案解析
- 2025江西吉安吉州区古南镇街道社区卫生服务中心招募就业见习人员2人参考题库附答案解析
- 全南县2025年公开选调机关事业单位工作人员笔试备考试卷带答案解析
- 2025年周口市投资集团有限公司下属子公司工作人员公开选聘2人备考题库附答案解析
- 2026年陕西省选调生招录(面向中南大学)备考公基题库附答案解析
- 2025中国诚通控股集团有限公司所出资企业招聘336人备考题库带答案解析
- 液压起拨道器
- 普通铁路接触网施工流程
- 军队文职公共基础知识100题
- 医院临床研究备案表
- YS/T 514.9-2009高钛渣、金红石化学分析方法第9部分:氧化钙、氧化镁、一氧化锰、磷、三氧化二铬和五氧化二钒量的测定电感耦合等离子体发射光谱法
- GB/T 14338-2022化学纤维短纤维卷曲性能试验方法
- 国家自然科学基金申请经验汇总课件
- 监造手册第三章船体
- 《忆秦娥·娄山关》课件
- 新《高等教育学》考试复习题库450题(含各题型)
- 新教材人教版高中化学选择性必修三全册知识点梳理
评论
0/150
提交评论