基于SolidWorks二次开发的齿轮零件参数化建模研究

来源 :机电一体化 | 被引量 : 0次 | 上传用户:ydaf4rx3
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】本文介绍了以SolidWorks为开发平台的基础上,利用Visual C++对SolidWorks进行二次开发的方法,并实例验证了齿轮零件参数化建模的过程。实例表明通过SolidWorks进行二次开发,实现齿轮零件三维模型的参数化建模,提高了设计的效率。
  【关键词】齿轮设计;SolidWorks;二次开发;Visual C++;参数化建模
  1 引言
  SolidWorks是基于Windows 平台的CAD/CAM/CAE/PDM桌面集成系统,以参数化和特征建模的技术,为设计人员提供了良好的设计环境。在SolidWorks环境中,模型的尺寸、相互关系和几何轮廓可以随时修改,零部件之间和零部件与图纸之间的更新完全同步,能自动进行动态约束检查,具有强劲的复杂曲面造型功能,现已成为主流三维设计软件之一。
  SolidWorks为用户提供的API二次开发接口,由以数百个的功能函数构成,这些API函数使得程序员可以通过程序直接访问SolidWorks。所有的函数都是有关对象的方法或属性,通过对这些对象属性的设置和方法的调用,用户可以在自己开发的程序中对SolidWorks进行各种操作控制,从而完成零件草图的绘制和三维模型的建立。
  本文是基于Windows基础的COM (Compenent Object Model)技术。基于COM技术的Visual C++编程语言开发的DLL(Dynamic Link Library)文件,可以直接嵌入到SolidWorks内部,当成功加载后,应用程序的菜单就直接出现在SolidWorks主菜单上,与SolidWorks自带的插件一样,而且还可以单独测试,进行操作时极大地提高了设计效率,所以是首选的开发方法。
  2 Visual C++对SolidWorks进行二次开发的方法
  2.1 DLL的创建
  基于COM技术的Visual C++编程语言所开发的DLL文件,可以通过三种方式创建:一种是使用SWizard.swx工程向导,第二种是使用ATLObjectWizard向导,第三种是使用用户自定义向导。第二种向导创建DLL文件,相对来说简单实用,开发时间短。在Visual C++中用该向导创建DLL工程,加入自己应用程序的代码,编译链接后生成*.dll文件,也就是插件。
  2.2 DLL的加载
  将动态链接库文件*.dll加载到SolidWorks中,有两种常用的方法:一种是先运行SolidWorks软件,然后点击SolidWorks菜单栏中的[文件]/[打开]菜单命令,在弹出的过滤器中选择Add-Ins(*.dll),最后选择所需的DLL文件加载,确定即可;另一种是先将DLL在注册表中注册成为SolidWorks系统的插件,然后运行SolidWorks,点击[工具]/[插件]菜单命令,在弹出的插件对话框中选择要加载的插件即可。此操作对于一个动态库文件只需做一次,以后启动SolidWorks软件无需再进行加载操作。
  3 齿轮建模过程
  3.1 渐开线直齿圆柱齿轮的基本参数设计
  主要有模数M、齿数Z、压力角α、齿宽Thick、凸台直径A、凸台厚度B、轴孔直径C、键槽尺寸D1*D2。
  3.2 齿轮参数化设计基本思路
  如图1所示。
  3.3 齿轮参数化建模
  本文建模采用了Visual C++ 6.0编程语言对Solid-Works 2012进行二次开发、参数化建模的应用,此环境还需要安装SolidWorks API SDK。
  (1)启动Vsiua1 C++,单击[文件]/[新建]->[工程]选项卡->[ATL COMAppWizard],输入工程的位置和名称:gear,单击[确定]。
  (2)在[Server Type]->[Dynamic Link Library(DLL)]选项和[Support MFC]选项,单击[完成],系统会给出新建工程信息,核对无误后单击[确定]。
  (3)在Visua1 C++的[Class View]标签中,用鼠标右键单击顶部的类图标(gear classes),在下拉列表中选择[NewATL Object]。在弹出的对话框中的[Category]列表中,选择[Solidworks]->[SwAddIn]图标,单击[下一步],在[ATL ObjectWizard]->[Names]标签中,在[Short Name]中输入使用的ATL对象类名:gearobj。其他标签选用默认的设置,点击[确定]按钮。
  (4)在[Class View]标签中,右击Igearobj接口,选择[Add Method],在弹出的[添加方法至界面]对话框的文本框中输入函数名:gearmethod,单击[确定]按钮。
  (5)在[Resources View]->双击[String Table],双击表中的空白行,在表中添加三个String资源,分别是:ITEM、METHOD和HINT,如图1所示。然后对gearobj.cpp文件的AddMenus()函数进行编辑,在零件菜单下添加代码,如图3所示。
  图2 添加“String”资源
  Fig.2 Adding the resource of String
  图3 添加AddMenus()的代码
  Fig.3 Adding the code in AddMenus()
  (6)在[Resources View]标签中,用右键的快捷菜单[Insert Dialog]增加一个对话框,用与输入齿轮的各项参数,对话框如图4所示。
  图4 齿轮参数输入对话框   Fig.4 The input dialog of Gear Parameters
  (7)双击对话框,建立对话框类GearParameter,并建立Edit对应的变量m_M、m_Thick、m_A、m_B、m_C、m_D1、m_D2,均是Double值,m_Z为Int值,初值在GearParameter.cpp中设定,如图5所示。同时在gearobj.cpp文件中添加包含对话框头文件的语句#include "GearParameter.h"和#include "resource.h",建立相应的响应函数。
  图5 建立Edit对应的变量
  Fig.5 Building relevant Variables of Edit
  图6 消息映射对话框
  Fig.6 The dialog of Message mapping
  (8)成员函数和变量建好后,可以编辑代码:
  打开GearParameter.cpp编写如下:
  1)BEGIN_MESSAGE_MAP(GearParameter, CDialog)
  2) //{{AFX_MSG_MAP(GearParameter)消息映射
  3)ON_BN_CLICKED(IDIDOK,OnOK)
  4)ON_BN_CLICKED(IDIDOK,OnCancel)
  5)//}}AFX_MSG_MAP
  6)END_MESSAGE_MAP()
  (9)在gearobj.cpp文件中对Cgearobj::gearmethod()函数进行编辑,添加的部分代码如下:
  AFX_MANAGE_STATE(AfxGetStaticModuleState())
  HRESULT retval;
  //得到当前活动文档
  CComPtrpModel;
  m_iSldWorks->get_IActiveDoc2(&pModel);//创建ModelDoc2接口指针
  retval=pModel->InsertSketch();//插入一个草图
  ......
  //相关参数计算
  d=m*z;//分度圆直径:
  db=d*cos(alpha);//基圆直径:
  df=d-2*m;//齿根圆直径
  da=d+2*m;//齿顶圆直径:
  //渐开线的参数方程:
  rb=db/2;
  alphak=t*45;
  r=rb/cos(alphak);
  theta=tan(thetak)-thetak;
  x=r*cos(theta)+r*sin(theta)*theta*pi/180;
  y=r*sin(theta)-r*cos(theta)*theta*pi/180;
  ......
  //利用特征函数,生成旋转实体
  CComPtrpFtManager;
  pModel->get_FeatureManager(&pFtManager);//获取FeatureManager的接口指针
  CComPtrpFeature;
  pFtManager->FeatureExtusion2(True,False,False,0,0,A,0,False,False,False,False,0,0,False,False,False,False,True,True,True,0,0,False);//调用旋转特征函数生成拉伸特征,即得到齿轮实体
  (10)打开gear.cpp文件,在头文件的语句中,写上#include "GearParameter.h"和#include "resource.h"后,通过菜单栏上的[编译]/[全部重建],对所编制的齿轮设计建模程序进行编译。
  4 加载与运行
  编译通过后,运行SolidWorks软件,打开新建零件,再单击菜单栏[文件]/[打开]菜单命令,在弹出的过滤器中选择Add-Ins (*.dll),最后选择所需的DLL文件,加载插件“Gear”及子菜单“齿轮设计”,如图7所示。
  单击“齿轮设计”子菜单,会弹出如图4的“齿轮参数输入对话框”,在对话框中输入相应的参数,就会在SolidWorks中自动生成一个齿轮实体,如图8所示。改变对话框中的数据大小,就会得到不同的齿轮实体,这就是参数化变量驱动的结果。
  图7 加载插件
  Fig.7 Loading the Plugin
  图8 齿轮设计建模结果
  Fig.8 the modeling result of designing a gear
  5 结论
  本文分析研究了基于SolidWorks平台,利用Visual C++进行二次开发,实现机械零件参数化建模的过程。在实际应用中,通过以上介绍的方法,解决了重复零件的设计问题,此插件可以定制用户经常使用的零件模板,极大地改善了结构相似的零部件修改和设计的手段,提高了产品的设计效率,缩短了新产品的设计周期,具有较强的应用价值。
  参考文献:
  [1]吴晓燕.基于SolidWorks二次开发的机械零件参数化建模研究[J].科技信息,2010(08).
  [2]姚敏敏等.基于SolidWorks二次开发的精冲模设计系统[J].锻压装备与制造技术,2009(01).
  [3]李慧平.基于SolidWorks二次开发的专用夹具CAFD系统研究[D].郑州大学.2010.
  [4]江洪等.SolidWorks二次开发实例解析[M].北京:机械工业出版社,2004.
