Word VBA编制矩形溢洪道水力计算程序
1 概述
1.1 溢洪道水力计算
溢洪道水力计算是水库工程设计中的重要内容之一,分为上游明渠段和下游陡坡段。上游明渠段按明渠均匀流计算正常水深,下游陡坡段随着泄洪槽底比降及底宽的变化,通常按断面能量守恒来试算水深,试算工作量较大。本文通过Word程序内置宏语言VBA编制的矩形溢洪道水深计算程序可轻松解决试算工作量大的麻烦,为溢洪道设计方案选型提供了有力的计算工具,计算准确且大大提高工作效率。程序在安装Word2000以上版本的电脑上即可运行,利用Word程序内置宏语言VBA执行程序,在将工程设计数据及溢洪道几何尺寸数据输入后,点击“水力计算”命令按钮,可计算出溢洪道明渠段及各陡坡段(共设5段陡坡)水深、流速、掺气水深等数据,再点击“文本输出”命令按钮可输出溢洪道水深计算的文本及水面线计算表。 1.2 VBA简介
VBA(Visual Basic For Application)是微软公司Office办公软件中内置的宏语言,利用该语言可扩展Word、Excel等程序功能,创建专业程序工具。Word VBA的打开是在Word程序中点击下拉菜单“工具”→“宏”→“Visual Basic编辑器”。若要执行已创建的宏,首先需将下拉菜单“工具”→“宏”→“安全性”设为中或低,确定后关闭Word程序然后启动,再点击下拉菜单“工具”→“宏”→“宏?”,选取所要运行的宏名,点击“运行”命令按钮,即可运行所创建的宏。
2 程序编制
2.1 创建程序界面
打开Word程序,点击下拉菜单“工具”→“宏”→“Visual Basic编辑器”,打开Microsoft Visual Basic文档,点击下拉菜单“插入”→“用户窗体”,出现UserForm窗体及工具箱,点击工具条上“属性窗口”按钮,调出属性窗口。利用工具箱及属性窗口,在UserForm窗体中创建27个标签控件、53个文字框控件、3个框架控件、3个命令按钮控件,创建的程序界面如图1所示。
1
图1 程序界面
创建的主要控件属性见表1。
表1 主要控件属性表 序号 1 2 3 4
2.2 程序代码编写
①双击用户窗体,进入程序代码编辑器,在“(通用)”中用Private语句声明129个程序变量,数据类型为Single。
②双击命令按钮“水力计算”控件,编写Click事件代码如下: Private Sub cmdcpu_Click() t1 = Val(TextBox1.Text) t2 = Val(TextBox2.Text) t3 = Val(TextBox3.Text) t4 = Val(TextBox4.Text) t5 = Val(TextBox5.Text)
2
名称 Frmyhd Cmdcpu Cmdexp Cmdcnl Caption(标题) 矩形溢洪道水力计算程序(DHMZY)版权所有 水力计算 文本输出 取消 备注 用户窗体 命令按钮 命令按钮 命令按钮 t6 = Val(TextBox6.Text) t7 = Val(TextBox7.Text) t8 = Val(TextBox8.Text) t9 = Val(TextBox9.Text) t10 = Val(TextBox10.Text) t11 = Val(TextBox11.Text) t12 = Val(TextBox12.Text) t13 = Val(TextBox13.Text) t14 = Val(TextBox14.Text) t15 = Val(TextBox15.Text) t16 = Val(TextBox16.Text) t17 = Val(TextBox17.Text) t18 = Val(TextBox18.Text) t19 = Val(TextBox19.Text) t20 = Val(TextBox20.Text) t21 = Val(TextBox21.Text) t22 = Val(TextBox22.Text) t23 = Val(TextBox23.Text)
If t4 <= 0 Then MsgBox \计算数据必须输入后再点击计算按钮!\警告\
If t5 <= 0 Then MsgBox \计算数据必须输入后再点击计算按钮!\警告\ a = 1.05 g = 9.8
If t18 <= 0 Then MsgBox \请正确输入明渠段底宽!\警告\ q = t4 / t18
hk = (a * q ^ 2 / g) ^ (1 / 3) TextBox24.Text = Str(hk)
'计算0-0断面参数及正常水深h0 vk = q / hk
Ek = hk + a * vk ^ 2 / 2 / g wk = t18 * hk xk = t18 + 2 * hk rk = wk / xk
ck = 1 / t5 * rk ^ (1 / 6) j0 = vk ^ 2 / ck ^ 2 / rk Dim z0 As Single For z0 = 1 To 30000 w0 = t18 * z0 / 1000 x0 = t18 + 2 * z0 / 1000 r0 = w0 / x0
c0 = 1 / t5 * r0 ^ (1 / 6) s0 = (t6 ^ 2 + t12 ^ 2) ^ 0.5
3
If s0 <= 0 Then MsgBox \请正确输入明渠段水平段长!\警告\Sub
i0 = t12 / s0
If Int(w0 * c0 * (r0 * i0) ^ 0.5 * 10 + 5) / 10 = Int(t4 * 10 + 5) / 10 Then Exit For
Next z0
h0 = z0 / 1000
If h0 >= 30 Then MsgBox \计算数据溢出错误!\警告\ Label30.Caption = \正常水深h0=\
'计算1-1断面水力参数 Dim z1 As Single For z1 = 1 To 30000
If t19 <= 0 Then MsgBox \请正确输入陡坡1底宽!\警告\ w1 = t19 * z1 / 1000 v1 = t4 / w1
x1 = t19 + 2 * z1 / 1000 r1 = w1 / x1
c1 = 1 / t5 * r1 ^ (1 / 6) s1 = (t7 ^ 2 + t13 ^ 2) ^ 0.5
If s1 <= 0 Then MsgBox \请正确输入陡坡1水平段长!\警告\Sub
i1 = t13 / s1
E1 = z1 / 1000 + a * v1 ^ 2 / 2 / g j1 = v1 ^ 2 / c1 ^ 2 / r1
If Int((Ek + i1 * s1) * 10 + 5) / 10 = Int((E1 + (j0 + j1) / 2 * s1) * 10 + 5) / 10 Then Exit For Next z1
h1 = z1 / 1000
'If h1 >= 30 Then MsgBox \计算数据溢出错误!\警告\ TextBox25.Text = Str(h1)
'计算2-2断面水力参数 Dim z2 As Single For z2 = 1 To 30000
If t20 <= 0 Then MsgBox \请正确输入陡坡2底宽!\警告\ w2 = t20 * z2 / 1000 v2 = t4 / w2
x2 = t20 + 2 * z2 / 1000 r2 = w2 / x2
c2 = 1 / t5 * r2 ^ (1 / 6) s2 = (t8 ^ 2 + t14 ^ 2) ^ 0.5
If s2 <= 0 Then MsgBox \请正确输入陡坡2水平段长!\警告\Sub
4
i2 = t14 / s2
E2 = z2 / 1000 + a * v2 ^ 2 / 2 / g j2 = v2 ^ 2 / c2 ^ 2 / r2
If Int((E1 + i2 * s2) * 10 + 5) / 10 = Int((E2 + (j1 + j2) / 2 * s2) * 10 + 5) / 10 Then Exit For Next z2
h2 = z2 / 1000
If h2 >= 30 Then MsgBox \计算数据溢出错误!\警告\ TextBox26.Text = Str(h2)
'计算3-3断面水力参数 Dim z3 As Single For z3 = 1 To 30000
If t21 <= 0 Then MsgBox \请正确输入陡坡3底宽!\警告\ w3 = t21 * z3 / 1000 v3 = t4 / w3
x3 = t21 + 2 * z3 / 1000 r3 = w3 / x3
c3 = 1 / t5 * r3 ^ (1 / 6) s3 = (t9 ^ 2 + t15 ^ 2) ^ 0.5
If s3 <= 0 Then MsgBox \请正确输入陡坡3水平段长!\警告\Sub
i3 = t15 / s3
E3 = z3 / 1000 + a * v3 ^ 2 / 2 / g j3 = v3 ^ 2 / c3 ^ 2 / r3
If Int((E2 + i3 * s3) * 10 + 5) / 10 = Int((E3 + (j2 + j3) / 2 * s3) * 10 + 5) / 10 Then Exit For Next z3
h3 = z3 / 1000
If h3 >= 30 Then MsgBox \计算数据溢出错误!\警告\ TextBox27.Text = Str(h3)
'计算4-4断面水力参数 Dim z4 As Single For z4 = 1 To 30000
If t22 <= 0 Then MsgBox \请正确输入陡坡4底宽!\警告\ w4 = t22 * z4 / 1000 v4 = t4 / w4
x4 = t22 + 2 * z4 / 1000 r4 = w4 / x4
c4 = 1 / t5 * r4 ^ (1 / 6) s4 = (t10 ^ 2 + t16 ^ 2) ^ 0.5
If s4 <= 0 Then MsgBox \请正确输入陡坡4水平段长!\警告\Sub
5
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Word VBA编制矩形溢洪道水力计算程序第一稿在线全文阅读。
相关推荐: