此页面上的内容需要较新版本的 Adobe Flash Player。

获取 Adobe Flash Player

当前位置:首页>>广州有道有限元>>Solidworks有限元分析及机构运动仿真

SolidWorks二次开发在机械零件设计中的应用与研究

2012-02-25 10:08  by:设计培训  来源:广州有道有限元

SolidWorks二次开发在机械零件设计中的应用与研究

 

0 引言
     SolidWorks是一套基于Windows的CAD桌面集成系统,支持参数化特征造型技术。虽然SolidWorks所提供的功能非常强大,但要使其在我国企业中真正发挥作用,使常用的或重复的任务自动化,提高效率,就必须对其进行本地化、专业化的二次开发工作。本文是在基于轴系结构设计系统的研制上产生的,应用Solidworks二次开发来自动生成零件,并在Solidworks环境下完成自动装配。

 

1 SolidWorks二次开发原理
     SolidWorks基于COM(Component Object Model,组件对象模型),完全支持OLE(Object Linking and Embedding,对象的链接与嵌入)标准,实现了OLE自动化。为方便用户进行二次开发,SolidWorks提供了几百个API(Application Programming Interface,应用程序接口),这些API函数是SolidWorks的OLE或COM接口。SolidWorks的API接口分为两种:一种是基于OLE Automation的IDispatch技术,通过IDispatch接口暴露对象的属性和方法,以便在客户程序中使用这些属性并调用它所支持的方法。另一种开发方式是基于Windows基础的COM。
     SolidWorks API为用户提供了完全面向对象的类体系,是一个自上而下的多层次的树型网络结构,其部分组织结构关系如图l所示。它包括对象的类型、属性和方法。SolidWorks是根目录对象类,位于应用程序的底层,是访问SolidWorks API所有对象的入口。开发者通过操纵对象的属性和调用对象的方法建立自己的应用程序。

2 SolidWorks二次开发工具
     任何支持COM和OLE的编程语言都可以成为SolidWorks的开发工具,如VB、VBA、C、VC++等。开发者可以根据自身的条件、工具的特点,选择一种适合的开发工具。
     Visual Basic(VB)是运行在Windows环境下的一种可视化编程语言,使用面向对象的编程方法(OOP),它所具有的图形设计工具、结构化的事件驱动编程模式和开放的环境,可以使用户即快又方便地编写出Windows下的应用程序。
     在SolidWorks中通过宏录制可以记录SolidWorks用户的整个产品设计过程,把用户的界面菜单操作所用到的SolidWorks对象、方法都一一记录下来,其语法完全符合Visual Basic。根据宏文件中的对象和方法在自己的应用程序中合理调用,通过对变量的控制就可实现产品的参数化设计。在二次开发过程中,宏录制文件中的许多对象、方法可以直接在Visual Basic应用程序中应用,简化了开发过程。

 

3 机械零件参数化设计实现
    3.1 零件二次开发的过程
    主要论述通过VB语言对SolidWorks进行二次开发,其主要流程如下:
    3.1.1 建立零件的数据库
    首先分析机械零件有关数据,利用VB的默认数据库Access为每一种零件建立数据库,如齿轮参数数据库,联轴器参数数据库等。在数据库建成后,可以在应用程序中通过数据控件与特定的数据表连接起来。利用用户输入的主参数作为索引,用Findfirst方法即可读出对应的数据。
    3.1.2 分析零件的结构特征,建立实体模型
    首先,针对要建立的实体,需要先分析其结构,区别特征的主次,利用SolidWorks建立零件特征,建立宏文件,有些操作宏文件无法记录,需要调用相关API绘图函数。实现关键数据变量化,如齿轮分度圆商径、齿轮宽度等,而这些变量的数据来源即为齿轮数据库下的某种齿轮类型数据表。建模完成后,使用AddComponent4方法即可将零件插入当前装配图中。
    3.1.3建立应用程序
    VB开发的程序作为客户方(client),而SolidWorks作为服务方(server),VB程序可建立与SolidWorks各级对象(object)的关联;另外,还必须在VB中通过“引用”(reference)加载SolidWorks类型库,使VB识别程序使用的SolidWorks对像类型、属性和方法。
    3.2齿轮联轴器二次开发中的关键技术
    以机械零件中的齿轮联轴器为例介绍二次开发中的关键技术。
    3.2.1 联轴器数据库技术
    CL6型号齿式联轴器的部分标准数据。

