文档库 最新最全的文档下载
当前位置:文档库 › 机械设计上机设计实验报告

机械设计上机设计实验报告

机械设计上机设计实验报告
机械设计上机设计实验报告

机械设计上机设计

班级:

姓名:

学号:

目录

1.数表和线图的程序化处理 (1)

1.1数表的程序化 (1)

1.1.1查表检索法 (1)

1.1.2数表解析法 (12)

1.2线图的程序化 (15)

1.3有关数据处理 (16)

2.典型零部件的程序设计 (18)

2.1 V带传动的程序设计 (18)

2.2 齿轮传动的程序设计 (19)

2.3 滚动轴承的程序设计 (21)

3.课后习题计算 (22)

一、表和线图的程序化处理

1.1数表程序化

数表程序化有两种方法:一是查表检索法;二是数表解析法1.1.1 查表检索法

1)一元数表的存取

表1-1 普通V带型号及有关参数

运行界面:

程序代码:

Private Sub Command1_Click()

Dim s As Integer

Dim q1 As Single, dm As Single, kb As Single

s = Val(Txt_s.Text)

Select Case s

Case 0

q1 = 0.02: dm = 20: kb = 0.00006

Case 1

q1 = 0.06: dm = 50: kb = 0.00039

Case 2

q1 = 0.1: dm = 75: kb = 0.00103

Case 4

q1 = 0.17: dm = 125: kb = 0.00265

Case 5

q1 = 0.3: dm = 200: kb = 0.0075

Case 6

q1 = 0.62: dm = 355: kb = 0.0266

Case 7

q1 = 0.9: dm = 500: kb = 0.0498

End Select

Txt_q1.Text = Str(q1)

Txt_dmin.Text = Str(dm)

Txt_kb.Text = Str(kb)

End Sub

Private Sub Command2_Click()

End

End Sub

2)二元数表的存取

表1-2齿轮传动工作状况系数K

运行界面:

程序代码:

Option Explicit

Dim ii As Integer

Dim jj As Integer

Public appdir As String Private Sub Check1_Click() If Check1.Value = 1 Then Check2.Value = 0

Check3.Value = 0

ii = 0

End If

End Sub

Private Sub Check2_Click() If Check2.Value = 1 Then Check1.Value = 0

Check3.Value = 0

ii = 1

End If

End Sub

Private Sub Check3_Click() If Check3.Value = 1 Then Check1.Value = 0

Check2.Value = 0

ii = 2

End If

End Sub

Private Sub Check4_Click()

If Check4.Value = 1 Then

Check5.Value = 0

Check6.Value = 0

jj = 0

End If

End Sub

Private Sub Check5_Click()

If Check5.Value = 1 Then

Check4.Value = 0

Check6.Value = 0

jj = 1

End If

End Sub

Private Sub Check6_Click()

If Check6.Value = 1 Then

Check4.Value = 0

Check5.Value = 0

jj = 2

End If

End Sub

Private Sub Command1_Click()

Dim i As Integer, j As Integer

Dim ka(0 To 2, 0 To 2) As Single

ka(0, 0) = 1

ka(0, 1) = 1.25

ka(0, 2) = 1.75

ka(1, 0) = 1.25

ka(1, 1) = 1.5

ka(1, 2) = 2

ka(2, 0) = 1.5

ka(2, 1) = 1.75

ka(2, 2) = 2.25

txt_ka.Text = Str(ka(ii, jj))

End Sub

Private Sub Command1_Click()

End

End Sub

表1-3V工作状况系数K

运行界面:

程序代码:

Private Sub Command1_Click()

If (Combo1.Text = Combo1.List(0) And Option1.Value) Then Text_ka.Text = 1 If (Combo1.Text = Combo1.List(0) And Option2.Value) Then Text_ka.Text = 1.1 If (Combo1.Text = Combo1.List(0) And Option3.Value) Then Text_ka.Text = 1.2 If (Combo1.Text = Combo1.List(1) And Option1.Value) Then Text_ka.Text = 1.1 If (Combo1.Text = Combo1.List(1) And Option2.Value) Then Text_ka.Text = 1.2 If (Combo1.Text = Combo1.List(1) And Option3.Value) Then Text_ka.Text = 1.3 If (Combo1.Text = Combo1.List(2) And Option1.Value) Then Text_ka.Text = 1.2 If (Combo1.Text = Combo1.List(2) And Option2.Value) Then Text_ka.Text = 1.3 If (Combo1.Text = Combo1.List(2) And Option3.Value) Then Text_ka.Text = 1.4 If (Combo1.Text = Combo1.List(3) And Option1.Value) Then Text_ka.Text = 1.3 If (Combo1.Text = Combo1.List(3) And Option2.Value) Then Text_ka.Text = 1.4 If (Combo1.Text = Combo1.List(3) And Option3.Value) Then Text_ka.Text = 1.5 Text_pc.Text = Str(Text_ka) * Str(Text_p)

