齿轮参数化设计.pdf

基于soildwork的齿轮参数化建模设计

收藏

压缩包内文档预览:(预览前20页/共49页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:23161811    类型:共享资源    大小:4.03MB    格式:RAR    上传时间:2019-11-07 上传人:qq77****057 IP属地:江苏
36
积分
关 键 词:
基于 soildwork 齿轮 参数 建模 设计
资源描述:
基于soildwork的齿轮参数化建模设计,基于,soildwork,齿轮,参数,建模,设计
内容简介:
内蒙古科技大学 本科生毕业设计说明书(毕业论文) 题 目:基于 solidworks 的渐开线直齿圆柱齿轮参数化设计 学生姓名:李振军 学 号:2002041228 专 业:机械设计制造及其自动化 班 级:机 2002-2 班 指导教师:李 震 老师内蒙古科技大学毕业设计说明书(毕业论文) 目 录 摘 要.错误!未定义书签。错误!未定义书签。 Abstract .错误!未定义书签。错误!未定义书签。 第一章 引 言.1 1.1 SolidWorks软件简介.1 1.1.1功能描述.1 1.2 CAD技术在工程设计中的应用及意义.31.2.1 CAD的作用.3 1.2.2国内外一些流行的软件比较.4 1.3我国CAD技术现状及发展趋势.8 第二章 二次开发平台及语言.10 2.1二次开发的概念.10 2.1.1 概念.10 2.2二次开发的发起.10 2.2.1发起原因.10 2.3 SolidWorks二次开发介绍.102.3.1 怎样开发 SolidWorks.10 2.3.2 选择开发语言.11 2.3.3 开发的基本思路 .11第三章 渐开线直齿圆柱齿轮的参数化设计.11 3.1 渐开线的形成及数学建模11 II内蒙古科技大学毕业设计说明书(毕业论文) 3.1.1 形成原理及建模.12 3.2 二次开发调用函数.13 3.2.1 调用函数的关系13 3.2.2 定义接口函数.13 3.3 参数化数学模型14 3.3.1 驱动参数.14 3.3.2 建模程序.14 第四章 结论.51 参考文献.51 附录 III内蒙古科技大学毕业设计说明书(毕业论文) 2.3.3 开发的基本思路 2.3.3 开发的基本思路 1. 录制一个简单实体的创建过程,提取 “宏”语句。 2. 再 Visual Basic 6.0 中编辑宏语句,找到接口语句,用来调用 SolidWorks2006的 API。 3. 运用渐开线函数建立计算关键点的坐标值。 4. 调用样条曲线命令拟合渐开线,绘制出标准齿形。 5. 调用拉伸命令,拉出齿轮实体。 6. 调用阵列命令,得到完整齿形。 7. 拉伸出凸台。 8. 切制轴孔和键槽 第三章 圆柱渐开线直齿轮 3D 参数化设计 第三章 圆柱渐开线直齿轮 3D 参数化设计 3.1 渐开线的形成及数学建模 3.1 渐开线的形成及数学建模 3.1.1 渐开线的形成 3.1.1 渐开线的形成 如图所示,当一直线 BK 沿着一圆周做纯滚动时, 直线上任意点 K, 就是该圆的渐开线。这个圆称为渐开线的基圆,它的半径用 rb 表示,直线 BK 叫做渐开线的发生线;角 k 叫做渐开线 AK 段的展角。 渐开线的性质 1.发生线沿基圆滚过的线段长度等于基圆上被滚过的相应弧长。 2.渐开线上任意一点法线必然与基圆相切。换言之,基圆的切线必为渐开线上某点的法线。 因为当发生线在基圆上作纯滚动时, 它与基圆的切点B是发生线上各点在这一瞬时的速度瞬心, 渐开线上 K 点的轨迹可视为以 B 点为圆心,BK 为半径所作的极小圆弧,故 B 点为渐开线上 K 点的曲率中心,BK 为其曲率半径和 K 点的法线,而发生线始终相切于基圆,所以渐开线上任意一点法线必然与基圆相切。 3.渐开线齿廓上某点的法线与该点的速度方向所夹的锐角称为该点的压力角。 1内蒙古科技大学毕业设计说明书(毕业论文) 4.渐开线的形状只取决于基圆大小。 5.基圆内无渐开线。 sincoscossinbbbbxrur uuyrur uu= 当用直角坐标来表示渐开线时,其方程为: 3.2 二次开发调用的函数3.2 二次开发调用的函数 2内蒙古科技大学毕业设计说明书(毕业论文) 3.2.1 调用函数的关系 3.2.1 调用函数的关系 在调用 solidworks 的过程中,我们只有对各个函数之间的关系和层次分的明了清楚,才能保证正确调用。如上表所示,在编程中可以用作对象参考。 3.2.2 定义接口函数 3.2.2 定义接口函数 要调用 solidworks 的 API 其他功能,必须先调用接口对象。一般的在程序里写作: 3内蒙古科技大学毕业设计说明书(毕业论文) Dim swApp As Object Set swApp = CreateObject(SldWorks.Application) 3.3 参数化数学模型 3.3 参数化数学模型 3.3.1 驱动参数 3.3.1 驱动参数 本次设计需要做到全参数化的有, 齿数 Z、 模数 m、 压力角、 轴径以及键槽的相关尺寸。 3.3.2 建模程序 3.3.2 建模程序 下面我就本次的设计程序附图说明设计过程。 在创建模型的过程中,首先,经过在 VB 环境下的数学模型的计算,得出重要数据。并准备好传递给 SolidWorks 数据接口 API,等待调用。 1*数据的定义及引用* Dim swApp As Object Dim Part As Object Dim boolstatus As Boolean Dim longstatus As Long 展角度数(弧度) Dim u As Double 基圆直径 Dim Db As Double 齿顶圆直径 Dim Da As Double 模数 Dim m As Double 齿数 Dim Z As Double 分度圆直径 Dim D As Double 4内蒙古科技大学毕业设计说明书(毕业论文) 齿根圆直径 Dim Df As Double 周节 Dim zhouj As Double 法节 Dim faj As Double 键槽宽及计算所用参数 Dim b As Double Dim bb As Double Dim t1 As Double Dim DD As Double Dim L As Double Dim b1 As Double 压力角 Dim As Double 齿顶高系数 Dim h As Double 顶隙系数 Dim c As Double 坐标函数点值:x,y Dim x00() As Double Dim y00() As Double Dim x0() As Double 5内蒙古科技大学毕业设计说明书(毕业论文) Dim y0() As Double Dim x29() As Double Dim y29() As Double 坐标函数点值:p,q Dim p00() As Double Dim q00() As Double Dim p0() As Double Dim q0() As Double 过渡圆角 Dim As Double pi 的近似值 Dim pi As Double Dim t0 As Double Dim q As Double Dim n As Double Dim o As Double Dim AD As Double Dim hh As Double Dim cc As Double 需要的数据定义完成后,下面就是完成渐开线及齿轮的其他参数相应计算。这里程序中分为输入参数和输出参数,俩大部分。 前文已经论述过,创建一个渐开线直齿圆柱齿轮需要三个最基本的参数,模数、齿数、压力角。我国标准齿轮的齿顶高系数及顶隙系数已经固定,这里不做参数化考虑。下面就是有关的几个基本计算的程序: pi = 3.14159265358979 6内蒙古科技大学毕业设计说明书(毕业论文) Z = Val(Combo1.Text) m = Val(Combo2.Text) = Val(Combo3.Text) * pi / 180 Z = Val(Combo1.Text) m = Val(Combo2.Text) 齿顶高系数 h = 1 顶隙系数 c = 0.25 齿顶圆直径 Da = m * (Z + 2 * h) 分度圆直径 D = m * Z 基圆直径 Db = m * Z * Cos() 齿根圆直径 Df = m * (Z - 2 * h - 2 * c) 周节 zhouj = pi * m 法节 faj = pi * m * Cos() *输出值* Text1.Text = Str$(D) 7内蒙古科技大学毕业设计说明书(毕业论文) Text2.Text = Str$(Df) Text3.Text = Str$(Da) Text4.Text = Str$(Db) Text5.Text = Str$(zhouj) Text6.Text = Str$(faj) * 展角度数(弧度) u = Sqr(Val(Da) / Val(Db) 2 - 1) Dim t As Double * 有了如上数据的准备,接下来就可以进行渐开线的计算了。 首先,通过渐开线的直角坐标方程,联立方程组,可以求出 u 的最大值,也就是齿顶圆上的展角度数。我们知道,在齿数小于等于 41 的时候,齿廓上的渐开线的起点是在基圆上,所以在基圆上的展角度数等于零。本次设计将展角度数 7 等分。下面就是正向渐开线的的计算程序。 这里运用循环语句实现计算 For i = 1 To 8 If t = u Then 渐开线方程 x0(i) = 0.5 * Db * Sin(t) - 0.5 * Db * t * Cos(t) y0(i) = 0.5 * Db * Cos(t) + 0.5 * Db * t * Sin(t) p00(i) = -0.5 * Db * Sin(t) + 0.5 * Db * t * Cos(t) q00(i) = 0.5 * Db * Cos(t) + 0.5 * Db * t * Sin(t) t = t + g 8内蒙古科技大学毕业设计说明书(毕业论文) p0(i) = p00(i) * Cos(j) + q00(i) * Sin(j) q0(i) = -p00(i) * Sin(j) + q00(i) * Cos(j) End If Next i 在计算出正向渐开线的基础上, 利用 y 轴的对称关系, 可以计算出反向渐开线的坐标点值。如下面的程序: p00(i) = -0.5 * Db * Sin(t) + 0.5 * Db * t * Cos(t) q00(i) = 0.5 * Db * Cos(t) + 0.5 * Db * t * Sin(t) t = t + g p0(i) = p00(i) * Cos(j) + q00(i) * Sin(j) q0(i) = -p00(i) * Sin(j) + q00(i) * Cos(j) 通过上面俩段程序的计算,渐开线的点值就计算出来了。这里反向渐开线仅仅是跟正向渐开线关于 y 轴对称, 从理论上还不能形成齿廓, 需要将其旋转一个齿厚所对应的角度。 程序如下: Dim s As Double Dim inv As Double Dim sb As Double Dim zj As Double Dim j As Double s = pi * m / 2 inv = Tan() - sb = Cos() * (s + m * Z * inv) j = 2 * sb / Db 9内蒙古科技大学毕业设计说明书(毕业论文) 有前面叙述可知 41 齿以下的齿廓曲线由径向线和渐开线组成。 径向线的起点为齿根圆的半径终点为基圆的半径。 数据如下: xx = 0 yy = 0.5 * (Df - 5) Xx1 = xx * Cos(j) + yy * Sin(j) Yy1 = xx * Sin(j) + yy * Cos(j) 可知俩条径向线已经准备完毕。 接下来就是 VB 与 SolidWorks 之间的数据传递。 SolidWorks 的 API 是完全对外开放的。 外部数据想要驱动 SolidWorks 就必须先打开他的数据接口,我们运用的语句是: Set swApp = CreateObject(SldWorks.Application) Set Part = swApp.ActiveDoc 数据接口打开后,程序中的绘图语句就会自动接收数据创建草图模型。本次设计先绘制一个轮齿的草图。主要步骤: 1. 连接齿顶圆弧劣弧 2. 连接径向线与渐开线 3. 连接齿根圆优弧 实现语句如下: *样条曲线拟和* Part.SketchSpline 8, 0.001 * xx, 0.001 * yy, 0 Part.SketchSpline 7, 0.001 * x0(1), 0.001 * y0(1), 0 Part.SketchSpline 6, 0.001 * x0(2), 0.001 * y0(2), 0 Part.SketchSpline 5, 0.001 * x0(3), 0.001 * y0(3), 0 Part.SketchSpline 4, 0.001 * x0(4), 0.001 * y0(4), 0 Part.SketchSpline 3, 0.001 * x0(5), 0.001 * y0(5), 0 10内蒙古科技大学毕业设计说明书(毕业论文) Part.SketchSpline 2, 0.001 * x0(6), 0.001 * y0(6), 0 Part.SketchSpline 1, 0.001 * x0(7), 0.001 * y0(7), 0 Part.SketchSpline 0, 0.001 * x0(8), 0.001 * y0(8), 0 Part.SketchSpline 8, 0.001 * xx1, 0.001 * yy1, 0 Part.SketchSpline 7, 0.001 * p0(1), 0.001 * q0(1), 0 Part.SketchSpline 6, 0.001 * p0(2), 0.001 * q0(2), 0 Part.SketchSpline 5, 0.001 * p0(3), 0.001 * q0(3), 0 Part.SketchSpline 4, 0.001 * p0(4), 0.001 * q0(4), 0 Part.SketchSpline 3, 0.001 * p0(5), 0.001 * q0(5), 0 Part.SketchSpline 2, 0.001 * p0(6), 0.001 * q0(6), 0 Part.SketchSpline 1, 0.001 * p0(7), 0.001 * q0(7), 0 Part.SketchSpline 0, 0.001 * p0(8), 0.001 * q0(8), 0 11内蒙古科技大学毕业设计说明书(毕业论文) 加入绘制草图命令即可实现目的,程序运行后会出现如上效果: 接下来,就是要通过执行拉伸命令制作出单个轮齿齿坯。那么这里拉什的厚度也是有严格的数学关系保证的。具体关系如下: 齿轮的拉伸厚度 hh = L * 0.3 式中的 L 是随后凸台的拉伸厚度。 下面是拉伸命令及模型图 Part.ShowNamedView2 *上下二等角轴测, 8 boolstatus = Part.Extension.SelectByID2(草图 1, SKETCH, 0, 0, 0, False, 0, Nothing, 0) boolstatus = Part.Extension.SelectByID2(草图 1, SKETCHREGION, 0.003264443858942, 0.001427552799902, -0.00269246083619, True, 4, Nothing, 0) Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2( 草 图1, SKETCH, 0.003264443858942, 12内蒙古科技大学毕业设计说明书(毕业论文) 0.001427552799902, -0.00269246083619, False, 4, Nothing, 0) Part.SelectionManager.EnableContourSelection = 1 boolstatus = Part.Extension.SelectByID2(草图 1, SKETCHREGION, 0.003264443858942, 0.001427552799902, -0.00269246083619, True, 4, Nothing, 0) Part.FeatureManager.FeatureExtrusion2 True, False, False, 6, 0, 0.001 * hh, 0.001 * hh, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1, 0, 0, False Part.SelectionManager.EnableContourSelection = 0 从上图可以很直观地看出齿廓的对称拉伸。 SolidWorks 2006 版本中我们使用的是阵列命令生成完整的轮齿。这里关键的命令有俩个: 1. 基准轴的选取 13内蒙古科技大学毕业设计说明书(毕业论文) 2. 阵列特征选择 程序如下: boolstatus = Part.Extension.SelectByID2(前视, PLANE, 0, 0, 0, True, 0, Nothing, 0) boolstatus = Part.Extension.SelectByID2(点 1原点, EXTSKETCHPOINT, 0, 0, 0, True, 0, Nothing, 0) Part.InsertAxis2 True boolstatus = Part.Extension.SelectByID2(拉伸 1, BODYFEATURE, 0, 0, 0, True, 0, Nothing, 0) Part.ActivateSelectedFeature Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2(拉伸 1, BODYFEATURE, 0, 0, 0, False, 4, Nothing, 0) 14内蒙古科技大学毕业设计说明书(毕业论文) boolstatus = Part.Extension.SelectByID2(基准轴 1, AXIS, 0, 0, 0, True, 1, Nothing, 0) Set Feature = Part.FeatureManager.FeatureCircularPattern2(Z, 2 * pi / Z, False, NULL, False) 最终效果如下图所示 本次设计作的是整体式齿轮,所以需要拉伸一个凸台出来。数学关系及命令如下: 拉伸凸台 boolstatus = Part.Extension.SelectByID2(前视, PLANE, 0, 0, 0, False, 0, Nothing, 0) Part.CreateCircle 0, 0, 0, 0, 0.001 * (b1 / 2), 0 Part.FeatureManager.FeatureExtrusion2 False, False, False, 6, 0, 0.0011 * L, 0.0011 * L, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1, 0, 0, False Part.SelectionManager.EnableContourSelection = 0 15内蒙古科技大学毕业设计说明书(毕业论文) 效果如图所示: 以上就是此次齿轮设计的主要步骤,下面进行键槽、圆角、轴孔等的处理。同样我们也要参数化键槽和轴孔。具体数学关系如下: 计算键槽和轴径 DD = Val(Text5.Text) b = Val(Text6.Text) t1 = Val(Text7.Text) bb = Sqr(DD / 2) * (DD / 2) - (b / 2) * (b / 2) L = 1.4 * DD b1 = 1.6 * DD 齿轮的拉伸厚度 16内蒙古科技大学毕业设计说明书(毕业论文) hh = L * 0.3 通过 4 个点绘制出一优弧及三条直线的草图,然后再通过切除命令完成轴孔跟键槽的切制。命令语句如下: * 切除键槽跟轴孔 boolstatus = Part.Extension.SelectByID2(前视, PLANE, 0, 0, 0, False, 0, Nothing, 0) Part.ClearSelection2 True Part.CreateArc2 0, 0, 0, 0.001 * -b / 2, 0.001 * bb, 0, 0.001 * b / 2, 0.001 * bb, 0, 1 Part.CreateLine2 0.001 * b / 2, 0.001 * (DD / 2 + t1), 0, 0.001 * -b / 2, 0.001 * (DD / 2 + t1), 0 Part.CreateLine2 0.001 * -b / 2, 0.001 * (DD / 2 + t1), 0, 0.001 * -b / 2, 0.001 * bb, 0 Part.CreateLine2 0.001 * b / 2, 0.001 * bb, 0, 0.001 * b / 2, 0.001 * (DD / 2 + t1), 0 boolstatus = Part.Extension.SelectByID2(前视, PLANE, 0, 0, 0, True, 0, Nothing, 0) boolstatus = Part.Extension.SelectByID2(草图 2, SKETCHSEGMENT, 0, 0, 0, False, 0, Nothing, 0) Part.FeatureManager.FeatureCut False, False, False, 6, 0, 0.0011 * L, 0.0011 * L, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1 * 如图所示: 17内蒙古科技大学毕业设计说明书(毕业论文) 18在生成整个齿轮后,需要对齿根和齿廓作进一步进行。实际上,在齿根与齿廓之间有一个过渡圆角 ,其值的大小为:=0.38*m 由于程序中实现自动实现。最终效果放大后,如下图 内蒙古科技大学毕业设计说明书(毕业论文) 在本次设计中,我还尝试制作了腹板式齿轮的参数化,由于时间关系,不允许完成程序调试,这里我只将部分结果做一个展示。 程序以及最终效果如下: 腹板式及减重孔 Dim D2 As Double Dim D0 As Double 腹板式及减重孔尺寸 D2 = Da - 10 - 2.5 * m D0 = 18 AD = 0.5 * (DD + D2) cc = 0.15 * hh 腹板式减重孔切除 boolstatus = Part.Extension.SelectByID2(前视, PLANE, 0, 0, 0, False, 0, Nothing, 0) Part.ShowNamedView2 *正视于, 0 Part.ClearSelection2 True Part.CreateCircle 0, 0.001 * AD, 0, 0, 0.001 * D0, 0 boolstatus = Part.Extension.SelectByID2(Arc1, SKETCHSEGMENT, 0, 0, 0, False, 0, Nothing, 0) Part.FeatureManager.FeatureCut False, False, False, 6, 0, 0.001 * L, 0.001 * L, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1 Part.SelectionManager.EnableContourSelection = 0 Part.ActivateSelectedFeature boolstatus = Part.SetUserPreferenceToggle(7, True) 19内蒙古科技大学毕业设计说明书(毕业论文) Part.ActiveView().RotateAboutCenter 0.00942906, 0 Part.ActiveView().RotateAboutCenter 0.00942906, 0 Part.ActiveView().RotateAboutCenter 0.00471453, 0 Part.ActiveView().RotateAboutCenter 0.0141436, 0 Part.ActiveView().RotateAboutCenter 0.00471453, 0 Part.ActiveView().RotateAboutCenter 0.00942906, -0.00629463 Part.ActiveView().RotateAboutCenter 0.0141436, -0.0188839 Part.ActiveView().RotateAboutCenter 0.0141436, -0.0125893 boolstatus = Part.Extension.SelectByID2( 基 准 轴 1, AXIS, -1.264530836956E-04, -5.422169130361E-04, 0.02452875562676, True, 0, Nothing, 0) Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2(切除-拉伸 2, BODYFEATURE, 0, 0, 0, False, 4, Nothing, 0) boolstatus = Part.Extension.SelectByID2( 基 准 轴 1, AXIS, -1.264530836956E-04, -5.422169130361E-04, 0.02452875562676, True, 1, Nothing, 0) Set Feature = Part.FeatureManager.FeatureCircularPattern2(Val(Text8.Text), 2 * pi / Val(Text8.Text), False, NULL, False) 切出腹板 boolstatus = Part.Extension.SelectByID2(上视, PLANE, 0, 0, 0, False, 0, Nothing, 0) Part.InsertSketch2 True Part.CreateLine2 0.0011 * D2, 0.001 * L, 0, 0.001 * b1 / 2, 0.001 * L, 0 Part.CreateLine2 b1 / 2 * 0.001, L * 0.001, 0, b1 / 2 * 0.001, cc * 0.001, 0 Part.CreateLine2 b1 / 2 * 0.001, cc * 0.001, 0, D2 * 0.0011, cc * 0.001, 0 20内蒙古科技大学毕业设计说明书(毕业论文) Part.CreateLine2 D2 * 0.0011, cc * 0.001, 0, D2 * 0.0011, L * 0.001, 0 Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2(上视, PLANE, 0, 0, 0, False, 0, Nothing, 0) Part.ClearSelection2 True Part.CreateLine2(0, 0.02624561463175, 0, 0, -0.02684520960131, 0).ConstructionGeometry = True Part.ClearSelection2 True Part.InsertSketch2 True boolstatus = Part.Extension.SelectByID2(Line7, SKETCHSEGMENT, 0, 0, 0.02881245945525, True, 0, Nothing, 0) Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2(Line7, SKETCHSEGMENT, 0, 0, 0.02881245945525, False, 4, Nothing, 0) boolstatus = Part.Extension.SelectByID2(草图 5, SKETCH, 0, 0, 0, True, 0, Nothing, 0) Part.FeatureManager.FeatureRevolveCut 6.28318530718, False, 0, 0, 0, 1, 1 Part.SelectionManager.EnableContourSelection = 0 boolstatus = Part.Extension.SelectByID2(前视, PLANE, 0, 0, 0, True, 0, Nothing, 0) Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2(切除-旋转 1, BODYFEATURE, 0, 0, 0, False, 1, Nothing, 0) boolstatus = Part.Extension.SelectByID2(前视, PLANE, 0, 0, 0, True, 2, Nothing, 0) 21内蒙古科技大学毕业设计说明书(毕业论文) Part.FeatureManager.InsertMirrorFeature False, False, False, False Part.ShowNamedView2 *上下二等角轴测, 8 Part.ViewZoomtofit2 boolstatus = Part.SetUserPreferenceToggle(196, False) 如上所述,我用部分程序配以插图对整个轮齿成型过程做了详细论述。其中还有很多命令没有介绍得到。比如大于 42 齿的程序。但是,设计思路是相同的,这里我不再作详细介绍。只是把完整程序写出来,读者可以自行检阅。 齿数为 25 模数为 4 创建的齿轮 22内蒙古科技大学毕业设计说明书(毕业论文) 基于 SolidWorks 2006 的渐开线直齿圆柱齿轮参数化设计的完整程序: Dim swApp As Object Dim Part As Object Dim boolstatus As Boolean Dim longstatus As Long Dim featuredata As Object Dim feature As Object 展角度数(弧度) Dim u As Double 基圆直径 Dim Db As Double 23内蒙古科技大学毕业设计说明书(毕业论文) 齿顶圆直径 Dim Da As Double 模数 Dim m As Double 齿数 Dim Z As Double 分度圆直径 Dim D As Double 齿根圆直径 Dim Df As Double 周节 Dim zhouj As Double 法节 Dim faj As Double 键槽宽及计算所用参数 Dim b As Double Dim bb As Double Dim t1 As Double Dim DD As Double Dim L As Double Dim b1 As Double 压力角 Dim As Double 24内蒙古科技大学毕业设计说明书(毕业论文) 齿顶高系数 Dim h As Double 顶隙系数 Dim c As Double 齿根圆角 Dim r0 As Double 坐标函数点值:x,y Dim x00() As Double Dim y00() As Double Dim x0() As Double Dim y0() As Double 坐标函数点值:p,q Dim p00() As Double Dim q00() As Double Dim p0() As Double Dim q0() As Double 过渡圆角 Dim As Double 模数选择 Dim ff As Double pi 的近似值 25内蒙古科技大学毕业设计说明书(毕业论文) Dim pi As Double Dim t0 As Double Dim q As Double Dim n As Double Dim o As Double Dim AD As Double Dim hh As Double Dim cc As Double Private Sub Label16_Click() Form1.Show Form2.Hide End Sub Private Sub Label7_Click() pi = 3.14159265358979 Z = Val(Combo1.Text) m = Val(Combo2.Text) = Val(Combo3.Text) * pi / 180 Z = Val(Combo1.Text) m = Val(Combo2.Text) 齿顶高系数 h = 1 顶隙系数 26内蒙古科技大学毕业设计说明书(毕业论文) c = 0.25 齿根圆角 r0 = 0.38 * m 齿顶圆直径 Da = m * (Z + 2 * h) 分度圆直径 D = m * Z 基圆直径 Db = m * Z * Cos() 齿根圆直径 Df = m * (Z - 2 * h - 2 * c) 周节 zhouj = pi * m 法节 faj = pi * m * Cos() *输出值* Text1.Text = Str$(D) Text2.Text = Str$(Df) Text3.Text = Str$(Da) Text4.Text = Str$(Db) Text5.Text = Str$(zhouj) Text6.Text = Str$(faj) * 27内蒙古科技大学毕业设计说明书(毕业论文) 展角度数(弧度) u = Sqr(Val(Da) / Val(Db) 2 - 1) Dim t As Double 反向渐开线起始角度计算 Dim s As Double Dim inv As Double Dim sb As Double Dim zj As Double Dim j As Double s = pi * m / 2 inv = Tan() - sb = Cos() * (s + m * Z * inv) j = 2 * sb / Db 等分步长 g = u / 7 Dim i As Integer ReDim x0(10) ReDim y0(10) Dim k0 As Integer ReDim p0(10) 28内蒙古科技大学毕业设计说明书(毕业论文) ReDim q0(10) Dim l0 As Integer ReDim p00(10) ReDim q00(10) ReDim x00(10) ReDim y00(10) *创建齿轮全部参数计算* 计算键槽和轴径 DD = Val(Combo4.Text) b = Val(Combo5.Text) t1 = Val(Combo6.Text) bb = Sqr(DD / 2) * (DD / 2) - (b / 2) * (b / 2) L = 1.4 * DD b1 = 1.6 * DD 齿轮的拉伸厚度 hh = L Dim n1 As Double If Z = 41 Then *solidworks 接口语句* Set swApp = CreateObject(SldWorks.Application) Set Part = swApp.ActiveDoc Set Part = swApp.NewDocument(D:Program 29内蒙古科技大学毕业设计说明书(毕业论文) FilesSolidWorkslangchinese-simplifiedTutorialpart.prtdot, 0, 0#, 0#) * boolstatus = Part.Extension.SelectByID2(前视, PLANE, 0, 0, 0, False, 0, Nothing, 0) Part.InsertSketch2 True For i = 1 To 8 If t = u Then 渐开线方程 x0(i) = 0.5 * Db * Sin(t) - 0.5 * Db * t * Cos(t) y0(i) = 0.5 * Db * Cos(t) + 0.5 * Db * t * Sin(t) p00(i) = -0.5 * Db * Sin(t) + 0.5 * Db * t * Cos(t) q00(i) = 0.5 * Db * Cos(t) + 0.5 * Db * t * Sin(t) t = t + g p0(i) = p00(i) * Cos(j) + q00(i) * Sin(j) q0(i) = -p00(i) * Sin(j) + q00(i) * Cos(j) End If Next i Part.ClearSelection2 True Part.SetPickMode 30内蒙古科技大学毕业设计说明书(毕业论文) xx = 0 yy = 0.5 * Df xx1 = xx * Cos(j) + yy * Sin(j) yy1 = xx * Sin(j) + yy * Cos(j) *样条曲线拟和* Part.SketchSpline 8, 0.001 * xx, 0.001 * yy, 0 Part.SketchSpline 7, 0.001 * x0(1), 0.001 * y0(1), 0 Part.SketchSpline 6, 0.001 * x0(2), 0.001 * y0(2), 0 Part.SketchSpline 5, 0.001 * x0(3), 0.001 * y0(3), 0 Part.SketchSpline 4, 0.001 * x0(4), 0.001 * y0(4), 0 Part.SketchSpline 3, 0.001 * x0(5), 0.001 * y0(5), 0 Part.SketchSpline 2, 0.001 * x0(6), 0.001 * y0(6), 0 Part.SketchSpline 1, 0.001 * x0(7), 0.001 * y0(7), 0 Part.SketchSpline 0, 0.001 * x0(8), 0.001 * y0(8), 0 Part.SketchSpline 8, 0.001 * xx1, 0.001 * yy1, 0 Part.SketchSpline 7, 0.001 * p0(1), 0.001 * q0(1), 0 Part.SketchSpline 6, 0.001 * p0(2), 0.001 * q0(2), 0 Part.SketchSpline 5, 0.001 * p0(3), 0.001 * q0(3), 0 Part.SketchSpline 4, 0.001 * p0(4), 0.001 * q0(4), 0 Part.SketchSpline 3, 0.001 * p0(5), 0.001 * q0(5), 0 Part.SketchSpline 2, 0.001 * p0(6), 0.001 * q0(6), 0 31内蒙古科技大学毕业设计说明书(毕业论文) Part.SketchSpline 1, 0.001 * p0(7), 0.001 * q0(7), 0 Part.SketchSpline 0, 0.001 * p0(8), 0.001 * q0(8), 0 * If m = 2 Then ff = -1 Else ff = 1 End If Part.CreateArc2 0, 0, 0, 0.001 * x0(8), 0.001 * y0(8), 0, 0.001 * p0(8), 0.001 * q0(8), 0, 0 Part.CreateArc2 0, 0, 0, 0.001 * xx, 0.001 * yy, 0, 0.001 * xx1, 0.001 * yy1, 0, ff *导圆角* boolstatus = Part.Extension.SelectByID2(Spline1, SKETCHSEGMENT, -1.927276746157E-05, 0.02090750823958, 0.02438438798193, True, 0, Nothing, 0) boolstatus = Part.Extension.SelectByID2(Arc2, SKETCHSEGMENT, -1.887677221489E-04, 0.02045552169375, 0.02438438798193, True, 0, Nothing, 0) Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2(Spline1, SKETCHSEGMENT, -1.927276746157E-05, 0.02090750823958, 0.02438438798193, False, 1, Nothing, 0) boolstatus = Part.Extension.SelectByID2(Arc2, SKETCHSEGMENT, -1.887677221489E-04, 0.02045552169375, 0.02438438798193, True, 1, Nothing, 0) 32内蒙古科技大学毕业设计说明书(毕业论文) Part.SketchFillet2 0.001 * r0, 2 Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2(Spline2, SKETCHSEGMENT, 0.0033988754854, 0.02073801328489, 0.02438438798193, True, 0, Nothing, 0) boolstatus = Part.Extension.SelectByID2(Arc2, SKETCHSEGMENT, 0.003907360349462, 0.0201730301026, 0.02438438798193, True, 0, Nothing, 0) Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2(Spline2, SKETCHSEGMENT, 0.0033988754854, 0.02073801328489, 0.02438438798193, False, 1, Nothing, 0) boolstatus = Part.Extension.SelectByID2(Arc2, SKETCHSEGMENT, 0.003907360349462, 0.0201730301026, 0.02438438798193, True, 1, Nothing, 0) Part.SketchFillet2 0.001 * r0, 2 *单齿拉伸* Part.ShowNamedView2 *上下二等角轴测, 8 boolstatus = Part.Extension.SelectByID2(草图1, SKETCHREGION, -0.006129740340857, -0.006757397417192, 0.008770383608117, True, 4, Nothing, 0) Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2( 草 图 1, SKETCH, -0.006129740340857, -0.006757397417192, 0.008770383608117, False, 4, Nothing, 0) Part.SelectionManager.EnableContourSelection = 1 boolstatus = Part.Extension.SelectByID2(草图1, SKETCHREGION, -0.006129740340857, -0.006757397417192, 0.008770383608117, True, 4, Nothing, 0) 33内蒙古科技大学毕业设计说明书(毕业论文) Part.FeatureManager.FeatureExtrusion2 True, False, False, 6, 0, 0.001 * 0.8 * hh, 0.001 * 0.8 * hh, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1, 0, 0, False Part.SelectionManager.EnableContourSelection = 0 *全齿阵列* boolstatus = Part.Extension.SelectByID2(点 1原点, EXTSKETCHPOINT, 0, 0, 0, False, 0, Nothing, 0) boolstatus = Part.Extension.SelectByID2(前视, PLANE, 0, 0, 0, True, 0, Nothing, 0) Part.InsertAxis2 True boolstatus = Part.Extension.SelectByID2(拉伸 1, BODYFEATURE, 0, 0, 0, True, 0, Nothing, 0) Part.ActivateSelectedFeature Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2(拉伸 1, BODYFEATURE, 0, 0, 0, False, 4, Nothing, 0) boolstatus = Part.Extension.SelectByID2(基准轴 1, AXIS, 0, 0, 0, True, 1, Nothing, 0) Set feature = Part.FeatureManager.FeatureCircularPattern2(Z, 2 * pi / Z, False, NULL, False) *凸台拉伸* boolstatus = Part.Extension.SelectByID2(前视, PLANE, 0, 0, 0, False, 0, Nothing, 0) Part.ClearSelection2 True Part.CreateCircle 0, 0, 0, 0.5 * 0.001 * b1, 0, 0 Part.ShowNamedView2 *上下二等角轴测, 8 34内蒙古科技大学毕业设计说明书(毕业论文) Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2(Arc1, SKETCHSEGMENT, 0, 0, 0, False, 0, Nothing, 0) Part.FeatureManager.FeatureExtrusion True, False, False, 6, 0, 0.001 * L, 0.001 * L, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1 Part.SelectionManager.EnableContourSelection = 0 *键槽* boolstatus = Part.Extension.SelectByID2(前视, PLANE, 0, 0, 0, False, 0, Nothing, 0) Part.InsertSketch2 True Part.CreateArc2 0, 0, 0, 0.001 * -b / 2, 0.001 * bb, 0, 0.001 * b / 2, 0.001 * bb, 0, 1 Part.CreateLine2 0.001 * b / 2, 0.001 * (DD / 2 + t1), 0, 0.001 * -b / 2, 0.001 * (DD / 2 + t1), 0 Part.CreateLine2 0.001 * -b / 2, 0.001 * (DD / 2 + t1), 0, 0.001 * -b / 2, 0.001 * bb, 0 Part.CreateLine2 0.001 * b / 2, 0.001 * bb, 0, 0.001 * b / 2, 0.001 * (DD / 2 + t1), 0 Else Set swApp = CreateObject(SldWorks.Application) Set Part = swApp.ActiveDoc Set Part = swApp.NewDocument(D:Program FilesSolidWorksdatatemplates零件.prtdot, 0, 0#, 0#) boolstatus = Part.Extension.SelectByID2(前视, PLANE, 0, 0, 0, False, 0, Nothing, 0) Part.InsertSketch2 True n = Sqr(Val(Df) / Val(Db) 2 - 1) 35内蒙古科技大学毕业设计说明书(毕业论文) o = (u - n) / 8 For i = 1 To 9 If t = u Then 渐开线方程 x0(i) = 0.5 * Db * Sin(n) - 0.5 * Db * n * Cos(n) y0(i) = 0.5 * Db * Cos(n) + 0.5 * Db * n * Sin(n) p00(i) = -0.5 * Db * Sin(n) + 0.5 * Db * n * Cos(n) q00(i) = 0.5 * Db * Cos(n) + 0.5 * Db * n * Sin(n) n = n + o p0(i) = p00(i) * Cos(j) + q00(i) * Sin(j) q0(i) = -p00(i) * Sin(j) + q00(i) * Cos(j) End If Next i Part.ClearSelection2 True Part.SetPickMode Part.SketchSpline 8, 0.001 * x0(1), 0.001 * y0(1), 0 Part.SketchSpline 7, 0.001 * x0(2), 0.001 * y0(2), 0 Part.SketchSpline 6, 0.001 * x0(3), 0.001 * y0(3), 0 Part.SketchSpline 5, 0.001 * x0(4), 0.001 * y0(4), 0 Part.SketchSpline 4, 0.001 * x0(5), 0.001 * y0(5), 0 36内蒙古科技大学毕业设计说明书(毕业论文) Part.SketchSpline 3, 0.001 * x0(6), 0.001 * y0(6), 0 Part.SketchSpline 2, 0.001 * x0(7), 0.001 * y0(7), 0 Part.SketchSpline 1, 0.001 * x0(8), 0.001 * y0(8), 0 Part.SketchSpline 0, 0.001 * x0(9), 0.001 * y0(9), 0 Part.SketchSpline 8, 0.001 * p0(1), 0.001 * q0(1), 0 Part.SketchSpline 7, 0.001 * p0(2), 0.001 * q0(2), 0 Part.SketchSpline 6, 0.001 * p0(3), 0.001 * q0(3), 0 Part.SketchSpline 5, 0.001 * p0(4), 0.001 * q0(4), 0 Part.SketchSpline 4, 0.001 * p0(5), 0.001 * q0(5), 0 Part.SketchSpline 3, 0.001 * p0(6), 0.001 * q0(6), 0 Part.SketchSpline 2, 0.001 * p0(7), 0.001 * q0(7), 0 Part.SketchSpline 1, 0.001 * p0(8), 0.001 * q0(8), 0 Part.SketchSpline 0, 0.001 * p0(9), 0.001 * q0(9), 0 If m = 2 Then ff = -1 Else ff = 1 End If Part.CreateArc2 0, 0, 0, 0.001 * x0(8), 0.001 * y0(8), 0, 0.001 * p0(8), 0.001 * q0(8), 0, 0 Part.CreateArc2 0, 0, 0, 0.001 * x0(1), 0.001 * y0(1), 0, 0.001 * p0(1), 0.001 * q0(1), 0, ff 37内蒙古科技大学毕业设计说明书(毕业论文) *导圆角* boolstatus = Part.Extension.SelectByID2(Spline1, SKETCHSEGMENT, -1.927276746157E-05, 0.02090750823958, 0.02438438798193, True, 0, Nothing, 0) boolstatus = Part.Extension.SelectByID2(Arc2, SKETCHSEGMENT, -1.887677221489E-04, 0.02045552169375, 0.02438438798193, True, 0, Nothing, 0) Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2(Spline1, SKETCHSEGMENT, -1.927276746157E-05, 0.02090750823958, 0.02438438798193, False, 1, Nothing, 0) boolstatus = Part.Extension.SelectByID2(Arc2, SKETCHSEGMENT, -1.887677221489E-04, 0.02045552169375, 0.02438438798193, True, 1, Nothing, 0) Part.SketchFillet2 0.001 * r0, 2 Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2(Spline2, SKETCHSEGMENT, 0.0033988754854, 0.02073801328489, 0.02438438798193, True, 0, Nothing, 0) boolstatus = Part.Extension.SelectByID2(Arc2, SKETCHSEGMENT, 0.003907360349462, 0.0201730301026, 0.02438438798193, True, 0, Nothing, 0) Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2(Spline2, SKETCHSEGMENT, 0.0033988754854, 0.02073801328489, 0.02438438798193, False, 1, Nothing, 0) boolstatus = Part.Extension.SelectByID2(Arc2, SKETCHSEGMENT, 0.003907360349462, 0.0201730301026, 0.02438438798193, True, 1, Nothing, 0) Part.SketchFillet2 0.001 * r0, 2 * 38内蒙古科技大学毕业设计说明书(毕业论文) Part.ShowNamedView2 *上下二等角轴测, 8 boolstatus = Part.Extension.SelectByID2(草图1, SKETCHREGION, -0.009852945134982, 0.0120538103019, -0.002106825373532, True, 4, Nothing, 0) Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2(Arc2, SKETCHSEGMENT, 0, 0, 0, False, 0, Nothing, 0) boolstatus = Part.Extension.SelectByID2( 草 图 1, SKETCH, -0.009852945134982, 0.0120538103019, -0.002106825373532, True, 4, Nothing, 0) Part.SelectionManager.EnableContourSelection = 1 boolstatus = Part.Extension.SelectByID2(草图1, SKETCHREGION, -0.009852945134982, 0.0120538103019, -0.002106825373532, True, 4, Nothing, 0) Part.FeatureManager.FeatureExtrusion2 True, False, False, 6, 0, 0.001 * 0.8 * hh, 0.001 * 0.8 * hh, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1, 0, 0, False Part.SelectionManager.EnableContourSelection = 0 * oolstatus = Part.Extension.SelectByID2(前视基准面, PLANE, 0, 0, 0, False, 0, Nothing, 0) boolstatus = Part.Extension.SelectByID2(点 1原点, EXTSKETCHPOINT, 0, 0, 0, True, 0, Nothing, 0) Part.InsertAxis2 True boolstatus = Part.Extension.SelectByID2(拉伸 1, BODYFEATURE, 0, 0, 0, True, 0, Nothing, 0) 39内蒙古科技大学毕业设计说明书(毕业论文) Part.ActivateSelectedFeature Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2(拉伸 1, BODYFEATURE, 0, 0, 0, False, 4, Nothing, 0) boolstatus = Part.Extension.SelectByID2(基准轴 1, AXIS, 0, 0, 0, True, 1, Nothing, 0) Set feature = Part.FeatureManager.FeatureCircularPattern2(Z, 2 * pi / Z, False, NULL, False) * Part.ShowNamedView2 *前视, 1 boolstatus = Part.Extension.SelectByID2(前视基准面, PLANE, 0, 0, 0, False, 0, Nothing, 0) Part.InsertSketch2 True Part.ClearSelection2 True Part.CreateCircle 0, 0, 0, 0.5 * 0.001 * b1, 0, 0 Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2(Arc1, SKETCHSEGMENT, 0, 0, 0, False, 0, Nothing, 0) Part.FeatureManager.FeatureExtrusion True, False, False, 6, 0, 0.001 * L, 0.001 * L, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1 Part.SelectionManager.EnableContourSelection = 0 * boolstatus = Part.Extension.SelectByID2(前视, PLANE, 0, 0, 0, False, 0, Nothing, 0) 40内蒙古科技大学毕业设计说明书(毕业论文) Part.InsertSketch2 True Part.CreateArc2 0,
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:基于soildwork的齿轮参数化建模设计
链接地址:https://www.renrendoc.com/p-23161811.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!