土木在线论坛 \ 建筑设计 \ CAD下载及教程 \ [推荐]使用AutoCAD VBA进行水库调洪计算

[推荐]使用AutoCAD VBA进行水库调洪计算

发布于:2003-10-25 11:33:25 来自:建筑设计/CAD下载及教程 [复制转发]
使用AutoCAD VBA进行水库调洪计算
使用AutoCAD VBA进行水库调洪计算
衣秀勇
(天津勘测设计研究院,天津300222)
关键词:AutoCAD VBA;水库;调洪计算
摘 要:AutoCAD VBA是集成在AutoCAD中的二次开发工具,是Microsoft Visual Basic的一个子集,而VB又是从Basic升级而来的,因此使用者不需花太多的精力去另外学习一门编程语言,利用该工具可轻松使用图解法进行工程计算。在AutoCAD中进行调洪计算时,首先创建一个AutoCAD VBA工程;然后在VBA中编写调洪程序;在此基础上可以添加或修改一些功能。
1使用AutoCAD VBA进行水库调洪计算
VBA(Visual Basic for Application)是Microsoft公司集成在Microsoft office系列软件中的超级开发工具,AutoCAD在R14及以上版本中也集成了VBA作为自己的一个二次开发工具。AutoCAD VBA与Office VBA是同一工具同一环境,不同的是AutoCAD VBA集成于AutoCAD中。
在手工进行水库调洪计算的时代,人们使用试算法和图解法进行计算,其中图解法因其比较直观精确而且不需多次试算而受到青睐。后来在PC-1500机、微机和Basic语言普及的时代,因试算法较适合编程进行迭代计算,试算法又得到了广泛使用。
现在随AutoCAD的逐渐普及和AutoCAD二次开发工具的日益丰富,尤其是从R14开始增加的VBA开发工具为图解法的发展应用提供了可能。
使用AutoCAD VBA进行水库调洪计算有以下优点:
(1)AutoCAD是专业的工程绘图软件,因此用它绘制图解法的图形就十分简单方便,使得计算具有了图解法精确的优点。
(2)VBA是Microsoft Visual Basic的一个子集,而VB又是从Basic升级而来的,因此不需要花太多的精力去另外学习一门编程语言。
(3)AutoCAD VBA与Office VBA是同一环境,这又方便了AutoCAD与Office的通讯,例如程序的输入和输出文件都可以是Excel文件。
(4)AutoCAD 与VBA结合使用,可以轻松输出精确的图形结果,例如调洪计算可以输出实际入库和泄流过程线。
本文将具体介绍使用AutoCAD VBA进行水库调洪计算的方法。
2水库调洪计算图解法的原理[1]
2.1水库调洪计算的实用公式
水库调洪计算的实用公式如下:
2.2水库调洪计算图解法的原理
式(1)比较适合使用试算法进行水库的调洪计算,要使用图解法进行水库调洪计算需要将式(1)改写为以下形式:
式中,V、q、V/Δt-q/2和V/Δt+q/2均可与水库水位Z建立函数关系。因此,可根据选定的计算时段Δt、已知的水库水位容积关系曲线以及根据水力学公式算出的水位下泄流量关系曲线,事先计算并绘制以下4条曲线:

其中,C是水位下泄流量关系曲线,D是水库水位~容积关系曲线,A、B是图解法中的两根辅助曲线。绘制示例图形如图1所示。
参照图1,调洪计算的步骤是:
(1)根据已知的入库洪水流量过程线及选定的计算时段Δt算出各时段的平均入库流量并定出初始的Z1、q1、V1值。
(2)在图1的水位坐标轴上量取第一时段的Z1得a点,从a点做水平线ab交曲线A于b点,从b点延长ab至c点并使bc=因曲线A是(V/Δt-q/2)=f1(Z),a点代表Z1,因此ac就应等于+(V1/Δt-q1/2),按图解法的公式ac也等于(V2/Δt+q2/2)。
(3)从C点做垂线交曲线B于d点,过d点做水平线de交水位坐标轴于e点,显然de=ac=(V2/Δt+q2/2)。因曲线B是(V/Δt+q/2)=f2(Z),d点在曲线B上,e点就应代表Z2。
(4)de交曲线C于f点,过f点做垂线交q坐标轴于g点。因曲线C是q=f3(Z),e点代表Z2,于是ef应是q2,即从g点可以读出q2的值。
(5)过d点做de的延长线dh交曲线D于h点,过h点做垂线交V坐标轴于i点。因曲线D是V= f4(Z),e点代表Z2,于是eh应是V2,即从i点可以读出V2的值。
(6)将e点代表的Z2值、g点代表的q2值和i点代表的V2值分别作为第二时段Z1、q1、V1,按上述同样方法进行图解计算,又可求出第二时段的Z2、q2、V2等值,依次循环就可完成全部计算。
3在AutoCAD中调洪计算的方法和步骤
在AutoCAD中进行调洪计算遵循上述图解法的原理,其具体的实现方法如下(见图2):
3.1创建一个AutoCAD VBA工程
进入AutoCAD2000,在“工具”菜单的“宏”子菜单中单击“Visual Basic编辑器”进入VBA的编程环境。在“Visual Basic编辑器”中单击“插入”菜单中的“添加模块”菜单项,VBA将为您添加一个新的模块,接着您要为模块添加一个过程,如:
3.2 在VBA中编写调洪程序
在过程的Sub和End Sub之间编写调洪程序。
3.2.1定义程序中使用的主要变量
(1)定义库容曲线和水位泄流曲线的点数以及入库洪水过程的点数。入库洪水过程线各点之间要保证时间间隔相同。在使用该程序时,首先都要根据实际情况对这两个变量进行赋值。程序如下:
(2)将如图1中的四条曲线即水位库容、水位泄流、双辅助线分别定义为AutoCAD中的多段线,同时定义4条曲线的顶点坐标数组,这些坐标数组所含数值将作为在AutoCAD中画4条曲

全部回复(53 )

只看楼主 我来说两句
  • play皮皮
    play皮皮 沙发
    好东西,学习学习怎么使用,谢谢楼主
    2015-08-21 12:41:21

    回复 举报
    赞同0
  • qq_1430009146920
    感谢楼主的分享,手算算死我了
    2015-04-26 09:16:26

    回复 举报
    赞同0
加载更多
这个家伙什么也没有留下。。。

CAD下载及教程

返回版块

52.09 万条内容 · 667 人订阅

猜你喜欢

阅读下一篇

[分享]AutoCAD相关问答(2)

三、绘图仪出图时的“内存不足”的问题 用HP DesignJet 系列的绘图仪出图时,遇到绘图仪“内存不足”的错误,绘制的图纸就会不完整或发生裁剪。AutoCAD的用户经常问,怎样才能确定绘图仪出图时到底需要多少内存?怎样配置我的绘图仪的内存,才能满足我的出图需求?有没有方法可以读入绘图文件以决定该文件打印所需内存? 这个问题的确是一个硬件问题,而与软件AutoCAD没有太大关系。我们把从HP公司获得的有关信息,整理如下,以供AutoCAD用户参考。

回帖成功

经验值 +10