机械振动设计计算与VB编程实例
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

5.1 编制参数化界面的频率计算程序

把上例4.1螺旋桨轴扭转振动固有频率的计算的源程序改编成参数化界面源程序,首先采用应用程序常用工作界面的窗体界面及控件如图5.1所示。

图5.1 参数化界面源程序窗体界面及控件

1、2、3、4文本框各4个,命令框1个。

其工作界面如图5.2所示。

图5.2 参数化界面源程序用户界面

单击标准工具栏上的按钮,立即出现参数化界面源程序用户界面如图5.2所示,单击按钮,便弹出:

Private Sub Command1_Click()事件过程名
End Sub

在事件过程名中编制如下“参数化界面”应用程序代码如下:

Private Sub Command1_Click()
  '参数化界面螺旋桨轴固有频率计算2014.11.1
   Text1(0).Text = "轴长cm"
   Text1(1).Text = "轴径cm"
   Text1(2).Text = "螺旋桨简化圆盘半径cm"
   Text1(3).Text = "螺旋桨简化圆盘厚度cm"
   Text3(0).Text = "螺旋桨轴的惯性 cm·kg·s"
   Text3(1).Text = "螺旋桨轴抗扭刚度 cm·kg"
   Text3(2).Text = "螺旋桨轴角速度平方"
   Text3(3).Text = "螺旋桨轴固有频率 周/s"
   Text5.Text = "正在进行计算!"
   L01 = Val(Text2(0).Text)           '轴长cm
   d01 = Val(Text2(1).Text)           '轴径cm
   r0 = Val(Text2(2).Text)             '螺旋桨简化圆盘半径cm
   b = Val(Text2(3).Text)              '螺旋桨简化圆盘厚度cm
  i1l = i1l!: GIp = GIp!: ω2 = ω2!: f = f! '隐式声明诸变量为单精度
π = 3.1415926: xπ = π / 180: x180 = 180 / π
g = 980                                       '重力加速度cms^2
ρ = 0.008                                    '钢密度kg/cm3
'如若借用本程序计算相似问题,必须给出限定范围便于纠错
If L01 < 1000 Or L01 > 6000 Then
 MsgBox "输入的轴长L01 < 1000 Or L01 > 6000 超越尺寸范围,即超过程序借用范围。", 1
 End If
 If d01 < 10 Or d01 > 30 Then
 MsgBox "输入的轴径d01 <10 Or d01 > 30, 超越尺寸范围,即超过程序借用范围。", 1
 End If
 If r0 < 30 Or r0 > 80 Then
 MsgBox "输入的圆盘半径r0< 30 Or r0> 80 超越尺寸范围,即超过程序借用范围。", 1
 End If
 If b < 5 Or b > 15 Then
 MsgBox "输入的圆盘厚度b< 5 Or b> 15 超越尺寸范围,即超过程序借用范围。", 1
End If
 m0 = (ρ / g) * b * π * r0 ^ 2            '简化螺旋桨的钢圆盘的 m0   kg ·s2 /cm
 i = (1 / 2) * m0 * r0 ^ 2                     '简化螺旋桨的钢圆盘的惯性 cm·kg·s^2
 r01 = d01 / 2
 m01 = (ρ / g) * l01 * π * r01 ^ 2            '螺旋桨轴的 m01   kg·s2 /cm
 i1l = (1 / 2) * m01 * (d01 ^ 2 / 4)          '螺旋桨轴的惯性 cm·kg·s^
 Gjm = 80 * 10 ^ 4                              '钢的剪切模量80 GPa=80*10^4 MPa
 GIp = (Gjm / l01) * (π / 2) * r01 ^ 4       '螺旋桨轴抗扭刚度 cm·kg
 ω2 = GIp / (i + i1l / 3)                      '螺旋桨轴角速度平方弧度^2/s^2
 f = (1 / (2 * π)) * Sqr(ω2)                 '螺旋桨轴扭转振动固有频率 周/s           '
   Text4(0).Text = i1l
   Text4(1).Text = GIp
   Text4(2).Text = ω2
   Text4(3).Text = f
  End Sub
Private Sub Form_Load()
  保存计算.Enabled = False
End Sub
Private Sub Text2_Change(Index As Integer)
  保存计算.Enabled = True
End Sub
Private Sub 保存计算_Click()
wrap = Chr$(13) + Chr$(10)
str1 = "输入参数"
str2 = "输出结果"
str3 = "      "
   i = 0
   strin = Text5.Text + wrap + str3 + str1 + wrap + wrap
For i = 0 To 3                                        '有4个输入参数0-3
   strin = strin + Text1(i).Text + str3 + Text2(i).Text + wrap
Next i
   i = 0
   strin = strin + str3 + str2 + wrap + wrap
For i = 0 To 3                                        '有4个输出参数0-3
   strin = strin + Text3(i).Text + str3 + Text4(i).Text + wrap
Next i
   strin = wrap + strin + "结束······" + wrap + wrap
CommonDialog1.Filter = "Text Files(*.TXT)|*.txt"
CommonDialog1.ShowSave
If CommonDialog1.FileName <> "" Then
Open CommonDialog1.FileName For Output As #1
Print #1, strin
Close #1
End If
End Sub
Private Sub 关于本项目计算_Click()
Load frmAbout
frmAbout.Show
End Sub
Private Sub 终止_Click()
End
End Sub
Private Sub 退出_Click()
End
End Sub
Private Sub 固有频率计算_Click()
   Text1(0).Text = "轴长cm"
   Text1(1).Text = "轴径cm"
   Text1(2).Text = "螺旋桨简化圆盘半径cm"
   Text1(3).Text = "螺旋桨简化圆盘厚度cm"
   Text3(0).Text = "螺旋桨轴的惯性 cm·kg·s"
   Text3(1).Text = "螺旋桨轴抗扭刚度 cm·kg"
   Text3(2).Text = "螺旋桨轴角速度平方"
   Text3(3).Text = "螺旋桨轴固有频率 周/s"
   Text5.Text = "正在进行计算!"
End Sub
'r0=60     '简化螺旋桨的钢圆盘半径cm
'b=10     '简化螺旋桨的钢圆盘厚度cm
'L01=zcb*10^2   '螺旋桨轴长度cm
'd01=25    '螺旋桨轴直径cm
'L01=50*10^2   '螺旋桨轴长度cm

参数化界面频率计算源程序的运行如下:

单击标准工具栏上的按钮,立即出现本参数化界面源程序的用户界面,如图5.2所示,单击菜单项便弹出下拉菜单,单击子菜单,便显示出输入、输出参数名,如图5.3所示。

图5.3 参数化界面源程序界面上显示出输入、输出参数名

在输入参数值文本框中键入相应的参数值,如图 5.4 所示。在输入参数值文本框中键入相应的参数值。

图5.4 参数化界面源程序界面

单击按钮,程序界面在输出参数值文本框后出现相应参数值,如图5.5所示。

图5.5 参数化界面源程序输出参数值

单击菜单中的“文件”栏便出现下拉菜单,如图5.6所示。

图5.6 参数化界面源程序下拉菜单

单击下拉菜单中的“保存计算”钮,即出现一另存为对话框,如图5.7所示。

图5.7 另存为对话框

单击钮,将输出参数值另存入预先设置的文本文档“参数化界面频率计算”中。如图5.8所示。

图5.8 文本文档