APP下载

利用Excel VBA实现在AutoCAD中绘制潮流羽状图

2018-09-13祁祥礼

科技视界 2018年14期
关键词:羽状绘图报表

祁祥礼

【摘 要】本文针对水文测验潮流数据绘图时间长,大量重复性工作等问题,通过Excel VBA编程语言,批量写入AutoCAD脚本文件,实现自动化绘制潮流羽状图。

【关键字】Excel VBA ;AutoCAD;潮流羽状图

中图分类号: TP391.72 文献标识码: A 文章编号: 2095-2457(2018)14-0063-002

DOI:10.19694/j.cnki.issn2095-2457.2018.14.027

Using Excel VBA to realize power flow feather diagram in AutoCAD

QI Xiang-li

(Tianjin water transport engineering survey and Design Institute Tianjin Key Laboratory of water transport engineering surveying and mapping, Tianjin 300456, China)

【Abstract】In this paper, in view of the long time of drawing the tidal current data and a lot of repetitive work, this paper writes the AutoCAD script file in batch through the programming language of Excel VBA, and realizes the automatic drawing of the tidal plume.

【Key words】Excel VBA; AutoCAD; Tidal plumes

0 引言

随着计算机硬件和软件技术的发展,各种编程及绘图软件应运而生,大大提高了绘图效率和美观度,在水文数据的成果展示中,Surfer、Tecplot、mapinfo等软件都得到了广泛的应用[1],但有些观测的数据,如潮流、余流、悬沙粒径级配曲线的绘制,绘图处理非常复杂。

以绘制潮流羽状图为例,数据一般存储于excel表格中,再利用AutoCAD根据数据进行矢量绘图,绘图操作简单,但报表中数据量大,手动绘制重复劳动多,耗时长,效率较低,且容易出现错误,此外,这种绘制方式因个人绘图习惯不同,没有统一的出图标准,随意性大。

AutoCAD提供SCR文件、DXF文件和AutoLisp等多种接口方式[2],其中SCR文件为脚本文件,可批量写入绘图命令,解决重复劳动的弊端,本文即利用Excel VBA编程语言,编写代码程序将潮流数据循环写入SCR文件,方便AutoCAD程序调用。

1 图形各要素的绘制方法

潮流羽状图包含潮流矢量起点位置、流速、流向、箭头、坐标轴及其刻度标注、比例尺及其刻度标注、图名等要素组成。采用Excel VBA向脚本文件中写入的相应要素的命令分为画圆、线段、文字标注等命令,各要素涉及到的命令如下。

2 程序的实现

基于Excel成果报表,通过VBA编程语言,将羽状图各组成要素以AutoCAD的命令格式批量写入SCR文件。代码中采用的函数命令:

表1 潮流羽状图组成要素及AutoCAD命令代码

1)在潮流报表所在文件夹新建脚本文件并进行写入操作:

Open ActiveWorkbook.Path & "\" & ActiveSheet.Name & ".scr" For Output As #1

…(文件写入操作)

Close #1

2)图中的各要素均是以圆、线段、文字等命令绘制,因此,将此三个命令以自定义函数表示,方便循环调用,优化代码结构。

‘画圆的自定义函数:

Function Yuan(X As Single,Y As Single,Spd As Single)

Dim R As Single

R=0.02

If Spd >0Then

Print #1,"Circle"

Print #1,CStr(X)&","& CStr(Y)

Print #1,CStr(R)

End If

End Function

‘画线段的自定义函数

Function XianDuan(X As Single,Y As Single,Spd As Single,Dir As Single)

If Spd>0 Then

Print #1,"Line"

Print #1,CStr(X) &","&CStr;(Y)

Print #1,"@"& CStr(Spd)&"<"&CStr;(Dir)&vbCrLf;

End If

End Function

‘文字标注的自定义函数

Function BiaoZhu(X As Single,Y As Single,H As Single,Ang As Single,Str_bz As String)

Print #1,"-text "& CStr(X)&","& CStr(Y)& " "& CStr(H)& " "& CStr(Ang)&" "& Str_bz & " "

End Function

3 工程实例

以某水文测验项目为例,共9个测站同步进行水文观测,形成潮流成果报表,报表文件共9个工作表,每个工作表表示1个测站的全潮数据,每个工作表共有26组数据,代表26小时整点剖面流速数据,每组共分6层。若采用普通的交互式CAD命令绘制图形,需要花费大量的时间进行重复的画圆、线段、文字标注等,现通过本程序的程序代码,导入报表的代码窗体中,进行自动化绘图。

(1)首先建立Excel VBA与Auto CAD的通信机制,在excel VBA 引用Auto CAD类型库,操作流程为:在工作表页面,同时按ALT+F11,点击”工具”-”引用”,选择Auto CAD 2005 Type Library,如下图所示。

(2)按F5弹出程序界面如下图所示,输出流速值比例,图名等后执行代码,输出相应SCR文件。

(3)打开Auto CAD,关闭对象捕捉功能,在”格式”-”单位”中自定义坐标系,以北方向为0°,选中”顺时针(C)”。通过”工具”- ”运行脚本(R)”,选择SCR文件,即可自动化绘制潮流羽状图,如下图所示:

4 结束语

在测绘工作中,内业画图是整个测绘成果的一个重要组成部分,本文通过Excel VBA 编写程序软件,在水文测验项目中取得了很好的实用效果,实践表明,程序操作简单,自动化程度高,可快速、有效的進行绘制工作,节约了大量人工及时间成本,极大的提高了工作效率。

【参考文献】

[1]罗文彪,栗金钊.VBA在水工模型试验流速分布图绘制中的应用[J].中国水运月刊,2016,16(6):191-195.

[2]徐明,刘功平,徐宁生等.Excel VBA与DXF在农配网线路路径图绘制中的辅助应用[J].低碳世界,2017(33):139-140.

猜你喜欢

羽状绘图报表
来自河流的你
“禾下乘凉图”绘图人
基于GUI 的冷泉羽状流数值模型可视化系统研究与应用
基于高精度海洋动力模型的珠江口羽状流季节和年际变化规律研究
LabWindows/CVI中Excel报表技术研究
基于HTML5 Canvas绘图技术应用
从三大报表读懂养猪人的成绩单
随机介质理论天然气水合物羽状流正演模拟
羽状Fe-Co合金分级结构粒子的合成与表征
Surfer和ArcView结合在气象绘图中的应用