基于solidworks二次开发毕业设计说明书.doc_第1页
基于solidworks二次开发毕业设计说明书.doc_第2页
基于solidworks二次开发毕业设计说明书.doc_第3页
基于solidworks二次开发毕业设计说明书.doc_第4页
基于solidworks二次开发毕业设计说明书.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.绪论1.1 课题研究的意义任何设计都是时代的产物,它的不同的面貌,不同的特征反映着不同的历史时期的科技技术水平。技术是产品形态发展的先导,新材料,新工艺的出现,必然给产品带来新的结构,新的形态和新的造型风格。材料、加工工艺、结构、产品形象有机地联系在一起的,某个环节的变革,便会引起整个机体的变化。夹具业多样化发展使得通用的夹具CAD软件不能完全满足企业的特殊要求,所有研究在通用图形软件的基础上二次开发企业自主的夹具CAD系统十分必要。如果进行二次开发,可以全面扩展其功能或将其功能集成到客户应用程序中,从而实现完全客户化【1】。夹具可分为通用夹具、组合夹具、专用夹具几类。组合夹具和专用夹具设计时需要进行一系列的定位、夹紧、装配设计才能满足生产的要求。随着生产节奏的加快,能在短时间内由标准元件组装完成的组合夹具,受到诸多企业普遍的青睐。其不足之处是外形尺寸较大,笨重;刚性较差,同时由于所需元件的储备量大,故一次性投资费用较高;而且目前组合夹具的设计和组装仍采用落后的人工拼装和管理方法,大多数企业的组合夹具是根据工艺人员设计的工序图由组合夹具组装站进行组装。由于没有详细的装配图,组装时往往需要经过多次安装、调整才能达到要求,比较费时费力,不仅效率低、周期长,而且装配质量依赖丰富的生产经验和技术熟练的技工,这正是企业短缺的人才,客观上成为限制组合夹具广泛应用的障碍。另外,有些复杂的组合夹具由于装夹精度高,对人的经验依赖程度高,组装站担心拆卸后难以恢复,故需要长期保存,这就造成组合元件长期被占用,影响组合元件周转使用。所以,在如今的市场上如果提供一个选择,并考虑到当今的科技,客户会喜欢根据其具体的需求选择一个产品建造。产品的定制通常需要个人拥有必要的产品知识和设计技能,并把它们应用在客户所需的要求和规格上,而且这个过程通常需要耗费很多时间。如果应用软件进行二次开发建立一个标准件三维实体模型库,用户选择标准件时,便能自动从库中取出,然后插入到装配体的指定位置,将大大简化设计工作,提高设计效率。同时用户可交换选择或修改标准件的某些参数,直接在装配环境中调用,使用极其方便有效。在产品设计中,大量应用标准件是代表一个国家和企业设计制造水平的重要标志。在机械产品中,有大约30%到70%的零件是标准件或非标常用件,这些零件大多具有相同或相似的外形特征,只是尺寸规格有所不同,如果没有三维标准件库,将不得不在创建和开发过程中对标准件进行重复建模,不但耗费了设计人员的时间和精力,延长设计周期,而且增加了产品的生产制造成本,所以建立通用的符合国家标准和企业标准的标准件库和典型组合库是提高设计效率的保证。专用夹具的设计更不例外。而一些优秀的三维CAD软件如UG. SolidEdge等都未提供机床夹具零部件库。为此,选择合适的三维CAD平台,研发一套适用于各类CAD逗系统的、通用的标准件库和机床夹具零部件库具有极其深远的意义和价值。1.2 机床夹具标准件库研究的现状夹具是制造企业一种重要的工艺装备资源,夹具设计是生产准备过程的关键环节。以多品种、小批量为代表的面向大规模定制生产模式,要求企业能够快速响应用户需求,缩短开发时间。夹具由于能够利用加工零件工艺上的相似性,且适应工件特征在一定范围内的变化而得到推广和应用,如何提高夹具设计效率成为需要重点解决的问题之一。参数化技术作为快速设计的常用手段,因此,夹具参数化生成和快速变形设计成为企业的迫切需要。据统计,在夹具开发过程中标准件的使用率占到零件总数量的60%以上,以标准件的重复建模占用夹具设计的大量时间,而国内开发的标准件库大都都存在通用性不足和扩充性较差的缺点。非标准件通常形状不规则,结构也比标准件复杂,因此夹具设计时,夹具的结构尺寸依靠人的经验,而人的经验又往往不能被挖掘和再利用。同时,目前CAD软件的参数化设计功能尚难以很好地满足产品级参数化设计的需求。目前,各种二次开发的系统如模具CAD、夹具CAD、组合夹具CAD等大多是基于AutoCAD平台开发的二维工程数据库。基于AutoCAD的机床夹具零部件库开发已有一定成果。其组成主要有如下几个功能模块:零部件库应用程序、零部件数据库、图片库。图片库用于存放不同种类夹具的工程图,供预览用。“零部件数据库”是将机床夹具零部件国家标准GB2148-GB2269-80中的所有零部件的尺寸数据输入计算机中,建立起多个数据文件,构成数据库,其中每种类型夹具不同规格的尺寸构成一个数据文件,供应用程序在AutoCAD中生成工程图用【2】。一些优秀的三维CAD软件如UG.、SolidEdge等都未提供机床夹具零部件库。目前,进行简单开发的一些零部件库,大部分是基于CAD开发的三维图形库,或者说以块的形式存储的图形文件,一般也是针对专门的系统,可移植性不强。而且,这些图形库存在着一些问题:(1)不同系统开发的零部件库由于对零部件没有统一的描述格式,不能进行信息的交换,造成了资源的极大浪费;(2)包括的信息不完整,多数只描述零件的几何特性,而不包括材料、性能等级等技术信息;(3 )在建库方法上,多采用建立图库的方法,即把预先定义好的图形放入库中,需要时重新调用。由于机床夹具零部件的数量、种类、规格非常多,而且许多尺寸不是标准尺寸或固定值,全部做成图形要造成极大的资源浪费,而且有些零件也不可能全部做成图形,比如钻套的内孔尺寸、定位销的外圆柱面定位尺寸等,它们是由工件的加工要求确定的,可能是整数,也可能是几位小数,建立钻套及定位销模型时不可能预知这一尺寸,所以,我们需要寻求一种对这一信息的统一描述,包括尽可能多的信息,减少不必要的浪费【3】。2总体方案设计2.1 系统开发所需工具目前,在我国的CAD市场上比较流行的三维CAD软件有SolidWorks、MDT、UG、Pro/E、SolidEdge 等。但就价位来讲SolidWorks、MDT、SolidEdge是中低档价位的产品,UG、Pro/E、IDEAS是高中档价位的产品。考虑到SolidWorks的全球用户非常广泛(大约有20万),国外大多数制造公司招聘时都要求应聘人具备操作SolidWorks的能力。国际上很多一流的名校都将SolidWorks定为大学本科学生的必修课,如麻省理工学院、英国剑桥大学等。95%的西方企业要求员工回运用SolidWorks软件,SolidWorks连续几年被美国一些杂志评为优秀的CAD软件。而且SolidWorks的易上手,易操作性,所以在这里我们以SolidWorks为平台进行夹具库的二次开发。SolidWorks的软件开发商为方便各类用户对其进行二次开发,提供了API(Application Programming Interface)应用编程接口,它是一个基于OLE(对象链接与嵌入)的编程接口,此接口为用户提供自由 、开放、功能完整的开发工具,其中包含了数以百计的功能函数,这些函数提供了程序员直接访问SolidWorks的能力。凡支持OLE编程的开发工具,如VisualC+, Visual Basic, Delphi等均可用于SolidWorks的二次开发。在此选用VB编程语言作为开发工具。采用Microsoft的Access来建立标准件参数特性数据库。这是由于Access是VisualBasic的内部数据库,即缺省数据库类型。用Access建立的数据库(.mdb)可以在VisualB asic中使用;而且用VisualBasic可以直接建立Access数据库。因此,在VisualB asic中,Access数据库和VisualBasic数据库含义相同【4】。另外,Visual Basic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是世界上使用人数最多的语言不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。一个典型的VB进程VB的中心思想就是要便于程序员使用,无论是新手或者专家。VB使用了可以简单建立应用程序的GUI系统,但是又可以开发相当复杂的程序。VB的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组建的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。2.2 系统的设计思想计算机辅助夹具设计系统应为工艺人员提供一个良好的设计服务环境,应具备快速获取相关信息、生成和存储、输入和输出、图形设计和处理能力以及良好的人机交互等功能。基于SolidWorks的CAM 系统参考人工设计夹具的过程,同时兼顾计算机处理问题的特点,面向夹具设计全过程,融三维参数化设计技术、交互式界面设计技术和数据库管理技术于一体,根据机床夹具零部件的具体特点,综合使用变异型(如夹具体)或创成型CAD(如标准零部件)和人机交互设计的混合方式,面向对象,通过三维参数化驱动技术,保证设计结果的一致性【5】。另外,一个独立的EXE是一个独立的程序,有能力控制其他软件,有自己的接口。在这种情况下,Visual Basic软件被用来作为独立的EXE来结合SolidWorks和Excel软件定制模型,由此我们可以得出详细的系统体系结构(如图2.1)。 图2.1 详细的系统体系结构图本课题作为CAFD系统的先期工作,将首先完成机床夹具定位件库的建立,并作进一步研究。SolidWorks环境下零部件库的系统结构包括:用户界面、执行模块、零部件模型库、零部件特性参数数据库四个部分。其核心部分就是执行模块和零部件模型库及数据库,下面分别对各模块进行简单介绍。1. 用户界面:用户与执行模块进行交互的窗口:可以从中输入所需的零件的主参数,进行实时建模(对数据库中没有的数据参数可输入其所需参数进行实时绘制)。2. 执行模块:核心部分,主要是对由界面输入的数据处理,与零部件库参数数据库进行交互,运算,通过API跟SolidWorks进行交互,对其操作,使其完成绘制相应实体的全过程。3. 零部件参数数据库和模型库:为零部件的生成提供原形和具体参数信息,是零件的原始表现形式。图2.1 给我们展示的不仅是零部件库的总体结构,它实质是给我们一种建立零部件库的思想。由图可以看出,其几大模块都是围绕着SolidWorks这个平台,其主要原因是绘图过程是由SolidWorks平台完成的。其它几个模块是以外挂的形式和SolidWorks平台相关联的,也就是说其它几个模块把处理后的信息汇总后通过接口API发向SolidWorks平台来完成画图。这种建模方式的优点体现在以下几点:1. 数据库建立可以独立进行,不受任何条件约束,因为Access数据库的访问操作已经标准化,己经形成标准化的数据库语言,在任何编程语言环境中都是通用的。2. 模型的建立是不受任何外界因素影响的。因为SolidWorks的核心技术不会变,其建立的模型的通用性也不会变。模型的通用性也就保证了此零部件库的通用性。3. 由上面两点看出,数据库与编程语言无关,因此,对其进行二次开发的编程语言就会有多种选择,这样使其二次开发的难度降低,适合人群增加。4. 由图可以看出,用这种方法开发的零部件库是以外挂的形式联接到SolidWorks之上的,而且各个模块是独立的,因此其扩充性非常的好,我们可以增加更多的标准件数据库,增加更多的模型文件来达到扩充零部件库的目的。例如我们要加入弹簧这个标准件,我们要作的只是把其参数建立数据库,把其外型建立模型,放入相应的目录中,然后建立其执行模块和界面,编译成可执行,再加入菜单即可,对原来任何东西都不需要修改【6-8】。2.3 系统的设计的关键技术2.3.1 COM技术COM是一个说明如何建立可动态交替更新组件的规范,提供了客户和组件之间能够互操作应该遵循的标准,该标准对于组件架构的重要性同其他任何一个具有可交替更新部分的系统是一样的。COM的前身是OLE。OLE的第一个版本用动态数据交换(DDE)作为客户及组件之间的通信方式,OLE1.0并没有引用COM,但是DDE非常缓慢,而且效率也不高。OLE的第二个版本使用了COM。但OLE是开发出来的第一个COM系统,不能很好地实现COM功能,这使OLE显得比较庞大而且使用不便。COM规范就是一套为组件架构设置标准的文档。COM中得组件,其实用积木形容在恰当不过了。在拼积木时,将积木一块一块垒加起来拼成头脑中所想象的东西。我们可以将组件看出一块积木或一个小单元,这些小单元成为应用程序的各个独立部分。这种做法的好处不言自明,它可以随着对应用程序的不断发展而使用新的组件来取代原有的组件,就像堆积木一样,用更漂亮的积木搭成更漂亮的建筑。传统应用程序的组成部分是分立的文件、模块或类,这些组成部分经过编译并链接之后形成应用程序。要像推出应用程序的新版本,就需要将这些组成部分重新编译,既费时又费力。有了组件的概念,就可以将改进的新组件插入到应用程序中,并替换了原来的就组件,从而赋予应用程序新的活力【9】。另外,由此也可以看出有这样的想法,把许多已经做好的组件放到一起形成一个组件库,好比一个类库。当制作应用程序时,如果要用到不同的组件,只需要从刚建好的组件库中调出所需要的组件,然后它们可以插入到适当的位置,来获得所需要的功能。2.3.2 ActiveX Automation技术ActiveX Automation技术ActiveX Automation是Microsoft公司提出的一个基于COM ( Componet Object Model,组件对象模型)的技术标准,是以前的OLI(Object Linking and Embeding, 对象连接与嵌人)技术的更高层次的发展,其宗旨是在windows系统的统-管理下,协同不同的应用程序,准许这些应用程序之间相互沟通、相互控制。每个应用程序可以决定自己的哪些信息可暴露出来。这些暴露出来的信息、可以被其它应用程序操纵。这个暴露信息的程序称为服务程序(Server),而操纵这些服务程序的程序成为客户程序( Client) ,ActiveX Automation技术通过两个程序问安排对话,达到一个程序控制另一个程序的目的,但这种对话不是双向的,对话双方也不是平等的。客户程序是开始要求对话的应用程序,服务程序是响应客户程序的应用程序。ActiveX Automation的代码在客户程序土运行,而这些代码所控制的动作由服务程序来执行在这里将Solidworks理解为一个服务程序,而作为二次开发工具的VB程序作为客户程序,它们之间是服务器与客户的关系。用户只要在VB仁进行操作,VB就将驱动Solidworks完成相应的工作。2.3.3 OLE技术在Windows平台下,应用程序并不是处于分割独立的状态,用户通常想使它们互相联系。OLE自动化是Windows应用程序之间互相操纵的一项技术,它允许在一个应用程序内部操作另一个应用程序提供的对象。被操纵的一端称为自动化服务器,而操纵自动化服务器的一端称为自动化客户或自动化控制器。一个自动化服务器是由一个应用程序提供的被另一个应用程序使用的服务。自动化控制器是指使用自动化服务器提供服务的控制应用程序,它通过OLE接口工作,这个接口向控制应用程序开放可用的服务。因此,OLE自动化的实质就是使对象在应用程序之间可以方便地共享,自动化的最大优势是它的语言无关性。可以使用Delphi、C+等高级语言或脚本语言如VBScript和JavaScript来驱动自动化服务器,而不必考虑用于编写它的语言,从而实现应用程序间的互操作性。自动化服务器的应用有两种形式:一种称为进程内服务器,一种称为进程外服务器。进程内服务器是DLL函数,可以创建服务器对象供宿主应用程序使用,DLL程序与调用它的应用程序可以创建服务器对象,他们与客户程序不在同一进程中,而是在他们自己的进程中。目前,越来越多的应用程序对外界提供自动化服务器,如MicroSoft Word、Excel、Pro/E、MDT、SolidWorks等。使用自动化服务器提供的服务,实际上是通过访问自动化服务器提供的自动化对象的数学和方法实现。有关自动化对象的借口、属性和方法等信息称为类型信息。提供自动化服务器的应用程序一般把自动化对象类型信息保存在类型库中。自动化服务器的类型库可以作为资源链接到服务器应用程序或动态动态链接中,也可以单独保存在一个外部文件中。类型库中包括的自动化服务器中的类、接口、数据类型等信息,供客户在创建实力、调用接口时使用。2.3.4 参数化设计技术参数化设计(Parametricd esign,也叫尺寸驱动Dimension-Driven)一般是指设计图形拓扑关系不变,尺寸形状由一组参数进行约束。参数与图形的控制尺寸有显式的对应,不同的参数值驱动产生不同大小的几何图形。可见,参数化设计是规格化、系列化产品设计的一种简单、高效、优质的设计方法。国内外对参数化设计做了大量的研究,目前参数化技术大致可分为如下三种方法:(1)基于几何约束的数学方法;(2)基于几何原理的人工智能方法;(3)基于特征模型的造型方法。其中数学方法又分为初等方法(Primary Approach)和代数方法(Algebraic Approach)。初等方法利用预先设定的算法,求解一些特定的几何约束。这种方法简单、易于实现,但仅适用于只有水平和垂直方向约束的场合:代数法则将几何约束转换成代数方程,形成一个非线性方程组。该方程组求解较困难,因此实际应用受到限制;人工智能方法是利用专家系统,对图形中的几何关系和约束进行理解,运用几何原理推导出新的约束,这种方法的速度较慢,交互性不好;特征造型方法是三维实体造型技术的发展,目前正在探讨之中。参数化设计是一种驱动机制,参数驱动机制是基于对图形数据的操作.通过参数驱动机制,可以对图形的几何数据进行参数化修改,但是,在修改的同时,还要满足图形的约束条件,需要约束间关联性的驱动手段约束联动,约束联动是通过约束间的关系实现的驱动方法。对一个图形,可能的约束十分复杂,而且数量很大。而实际由用户控制的,即能够独立变化的参数一般只有几个,称之为主参数或主约束;其它约束可由图形结构特征确定或与主约束有确定关系,称它们为次 约束。对主约束是不能简化的,对次约束的简化可以有图形特征联动和相关参数联动两种方式。所谓图形特征联动就是保证在图形拓扑关系不变的情况下,对次约束的驱动,亦即保证连续、相切、垂直、平行等关系不变。反映到参数驱动过程就是要根据各种几何相关性准则去判识与从动点有上述拓扑关系的实体及其几何数据,在保证系不变的前提下,求出新的几何数据。称这些几何数据为从动点。这样,从动点的约束就与驱动参数有了联系。依靠这一联系,从动点得到了驱动点的驱动,驱动机制则扩大了其作用范围。所谓相关参数联动就是建立次约束与主约束在数值上和逻辑上的关系。在参数驱动过程中,始终要保持这种关系不变。相关参数的联动方法使某些不能用拓扑关系判断的从动点与驱动点建立了联系。使用这种方式时,常引入驱动树,以建立主动点、从动点等之间的约束关系的树形表示,便于直观地判断图形的驱动与约束情况。参数驱动是一种新的参数化方法,其基本特征是直接对数据库进行操作。因此它具有很好的交互性,用户可以利用绘图系统全部的交互功能修改图形及其属性,进而控制参数化的过程;与其他参数化方法相比较,参数驱动方法具有简单、方便、易开发和使用的特点,能够在现有的绘图系统基础上进行二次开发。而且适用面广,对二维、三维问题都适用【10-13】。2.3.5 Solidworks的对象层次结构Solidworks的对象层次结构ActiveX Automation的实质就是利用客户程序去控制服务程序的对象、方法和属性,实现某种功能。也就是说,Solidworks必须将全部ActiveX对象暴露给VB才能实现二者的通信。这样,VB就可以像使用自身的对象一样来操纵Solidworks暴露给它的对象。对象是服务器程序简单而抽象的代表,对象之间一般通过被称为对象模型或者对象层次结构的形式互相联系。不骨是用何种编程语言对Solidworks进行外部开发或在其内部进行开发,都是通过调用Solidworks的对象体系结构来进行的。Solidworks的API编程接口封装了所有的ActiveX对象供编程使用。Solidworks的对象层次结构可以描述为自上而下的树型结构模型,最底层的根对象是S1dWorks对象,其它对象都是它的子对象。其中的父对象与子对象之间的关系并不是继承关系,而是包含关系。也就是说如果VB要与Solidworks的一个特定对象通讯,必须先从solidworks对象对其子对象进行遍历,直到找到该特定的对象。为了方便用户进行二次开发,SolidWorks提供了几百个API函数,用户可以使用Visual Basic、VBA、VisualC+、C#、Delphi等高级编程语言对SolidWorks进行二次开发,建立适合用户需要的、专用的SolidWorks功能模块。同时,由于SolidWorks API及其有关帮助文档都包括在SolidWorks软件中,任何用户都可以对其进行二次开发。不管是采用Visual Basic、VBA、VisualC+还是Delphi对SolidWorks进行二次开发,都是通过SolidWorks的对象体系结构来进行的。这种基于ActiveX Automation技术的SolidWorks API将各种功能封装在SolidWorks对象之中供编程调用。图2.2显示了SolidWorks API中各个对象相互关系,可以利用这张表的关系进行参考编程。图2.2 SolidWorks API的对象层次结构体系2.3.6 SolidWorks的API函数介绍1. SolidWoks的对象模型SolidWorks 的对象模型是一个多层次的对象网络,如图2.3所示。最高级别的对象类是SldWorks ,该对象中封装了很多方法(Methods) , 如OpenDoc2 、ActivateDoc2 、CloseDoc、ExitApp,下面又创建了许多子类, 如ModelDoc、Environment 、Frame。本文将重点介绍ModelDoc 对象,因为大部分绘图操作都在ModelDoc 对象中, 如SelectByID (选择) 、CreateCircle2 ( 画圆) 、CreateLine2 ( 画直线)。ModelDoc 中又创建了PartDoc、AssemblyDoc、DrawingDoc 等子类。其中大部分实体建模操作都在PartDoc 对象中,如FeatureExtrusion (拉伸) 、FeatureRevolve (旋转);而相关的装配操作如AddComponent (插入零部件) 、AddMate (插入配合) 等都在AssemblyDoc 对象中【14】。2. SolidWoks的对象的属性和方法在SolidWorks 创建的对象中,每个对象都有自己的属性和方法,通过调用API 函数实现,反过来,应用SolidWorks 的每一步操作都体现在特定的对象类中。下面以VB 为开发平台介绍其一些常用的API 函数。图2.3 Solidworks对象模型 (1)连接SolidWorks在对SolidWorks 进行二次开发时,首先要建立SolidWorks 的连接,创建SolidWorks 的应用对象:Dim swApp As ObjectSet swApp = CreateObject (SldWorks.Application)通过这个函数,就打开了SolidWorks 的接口,可以调用它的API 函数了。(2)建立新的零件图、装配图创建零件图:Dim Part As ObjectSet Part = swApp.newpart创建装配图:Dim Assem As ObjectSet Assem = swapp.NewAssembly这两个函数创建了一个新的工作区,使我们能够进行建模和装配【15】。(3)选择“选择”可以说是在使用SolidWorks 时用得最多的一个命令,有很多命令在使用时都要选择操作对象,通过调用ModelDoc 对象中的SelectByID 函数来实现:ModelDoc.SelectByID(objectName ,object Type ,x , y , z)这个函数在应用时需要输入五个参数:objectName 表示要选择对象的名称,该名称是SolidWorks在创建对象时按先后顺序自动命名的,如基准面1 、基准面2 、Arc1 、Line3 、D1 草图1 Part1.SLDPRT;object Type 要输入对象的类型,如PLANE (面) 、SKETCHSEGMENT (草图上的对象如直线、圆弧等) 、DIMENSION (尺寸标注);x , y , z 是平面上任一点的坐标值。(4)插入草图在所选平面上插入草图,调用ModelDoc 中的InsertSketch 函数: ModelDoc.InsertSketch ()(5)基本草图绘制命令画直线调用ModelDoc 对象中的CreateLine2 函数:ModelDoc.CreateLine2 (xStart ,yStart ,zStart ,xEnd , yEnd , zEnd ).Const ructionGeomet ry =True xStart 、yStart 、zStart 、xEnd、yEnd、zEnd 分别是直线的起点和终点坐标; Const ructionGeomet ry =True 时表示画中心辅助线。画圆调用ModelDoc 对象中的CreateCircle2函数:ModelDoc.CreateCircle2 (xc ,yc ,zc ,xp ,yp ,zp)xc、yc、zc、xp 、yp 、zp 分别是圆心和圆上一点的坐标值。标注尺寸先通过SelectByID 函数选择要标注的对象,再调用ModelDoc 中的AddDimension 函数:ModelDoc.AddDimension ( x , y , z)x、y、z 为尺寸文本所要放的位置的坐标值。(5)基本实体建模命令拉伸调用PartDoc 中的FeatureExtrusion 函数:PartDoc.FeatureExtrusion(sd ,flip ,dir ,t1 ,t2 , d1 ,d2 ,dchk1 ,dchk2 ,ddir1,ddir2 ,dang1 ,dang2 ,off setReverse1 ,off setReverse2)sd 为TRUE 时表示单向拉伸,为FALSE 时双向拉伸,以0 、1 表示;dir 为TRUE 时表示正向拉伸,为真时有效;dir 为TRUE 时表示反向拉伸,为真时有效; t1 、t2 表示终止类型,可取下列值: 0 (给定深度) 、1 (贯穿) 、2 (为贯穿下一个) 、3 (成形到一顶点) 、4 (成形到一面) 、5 (到离指定面指定的距离) 、6 (两侧对称) ; d1 , d2 表示拉伸的深度; ddir1 、ddir2 为TRUE 时表示带拔模角拉伸;dang1 、dang2 为TRUE时表示向内拔模,为FALSE 是向外拔模;off setRe2verse1 , off setReverse2 控制到离指定面指定的距离,在t1 、t2 为5 时有效。其中d2 、dchk2 、ddir2 、dang2 、off setReverse2 在双向拉伸时有效。旋转调用PartDoc 中FeatureRevolve 函数:PartDoc.FeatureRevolve (angle ,reverseDir ,angle2 ,revType)angle 表示旋转的角度;reverseDir 控制旋转的方向,为TRUE 时表示反向, revTyp 为1 时无效; an2gle2 表示旋转的反向角度,仅当revTyp 为2 时有效;revTyp 表示旋转类型,为0 时单方向旋转,为1 时双向等角度旋转,为2 时双向旋转。倒角调用ModelDoc 中的FeatureChamfer2Type 函数:ModelDoc.FeatureChamferType(chamfer Type , width ,angle ,flip ,otherDist ,vertexChamDist1 ,vertexChamDist2 ,vertexChamDist3)chamfer Type 控制倒角的类型,可取下列值: 1(角度- 距离控制) 、2 (距离- 距离控制) 、3 (顶点-倒角控制) 、4 (两边等距离控制) ;width 表示倒角边距;angle 表示倒角角度,仅当chamfer Type1 为1 时有效;otherDist 表示chamfer Type 为2 时的另一边距; vertexChamDist1、vertexChamDist2 、vertex2ChamDist3 表示chamfer Type 为3 时的三个距离。(6)基本装配命令零件的建模完成后,即可进行零件的装配,先调用swApp 中的NewAssembly 函数新建一个空白装配文档,再通过调用AssemblyDoc 中的AddComponent 函数插入零部件:AssemblyDoc.AddComponent (compName ,x , y , z)compName 表示要加入组件的路径及名称; x ,y , z 表示组件在装配文档中放置的位置。插入配合调用AssemblyDoc 中的AddMate 函数:AssemblyDoc.AddMate (mateType ,align ,flip ,dist ,angle)用mateType 控制配合类型,可取下列值:0 (重合) 、1 (同轴心) 、2 (垂直) 、3 (平行) 、4 (相切) 、5 (距离) 、6 (角度) ;align 控制两配合面的方向,0 (同向对齐) 、1 (反向对齐) 、2 (最近处) ;flip 为TRUE 时表示延缓配合; dist 控制mateType 为5 时的距离; angle控制mateTyp 为6 时的角度【16-17】。3.更多的SolidWorks的API函数介绍在这里只是简要的介绍SolidWorks的API函数,不可能作到全面的认识或是熟悉这些API要了解更多的API知识可以查看SolidWorks的API和插件帮助主题,如图2.3。图2.3 Solidworks API插件帮助主题2.3.7 VB开发Solidworks基本原理1.VB简介VisualBasic语言是美国微软公司推出的Windows环境下的软件开发工具,使用VB可以既快又简单地开发Windows应用软件。Visual是指开发图形用户界面(GUI)的方法。Visual的意思是“视觉的”或“可 视的”,也就是直观的编程方法.在VB中引入了控件的概念。如各种各样的按钮、文本框、复选框等。VB把这些控件模式化,并且每一个控件都由若干个属性来控制其外观、工作方法。这样采用Visual方法无需编写大量的代码去描述界面元素的外观和位置,而只要把预先建立的控件加到幕上.就像使用“画图”之类的绘图程序,通过选择画图工具来画图一样。Basic是指BASIC( beginners all-purposesy mbolicin structionc ode)语言,之所以叫做“VisualBasic”就是因为它使用TBASIC语言作为代码1241. VB在原有的BASIC语言的基础上的进一步发展,至今包含了数百条语句、函数及关键词,其中很多与Windows GUI有直接关系。VB与BASIC之间有着千丝万缕的联系,如果学过BASIC语言的话,看到VB的程序结构会感到很亲切。专业人员可以用VisualB asic实现其他任何Windows编程语言的功能,而初学者只需掌握几个关键词就可以建立实用的应用程序。VB 设计程序在Windows工作环境中,开发应用程序是比较理想的。使用VB不仅可以感受到Windows带来的新技术、新概念和新的开发方法,而且VB是目前众多Windows软件开发工具中效率最高的一个。另外,VB系列产品得到了计算机工业界的承认,得到了许多软件开发商的大力支持。2.VB开发Solidworks原理Solidworks API(Application Programming Interface,应用程序编程接口)是SolidWorks的OLE(Object Linking and Embedding,对象链接或嵌入)应用程序开发接口,用户可以利用它和支持OLE编程的开发工具,如VB、VBA(Excel,Access)、VC等对SolidWorks进行二次开发,建立适合用户需要的、专用的SolidWorks功能模块,在此基础上实现零件及模具的参数化驱动。 Solidworks二次开发通常有两种形式:一是独立应用程序(standalone application),用户程序作为一个独立的应用程序(*.exe),通过API接口调用solidworks提供的服务,完成对solidworks的控制和操作;二是插件形式(Add-Inapplication),用户程序作为一个插件(*.dll)集成到solidworks中去。插件形式下,用户程序跟solidworks程序运行在同一进程空间,运行效率高,而且用户可以在solidworks中添加自己的菜单、工具栏、属性页等,使用户程序跟solidworks程序浑然融为一体。由于插件程序跟solidworks运行在同一进程空间,插件程序的异常会导致solidworks程序的不稳定,因此在做开发时也要更加小心。相对应的独立应用程序跟solidworks程序运行在不同的进程空间,客户程序的异常不会影响solidworks,但由于涉及到跨进程调用,它的效率会相对比较低,而且这种方式下用户不可以在solidworks中添加自己的菜单、工具栏和属性页等。由于VB易学易用,满足基本设计要求,因此,本文采用VB做为开发语言,以插件的形式添加到SolidWorks中。 在采用 VB 所实现的 SolidWorks 二次开发应用中,客户通过 VB 编写的应用程序为客户程序, SolidWorks 是服务程序, VB 编写的应用程序驱动 SolidWorks 完成指定工作。其基本思路是在 SolidWorks 环境中, 任意选定某一型号的标准件, 按照正确的设计关系绘制标准件的模型,当需要生成另一规格的标准件时, 可根据用户给定的相关约束变量参数值, 对已定义好的标准模型的相应约束关系进行修改与求解, 使其几何元素和特征的几何或拓扑关系发生改变, 并引起相关图形元素及关系的联动, 生成所需零件, 即零件设计采用尺寸驱动方式进行设计。由于标准件均为系列化零件, 因此设计时可用 Access 建立各类标准件参数数据库, 供用户设计时选用相应规格零件。本设计用 Access 建立了紧固件、连接件、滚动轴承、键等标准件的参数数据库, 用 VB 编程实现 SolidWorks下各类标准件三维实体图形的生成。系统基本框架如图2.4所示, 即以面向对象的 VB 语言为客户端, 结合 Access建立标准件参数库, 通过 ActiveX Automation 技术控制服务端 SolidWorks 自身二次开发接口 API 函数, 调用其对象、属性、方法, 实现 SolidWorks 的二次开发。 图2.4 系统开发框架图2.3.8数据库技术1.数据库技概括数据库技术是应数据管理任务的需求而产生的,从五十年代以来,随着计算机软硬件的飞速发展,数据管理技术己经经历了人工管理、文件管理和数据库系统三个阶段。20世纪60年代末,软硬件技术的发展,为数据库技术的发展提供了良好的基础,数据库管理系统取代了传统的文件管理系统,在各个领域获得了广泛的应用。数据库系统(DatabaseSystem,简称DBS)是由数据库、数据库管理系统、应用系统、数据库管理员和用户构成的人机系统。数据库(Database,简称DB)是长期存储在计算机上的、有结构的、可共享的数据集合。数据库管理系统(DataBaseManagement System,简称DBMS)是科学地组织和存储数据、有效获取和维护数据的系统软件。它是位于用户和操作系统之间的一层数据管理软件。数据库结构一般分为层次模型、网状模型和关系模型。(1). 层次模型(hierarchalm odel)用树结构表示实体之间的联系,树有结点和连线组成,节点表示实体集,连线表示相连两实体之间的关系,这种关系只能是1:N关系。(2). 网状模型(networkm odel)这种模型允许有零个或多个节点而无父节点,它可直接表示M:N关系。(3). 关系模型(relationalm odel)关系模型由关系、关系上定义的操作和对关系的完整性的规则组成。它的二位表由两部分组成:一是表格的名字和属性的名字,二是具体的数值。关系模型和层次模型、网状模型的区别在于它通过表格数据而不是通过指针连接来表示和实现两实体间的关系。以关系模型为基础的数据库就是关系数据库,具有数据结构简单、符合工程习惯、数据独立性高及数学基础严密等优点,是目前数据库应用的主流。数据库技术应用到CAD/CAM系统中,人们希望能够利用数据库技术有效的管理工程应用中所涉及的图形、图像、声音等更加自然的信息形式,因此工程数据库应运而生。工程数据库是指能满足人们工程活动中对数据处理要求的数据库。它不但要能够处理常规的表格数据、曲线数据等,还必须能够处理图形数据。图形数据既有满足工程绘图的二维数据,又有产品造型所需要的三维设计数据。图形数据一般是网状关系的层次结构,同一种实体可能在不同的使用阶段使用几种不同的表示方法,并且须实现不同表示方法之间的相互转换。在工程数据库管理系统EDBMS (Engineering Data Bases Management System)中,数据的表现形式不再是单一的实际参数,由含参数的过程(子程序)生成产品商数据也是一种必不可少的表现形式【18】。2.数据库接口技术(Access数据库引擎)VisualBasic所编写的数据库应用程序,负责的是与用户的交互。用该程序可以选择数据库中的数据项,并把所选择的数据项按用户的要求显示出来。数据库系统被称为后台系统,通常是关系表的集合。这时就涉及到一个问题,应用程序如何与后台的数据库建立联系呢?首先,数据库要能支持用户的访问,其次,用户的VisualB asic程序可以访问这些数据库,这两点很关键。数据库有三种方式支持应用程序的访问,即通过Access数据库引擎、MicrosoftODBC驱动程序、第三方ODBC驱动程序。VisualBasic6.0应用程序中支持多DBMS来开发数据库,这种方法称作ODBC,ODBC是Microsofts Window的开放式服务体系结构数据库部分,是一个用于访问多种数据库的统一的界面标准。ODBC实际是一个数据库访问库,但是只提供一个统一的应用程序接口(API)。这样利用ODBC可以避免应用程序随数据库的改变而改变。ODBC通过使用数据库驱动程序获得数据库的独立性,驱动程序所提供的标准接口允许应用程序开发者和驱动程序提供者在应用程序之间传递数据【19】。对VisualBasic而言,其内置为Microsoft Access数据库,可以提供不逊色于专业数据库软件的支持,可以进行完整的数据库维护、操作及事务处理。在VisualBasic中,将非Access数据库称为外来数据库。对于FoxPro, dBase, Paradox等外来数据库,虽然借助VisualB asic的DataM anager能够对这些数据库进行NEW,OPEN, DESIGN, DELETE等操作,但在应用程序的运行状态中不能从底层真正实现这些功能。VisualBasic的核心结构是所谓的MicrosoftJET数据库引擎。JET引擎的作用就像是一块“面板”在其上可以插入多种ISAM( IndexedS equentialA ccessM ethod,即索引顺序存取方法)数据库驱动程序。JET引擎为Access格式数据库提供了直接的内建(build-in)支持,这就是Visual Basic对Access数据库具有丰富支持的真正原因。因此,我们利用VisualBasic对Access数据库的方便、实用和直接的内建(build-in)支持,采用Access作为数据源,这为开发机床夹具零部件库带来了极大的方便。3SolidWorks二次开发的一般过程3.1 用VB开发SolidWorks的一般步骤用Visual Basic作为开发工具,因为采用的是DLL动态链接库方式,必须先在Visual Basic中导入所需要的3种类型库:Sldworks 2007 Type Library、Solidworks Constant type Library、Solidworks exposed type libraries for add-in use,然后才能调用Solidworks的对象、方法和属性。程序完成后载入动态链接库时,既可以直接用Solidworks打开所编好的dll文件,也可在插件模块添加新编写好的名字同.dll文件的插件模块。但每次程序的重新编译,都必须在Solidworks中重新导入插件模块。因为每次程序的重新编译,都意味着需要对象类在系统的重新注册。 图3.1 导入所需的类型库进行二次开发的步骤如下:(1) 安装Solidworks和Visual Basic。(2)启动Visual Basic,新建一个工程,导入所需要的3种类型库(如图3.1),然后编写代码。在任何情况下,编写的代码应该类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论