或利用手工编制CAD命令 组文件,虽然取得了一定的进展,但工序烦琐,人工 参与较多,当然,目前也有不少相关软件, 但由于价 格偏高或有的需要程序读取和数据转换, 成图效率 低等特点,并不能真正意义上给广大的渠道设计者 万方数据 90 新疆农业 大学学报 提供便利。
笔者在长期实践工作中利用Excel的 VBA编程功能, 将设计好的数据自动输出为Auto— CAD的命令组文件 , (Script) 结合AutoCAD内部 的命令组文件。
开发出一套可快速绘制渠道纵断面 图的渠道辅助绘图程序。
该程序还可根据各项目的 特点修改局部参数和预设图框内容,直接批量生成 施工图。
Sheetl中第i行、第j列单元格数值 2程序编制的实现过程 在C盘(也可其它盘符,本研究以C盘编制程 序)建立“Canal”子目录,后续的CAD图、Excel表 格、程序生成文件均在此目录下。
2.1 渠道设计的Excel表格建立 在Canal目录下新建名为 “渠道绘图”的Excel 1程序编制的基本原理 程序编制的基本原理主要是通过ExcelVBA编 制程序读取Excel渠道设计数据并生成AutoCAD 可以执行的命令组文件 。
(Script) 命令组文件也称 脚本研究件,是CAD中读人并能莺复执行CAD命 令的文件(以下简称scr文件) ,相当于Dos系统下 的批处理文件〔1〕 。
如建立一Test.scr文件: Text Mc 10,10 3.5 Line 15,0 15,20 90 0+000 、 表,默认Sheetl为当前活动表格,其第一行的1~8 列分别为“填高”“挖深” 、 、 、 、 、“设计渠顶高程”“设计水 面高程”“设计渠底高程”“设计开挖高程”“原地 面高程”和“桩号” ,设计数据从第二行开始,桩号使 用“x+XXX”的格式。
在表格的右边空白处,从“视 图”一“工具栏”一“控件工具箱”插入3个文本框控 件、3个标签控件和一个命令按钮控件, 使用标签控 件从上至下分别标志三文本框Textboxl、 Textb 、oxl 和Textbox3为“横向比例”“纵向比例”和“生成新 图图名” ;命令按钮Caption内容为“生成绘图文 件” 。
2.2实现的流程图及主要
代码 2.2.1 该文件是让CAD以旋转90度单文本写入“0 +000”数字,字高3.5,居中对齐点为(10,10) , ,再在 (15,o)(15,20)两点画直线。
注意末行结束为两空 格。
在CAD
系统命令行键人scr并“回车” 。
或从菜 单“Tools”下选择“Run Script…” (中文版CAD为 “工具(T) ”,按系统提示选 ”/“运行脚本(R))择刚 才Test.scr文件“打开”即可。
Scr文件也可以使用高级语言(如VB、VC.Net 等)来编写。
本研究就是在这个基础上,使用Excel 的VBA(宏)功能编制程序,自动把Excel的表格数 据读出,并通过程序计算处理,按照渠道纵断面图绘 图的基本命令和方法组合来生成Scr文件。
Excel 表单元格数据读取的方法如下
代码: Dim Value0 As 流程图 渠道纵断面制图的过程主要有两步,一是在 CAD里书写桩号、原地面高程等文字,二是绘制原 地面线、设计渠底线等各设计线,因此,制图程序实 现的核心流程首先要把每个桩号根据横向比例换算 成可计算的数字格式,第二步要自动计算成制图中 写入桩号、原地面高程等文字的横向位置; 第三步是 根据桩号对应的 “ 、 、 “设计渠顶高程” 设计水面高程”“设 、 、计渠底高程”“设计开挖高程”“原地面高程”通 过纵向比例分别换算成绘制各高程线的纵向坐标; 最后是生成SCR文件,图1是实现方法的流程图。
Double’//定义双精度变量 Value0=Sheetl.Cells(i,j) .Valuel获取表 圈l Fig.1 方法实现的核心流程图 Key flow diagram finished by the method 2.2.2主要源
代码 根据流程图,本研究给出部分关键
代码。
以供读 者参考。
代码也并不唯一, “”为
代码的注释.在VBA 里足不执行的。
代码写完后,按默认保存,
程序顺利 万方数据 第1期 董文明.等:ExceIVBA开发渠道纵断面图辅助绘图程序实践与探讨 91 运行后,在Canal目录下生成“Draw.Scr”文件;在 CAD运行Scr命令,选择“Draw.Scr”文件,即可生 成渠道纵断面图。
如程序成功运行但不能绘图,可 以用记事本打开Scr文件,对照Scr的格式要求来 查找错误并在程序中改正即可。
(1)计算设计表格数据行数的
代码 以桩号列判断表中的有数据的单元格行数,包 括第一行文字行, “LineCounter”为变量Line— Counter=1 ; (1)”Mc”‘文本书写数字格式 Write#l,Xstake,0 坐标 Print#1,”90”;Spc(0) 。
数字居中对齐基准 墩字旋转90度 Print#1,Sheetl.Cells(i,8) .Text’要书写 的数字,这里为桩号 (5)生成绘制地面高程线Scr文件的源
代码 同上,须要将所有第八列桩号逐一转换数字格 式.并利用与起始桩号差值换算绘地面线的X坐 标。
然后根据各
设计高程计算地面线、设计渠底线等 CAD绘图的X,Y坐标,以地面线为例。
Print#1,”I.AYER S” Print#1,”0” ”” While(Sheetl.Cells 8) Value) (IAneCounter, . <>”” LineCounter=LineCounter+1 。
设置当前活动图层 ‘模板只有0图层 ’生成空行,转换 W” 。
设置 Wend (2)查找最小高程值
代码 将渠顶、渠底、水面、开挖、地面高程各数据查找 最小值,并合理取整,此时可以使用公式实现,由此 可以确定制图的最小纵坐标。
: MinNum—Min(Sheetl.Range(”C2”&” G”&-I。
i ”)neCounter&.”.value) MinVertical—Format(Abs(Fix(一Min— )”####.000” Nurn), ) Print#1,Spc(0) ; CAD命令,分号里无空格 ; Print#1,Spc(0) ”PLine 0,0 起点 Pline线宽, (o, ” 0” Print#1, 0. O) Print#1, 0. ” 0”Print#1, “0,0” ‘起始线宽0.0 味端线宽0.0 1末点(0,0) Print#1, ”PI。
ine”相同命令,不需空行转换 For i一2 To I。
ineCounter一1 。
LineCounter (3)使用VBA的文件生成绘图的SCR文件 ()pen”C:\Canal\Draw.Scr”For Output As #1 一1为所有数字行行数 Xscale=TextBoxl.Value ’打开文件.写入Scr数据 Close#1。
关闭文件 (4)书写桩号、原地面高程等文字
代码 将第八列桩号逐一转换数字格式,并利用与起 。
绘图的横向 1绘图的纵向 (X)比例 Yscale—TextBox2.Value (Y)比例 Xpoint—Format( (stakeN um—StartStake) 始桩号差值换算数字书写位置的X坐标, 其中i是 对应行数, 从2到LineCounter--1,
代码以写入“桩 号”文字为例。
PlusPos=InStr(1,Sheetl.Cells(i,8) .Va卜 ue,”+”,vbBinaryCompare) *1000/Xscale, ) ”####.000”。
绘图X、Y点 计算 Ypoint=Format( (Sheetl.Cells(i,7) .Value— MinVertical)*1000/Yscale, ”####.000”) ’二进制形式计算 “+”号位置 leftNum=Mid(Sheetl.Cells(i,8) .Value, Write#1,Xpoint,Ypoint Next k “ 1,PlusPos一1)‘+”号左边数字 rightNum=Mid(Sheetl.Cells(i,8) .Value, PlusPos+1) 3讨论 一直以来, 不少设计者在Excel和AutoCAD 之间寻找过不少方法, 付宁等利用Basic语言编制 了数据生成CAD图形文件的程序【2〕 ,孔德庸、刘水 辉〔3 o和李锐¨j等利用CAD的复制、 粘贴功能对Ex— cel数据生成渠道纵断面CAD图的传统制图方法进 行了改进,此外,在其它刊物上,马章进在“Excel、 AutoCAD软件在渠道设计中的应用”、王君芳在 “Excel在CAD制图中的应用”都进行过有关手工 “‘+”号右边数字 stakeNum=leftNum*i000+rightNum 啥成可计算数字 Xscale—TextBoxl.Value 横向比例 ’文字书写的X Xstake=Format( (stakeN um—StartStake) *1000/Xscale, ”####.0” ) 坐标计算 ; Print#1,Spc(0)”Text” ; ;Spc(1)”JlI;Spc 万方数据 92 新疆农业大学学报 2009年 这 编制AtuoCAD命令组文件来绘制设计线讨论, 些制图方法共同之处就是操作麻烦,相当一部分须 要人工计算才能得到制图的数据,甚至还不能解决 桩号、设计高程等数字录入到AutoCAD的
问题。
当然,现在软件层出不穷,解决纵断面图绘制的程序 也不乏之,如张冬明的ZDM和南方测绘公司的 cass7.0等,这些软件功能强大,但相对于个人设计 者来说,价格偏高。
另外也有
免费的软件诸如网上 比较流行的“灵宇断面” 、水利软件在线的“纵断 CAD”等,但这些软件不足之处就是成图前要把Ex— cel设计数据转换成程序能读取的格式, 成图之后还 须要进一步编辑,对设计者增加了额外的工作,同时 数据的转换很容易将数据搞错。
参考文献: 本程序有着开发周期短、成本低廉、便于自行修 改的优点,再者就是避免了Excel设计数据的转换 工作和成图的编辑工作,从而也避免了由于人为参 与过多带来的数据准确性差等,因此,无论对于个人 设计者, 还是小型的设计企事业单位, 基于ExcelV— BA开发的渠道纵断面图辅助绘图程序都是具有一 定需求意义和应用价值。
在新疆和田地区的于田县稻田区、策勒县固拉 哈玛乡及民丰县尼雅乡3个土地整理项目的渠道初 步设计绘图
工作中,近90幅A3渠道纵断面图,项 目评审前的绘图工作使用传统的绘图的方法,用了 10 d时间才把渠道纵断面图绘制完毕,评审后采用 了新改进的绘图方法仅仅用了半天,优势明显。
〔1〕估润民.计算机绘图原理及应用〔M〕.北京:清华大学出版社,1995. 〔2〕付宁.赵源清,刘越男.CAD在灌排渠道断面图绘图上的应用〔J〕 .水利科技与经济,1997,3(2):86—87. 〔3〕孔德庸,刘水辉.渠道纵断面图传统绘图方法的改进〔J〕.中国农村水利水电,2004。
11:96—97. 〔4〕李锐,刘洋.Excel/AutoCAD软件在渠道渠道设计中的组合应用 . 〔J〕 现代化农业, 2006,9:32—33. 〔5〕 H M Deitel.Visual c++.Net大学教程〔M〕 .周靖,译.北京:清华大学出版社,2004. 〔63柯昌胜.水利工程制图〔M〕 .北京:中国水利水电出版社,2005. 万方数据 Excel
VBA 开发渠道纵断面图辅助绘图程序实践与探讨 作者: 作者单位: 董文明, 马英杰, 崔龙, 孔德庸, DONG Wen-ming, MA Yin-jie,CUI Long, KONG De-yong 董文明马英杰崔龙DONG Wen-mingMA Yin-jieCUI Long新疆农业大学水利与
土木工程 学院乌鲁木齐830052, 孔德庸KONG De-yong中国农业大学资源与环境学院北京 100094 新疆农业大学学报 JOURNAL OF XINJIANG AGRICULTURALUNIVERSITY 2009,321 0 次 刊名: 英文刊名: 年,卷期: 被引用次数: 参考文献6 条 1.陆润民
计算机绘图原理及应用 1995 2.付宁.赵源清.刘越男 CAD 在灌排渠道断面图绘图上的应用期刊
论文-水利科技与
经济 199702 3.孔德庸.刘水辉 渠道纵断面图传统绘图方法的改进期刊
论文-中国农村水利水电 200411 4.李锐.刘洋Excel/AutoCAD
软件在渠道渠道设计中的组合应用期刊
论文-现代化农业 200609 5.H MDeitel.周靖 Visual C.Net 大学教程 2004 6.柯昌胜 水利工程制图 2005 相似文献10 条 1.期刊
论文 谢丽霞.XIE LI-xia EXCEL 在 AUTO CAD 绘图中的应用——以雅满苏磁海铁矿为例 -吉林地质 2009284 介绍了 AUTO CAD 技术在矿山测量中的应用以及野外实测后利用 excel 建立坐标数据组在 Auto Cad 中批量辰点从而快速地绘制出露天矿山测量所需 的露天采场现状图及各种所需断面图. 2.期刊
论文 石广斌.张晓莉.牛小军 AUTO CAD 计算功能简介及应用 -水电站设计2004202 介绍了 AUTO CAD 求面积、几何质形心、质心惯性矩等部分计算功能并举例说明这些计算功能与 EXCEL 等软件相结合能够快速而精确地完成水工建 筑物稳定性等的计算. 3.期刊
论文 廖新玉.阿力甫.侯伟华.LIAO Xin-yu.ALF-Nu.HOU Wei-hua 快速绘制道路横断面图的一种新方法 -测 绘科学 2008332 精确、快速地绘制横断面图是道路测量人员需要解决的难点横断面图是道路工程计算土方量的惟一依据因此受到许多施工单位的重视.本文使用 Excel 编辑 Auto CAD 命令的方法使 Excel 处理的横断面数据、Auto CAD 命令与 AutoCAD 绘制过程三者进行灵活链接.详细阐述了在不需要专业编程知识的情 况下利用 Auto CAD 和 Excel 精确自动地绘制道路横断面图的一种新方法.该方法不仅简单灵活而且能提高工作效率以及保证工作质量. 4. 期 刊 论 文 彭 飞 AutoCAD 和 Excel 在 公 路 路 线 设 计 中 的 应 用 - 中 国 勘 察 设 计2007quotquot5 就 AutoCAD 和 Excel 软件如何完美地配合使之有效地应用于公路路线设计方面结合历年来应用 AutoCAD 和 Excel 软件的实践经验详细地阐明了 AutoCAD 和 Excel 软件的有机结合摸索出一套行之有效的使用经验并且已直接应用于公路工程设计. 5.期刊
论文 储开江.潘树华.CHU Kai-jiang.PAN Shu-hua 谈 Excel 和 AutoCAD 软件在森林测绘制图中的应用 -林业 勘查设计 2006quotquot4 罗盘仪是林业测量
常用工具之一但野外数据的处理和森林地形图制作技术较落后.结合具体事例详细说明用 Excel 软件处理测量后的野外数据和用 AutoCAD 软件绘制森林地形图的过程并打印出任意比例尺的图纸. 6.期刊
论文 何兵.车林仙.HE Bing.CHE Lin-xian 基于 VBA 的 AutoCAD 图块属性提取与Excel 输出 -机械管理开发 2008233 应用 AutoCAD 的 VBAVisual Basic for Appfication二次开发功能编制了属性块的属性提取程序并以应用实例说明了 AutoCAD 图块属性提取与 Excel 输出可以利用 Excel 强大的统计功能方便作出相关报表. 7.期刊
论文 张小艳.郭翠 基于 Matlab 绘制原煤可选性曲线方法的研究 -工矿自动化2010363 原煤可选性是选煤厂设计的基础通过绘制可选性曲线可以评定、预测重选效果.针对采用 Excel 和 Auto CAD 绘制可选性曲线的缺点文章通过一个实 例详细介绍了采用 Matlab 绘制可选性曲线的过程即选用合适的数学模型拟合曲线并采用最小二乘法估计数学模型中的参数值.绘制结果表明采用 Matlab 绘制可选性曲线绘制过程简单拟合程度较高. 8.期刊
论文 陈庆来.CHEN Qing-lai AutoCAD 和 Excel 在振动筛质心设计和计算中的应用 -选煤技术 2007quotquot5 介绍了 AutoCAD 和 Excel 的某些特定功能在振动筛质心计算中的应用给出了利用AutoCAD 的面域和质量特性计算质心和应用 Excel 的统计计算功能计算 筛框和振动筛质心的方法和应用实例. 9.会议
论文 王文军 在 Auto CAD 环境中实现 EXCEL 功能 1998 该程序是基于AUTOCAD环境下LSP语言,参照微软的EXCEL制表软件构思编成。
该程序充分挖掘了LSP语方函数及内在功能,展现 了LSP语言自身的智能性。
其特点是使用该程序就如同在WINDOWS中使用EXCEL那样方便,克服了AUTOCAD在制填表方面的不足 ,目前使用者均感觉效有好。
10.期刊
论文 廖新玉.阿力甫努尔买买提.侯伟华.Liao Xinyu.Alf Nu.Hou Weihua 道路纵、横断面图自动绘制的 一种新方法 -交通科技 2007quotquot6 绘制道路纵、横断面图是道路测绘人员一项繁重的工作文中探讨了利用 Auto CAD 和Excel 精确自动地绘制道路纵、 横断面图的一种新方法并以乌鲁 木齐市苏州路为例验证这一新方法的可行性. 本文链接:http://d.g.wanfangdata.com.cn/Periodical_xjnydxxb200901021.aspx 授权使用:广东商学院图书馆gdsxy,授权号:a14fd6b5-3ddb-4730-8fb3-9e43009a2e3c 下载时间:2010 年 12 月 5 日.