|
楼主脸皮真厚,这不是你的.
信不信,
Sub main()
Dim myForm As New UserForm1
myForm.Show
Dim z2, z1, z3, z4, z5, z6 As Double '特殊的数据类型,可以包含数值、字符串或日期数据String
' z0是链号,z2是大链轮,z1是小链轮,z3是链轮中心距
If myForm.ComboBox2.SelText = "" Then '真
z2 = Val(myForm.ComboBox2.Value) 'z2是大链轮
Else
z2 = Val(myForm.ComboBox2.SelText)
End If
If myForm.ComboBox3.SelText = "" Then '真
z1 = Val(myForm.ComboBox3.Value) 'z1是小链轮
Else
z1 = Val(myForm.ComboBox3.SelText)
End If
If myForm.TextBox1.SelText = "" Then '真
z3 = myForm.TextBox1.Value / 1000 'z3是链轮中心距
Else
z3 = myForm.TextBox1.SelText / 1000
End If
z4 = z3 * 1000
'计算大小轮节径=q_p/sin180/z1
Dim mmm1, mmm2 As Double '1是小链轮,2是大链轮,
Dim pi As Double
pi = 4 * Atn(1)
mmm1 = q_p / Sin((180 / z1) * pi / 180)
mmm2 = q_p / Sin((180 / z2) * pi / 180)
If z2 <= z1 Then '真
UserForm3.Show
End If
'计算直边长=
Dim mmm3 As Double '直边长
If (mmm2 / 2 + mmm1 / 2) > z3 Then '真
UserForm4.Show
End If
mmm3 = Sqr(z3 * z3 - (mmm2 / 2 - mmm1 / 2) * (mmm2 / 2 - mmm1 / 2))
'计算大小弧
Dim mmm4 As Double '小弧
Dim mmm5 As Double '大弧
Dim mmm6 As Double '角度(mmm3/z3)
Dim mmm11 As Double '每小节差
Dim mmm12 As Double '每大节差
Dim mmm13 As Integer '整数 '小实节数
Dim mmm14 As Integer '整数 '大实节数
Dim mmm15 As Double '小实节总差
Dim mmm16 As Double '大实节总差
mmm6 = Atn((mmm3 / z3) / Sqr(-(mmm3 / z3) * (mmm3 / z3) + 1)) * 180 / pi
mmm4 = 2 * mmm6 * mmm1 * pi / 360 '小弧
mmm5 = 2 * (180 - mmm6) * mmm2 * pi / 360 '大弧
mmm11 = (mmm1 * pi - (z1 * q_p)) / z1 '每小节差
mmm12 = (mmm2 * pi - (z2 * q_p)) / z2 '每大节差
'2确定齿数,双数
mmm13 = Int(Int(mmm4 / q_p + 1) / 2) * 2 '整数 '小实节数
mmm14 = Int(Int((mmm5 / q_p) + 1) / 2) * 2 '整数 '大实节数
mmm15 = mmm11 * mmm13 '小实节总差
mmm16 = mmm12 * mmm14 '大实节总差 |
|