沈阳航空航天大学
铰链四杆机构设计报告
学院:机电工程学院 班级: 姓名: 学号:
Dim a, b, c, d, e, f, l1, l2, l3, l4, w1, w2, w3, a2, a3#, p, m, dc, bjj, n%
Private Sub Command1_Click() 杆长赋值 l1 = Val(Text1(0).Text) l2 = Val(Text1(1).Text) l3 = Val(Text1(2).Text) l4 = Val(Text1(3).Text)
a = Val(Text3.Text) * 3.14159265358979 / 180 初始 角度转弧度 Call bj(bjj)
If bjj = 1 Then Exit Sub w1 = 0
Call jsg
w1 = Val(Text2.Text) 公式计算角速度,角加速度 w2 = -w1 * l1 * Sin(a - c) / (l3 * Sin(b - c)) w3 = w1 * l1 * Sin(a - b) / (l2 * Sin(c - b)) Text4.Text = w2 Text6.Text = w3
a2 = (l3 * w3 * w3 - l1 * w1 * w1 * Cos(a - c) - l2 * w2 * w2 * Cos(b - c)) / (l2 * Sin(b - c)) a3 = (l2 * w2 * w2 + l1 * w1 * w1 * Cos(a - b) - l3 * w3 * w3 * Cos(c - b)) / (l3 * Sin(c - b)) Text5.Text = a2 Text7.Text = a3 End Sub
Function jsg()
If p = 0 Then p = -1 On Error GoTo el
a = a + 0.01 * w1 角度随时间增加 d = l4 - l1 * Cos(a) e = -l1 * Sin(a)
f = (d ^ 2 + e ^ 2 + l3 ^ 2 - l2 ^ 2) / (2 * l3)
c = 2 * Atn((e + Sqr(d ^ 2 + e ^ 2 - f ^ 2) * p) / (d - f)) b = Atn((e + l3 * Sin(c)) / (d + l3 * Cos(c))) w1 = -w1 el:
w1 = -w1
Line1(0).Y1 = Picture1.Height / 2 定义各个线段端点的坐标 Line1(0).X1 = Picture1.Width / 2
Line1(0).X2 = l1 * Cos(a) + Line1(0).X1 Line1(0).Y2 = Line1(0).Y1 - l1 * Sin(a) Line1(3).X2 = Line1(0).X1 + l4 Line1(3).Y2 = Line1(0).Y1 Line1(3).X1 = Line1(0).X1 Line1(3).Y1 = Line1(0).Y1
Line1(2).X1 = Line1(3).X2 + l3 * Cos(c) Line1(2).Y1 = Line1(3).Y2 - l3 * Sin(c) Line1(2).X2 = Line1(3).X2 Line1(2).Y2 = Line1(3).Y2 Line1(1).X1 = Line1(0).X2 Line1(1).Y1 = Line1(0).Y2 Line1(1).X2 = Line1(2).X1 Line1(1).Y2 = Line1(2).Y1
Shape1(i).Left = Line1(i).X1 - 50 连接两杆转动副的中心坐标 Shape1(i).Top = Line1(i).Y1 - 50 Next i
Picture1.PSet (Line1(1).X1, Line1(1).Y1), vbRed 画出主动件和连架杆的轨迹 Picture1.PSet (Line1(2).X1, Line1(2).Y1), vbGreen End Function
Function bj(x) 杆长条件的判断 x = 0
xld = Val(Text1(0).Text) xlx = Val(Text1(0).Text)
For i = 1 To 3 If xld < Val(Text1(i).Text) Then xld = Val(Text1(i).Text) If xlx > Val(Text1(i).Text) Then xlx = Val(Text1(i).Text) Next i
For i = 0 To 3
zh = Val(Text1(i).Text) + zh Next i
If (xlx + xld) > (zh - (xlx + xld)) Then MsgBox (\不满足杆长要求\x = 1 End If
End Function
。 。 。
Picture2.Scale (-8, 4)-(8, -4) 画出角速度w2函数图像 Picture2.Line (-7.5, 0)-(7.5, 0) Picture2.Line (0, 3.8)-(0, -3.8)
Picture2.CurrentX = 7.5: Picture2.CurrentY = 0.2: Picture2.Print \ Picture2.CurrentX = 0.3: Picture2.CurrentY = 4: Picture2.Print \ For i = -7 To 7
Picture2.Line (i, 0)-(i, 0.1)
Picture2.CurrentX = i - 0.1: Picture2.CurrentY = -0.01: Picture2.Print i Next i
For i = 3.2 To -3.2 Step -0.2
If i > -0.01 And i < 0.01 Then i = 0
Picture2.CurrentX = -0.3: Picture2.CurrentY = i + 0.03: Picture2.Print i Picture2.Line (0.3, i)-(0, i)
Next i
Dim a1, b1, c1, d1, e1, f1, w11# w11 = 0.001
For x = -6.283 To 6.283 Step 0.001 If p = 0 Then p = -1 On Error GoTo el a1 = a1 + w11
d1 = l4 - l1 * Cos(a1) e1 = -l1 * Sin(a1)
f1 = (d1 ^ 2 + e1 ^ 2 + l3 ^ 2 - l2 ^ 2) / (2 * l3)
c1 = 2 * Atn((e1 + Sqr(d1 ^ 2 + e1 ^ 2 - f1 ^ 2) * p) / (d1 - f1)) b1 = Atn((e1 + l3 * Sin(c1)) / (d1 + l3 * Cos(c1))) w11 = -w11 el:
w11 = -w11 w111 = Val(Text2.Text)
w21 = -w111 * l1 * Sin(a1 - c1) / (l3 * Sin(b1 - c1))
w31 = w1 * l1 * Sin(a1 - b1) / (l2 * Sin(c1 - b1))
a21 = (l3 * w31 * w31 - l1 * w111 * w111 * Cos(a1 - c1) - l2 * w21 * w21 * Cos(b1 - c1)) / (l2 * Sin(b1 - c1))
a31 = (l2 * w21 * w21 + l1 * w111 * w111 * Cos(a1 - b1) - l3 * w31 * w31 * Cos(c1 - b1)) / (l3 * Sin(c1 - b1))
Picture2.PSet (x, w21) Next x End If End Sub
Picture3.Scale (-8, 3.5)-(8, -3.5) 画出角速度w3函数图像 Picture3.Line (-7.5, 0)-(7.5, 0) Picture3.Line (0, 3.4)-(0, -3.4)
Picture3.CurrentX = 7.5: Picture3.CurrentY = 0.2: Picture3.Print \ Picture3.CurrentX = 0.3: Picture3.CurrentY = 3.5: Picture3.Print \ For i = -7 To 7
Picture3.Line (i, 0)-(i, 0.1)
Picture3.CurrentX = i - 0.1: Picture3.CurrentY = -0.01: Picture3.Print i Next i
For i = 3.2 To -3.2 Step -0.2
If i > -0.01 And i < 0.01 Then i = 0
Picture3.CurrentX = -0.3: Picture3.CurrentY = i + 0.03: Picture3.Print i Picture3.Line (0.3, i)-(0, i)
Next i
Dim a1, b1, c1, d1, e1, f1, w11# w11 = 0.001
For x = -6.283 To 6.283 Step 0.001 If p = 0 Then p = -1 On Error GoTo el a1 = a1 + w11
d1 = l4 - l1 * Cos(a1) e1 = -l1 * Sin(a1)
f1 = (d1 ^ 2 + e1 ^ 2 + l3 ^ 2 - l2 ^ 2) / (2 * l3)
c1 = 2 * Atn((e1 + Sqr(d1 ^ 2 + e1 ^ 2 - f1 ^ 2) * p) / (d1 - f1)) b1 = Atn((e1 + l3 * Sin(c1)) / (d1 + l3 * Cos(c1))) w11 = -w11 el:
w11 = -w11 w111 = Val(Text2.Text)
w21 = -w111 * l1 * Sin(a1 - c1) / (l3 * Sin(b1 - c1)) w31 = w1 * l1 * Sin(a1 - b1) / (l2 * Sin(c1 - b1))
a21 = (l3 * w31 * w31 - l1 * w111 * w111 * Cos(a1 - c1) - l2 * w21 * w21 * Cos(b1 - c1)) / (l2 * Sin(b1 - c1))
a31 = (l2 * w21 * w21 + l1 * w111 * w111 * Cos(a1 - b1) - l3 * w31 * w31 * Cos(c1 - b1)) / (l3 * Sin(c1 - b1))
Picture3.PSet (x, w31) Next x End If End Sub
机械原理大作业VB四杆机构的设计