End Sub

Private Sub Command2_Click()

End

End Sub

3)区间检索

运行界面:

程序代码:

Private Sub Command1_Click()

Dim i As Integer, d As Integer

Dim dd As Variant, b As Variant, h As Variant

dd = Array(0, 6, 8, 10, 12, 17, 22, 30, 38, 44, 50, 58)

b = Array(0, 2, 3, 4, 5, 6, 8, 10, 12, 14, 16, 18)

h = Array(0, 2, 3, 4, 5, 6, 7, 8, 8, 9, 10, 11)

d = Val(Txt_d.Text)

For i = 0 To 10

If d <= dd(i + 1) Then

End If

Next i

Txt_b.Text = Str(b(i))

Txt_h.Text = Str(h(i))

End Sub

Private Sub Command2_Click()

End

End Sub

4)复杂表格程序化(含插值处理)

①一元数表的线性插值

α

运行界面:

程序代码:

Private Sub Command1_Click()

Dim i As Integer

Dim t As Single, u As Single, f As Single

Dim kf As Single, af As Single

Dim x As Variant, y As Variant

x = Array(120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 170, 175, 180, 185) y = Array(0.82, 0.84, 0.86, 0.88, 0.89, 0.91, 0.92, 0.93, 0.95, 0.96, 0.98, 0.99, 1, 1) t = Val(Txt_t.Text)

If t < x(0) Then

i = 0

ElseIf t >= x(12) Then

i = 12

Else

For i = 1 To 12

If t <= x(i) Then

Exit For

End If

Next i

End If

u = (t - x(i)) / (x(i + 1) - x(i))

f = y(i) + u * (y(i + 1) - y(i))

kf = f: af = t

Txt_af.Text = Str(af)

Txt_kf.Text = Str(kf)

End Sub

Private Sub Command2_Click()

Txt_t.Text = ""

Txt_af.Text = ""

Txt_kf.Text = ""

End Sub

②二元数表的线性插值

表1-6轴的圆角处应力集中系数Kσ

运行界面:

Dim Appdir As String

Dim i As Integer, j As Integer

Dim ii As Integer, jj As Integer

Private Sub Cmdstart_Click()

Dim ki As Integer, kj As Integer

Dim ax As Single, ay As Single, ap As Single

Dim bt As Single, f As Single

Dim x As Variant, y As Variant

Dim z(8, 6) As Single

x = Array(0, 0, 0.02, 0.04, 0.06, 0.08, 0.1, 0.15, 0.2)

y = Array(0, 500, 600, 700, 800, 900, 1000)

z(1, 1) = 2.32

z(1, 2) = 2.5

z(1, 3) = 2.71

z(1, 4) = 0

z(1, 5) = 0

z(1, 6) = 0

z(2, 1) = 1.84

z(2, 2) = 1.96

z(2, 3) = 2.08

z(2, 4) = 2.2

z(2, 5) = 2.35

z(2, 6) = 2.5

z(3, 1) = 1.6

z(3, 2) = 1.66

z(3, 3) = 1.69

z(3, 4) = 1.75

z(3, 5) = 1.81

z(3, 6) = 1.87

z(4, 1) = 1.51

z(4, 2) = 1.51

z(4, 3) = 1.54

z(4, 4) = 1.54

z(4, 5) = 1.6

z(4, 6) = 1.6

z(5, 1) = 1.4

z(5, 2) = 1.4

z(5, 3) = 1.42

z(5, 4) = 1.42

z(5, 5) = 1.46

z(5, 6) = 1.46

z(6, 1) = 1.34

z(6, 3) = 1.37

z(6, 4) = 1.37

z(6, 5) = 1.39

z(6, 6) = 1.39

z(7, 1) = 1.25

z(7, 2) = 1.25

z(7, 3) = 1.27

z(7, 4) = 1.27

z(7, 5) = 1.3

z(7, 6) = 1.3

z(8, 1) = 1.19

z(8, 2) = 1.19