建立数据库,在Ⅶ程序中引用数据库,就可以通过程序查询联轴器的国家机械标准信息。选择联轴器需要参考联轴器的转矩和转速等信息,需要在程序中将联轴器的数据信息加载到联轴器设计的人机界面当中,供设计人员参考。
    齿轮联轴器需要做到全参数化的有齿数、模数、压力角、轴径、键槽尺寸及相关安装尺寸等。
    实现模型创建,需通过VB环境下的数学模型计算,得出重要数据。对于齿轮联轴器,最重要的是齿轮渐开线的计算。

在VB环境中,建立渐开线直角坐标方程 

联立方程组,利用循环语句来实现渐开线的计算。再将数据传递给ModelDoc2:SketchSpline方法绘制轮齿草图,调用FeatureManager::FeatureExtmsion2方法拉伸轮齿。



 

3.2.2 零件、装配文档的创建
    SolidWorks对象是SolidWorks API中最高级的对象,它提供了SolidWorks API中所有对象的直接或间接接口。通过该对象可以控制SolidWorks软件的执行或退出。在VB中利用Create Object方法来获得Solidworks对象,利用该对象的activedoc方法可以获得当前Solidworks文件对象。
    Set swApp=CreateObject(”SolidWorks.Application”)
    Set Part=swApp.ActiveDoc
    //创建应用程序,激活实体文件
    Set Newpart=swApp.NewDocument(”D:\Program Files\SolidWorks\data\templates\零件.prtdot”,0,0#,0#)//新建零件文件
    Set Newpart=swApp.NewDocument(”D:\Pwgrm-Files\SolidWorks\data\templates\装配体.asmdot”,0,0#,0#)
    //新建SolidWorks装配文件
    3.2.3零件自动建模实现
    创建了新的零件文档后,通过定义对象与数据,调用创建草图、实体的API函数来进行零件参数化建模代码的编写。
    Dim swApp As Object//定义应用程序对象
    Dim Part As Object//定义零件对象
    Dim boolstatus As Boolean/定义布尔变量
    Dim longstatus As Long,longwamings As Long//定义变量为长整型
    Dim m As Double//定义模数
    Dim Z As Double//定义齿数
    Dim pi As Double//定义pi的近似值
    需要调用的API有:
    ModelDocExtension::SelectBylD2//选择草绘平面和创建特征用到的轮廓
    ModelDoc2::CreateCircle2、ModelDoc2::CreateLine2、ModelDoc2::SketchRectangle//创建圆、直线、矩形草图。
    FeatureManager::FeatureExtrusion2、FeatureManager::Feattlr|eRevolve//创建拉伸、旋转特征。
    FeamreManager::FeatureCimlarPattem//阵列齿轮联轴器轮齿
    ModelDoc2::Parameter//零件草图标注,实现尺寸参数化
    3.2.4 自动装配实现
    创建了新的装配文档后,向装配体中添加组件。先调用SolidWorks::OpenDoc6方法打开所要添加的组件,再使用AssemblyDoc::addcompo.nent4函数往装配体中插入零部件。
    在Solidworks中,可以使用变换确定或者移动一个部件在装配体中的物理位置。所有零件和装配体都有它们各自的原点,当装配体空间与部件空间不一致时,要使用变换来设置或获得部件相对于装配体的距离和旋转角度。如果半联轴节原点与装配体原点不同且不同轴,那么AddComponent4方法的位置参数必须由半联轴节中心乘以半联轴节部件相对于装配体原点的变换来确定。调用MathUtility::CreateTmnsfonn方法用来创建MathTransform对象,MathTmaaform对象是用于操作部件变换信息的接口。
    对零件添加配合关系之前先使用ModelDocExtension::SelectByID方法选中待配合的零件上的几何元素,然后使用AssemblyDoe::Addmate3方法定义配合关系。如果之前已经定义过相应的用于配合的基准面和基准轴,会使配合时选取待配合元素变得更为容易。做配合时,需要经常选择到零件的面、线等,所以主要的问题在于如何选择合适的面、线,同时需要熟练掌握AssemblyDoc::AddMate3函数的使用。在得到一个组件(component)或者一个特征(feature)时,可以使用Igetfaces、Igetfirstface、Igetnextface等方法遍历一个组件或特征等的各个面,来达到选择面的目的。
    AssemblyDoc::Addmate3函数的功能是添加配合关系到选定的部件,使之形成配合,使用格式为:pMa.teObjOut=AssemblyDoc.AddMate3(mateTypeFmmEnum,alignFromEnum,flip,distance,distAbsUpperLimit,distAbsLowerLimit,gearRatioNumerator,gearRatioDenominator,angle,angleAbsUpperLimit,angleAbsLowerLimit,ForPositioningOnly,errorStatus),其中mateTypeFormEnum表示配合类型,alignFromEnum表示对齐方式,分别为:SW.MateAlignALIGNED(同向对齐)、swMateAlignANTLALIGNED(反向对齐)、swMateAlignCLOSEST(最近处对齐),gearRatioNumerator表示齿轮配合分子值,gearRatioDenominator表示齿轮配合分母值。
SolidWorks API在swconst.h and swconst.bas中定义的swMateType-e列表中定义了以下11种装配关系,分别是:swMateCONCENTRIC(重合)、swMateCONCENTRIC(同心)、swMatePERPENDICULAR(垂直)、swMatePARALLEL(平行)、swMateTANGENT(相切)、sw-MateDISTANCE(距离)、swMateANGLE(角度)、swMateUNKNOWN、swMateSYMMETRIC(对称)、swMateCAMFOLLOWER(凸轮)、swMateGEAR(齿轮)。

 

4 开发人机交互界面及运行结果
      本示例基于作者研制的轴系结构设计系统。以Visual Basic语言为开发平台通过调用SolidWorks API函数建立齿轮联轴器模型,操作界面。选择需要的齿轮联轴器类型,点击“三维模型建立”即可实现在SolidWorks中自动创建相应型号的联轴器模型。重新选择型号,点击按钮,新的模型将在Solidworks环境中重生,程序无需更改。

      CL6齿式联轴器装配操作界面如图4所示。添加装配实体,选择配合元素与方式,即可在Solidworks环境下实现联轴器零件的自动装配。

      最终在Solidworks环境下得到齿轮联轴器实体效果图。

相关标签搜索:SolidWorks有限元培训  二次开发  广州有限元培训  solidworks培训  CAD培训  ansys培训  solidworks  proe培训  运动仿真  有限元FEA  

编辑

姓      名:

培训课程:

联系电话:

联系Q Q:

请留下您的有效联系方式,以便我们能联系到您 ^v^

验证码: 验证码

客服在线请直接联系我们的客服,您也可以通过上面的方式进行在线报名,我们会及时给您回复电话,谢谢!

广州总部:广州市东风东路733号羊城同创汇编辑楼12楼

电话:020-83322285

137-1124-1980

培训QQ咨询:

项目QQ咨询:

点击图标或添加QQ:503841570

E-mail:fea@020fea.com

广州详细交通线路 >>>

东莞分公司: 东莞市莞城区莞太路34号创意产业园11号楼5楼

手机:133-3285-6491

培训QQ咨询:

项目QQ咨询:

点击图标或添加QQ:503841570

E-mail:fea@020fea.com

东莞详细交通线路 >>>

佛山分公司:佛山市禅城区季华一路28号智慧新城T15栋4楼401A

手机:133-3285-6491

培训QQ咨询:

项目QQ咨询:

点击图标或添加QQ:2459395568

E-mail:fea@020fea.com

佛山详细交通线路 >>>