华 北 工 学 院 学 报
JOURNALOFNORTHCHINAINSTITUTEOFTECHNOLOGY
Vol.25 No.3 2004
(SumNo.95)
文章编号:100625431(2004)0320177204
基于SolidWorks平台的斜齿轮的三维造型
Ξ
苗鸿宾,乔峰丽
(华北工学院机械工程系,山西太原030051)
摘 要: 基于SolidWorks平台提出一种斜齿轮三维造型化通用设计方法.该方法利用SolidWorks软件的相关功能,生成斜齿轮的端面和法面轮廓线,并沿螺旋线扫描获得斜齿轮廓面,最终使用VC++6.0和
.此方法具有造型速度快,精度高的优点,为机械产品SolidWorks软件API实现对斜齿轮的三维精确建模
的快速设计奠定了基础.
关键词: 斜齿轮;SolidWorks;三维造型
中图分类号: TH132.4;TP39 文献标识码:A
3DModelingoftheHelicalGearsBasedonSolidWorks
MIAOHong2bin,QIAOFeng2li
(Dept.ofMechanicalEngineering,NorthChinaInstituteofTechnology,Taiyuan030051,China)
Abstract:Auniversal3Ddesignmethodofthehelicalgearsbasedonsolidworksisintroduced.Byusingtherelatedfunctionsofsolidworks,thetransverseandnormalprofilesofhelicalgearsaregenerated.ThepaperalsodescribeshowtouseAPIofSolidWorksandVC++6.0tocarryoutprecise3Dmodelingofhelicalgears.Thismodelingmethodisfastandaccurate,whichisbeneficialtothefastdesignofme2chanicalproducts.
Keywords:helicalgear;SolidWorks;3Dmodeling
0 引 言
SolidWorks是基于Windows的三维实体造型软件,作为一种工程绘图软件,以其强大的三维绘图
功能,实现了工程设计人员一直梦寐以求的从三维实现到二维图纸绘制的具有革命性的设计方法,使设计人员能够更清晰方便地表达自己的设计思想.作为一种主流的三维设计软件,SolidWorks被广泛地使
用,它具有参数化特征造型、曲面造型和大型装配处理功能.与此同时,SolidWorks的二次开发平台也以其开发方法容易,强大的功能以及开发和维护成本低等一系列优点而被广大的技术人员所采用.任何支持OLE(ObjectLinkingandEmdedding,对象的链接与嵌入)和COM(ComponentObjectModel,组件对象模型)的编程语言都可以作为SolidWorks的开发工具.SolidWorksAPI是SolidWorks的应用程序编程接口.应用程序编程接口是将软件开发过程中的部分内部资源按照一定的规则和形式进行封装,然后提供给用户的开发资源.
计算机辅助造型技术已在产品设计、工程分析、快速成型等技术领域获得了广泛地应用.在应用CADCAM技术设计制造齿轮产品时,齿轮的三维实体造型是一个亟需解决的技术难题,如齿轮造型精度不高,将直接影响有限元分析,虚拟样机设计的仿真结果,并影响到齿轮产品的CAM制造精度.目
Ξ收稿日期:2004204212
作者简介:苗鸿宾(1970-),男,讲师,博士生.主要从事机械设计理论研究.
© 1995-2006 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.
178华北工学院学报2004年第3期
前,对工程中最常用的渐开线圆柱直齿轮的三维造型理论与方法已进行了大量的研究,并取得了较为成熟的研究成果.对于结构更为复杂的斜齿轮,因为齿轮轮廓线不是标准曲线,而且其齿面为螺旋渐开线齿廓曲面,因此三维造型难度更大.在SolidWorks中绘制斜齿轮传动机构,其绘制过程有一定的难度.本文利用VC++6.0通过API对SolidWorks进行二次开发,完成了斜齿轮的三维造型.本文使用的方法是首先生成齿轮求得斜齿轮的端面轮廓线,然后通过投影关系获得其法面轮廓线,将法面轮廓线沿螺旋线扫描获得斜齿轮廓面,最后完成整个齿轮的造型.
1 三维模型的建立
1.1 端面轮廓曲线的方程
齿轮上的所有轮齿都具有相同的结构特征.进行斜齿轮造型设计时,首先需求取斜齿轮的端面齿形,斜齿轮端面齿形为渐开线.
如图1所示[1],点A为渐开线在基圆上的起始点,点K为渐开
线上任意点,它的向径用rk表示,展角用Η.k表示
渐开线的极坐标方程为
rk=
rbcosΑk
,
ΗΑk=tanΑk-k,
则圆的渐开线参数坐标方程是
x=rkcosΗk,y=rksinΗk,
图1 斜齿轮端面渐开线
Fig.1 Involuteofhelicalgear
式中 Αk是对应向径rk的渐开线的压力角;rb为基圆半径,rb=rcosΑ=
mz2
;Α为分度圆压力角,一般情况下Α=20°.cosΑ
对于斜齿轮端面齿廓,AB和CD为渐开线,关于OG轴对称,AD和BC是圆弧.
渐开线齿轮的齿廓一般都比较复杂,有其严格的数学方程轨迹,一般的CAD软件均不提供渐开线绘制的功能,但是一般的CAD软件具有三次B样条曲线的功能.本文利用了SolidWorks中的B2Spline曲线的功能,在渐开线齿形轮廓上找若干点,通过调用SolidWorks中的API函数SketchSpline,把各个点连接起来,轮廓取的点愈多,连接这些点所得到的曲线越逼近渐开线轮廓.1.2 法面轮廓曲线
由斜齿轮齿面的形成原理可知:斜齿轮在端面上具有渐开线齿形,但由于斜齿轮的轮齿是螺旋形的,故在垂直于轮齿分度圆螺旋线的截面即法面的齿形不是渐开线,对法面的齿形一般都采用近似的方法来计算,但是得到的齿形精度很低.也可用数值解法求解法面齿形,但是过程和表达较为复杂.本文可以直接利用SolidWorks的曲线功能,把在端面上精确绘制的渐开线投影到法面上,就可直接得到斜齿轮精确的法面齿形,如图2所示.
图2 端面齿形和法面齿形的关系
Fig.2 Relationbetweenendingprofileofgear andnormalprofileofgear
图3 螺旋线图
Fig.3 Helicalline
© 1995-2006 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.
(总第95期)基于SolidWorks平台的斜齿轮的三维造型(苗鸿宾等)179
1.3 螺旋线的生成
为了从空间上生成一个轮齿,需确定齿轮齿廓的拉伸路径.对于直齿轮拉伸路径为一条直线,而斜齿轮拉伸路径为一条空间螺旋线.将斜齿轮沿其分度圆面展开,变成为一个矩形,如图3所示.矩形的高就是斜齿轮的齿宽B,其长度是分度圆的周长Πd,这时分度圆上的轮齿的螺旋线便展开成为一条斜直线,其与轴线的夹角即为斜齿轮的螺旋角Β.在SolidWorks中使用绘制螺旋线的功能,控制螺距和圈数,自动绘制螺旋线.
2 程序实现
2.1 程序框图
程序框图如图4所示.
2.2 SolidWorks二次开发的关键问题2.2.1 SolidWorks中的OLE自动化技术[2]
.作为一个OLE服务器,SolidWorks提供了SolidWorks支持OLE标准,完全实现了OLE自动化
大量的OLE对象以及这些对象所拥有的方法和属性.用
户通过在客户应用程序中对这些OLE对象及其方法和属性的操作,可以在自己开发的应用软件中实现诸如创建直线、构造实体、检查曲面表面参数等几乎所有的Solid2
.Works软件的功能
SolidWorks提供了大量的OLE对象用于二次开发,这些OLE对象涵盖了全部SolidWorks的数据模型.在SolidWorks中常用的OLE对象有SldWorks,ModelDoc,.SldWorks对象PartDoc,AssemblyDoc,DrawingDoc等
开始读取参数绘制齿轮基体绘制端面齿廓曲线投影齿廓到法面分度圆柱上生成
螺旋线
图4
Fig.4
斜齿轮法面齿廓沿螺旋
线扫描,生成单个齿齿沿轴线圆周阵列绘制剩余部分(如键
槽、轴孔等)建立约束方程
结束
位于应用程序的底层,可以实现应用程序的最基本的操
作,如创建、打开、关闭和退出SolidWorks文档.Model2
.用Model2Doc对象属于模型层,是SldWorks的子对象
Doc对象可以实现视图设置、轮廓线修改、参数控制等相
流程图
Flowingdigram
关各类操作.ModelDoc对象包括:PartDoc,AssemblyDoc,DrawingDoc等3个常用的对象.PartDoc对
象主要构建新零件,AssemblyDoc对象主要完成装配体功能,DrawingDoc对象完成制图操作.
2.2.2 用VC++6.0开发SolidWorks应用模块的步骤
1)首先创建SldWorks对象,然后通过创建好的SldWorks对象构建ModelDoc,PartDoc等子对象,
用这些子对象完成实体的构建、编辑和修改.
2)在SolidWorks的软件包Samples目录下找到appComm和comuserdll两个文件夹并复制到同一文件夹下,打开comuserdll.dsw就是一个VC界面的开发环境,能在基础上对SolidWorksi386userdll进行二次开发.对USERDLL.CPP文件中的函数的开头都要进行SolidWorks资源的创建,以获得.SolidWorks的开发环境
获取SW的资源,而不使用Windows的资源
HINSTANCEmyInstance=NULL;
HINSTANCEcurrentResource=::AfxGetResourceHandle();
.dll\"));myInstance=::LoadLibrary(T(\"userdll
::AfxSetResourceHandle(myInstance);恢复原始资源
© 1995-2006 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.
180华北工学院学报2004年第3期
::AfxSetResourceHandle(currentResource); ::FreeLibrary(myInstance);
3)菜单的修改.在VC的SolidWorks二次开发环境中找到menus.cpp文件,添加所需的菜单.4)对SolidWorks对象进行基本操作,通过创建SldWorks等对象的方法如下:
获得绘图环境pSolidWorks=UserApp->getSWApp();
获得激活的ModelDoc对象指针pSolidWorks->get_IActiveDoc2(&pModelDoc);
插入草图pModelDoc->InsertSketch();
草图中绘制一个圆pModelDoc->ICreateCircle2(0,0,0,xp1,yp1,0,&retval1);
将ModelDoc转化为pModelDoc->QueryInterface(IIDIPartDoc,(LPVOID3)&pPartDoc);PartDoc
3 应用实例
应用实例如图5,图6所示.
4 结束语
本文基于SolidWorks平台实现了斜齿轮实体的全部参数化设计,解决了齿廓造型的难题,可大大
提高设计速度和造型的精度,具有广泛的应用价值.
参考文献:
[1] 申永胜.机械原理[M].北京:清华大学出版社,1999.
[2] 江洪.SolidWorks2003二次开发基础教程[M].北京:电子工业出版社,2003.
© 1995-2006 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.
因篇幅问题不能全部显示,请点此查看更多更全内容