基于AutoCAD VBA的排洪渠快速设计
2019-09-10符裕红张代杰
符裕红 张代杰
摘要:以AutoCAD VBA为基础,制定方案,选择参数,通过编程绘制排洪渠纵断面图,界面清楚且操作简单,经不断优化和完善,选定具体的排洪渠案例进行演示。程序运行后,只需在界面中输入相应的高程比(纵比)和里程比(横比)分母值、测量数据中的最高与最低高程、各个桩号对应的地面高程、渠底高程,即可实现排洪渠纵断面的自动成图。使排洪渠断面绘制快速、高效、准确,加速了制图进度,减少了工作量,提高了工作效率,使设计工作更加简化。可促进AutoCAD VBA在水利工程设计中的二次开发以及快速制图方法的应用与推广。
关键词:排洪渠;快速设计;AutoCAD VBA
中图法分类号:TV87文献标志码:A
文章编号:1006-0081(2019)01-0038-04
排洪渠是为了预防洪水灾害而修筑的沟渠,也称为排洪沟[1],是水利工程的重要组成部分,主要用于保护某些建筑或工程项目的安全,如堤防护岸工程、清淤疏浚工程等[2]。在其设计过程中,断面设计处理的关键是设计一个能够常年保证有水的水道及能够应付不同水位、水量的水道边缘[3],涉及到水位、洪峰流量、地形等诸多因素,故需改变单纯梯形横断面。采用多层台阶状复式断面[4],通过增加行洪断面来降低水流流速,减小水流侵蚀,提高蓄洪能力,增加生境多样性。工程图是世界范围通用的“工程技术语言”,是生产施工中必不可少的技术文件[5]。加快制图速度能有效缩短工期,提高工程效率。AutoCAD是水利工程设计中的主要绘图软件,也是一个全球通用的绘图软件包[6],在测绘行业应用普遍[7],特别是其纵横断面的设计更是必不可少。经常用于渠道纵断面设计制图的软件,包括AutoCAD+R14、Auto CAD + Excel、AutoCAD二次开发,但由于具体设计及要求不同,在软件使用过程中不尽完善。AutoCAD+R14易修改、成图好、绘图快,但需依次绘制直线连接各个实测地面线坐标;Auto CAD + Excel需要在繪图前进行坐标转换[8-11];AutoCAD二次开发,能最大限度地满足用户需求,更加方便、快速和规范[12-13]。在以往的水利实践中,AutoCAD VBA主要应用于地形图的处理及公路断面、河道、渠道、管道[14-18]等方面。
在研究中,作者经过实践,对原先使用的AutoCAD VBA工程模块程序[11,18]作了进一步的优化和完善,达到直接成线和自动成图的效果,大大提高了制图的速度。其优势主要表现在以下几个方面:①原有工程模块在高程比例中需要对比例尺进行换算后再进行数值的输入,优化后的程序只需在其对话框中直接输入比例尺分母的数值即可;②原有“挖深”和“填筑”需要按照对应的高程进行换算后再输入,优化后的程度只需直接在其对话框输入具体的数值即可;③原有成图显示在每个对应的高程点处不能自动形成图框,优化后的程序能进行标示线和图框的自动绘制。为此,本文对AutoCAD VBA在管线工程设计中的运用展开了研究。
1 排洪渠选择
本文所选择的排洪渠兼顾河道排洪与农田灌溉功能,建成后的主要任务是提高该地的防洪标准、有效保护人民的生命财产安全。该项目位于贵州省贵阳市花溪区高坡乡杉坪村。工程设计按照相关规范[19-21]执行,按Ⅵ等5级小型水利工程设计,按照10 a一遇洪水标准设防,排洪渠总长1 464 m。①排洪渠断面一(0+000-0+640,0+820-1+464),长1 284 m,设计坡降0.07,过水断面为矩形断面,内底宽1.2 m,设计水深1.15 m,安全超高0.05 m;防洪渠边墙宽度0.5 m,采用M7.5浆砌块石砌筑,内侧为M10水泥砂浆抹面,表面用M10水泥砂浆压顶,纵向每10 m设伸缩缝,缝宽0.02 m,缝间用沥青混凝土回填;底板为C15混凝土垫层0.1 m,碎石垫层0.15 m。②断面二(0+640~0+820),长180 m,设计坡降0.07,过水断面为矩形断面,内底宽0.2 m,设计水深0.75 m,安全超高0.05 m;修补、加高部分防洪渠边墙,采用M7.5浆砌块石砌筑,全段内侧为M10水泥砂浆抹面,表面用M10水泥砂浆压顶,纵向每10 m设伸缩缝,缝宽0.02 m,缝间用沥青混凝土回填;底板为C15混凝土垫层0.1 m,碎石垫层0.15 m。渠线根据排除洼地洪涝的要求和当地的地形、地质、水文条件进行布设,并在实地的0+320和0+680处设放水斗门调节水池,以适应灌溉用水的放水要求。地面及排洪渠高程如表1所示。
2 VBA编程设计思路
编程之前要先制定程序开发方案,设计程序编写流程,最后通过具体程序来实现相关功能并输出所需的结果。本文根据排洪渠的需要,综合考虑参数设置、转换以及数据输入与运行输出等主要步骤。在确定初始条件和参数选择基础上,对相关参数进行转换,以AutoCAD的原点为基准,确定首个坐标点在AutoCAD中的位置,依此来确定各高程点位置,并进行自动连线[11]。
3 绘图界面
在程序运行后的绘图界面中,用户通过直接在相应的标题栏中输入排洪渠对应的高程比例(纵比)与里程比例(横比)的分母值、最高点高程、最低点高程、桩号、各地面高程、渠底高程的相应数值,程序即可进行自动换算并确定各坐标点在图中的位置。
本文采用案例的排洪渠工程项目参数如下:高程比例(纵比)为1/100,里程比例(横比)为1/2 000,起始桩号为0+000,结束桩号为1+464;排洪渠纵断面绘制选择排洪渠断面一中的第一段为例,桩号为0+000-0+640,其中渠底最高高程为1 264.38 m(0+000)的地面高程、最低高程为1 252.38 m(0+640)的地面高程。
具体操作为:根据排洪渠工程测量中的具体参数和数值,在高程比例对应的文本框中输入其高程比例(纵比)值100,在里程比例对应的文本框中输入里程比例(横比)值2 000;选择所有测定高程值中的最高高程和最低高程填入其相应文本框内,在最高高程处输入1 264.38,在最低高程处输入1 252.38;点击“输入”命令按钮自动绘制坐标及相应表格;分别在桩号、地面高程、渠底高程文本框内输入每个桩号具体对应的高程值,单击“确定”命令按钮自动进行地面和渠底高程线的绘制;“挖深”和“填高”在相应数据输入后即可自动换算。程序运行完成后,在图中补充相应的图框、标题、标注、工程量、备注等后即可完成制图。
4 部分程序代码
高程柱定义:
Private Subsr_Click()
Dim zgdz As Double
Dim zddz As Double
Dim gcbz As Double
…… ……
高程柱文字定义
Dimgctext As Double
Dimgcd(0 To 2) As Double
Dim height As Double
表格文字定义:
Dimbgtext As String
Dimbgd(0 To 2) As Double
Dimbgheight As Double
…… ……
高程柱线绘制及高程文字:
Dim mAs Integer
gcbz = Format(gcb.Text, "#####")
lcbz = Format(lcb.Text, "#####")
zgdz = Format(zgd.Text / (gcbz / 100), "####") * (gcbz / 100)
zddz = Format(zdd.Text / (gcbz / 100), "####") * (gcbz / 100)
表格文字:
Next m
bgtext = "桩 号"
bgd(0) = -50
bgd(1) = -7.5
bgd(2) = 0
bgheight = 6
SettextObj = ThisDrawing.ModelSpace.AddText(bgtext, bgd, bgheight)
bgtext = "地面高程"
bgd(0) = -50
bgd(1) = -17.5
bgd(2) = 0
bgheight = 6
SettextObj = ThisDrawing.ModelSpace.AddText(bgtext, bgd, bgheight)
…… ……
表格線:
For m = 1 To 8
bg(1) = -20: bg(2) = -(m - 1) * 10
bg(3) = -55: bg(4) = -(m - 1) * 10
…… ……
里程转换:
…… ……
zdmgcz = Format(dmgc.Text, "####.##")
zdmgcxz = Format(dmgcx.Text, "####.##")
zdmgc1 = (zdmgcz - zddz + gcbz / 100) * gcbzv * 1000
zdmgc2 = (zdmgcxz - zddz + gcbz / 100) * gcbzv * 1000
…… ……
高程转换:
Dimdmx(1 To 4) As Double
Dimdmxline As AcadLWPolyline
dmx(1) = d2: dmx(2) = zdmgc2
dmx(3) = d1: dmx(4) = zdmgc1
Setdmxline = ThisDrawing.ModelSpace.AddLightWeightPolyline(dmx)
地面线、渠底线……
…… ……
End Sub
5 结 语
AutoCAD VBA提供了强大的二次开发功能,可满足不同用户的需求。其主要优势为:基于AutoCAD VBA所进行的二次开发,能快速、高效、准确地绘制水利工程中的各种坡面沟渠、农饮工程管道、截排水沟等水利管线纵断面图;能减少工作量、加快绘图速度、缩短设计周期、增强设计质量、提高工作效率。通过研究与实践,旨在使AutoCAD VBA二次开发能全面应用于水利工程设计中,并对基于AutoCAD VBA排洪渠快速设计方法的应用和推广起到积极促进作用。
参考文献:
[1] GB/T 16453.4排洪沟设计规范[S].
[2] 杨罗忠.浅议排洪渠在山洪沟道治理工程中的应用[J].水利水电建设,2016(29):145-146.
[3] 满慧,李飞.排洪水道的“近自然”生态设计——以无锡市基康里排洪渠景观改造为例[J].现代农业科技,2009(22):241-244.
[4] 李新民.对农机维修行业管理工作发展趋势的探讨[J]. 山西农机,2002(2):20-21.
[5] 李研.计算机软件在工程制中的应用[J].计算机与数学工程,2010(12):192-195.
[6] 曾令宜,曾令琴,娄梅,等.应用AutoCAD绘制水利工程图的思考[J].人民黄河,2005,9(27):50-51.
[7] 狄钢. AutoCAD VBA在工程测量中的应用[J].铁道勘察,2006(6):3-5.
[8] 李锐,刘洋.Excel/AutoCAD软件在渠道设计中的组合应用[J].现代化农业,2005(9):32-33.
[9] 马章进,杨祎,陈立新.浅谈Excel、AutoCAD在渠道设计中的应用[J].工程地质计算机应用,2004(1):31-33.
[10]曾桂香,朱连斌. AutoCAD及 Excel在水利工程设计中的应用[J].黑龙江水利科技,2006(3):185.
[11]符裕红,张代杰.AutoCAD VBA在渠道纵断面设计中的应用[J].中国农村水利水电,2009(9):133-136.
[12]王若慧.基于VBA的AutoCAD二次开发及应用实例[J].自动化技术与应用,2007,26( 9):30-33.
[13]张帆.AutoCAD二次开发教程[M].北京:清华大学出版社,2006.
[14]羌树华,王训霞.利用AutoCAD VBA实现地形图图廓的批量生成[J].现代测绘,2017,4(37):31-32.
[15]纪凯.基于AutoCAD VBA的公路施工横断面图的绘制和土方量计算[J].城市勘测,2010,8(4):133-136.
[16]牛先玄.AutoCAD VBA在河道断面套绘中的应用[J].中国市政工程,2015,10(5):82-88.
[17]付少波,王超.VBA在AutoCAD 渠道横断面绘图中的应用[J].广东水利水电,2016,8(8):61-64.
[18]符裕红,张代杰.基于AutoCAD VBA二次开发的压力管道设计[J].节水灌溉,2011(8):73-76.
[19]GB50201-2014防洪标准[S].
[20]GB50288-99灌溉与排水工程设计规范[S].
[21]GB/T50805-2012城市防洪工程设计规范[S].