AutoCAD二次开发在水泥厂工程设计中的应用

2014-02-08 04:17彭林山
四川水泥 2014年5期
关键词:下拉菜单标准件样式

彭林山

(成都建筑材料工业设计研究院有限公司,成都市 610051)

0 前 言

Autodesk公司旗下的产品AutoCAD软件已经成为各个行业广大设计者最为常用的设计工具。对于不同行业领域的设计者,除了应用AutoCAD本身所具有的功能,还需要针对自己的设计需要开发更多的功能来提高设计工作的效率,这就需要对AutoCAD进行二次开发。目前,针对某个行业,应用AutoCAD二次开发的实例已经有很多了。在水泥厂设计中,存在着大量非标准件的设计,本文针对非标准件设计的具有数量大、重复性和规律性强等特点,进行了AutoCAD的二次开发,提高了非标准件设计效率。

1 开发环境简介

在Visual Studio 2012开发环境中,利用AutoCAD软件的ActiveX®(COM自动化)技术,使用Visual Basic.net编程语言对AutoCAD2013进行二次开发。Visual Studio 2012作为一个集成解决方案,适用于个人或者各种规模的开发团队,可以进行良好的数据封装,以更好的方式进行面向对象的程序设计,同时也能更好的和其他应用程序进行数据交换[1]。

AutoCAD软件的ActiveX®技术将AutoCAD中的对象暴露出来,使得编程环境可以访问到AutoCAD的对象,通过对象的属性、方法和事件来实现我们想要的功能。AutoCAD软件的ActiveX®技术提供了许多可以访问的对象,这些对象分为图像对象(例如:直线,圆弧,文本,尺寸标注等)和样式设置对象(例如:线型和尺寸标注样式等)等,甚至AutoCAD应用程序也可以看做是一个对象,这些对象具有一定的层次和隶属关系,我们在编程过程中都可以访问得到。

2 开发实例

2.1 法兰的绘制

在水泥厂建设工程设计中,非标准件的设计是一项繁复的设计工作,很多非标准件的法兰接口在外形上都十分相似,只是尺寸大小不同,螺栓孔数量不同而已。本文通过AutoCAD的二次开发,只是输入法兰的相关尺寸,就可以自动绘制出相应的法兰,从而提高设计效率,这种类似于参数化设计。程序开发过程大致介绍如下。

在Visual Studio 2012开发环境中,新建一个VB类库的项目(.dll),添加相应的应用(AcCoreMgd.dll、AcDbMgd.dll、AcMgd.dll、Autodesk.AutoCAD.Interop.dll 和Autodesk.AutoCAD.Interop.Common.dll,在AutoCAD安装目录都可以找到)。为了简化AutoCAD设计的界面,这里设计了个用户控件定义为AutoCAD的内部窗口(palette),作为用户输入尺寸的界面,界面设计如图1。

图1 用户控件界面

实现代码如下:

其中“方和圆的法兰”是用户控件对象的名称,语句mypaletteset.Add("palette1", mypalette)将用户对象添加为AutoCAD的内部窗口。用文本框对象相关输入法兰的尺寸。两个名称为“比例”的下拉菜单可以选择绘制法兰的比例(1∶100,1∶50,1∶40,1∶20,1∶10和1∶5可供选择),“标注样式”下拉菜单可以选择当前活动AutoCAD程序中的已有的标注样式,比例的选择与标注样式要相对应。以下代码实现了将当前活动AutoCAD程序中的已有的标注样式添加到“标注样式”下拉菜单中。

直线和线型标注的绘制以方形法兰右边的中心线的绘制为例。代码如下∶

其中lineobj为直线对象,lineobj.Layer = "center"设置直线的图层为 “center”,改图层应该先在AutoCAD中创建。用AddDimAligned方法添加名称为mydimension 的线型标注对象。mydimension.StyleName = ComboBox2.SelectedItem.ToString将“标注样式”下拉菜单中所择的标注样式赋值给mydimension 标注对象的StyleName属性,从而可以灵活创建不同标注样式的尺寸标注。

圆和直径标注的绘制大致与直线和线型标注的绘制大致相同,圆形法兰的螺栓孔的绘制可以用ArrayPolar方法生成圆周阵列来绘制。

在输入相关尺寸,选择了比例和标注样式后,单击确定按钮,提示用户输入插入点,用户只需要在模型空间中想要绘制法兰的位置单击鼠标即可,实现代码如下:

ctr = ThisDrawing.ActiveDocument.Utility.GetPoint(, vbCrLf + "输入插入点:")

ctr为双精度型一维数组,存储插入点的三维坐标。

程序编写调试完成后,生成dll程序集,在AutoCAD中输入netload加载该程序集,加载成功后,输入palette即出现图1所示的面板,输入相关尺寸、比例和标注样式,单击确定按钮,输入插入点,即绘出了相应的法兰,最后根据图纸布局调整标注的位置即可。该程序较以前的其他作者编写的程序相比,用该程序绘制出的法兰几乎不用做任何的修改而且准确,可直接打印出图,再者,该程序启动和关闭非常方便,界面友好,通俗易懂。

2.2 非标准件设备表的编制

目前,在编制图纸目录时,都是从AutoCAD里复制非标准件名称和重量,再粘贴到Excel表格里,如果遇到非标准件多的时候,这个将是非常消耗时间的工作,而且是机械性重复复制粘贴命令。现在利用Excel的COM接口可以和AutoCAD进行混合编程,只需要在AutoCAD中反复选择各个非标准件的名称和重量,自动在Excel表格生成。编写以下过程来获得Excel对象。

其中myExcel为全局变量,类型为Object,以上过程运行后,如不出现错误,myExcel就为Excel对象了。myExcel.Workbooks.Add添加Excel的工作簿。用GetString和GetEntity方法来得到用户输入的信息,赋值给当前活动表格中的单元格。程序也编写了处理输入错误的方法。

当选择完所有的非标准件的名称和重量后可以按Esc键退出。退出后弹出Excel界面如图。这样就可以很方便的复制粘贴到设备表中。需要说明的是,非标准件的名称过长的话,应该在AutoCAD中改为多行文本。

运行截图见图2:

图2 程序运行截图

3 结 论

通过AutoCAD的二次开发,可以满足设计人员特定的绘图需要,从而可以大大提高设计效率。本文仅介绍了两个简单的功能,在工程设计过程中还有很多重复绘图的过程可以通过AutoCAD的二次开发来提高设计效率,本文仅列举了简单的法兰及材料表的绘制作为例证,非标件的绘制都可以通过本方法进行过程简化,实现了非标件的规范高效设计。

[1]凌咏红,黄小微.基于C#的AutoCAD二次开发在建筑工程中的应用 [J].中国科技论文在线.1999(04).

猜你喜欢
下拉菜单标准件样式
CPMF-I 取样式多相流分离计量装置
标准件库的建立与应用
CPMF-I 取样式多相流分离计量装置
取样式多相流分离计量装置
巧做智能下拉菜单
制作更炫酷的下拉菜单
将Widget小部件放到
这是巴黎发布的新样式
CATIA V5标准件库的创建与使用
基于知识的组合机床夹具可扩充标准件库的开发