z(8, 3) = 1.22

z(8, 4) = 1.22

z(8, 5) = 1.24

z(8, 6) = 1.24

ax = Val(txt_rd.Text)

ay = Val(txt_cb.Text)

For i = 1 To 8

If ax <= x(i + 1) Then

ki = i

Exit For

Else

ki = 8

End If

Next i

For j = 1 To 6

If ay <= y(j + 1) Then

kj = j

Exit For

Else

kj = 6

End If

Next j

ap = (ax - x(ki)) / (x(ki + 1) - x(ki))

bt = (ay - y(kj)) / (y(kj + 1) - y(kj))

f = (1 - ap) * (1 - bt) * z(ki, kj) + bt * (1 - ap) * z(ki, kj + 1) + ap * (1 - bt) * z(ki + 1, kj) + ap * bt * z(ki + 1, kj + 1)

txt_kc.Text = Str(f)

End Sub

Private Sub Command2_Click()

End

End Sub

③非线性插值

表1-7蜗轮齿形系数Y

运行界面:

程序代码:

Private Sub Command1_Click()

Dim i As Integer, z As Integer, hi As Integer

Dim x1 As Single, x2 As Single, x3 As Single

Dim u As Single, v As Single, w As Single, yf As Single

Dim x As Variant, y As Variant

x = Array(0, 20, 24, 26, 28, 30, 32, 35, 37, 40, 45, 50, 60, 80, 100, 150, 300)

y = Array(0, 1.98, 1.88, 1.85, 1.8, 1.76, 1.71, 1.64, 1.61, 1.55, 1.48, 1.45, 1.4, 1.34, 1.3, 1.27, 1.24) z = Val(Txt_z.Text)

For i = 1 To 14

If z - x(i + 1) <= 0 Then

hi = i

Exit For

Else

hi = 14

End If

Next i

If hi > 1 And z - x(hi) < x(hi + 1) - z Then hi = hi - 1

x1 = x(hi): x2 = x(hi + 1): x3 = x(hi + 2)

u = (z - x2) * (z - x3) / ((x1 - x2) * (x1 - x3))

v = (z - x1) * (z - x3) / ((x2 - x1) * (x2 - x3))

w = (z - x1) * (z - x2) / ((x3 - x1) * (x3 - x2))

yf = u * y(hi) + v * y(hi + 1) + w * y(hi + 2)

Txt_zv.Text = Str(z)

Txt_yf.Text = Str(yf)

End Sub

Private Sub Command2_Click()

Txt_zv.Text = ""

Txt_yf.Text = ""

Txt_z.Text = ""

End Sub

1.1.2 数表解析法

表1-8圆弧齿锥齿轮几何系数

运行界面:

程序代码:

Private Sub Command1_Click()

Dim YY As Variant

m = 2: n = 9

X = Array(0, 16, 20, 24, 28, 32, 36, 40, 45, 50)

Y = Array(0, 0.171, 0.186, 0.201, 0.214, 0.226, 0.234, 0.245, 0.263, 0.28) YY = Array(0, 0.171, 0.186, 0.201, 0.214, 0.226, 0.234, 0.245, 0.263, 0.28) Call 最小二乘法程序

txt_a0 = A(1, JJ)

txt_a1 = A(2, JJ)

txt_a2 = A(3, JJ)

For j = 1 To n

'将计算结果写入到表格中

MSHFlexGrid1.TextMatrix(j, 0) = Str(j)

MSHFlexGrid1.TextMatrix(j, 1) = Str(X(j))

MSHFlexGrid1.TextMatrix(j, 2) = Str(YY(j))

MSHFlexGrid1.TextMatrix(j, 3) = Str(Y(j))

Next j

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Form_Load()

'设置各行的宽度

MSHFlexGrid1.ColWidth(0) = 500: MSHFlexGrid1.ColWidth(1) = 600 MSHFlexGrid1.ColWidth(2) = 800: MSHFlexGrid1.ColWidth(3) = 1600 '设置表头

MSHFlexGrid1.TextMatrix(0, 0) = "组数"

MSHFlexGrid1.TextMatrix(0, 1) = "齿数Z1"

MSHFlexGrid1.TextMatrix(0, 2) = "J原始值"

MSHFlexGrid1.TextMatrix(0, 3) = "几何系数J拟合值"

End Sub

Public X As Variant, Y As Variant

Public A(10, 11) As Single, S(10) As Single, T(10) As Single

Public i As Integer, j As Integer, k As Integer, m As Integer

