Word VBA编制矩形溢洪道水力计算程序第一稿

2019-04-22 10:23

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


Word VBA编制矩形溢洪道水力计算程序第一稿.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:GPS网复测成果书(最终版) - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: