基于AutoCAD和VBA的河道横断面图自动绘制软件的应用
2013-03-02王江徐艳李辉
王江 徐艳 李辉
基于AutoCAD和VBA的河道横断面图自动绘制软件的应用
王江 徐艳 李辉
一、AutoCAD和VBA简介
AutoCAD(Auto Computer Aided Design)是美国Autodesk公司首次于1982年发明的计算机辅助设计软件,用于二维绘图和基本的三维设计。现已经成为国际上广为流行的绘图工具。AutoCAD具有良好的用户界面,通过交互菜单或命令行方式便可以进行各种操作。VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。VBA是一种应用程式视觉化的Basic Script。1994年发行的Excel 5.0版本中,开始具备了VBA的宏功能。
二、使用VBA控制AutoCAD绘
制横断面图的实现过程
(1)读取河道现状断面数据、工程后断面数据和断面设计参数等文件。
(2)取得在VB环境中取得CAD的控制权。
CAD2008进行完全安装后,在“VB—工程—引用”菜单内选取“AutoCAD2008 TypeLibrary”,然后把Auto CAD应用程序引用为一个“对象”,具体代码如下:
On Error Resume Next
Set ac adapp= GetObject(,"autocad.application")
IfErr Then Err.Clear
Setac adapp=CreateObject ("autocad.application")
End If
(3)设置图层名称、图层颜色、线形、字体等。这里分别定义了设计断面线、现状断面线、坐标轴和网格、标注等4个图层,在CAD中默认字体设为“新宋体”。
Dimcolor1 As AcadAcCmColor
Set Layer1=acaddoc.Layers.Add
(“现状断面线”)
Set Layer2=acaddoc.Layers.Add
(“设计断面线”)
acaddoc.ActiveTextStyle.SetFont“新宋体”,Bold,Italic,charSet,PitchandFamily
(4)绘制断面线。这里,设置现状断面线的线形为虚线,设计断面线的线形为实线。由于CAD环境中默认不加载虚线线形,故还需另外载入虚线线形。
acaddoc.ActiveLayer=Layer1
Set pLine1=acaddoc.ModelSpace.
AddLightWeightPolyline(points1)
acaddoc.Linetypes.Load"JIS_02_4. 0","acadiso.lin"
pLine1.Linetype="JIS_02_4.0"
pLine1.Update
(5)设定基点,转换坐标。一般以测量断面起始点为基点,将起点距按1∶1000~1∶2000转换为横坐标,高程系统采用1985国家高程基准,纵向比例为1∶100~1∶200。定义两个Function:
TranX=1000 si/Hxbl
TranY=1000 si/Zxbl
其中:Hxbl——横向比例;
Zxbl——纵向比例。
(6)绘制坐标轴、标注等。其中标注坡度需要计算文字倾斜角度。标注坡度代码如下:
TextString1=“1:X”
Angle2=-Atn((1/Zxbl)/ (YQTPD(aa)/Hxbl))
Textpoints8(1)=TranX(起点距)Textpoints8(2)=TranY(点高程)
SetTexts8=acaddoc.ModelSpace. AddMText
(Textpoints8,2,TextString1)
Texts8.Rotate Textpoints8,angle2
Texts8.Width=13
Texts8.Update
(7)最后在VB中生成可执行的程序文件。在Windows 98、Windows XP、Windows 7等操作系统下都可以应用。
三、软件说明
该软件应用方便,启动软件后会自动引用AutoCAD窗体,在左侧的菜单中选择数据源,设置好横向比例、纵向比例和网格线密度即可自动生成横断面图。横断面图图名与断面号一致。该软件著作权属中水淮河规划设计研究有限公司,软件界面见图1。
图1 软件界面图示
四、应用实例
洪汝河治理工程是进一步治淮38项重点工程之一。工程按除涝标准5年、防洪标准20年一遇规划。治理范围包括大洪河、洪河分洪道和汝河宿鸭湖以下段。其中大洪河河道过流能力将提升至3080m3/s,工程措施为全线河道疏浚结合局部堤防退建。大洪河河道总长74km,测量断面间距方集以上采用250m,方集以下采用500m。为满足初步设计要求,共需绘制255张横断面图。使用本软件绘图,仅需将测量数据和断面设计参数导入,标注、坐标轴、网格线和A3图框均无需手动绘制,可全部自动生成。该软件绘制的大洪河HRH001横断面图见图2■
图2 使用该软件绘制的大洪河HRH001河道堤防工程横断面图
(作者单位:中水淮河规划设计研究有限公司 233001)
(专栏编辑:张 婷)