其他文献
为减少空气污染,印度近日发明了一种太阳能自行车。新型自行车可在太阳能动力和人力驱动自由切换。
安全工作作为部队建设的基础性、经常性工作,事关官兵的切身利益、事关战斗力的生成水平、事关整体的发展大局。在改革调整的敏感时期,72641部队坚持“强化忧患意识促整改、打
如果说军交运输是后勤保障的“生命线”,那么汽车兵则是军交运输的“传动轴”,一辙一印推动系统安全向前发展。新时期新形势下,汽车分队管理呈现出新问题、新特点.必须加强汽车分
在建军90周年之际,国产电影《战狼2》持续热映,创下多个国内第一。除了商业层面的成功,《战狼2》在宣扬爱国主义、国防教育方面无疑同样超赞。此片看完最大的感受是,平时看重的
本文综述了食品粉碎前处理技术,如干燥粉碎、微波热力辅助粉碎、冷冻粉碎、定向生物酶解及干法分级粉碎等,阐述了技术的原理及特点,分析了这些前处理技术在食品加工领域的应
伴随着时代的迅速发展,我国的公路建设进行了多方面的优化和发展,各种建设技术已经有了本质性的转变。而在公路路基路面设计当中,软基处理技术属于十分重要的技术内容,通过对
随着军事高科技的不断发展及在军用车辆上的运用.我军车辆装备技战术性能的转变对汽车驾驶员的技战水平提出了更高的要求。司训机构教练员队伍能力的强弱将直接影响新训汽车驾
2013年1月31日,中国欧盟商会在北京发布《中国对欧盟境外投资报告》(简称《报告》)。《报告》显示,中国企业对欧投资热情高涨前景向好,但相关经营环境依然存在挑战。
一、后勤信息网络现状后勤信息网络是实现后勤信息化的前提,是建设向信息化转型后勤的基础工程,是后勤保障质量的保证,是现代后勤战争的重要手段。经过二十多年的发展,后勤信息网
当前,施工企业的数量不断增加,施工企业面临着越来越激烈的竞争,为了在激烈的市场竞争中占据有利地位,施工企业必须关注企业内部的管理制度,通过内部的发展推动企业的整体发展。在