Public n As Integer, l As Integer, LL As Integer, KK As Integer Public JJ As Integer, KP1 As Integer

Public b As Single, p As Single, TEMP As Single

Public Sub 最小二乘法程序()

LL = 2 * m + 1

KK = m + 1

JJ = KK + 1

For l = 2 To LL

S(l) = 0

Next l

S(1) = n

For k = 1 To KK

T(k) = 0

Next k

For i = 1 To n

b = 1: T(1) = T(1) + Y(i)

For j = 2 To KK

b = X(i) * b: S(j) = S(j) + b

T(j) = T(j) + Y(i) * b

Next j

For j = JJ To LL

b = X(i) * b: S(j) = S(j) + b

Next j

Next i

For i = 1 To KK

For j = 1 To KK

k = i + j: A(j, i) = S(k - 1)

Next j

Next i

For i = 1 To KK

A(i, JJ) = T(i)

Next i

For k = 1 To KK

p = 0

For i = k To KK

If p < Abs(A(i, k)) Then

p = Abs(A(i, k))

l = i

End If

Next i

If p <= 0.0000000001 Then

Exit For '线性方程组无解

End If

For j = k To JJ

TEMP = A(k, j)

A(k, j) = A(l, j)

A(l, j) = TEMP

Next j

KP1 = k + 1

For j = KP1 To JJ

A(k, j) = A(k, j) / A(k, k)

Next j

For i = 1 To KK

If (i - k) <> 0 Then

For j = KP1 To JJ

A(i, j) = A(i, j) - A(i, k) * A(k, j)

Next j

End If

Next i

Next k

For j = 1 To n

Y(j) = 0

For i = 1 To KK

Y(j) = Y(j) + A(i, JJ) * X(j) ^ (i - 1)

Next i

Next j

End Sub

1.2线图的程序化

1.2.1 查表检索法

图1-1普通V带选型图

运行界面:

程序代码:

Dim i As Integer

Private Sub Cmdstart_Click()

Dim pc As Double, n1 As Double, c(5) As Double

Dim xh As String

pc = Val(txt_pc.Text)

n1 = Val(txt_n1.Text)

c(0) = (Log(365) + (Log(2500) -Log(365)) * (Log(pc) -Log(0.8)) / (Log(5) -Log(0.8))) / Log(10)

c(1) = (Log(100) + (Log(1250) - Log(100)) * (Log(pc) - Log(1)) / (Log(10) - Log(1))) / Log(10) c(2) = (Log(100) + (Log(870) - Log(100)) * (Log(pc) - Log(3.15)) / (Log(18) - Log(3.15))) / Log(10)

c(3) = (Log(100) + (Log(700) - Log(100)) * (Log(pc) - Log(9)) / (Log(40) - Log(9))) / Log(10)

c(4) = (Log(100) + (Log(500) -Log(100)) * (Log(pc) -Log(50)) / (Log(200) -Log(50))) / Log(10)

For i = 0 To 4

If n1 >= 10 ^ c(i) Then

Exit For

End If

Next i

Select Case i

Case 0: xh = "Z"

Case 1: xh = "A"

Case 2: xh = "B"

Case 3: xh = "C"

Case 4: xh = "D"

Case 5: xh = "E"

End Select

txt_xh.Text = xh

End Sub

Private Sub Command2_Click()

End

End Sub

1.3有关数据处理

1.3.1标准值圆整

表1-9圆柱齿轮标准模数

运行界面:

程序代码:

Private Sub Command1_Click()

Dim i As Integer

Dim mm As Single, md As Single, mj As Single

Dim m As Variant

m = Array(1, 1.25, 1.5, 1.75, 2, 2.25, 2.5, 2.75, 3, 3.5, 4, 4.5, 5, 5.5, _ 6, 7, 8, 9, 10, 12, 14, 16, 18, 20, 22, 25, 28, 32, 36, 40, 45, 50) mm = Val(txt_mm.Text)

For i = 0 To 31

If mm <= m(i) Then

Exit For

End If

Next i

md = m(i)

For i = 1 To 31

If mm <= m(i) Then

Exit For

End If

Next i

If (m(i) - mm) <= (mm - m(i - 1)) Then

mj = m(i)

Else

mj = m(i - 1)

End If

txt_md.Text = Str(md)

txt_mj.Text = Str(mj)

End Sub

二、典型机械零部件的程序设计

2.1V带传动的程序设计

运行界面:

相关文档