+发表新主题
Public Sub StandardGearShap()
Dim inNumber As Integer     'inNumber曲线上的点数
'输人齿轮参数
Dim mNumber As Double '模数
Dim zNumber As Integer '齿数
Dim aAngle As Double   '压力角
Dim ha As Double     '顶高系数
Dim c As Double     '顶隙系数
aAngle = aAngle * Pi / 180
bbAngle = Pi / (2 * zNumber) + Tan(aAngle) - aAngle
'过渡曲线
gamaRo = mNumber * c / (1 - Sin(aAngle))
a = ha * mumber + c * mNumber - gamaRo
b = Pi * mNumber / 4 + ha * mNumber * Tan(aAngle) + gamaRo * Cos(aAngle)
SeLg = (Pi / 2 - aAngle) / (inNumber - 1)
I = 0
For Alphal = Pi / 2 To aAngle Step -SeLg
Phi = (a / Tan(Alpha1) + b) / R
X = R * Sin(Phi) - (a / Sin(Alpha1) + gamaRo) * Cos(Alphal - Phi)
Y = R * Cos(Phi) - (a / Sin(Alpha1) + gamaRo) * Sin(Alphal - Phi)
gitpnts(I) = Xk: gitpnts(I + 1) = Yk: gitpnts(I + 2) = 0
I = I + 3
Next Alphal
'分度圆刭齿顶圆这一段齿廓的程序如下:
SeLg = (Ra - R) / (inNumber - 1)
I = 0
For Rk = R To Ra Step SeLg
Xk = Rk * Sin(bbAngle - Sqr((Rk / Rb) ^ 2 - 1) + Atn(Sqr((Rk / Rh) ^ 2 - 1)))
Yk = Rk * Cos(bbAngle - Sqr((Rk / Rb) ^ 2 - 1) + Atn(Sqr((Rk / Rb) ^ 2 - 1)))
fitpnts(I) = Xk: fitpnts(I + 1) = Yk: fitpnts(I + 2) = 0
I = I + 3
Next Rk
'由fitpnts和gitpnts等合成点列数组pnts
'切向

'画出齿廓曲线
Set spline0bj = ThisDrawing.ModelSpace.AddSpline(pnts, stan, etan)
'齿顶圆弧段
Set arcaObj = ThisDrawing.ModelSpace.AddArc(insPnt, Ra, sAng, eAng)
'(InsPnt插人点坐标;Ra圆弧半径;sAng起始角;eAng终止角)
'齿根圆弧段
Set aecf0bj = ThisDrawing.ModelSpace.AddArc(insPnt, Rf, sAng, eAng)
'(InsPnt插人点坐标;Rf圆弧半径;sims起始角;eAng终止角)
'镜像
stan(O) = 0: stan(1) = 0: stan(2) = 0
etan(0) = 0: etan(1) = 1: etan(2) = 0
Set areaObj = arcaObj.Mirror(stan, etan)
Set splineObj = splineObj.Mirror(stan, etan)
Set arcfObj = arcfObj.Mirror(stan, etan)
'阵列
AryObj = splineObj.ArrayPolar(zNumber, 2 * Pi, insPnt)
End Sub
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ| Archiver|手机版|小黑屋| 碧波制图网 Stonespider

Copyright © 2021-2023 Kangli Wu   All Rights Reserved.

Powered by Discuz! X3.5( 苏ICP备18011607号-1 )

快速
回复
返回
列表
返回
顶部