AutoCAD VBA办公自动化程序应用实例
——排水流向标注程序
2016-02-15赵志清
赵志清
(呼和浩特铁路局 建设管理处,呼和浩特 010010)
AutoCAD VBA办公自动化程序应用实例
——排水流向标注程序
赵志清
(呼和浩特铁路局 建设管理处,呼和浩特 010010)
本文介绍AutoCAD VBA办公自动化应用实例—排水流向标注程序的设计思想、设计过程以及使用说明等相关内容。对创建形文件、创建线形、自动标注等内容进行了详细描述。
AutoCAD VBA;办公自动化;线形;形文件
线路路基应有一个完整、畅通的排水系统。设计者要综合平面图、纵断面图、横断面图的设计,配合桥梁、涵洞、站场的排水设施,考虑地质、地形、气候等因素,设计排水系统。排水系统图的设计是在线路平面图的基础上,利用排水线勾画出排水系统中水沟的位置、长度,并标注坡度和标高。
排水系统设计完成后,生成排水表。排水表中包括水沟的起讫里程、长度、最小坡度、起止点高程等内容。将排水表的数据体现在平面图中即排水系统平面图。此项工作含量较低却十分繁琐,浪费设计者大量的时间,且容易出错。
现在,使用排水流向标注程序可以解决这一问题。它可以自动标注水沟长度和坡度、流向箭头、起讫里程处的高程,便捷高效。
1 程序设计思想
1.1 线型
排水系统图的惯例要求排水线既要标示水沟的起讫历程、长度,还要标示水流的流向。通常采用单侧箭头作为线型的单元,如图1所示。
图1 线型单元示意图
实现上述线型的方法有3种:
(1)复制法
这种方法简单但是繁琐,用户需画出一个箭头并不断复制完成排水线的绘制。直线段还较为容易,但对于曲线段尤其是小半径曲线就很不方便,每次只能复制很短的一段。所以这种方法不推荐。
(2)ME法
作者从绘制轨道图例引伸出ME法,此方法使用MEASURE命令。原理是用块来定距等分多段线。
用户需先创建两个块,分别代表两个方向的箭头,块的参照点要选在箭头反方向端点一定距离的位置,这样才能生成上面的间隔线型。这种方法可以方便地等分直线、多段线、圆弧,但是它不能使用VBA编辑,也无法自动标注,所以只做参考。
(3)形文件法
本文重点介绍形文件法,它不但可以应用在本程序中,还可以应用在其它不同设计领域。
形文件顾名思义就是定义一个简单的图形存为一个形文件。在常用的线型文件*.Lin中创建新的线型来重复引用这个形文件从而完成复杂线型的定义。
下面,简述本插件中所使用形文件的定义过程,也可作为定义其它复杂线型的参考。
新建一个文本文档保存为.shp文件,这个文件是形定义文件,在这个文件中输入如下文字:
*230,3,PAISHUI
060,027,0
保存并退出编辑。
首行中:*为开始符;230为形编号;3表示下一行的参数个数;PAISHUI为形名称。
第2行每个参数中:第1个字符必须为 0,用于指示 AutoCAD 将后面的两个字符解释为16进制值。第2个字符指定矢量的长度。有效的16进制值的范围是从 1(1 个单位长度)到 F(15 个单位长度)。第3个字符指定矢量的方向。方向代码如图2所示。
图2 方向代码示意图
第2行第3个参数0表示形定义结束,用在第2行图形定义的结尾处。形定义文件定义完成,对应图形如图3所示。
图3 形定义文件定义完成对应图形示例
在CAD中使用compile命令,选择刚定义的.shp文件,经由CAD编译生成同名的.shx文件,.shx文件即为编译好的形文件。
新建一个新的文本文档保存为.lin文件,这个文件是线型定义文件,在这个文件中输入如下文字:
保存并退出编辑。
首行中:*为开始符;PAISHUIZUO为线型名称;______>为线型图例。
第2行必须以字母 A开头;0.0001表示落笔长度;[ ]中的文字用来引用形文件;-20表示提笔长度。
复杂线型定义完成。
注:简单线型的定义也很有实用价值,具体方法参照CAD帮助文件。
1.2 开发平台
目前主流图形辅助设计软件为AutoCAD 平台。AutoCAD 二次开发接口提供了种类丰富的编程语言如基于C#的ARX、基于VB的VBA、基于脚本的Lisp等。本文采用AutoCAD VBA (Visual Basic for Applications)编程。VBA是新一代标准宏语言,基于VB(Visual Basic for Windows)发展而来,具有面向对象的程序设计概念和方法,不但继承了VB简便、可视化的开发机制,而且还具有与VB相似的语言结构,它们的集成开发环境(IDE,Intergrated Development Environment)也几乎相同。但VBA专门针对AutoCAD、Office 等应用程序进行优化,可轻松访问AutoCAD 、Excel内部数据,尤其善于在两种程序间进行交互开发。VBA编程效率非常高,是理想的辅助设计软件开发工具。
1.3 软件流程
根据《用地与排水系统图》的绘制特点,结合绘图人员实际使用,软件流程如图4所示。
图4 软件流程图
1.4 人机交互
为了方便设计人员完成工作,程序通过Lisp宏文件实现了透明命令。用户可在绘图界面命令行输入PSX呼出程序,通过空格键快速的重复调用。
本程序需要用户拾取很多位置的点,比如排水沟起终点、标高插入点等。所以在命令行设置了几种提示: “拾取排水沟起点” 、“拾取途经点” 、“拾取标高插入位置”,引导设计人正确拾取目标点。
为了使程序更加人性化,每个标注都可以单独更改内容、字体、颜色,方便不同设计人的习惯和不同图纸的规范化要求。
2 排水流向标注程序介绍
2.1 用户界面
程序界面如图5所示,起点高程和终点高程处按排水表输入相应数值,排水坡度处输入最小允许排水坡度,流水方向箭头偏向处选择偏左或偏右。点击“拾取起点”开始绘制排水线,点击“取消”退出绘制过程。
图5 程序界面图
本程序需标注的位置分为两类。
(1)两端标注
两端标注起、终点高程(),需要在两端点位置绘制标高三角,在标高三角上方标示标高,图纸标注方式如图6所示。
(2)中间标注
中间需要标注排水沟的长度和最小坡度,程序提示用户拾取插入标注的位置,图纸标注方式如图7所示。
图6 图纸标注方式(两端标注)
图7 图纸标注方式(中间标注)
2.2 使用说明
程序的使用方法很简单,按界面上的提示输入即可。这里主要说明排水箭头方向的选择方法。
(1)箭头斜线在水流方向的左侧,如图8所示。
图8 箭头斜线在水流方向左侧示意图
(2)箭头斜线在水流方向的右侧,如图9所示。
图9 箭头斜线在水流方向右侧示意图
2.3 使用技巧
(1)排水线可以由直线、多段线、或者PE合并的多段线(不能包含圆弧)组成。(2)由于排水线的箭头是一种新定义的复杂线型,故箭头的大小可以靠线型比例来控制。在排水系统图设计完成后,根据设计人和图纸的要求可统一修改。(3)在设计排水线时最好新建一个图层,方便统一修改线型、字体和颜色。(4) 在曲线段的排水线设计时,可用多段线模拟曲线,但段落长度尽量相等。(5)由于考虑布局和折图的因素,两端的标注都是以水平X轴为基准标注的,折图完成后需设计人自行旋转。(6)程序标注的水沟长度为多段线实际长度,不考虑水沟的纵坡或者横向偏移产生的长度误差。
3 排水流向标注样例
从《用地与排水系统图》的绘制流程来讲,属于渐进式设计,通过平面和横断面排水图的不断对照和修改,最终完成图纸。对于这种设计流程,最佳的软件方案即为计算机辅助设计:由设计人主导设计思路,计算机完成绘图及辅助计算,最大程度地简化繁琐的绘图和计算流程,配合设计人完成图纸绘制。具体标注样例如图10、11、12、13、14所示。
图中,如果排水沟位于曲线位置,可用等长多段线拟合曲线。
图10 输入相应标高和坡度,选择水流方向
图11 拾取起点位置
图12 拾取途经点位置
图13 拾取终点位置
图14 拾取长度和坡度插入位置
4 结束语
排水流向标注程序可以把设计者从简单的重复劳动中解脱出来。其操作更加简单,标注更加准确,能可靠地完成设计任务。
[1]高光来,李 平.计算机应用基础[M].呼和浩特:内蒙古大学出版社,2002.
[2]曾洪飞.CAD VBA基础与实例教程[M].北京:中国电力出版社,2008.
责任编辑 王 浩
Example of AutoCAD VBA—drainage fow direction annotation
ZHAO Zhiqing
( Department of Construction Management,Hohhot Railway Administration,Hohhot 010010,China)
This paper introduced AutoCAD VBA offce automation applications example that was the design ideas for the program of drainage fow direction annotation,the design process and the introduction,described the establishment of shape fle,linear and automatic marking.
AutoCAD VBA;offce automation;linear;shape fle
U216.4∶TP39
A
1005-8451(2016)02-0046-04
2015-06-12
赵志清,高级工程师。