第31卷第4期2003年8月
浙江工业大学学报
JOURNALOFZHEJIANGUNIVERSITYOFTECHNOLOGYVol.31No.4Aug.2003
文章编号:1006-4303(2003)04-0387-04
基于Solidworks的产品特征建模与实现
叶永伟1,梅一珉2
(1.浙江工业大学机电工程学院,浙江杭州310032;2.浙江工业大学信息工程学院,浙江杭州310032)
摘要:主要分析了面向大批量定制的产品特征建模与实现,并且在此基础上,以SolidWorks为产品设计平台,以VisualBasic、SolidWorksAPI为软件开发平台,实现对产品建模和二次开发,具有较好的实用价值。
关键词:产品设计;变型设计;SolidWorksAPI;二次开发中图分类号:TP311.52 文献标识码:A
ProductfeaturemodelingbasedonSolidworks
YEYong-wei,MEIYi-min
1
2
(1.CollegeofMechanicalEngineering,ZhejiangUniversityofTechnology,Hangzhou310032,China;2.CollegeofInformationengineering,ZhejiangUniversityofTechnology,Hangzhou,310032,China)
Abstract:ThispaperanalysistheproductfeaturemodelinganditsrealizationfacingonMC.Onthebasisofthis,wetakeSolidworks,VisualBasicandSolidworksAPIasthemaintoolsfordesigntoaccomplishtheProductmodelinganditssecondarydevelopment.Ithasgoodpracticalvalue.Keywords:
productdesign;development
transfigurativedesign;
SolidWorksAPI;
secondary
0 引 言
计算机辅助设计(CAD)技术已经成为企业提高创新能力,提高产品开发能力,增强企业竞争能力的一项关键技术。目前,在制造行业中,应用CAD进行产品的计算机辅助设计已经较为普遍。随着CAD技术的发展,在产品开发的过程中,人们已不再满足传统的基于二维的产品设计模式,尤其在激烈的市场竞争环境下,面对产品不断融入客户的个性化需求的特点,企业迫切需要以大批量定制(MC)的先进的生产模式作为对策,以满足客户的这种个性化需要。
目前一般的CAD系统都提供了较强设计功能,将设计好的零件装配成产品。但是实际的产品设计是从分析产品的功能开始,经过概念设计、装配设计然后再进行零件设计、设计分析和反馈修改的一个反复的过程。因此在现有三维设计系统的基础上,构建拥有产品特征作为数据库以支持产
收稿日期:2003-04-26;修订日期:2003-05-28
作者简介:叶永伟(19-),男,浙江义乌人,讲师,硕士。・388・
浙江工业大学学报第31卷
品的快速设计显得非常必要,能大大缩短设计周期、降低成本。本文将以Solidworks为技术平台,利用特征的概念对产品进行建模,并实现以尺寸驱动实现零件在装配环境下的变形设计,使的产品的整个实际过程集成到统一的设计环境中,从而能够满足产品从总体设计到详细设计的自顶向下的设计过程。
1 Solidworks开发技术
1.1 Solidworks的特点
Solidworks作为三维设计软件,为用户提供了强大的二次开发能力,使用户能按照自己行业或专业的需要,开发出最适合自己的软件。
SolidWorks支持OLE标准,完全实现了OLE自动化。作为一个OLE服务器,SolidWorks提供了大量的OLE对象,以及这些对象所拥有的方法和属性,用户通过在客户应用程序中对这些OLE对象及其方法和属性的操作,可以在自己开发的应用软件中实现诸如创建直线、构造实体、检查曲面表面参数等几乎所有的SolidWorks软件的功能。
1.2 编程方法
用VisualBasic开发SolidWorks应用时应按以下步骤进行:首先创建SldWorks对象,然后通过创建好的SldWorks对象创建PartDoc、AssemblyDoc等子对象,用这些子对象完成实体的构建、编辑和修改,最后保存结果并关闭SldWorks对象结束该应用。VisualBasic中的Variant类型可用于OLE对象变量的声明,CreateOleObject函数用于创建OLE对象。
1.3 SolidWorksAPI的体系组成
SolidWorks提供了大量的OLE对象用于二次开发,这些OLE对象涵盖了全部的SolidWorks的数据模型,通过对SolidWorks的OLE对象属性的设置和对OLE对象方法的调用,就可以在用户自己开发的系统中实现与SolidWorks相同的功能。
SolidWorks的OLE对象总共可以分为十个大类,数百个对象,涵盖从SolidWorks基本操作如打开、保存等到建模,修改等各个功能,但是需要注意并不是所有的对象都可以被VB所调用。
打开、关闭和退出SolidWorks文SldWorks对象,可以实现应用程序的最基本的操作,如创建、档,设置当前的活动文档,并可以对SolidWorks的系统环境进行设置。
Dimension对象用于设置尺寸标注值和公差标注等内容。
Sketch对象允许获取关于轮廓线的基本信息。
轮ModelDoc对象属于模型层,是SldWorks的子对象。用ModelDoc对象可以实现视图设置、廓线修改、参数控制、对象选择/打开和保存文档、创建编辑特征参量、创建框架等与实体模型相关的各类操作,ModelDoc对象包括PartDoc、AssemblyDoc和DrawingDoc等三个常用的对象。
2 特征建模中尺寸驱动控制的实现
2.1 系统完成的主要目标
本系统利用Solidworks对溢流阀进行建模,然后利用VisualBasic编程。利用Solidworks的API接口对模型进行修改操作,程序中还可以通过数据库对特征库进行管理。系统可以完成的主要目标有:
●数据输入和维护功能:能实现对特征库中的特征及零件进行添加,修改和删除,同时对程序中可以修改的尺寸可以改变其允许的最大和最小值。
●尺寸修改功能:程序中能对菱形垫块的几个尺寸和压紧爪的几个尺寸进行修改,并且能够第4期叶永伟1,等:基于Solidworks的产品特征建模与实现
・3・
根据特征库中允许的尺寸范围对尺寸进行约束。
●特征的替换:实现零件图中的特征的替换功能。
●零件的替换:跟特征替换类似。在装配图中,我们有时也需要对夹具的某些零件进行替换,这其中也要求替换的零件的配合关系与原来的零件的配合关系要保持一致,否则的话就可能会出现模型重建的错误。2.2 系统框架
本系统编程工具用VisualBasic,数据库采用MicrosoftAccess进行编程,根据程序要完成的目标,程序的功能模块主要由三大部分组成:数据维护模块,特征和零件的替换模块,尺寸的修改模块。系统框图如图1。
本系统中特征库是整个系统的基础,每个功能都要从特征库中查找需要的库特征,然后再根据特征名称调用相应的宏操作,完成模型的修改功能。并且在数据维护模块,用户可以根据自己的实际情况改变约束范围,这样特征的修改约束范围就是可变换的。同样的,特征的替换和零件的替换也可以在用户的运用过程中自己添加特征。其过程很简单,在数据库中添加欲加入的库特征,再在FeaturePalette中添加相应的库特征,注意FeaturePalette中特征的名字应该和数据库中相应的特征的名字完全一致,才能实现正确的替换。
图1 系统逻辑设计
3 系统的关键技术
3.1 产品族数据库的建立
首先对产品族所组成的模块进行分析,建立各模块的参数化数据,利用VB的默认数据库Access为每模块建立数据库,如在数据库建成后,可以在应用程序中通过数据控件与特定的数据表连接起来,对所列的数据可进行选择,提供不同的重构件,达到变形设计的要求。在设计时,利用用户输入的主参数作为索引,用Findfirst方法即可读出对应的数据。图2所示为溢流阀装配模型。3.2 产品族的特征建模
SolidWorks将其内部数据以对象的形式组织起来,并构成了一个层次结构。最顶层对象为SolidworksApplication,它是其他对象的父对象,我们可以用VB的函数CreateObject获得对象关联。通过对application对象及其子对象的方法、属性的调用,可以操作图形数据库。宏是SolidWorks从内部编程角度操作其对象的方式,SolidWorks具有强大的宏功能,
这给编程带来了很大便利。以溢流阀阀芯为例(如图3所示),首先,建立阀芯的模型,录制其过
图2 溢流阀装配建模图3 阀芯零件建模
・390・
浙江工业大学学报第31卷
程,建立一宏文件(即内部编程)。然后用变量代替宏文件中的关键数据,如阀芯直径、长度、中心孔径、密封槽规格等等,而这些变量的数据来源即为溢流阀数据库中阀芯类型数据表。建模完成后,使用方法AddComponent即可将模块插入当前装配图中。
3.3 建立应用程序
通过ActiveX自动化技术也可以从SolidWorks运行环境外部对SolidWorks进行操作。我们把VB开发的程序作为客户方(client),而SolidWorks作为服务方(server),VB程序可建立与SolidWorks各级对象(object)的关联;另外,还必须在VB中通过“引用”(reference)加载SolidWorks类型库,使VB识别程序中使用的SolidWorks对象类型、属性和方法。作者把零件建模过程放入参数输入对话框中“确定”按钮的CLICK事件中。每当按下“确定”按钮后,首先获得SolidWorksapplication对象和Modeldoc对象,即当前激活的装配文档对象,然后打开一新的零件图,用于零件建模。我们用GetTitle方法来获得系统自动给出的新零件图的标题,用于后续的装配建模。
4 结束语
本文在深入的研究了当前流行的变型设计方法的实用性,以及SolidWorksAPI的基础上,利用VB对SolidWorks二次开发,实现对现有的三维模型进行变型设计。实践证明,它使用简单方便,迅速可靠,可以大量节省设计人员在装配建模时花费的时间及精力,具有一定的实际意义。参考文献:
[1] 谢桂兰,龚曙光,涂 浩,等.基于变型设计的压力容器参数化设计系统的开发[J].机械设计,2000,2:29-31.[2] 李建军,何卫平,杨海成,等.面向对象的产品结构信息模型管理研究[J].机械工程学报,2001,37(1):83-87.[3] 江思敏,刘向锋,高 志,等.基于配合特征的配合零件链自动生成[J].机械设计,2000,11:28-30.[4] 高广达,徐燕申,林汉元,等.产品模块化中的模块选择算法[J].机械设计,2000,8:5-8.[5] 贾 策,李汉明.SolidWorks2001实践与提高[M].重庆:重庆大学出版社,2001.
(责任编辑:翁爱湘)