Excel VBA和AutoCAD VBA在电力变压器设计中的应用

时间:2022-10-26 11:00:33

Excel VBA和AutoCAD VBA在电力变压器设计中的应用

摘 要:文章介绍了以Excel 2003、AutoCAD 2008为平台,通过VBA程序自动完成电力变压器的结构设计的应用方法。

关键词:VB6.0;Excel VBA;AutoCAD VBA;电力变压器;结构设计;应用

中图分类号:TP391.72 文献标识码:A 文章编号:1006-8937(2012)20-0036-02

近年来,随着变压器产品结构的不继改进,以及企业间竞争的日趋激烈,传统的产品设计方法已经很难满足企业当前生存和发展的需要。企业为了能在市场竞争中处于有利位置,实现产品设计数字化、自动化势在必行。计算机辅助技术(CAD/CAPP/CAM/ERP等)在企业产品开发和生产过程中日益得到广泛的应用,广大设计人员对CAD系统的功能要求也越来越高,他们已经不再满足于利用CAD系统达到“甩图板”的目的,而是希望从根本上减轻大量简单、重复和烦琐的工作量,使自己能集中精力于那些富于创造力的高层次创新设计活动中去。

为例便于理解,首先介绍一下VBA(Visual Basic for Application)。VBA将AutoCAD、Excel与Visual Basic的功能结合在一起,能够快速地创建出符合用户要求的程序,大大提高用户的工作效率。对于快速开发小规模的应用程序更是一种最好的选择。AutoCAD VBA的开发使用AutoCAD ActiveX技术,这种技术使用户能够从AutoCAD的内部或外部以编程形式操作AutoCAD。在AutoCAD中使用ActiveX接口具有两个优点:其一,更多的编程环境可以编程访问AutoCAD。其二,与其他Windows应用程序(例如:Microsoft Office Excel、Word)共享数据变得更加容易。

1 应用内容

电力变压器设计包括电磁计算和结构设计。目前,绝大多数设计人员都使用Microsoft Office Excel 2003和Autodesk AutoCAD 2008,它们强大的VBA二次开发能力成为设计人员的最理想工具。在实际的电力变压器结构设计过程中,有时希望能够将AutoCAD中的一些图形信息提取出来生成一个Excel文件,以便打印和管理;有时又需要从一个Excel文件中读取数据,用来绘制图形。为此,必须实现AutoCAD与Excel间的通信。Microsoft Office Excel 2003和Autodesk AutoCAD 2008中都集成了基于VB6.0的VBA开发工具,为开发AutoCAD应用程序,实现AutoCAD与Excel的数据交换提供了一个强大、方便、快捷的手段。

在本文中选取了电力变压器铁心截面结构设计来详述Excel VBA和AutoCAD VBA在电力变压器结构设计中的应用。

2 实例分析

应用程序的开发一般包括参数的确定、建立有关库表、程序的编制和调试等几个阶段。具体过程如下:

①在Microsoft Office Excel 2003 中建立铁心计算参数表格,如图1所示。

②在“设计模式”下,双击ActiveX控件“自动自成铁心截面图”,进入Microsoft Office Excel VBA编程界面,单击“工具”选项里的“引用”,在“AutoCAD 2008 Type library”前面勾选。实现AutoCAD与Excel间通过VBA的通信。

根据我公司变压器结构设计原则,变压器铁心的结构形式为采用横向五级阶梯、45°斜接缝形式。需要确定了铁心直径,窗高,中心距,其它尺寸:如片长、片宽、叠厚、封片及绑扎带的尺寸等,这一步我们通过对Excel 2003进行添加函数进行自动计算。

本文中VBA程序编制的主要工作是:从Excel表格中获取相关尺寸,如铁心直径、窗高、中心距、片长、片宽、叠厚等基础尺寸,插入典型子图、标注尺寸、绘制铁心截面图、填写各级铁心数据和明细表等。在Excel VBA编程界面里编程,代码如下:

Const pi = 3.14159265358979

Private Sub CommandButton1_Click()

Dim pt(0 To 2) As Double

Dim p0(0 To 2) As Double

Dim Ho as integer

Dim Mo as integer

Dim Lo as integer

Set Ho = Cells(i, 32).Value

Set Mo = Cells(i, 31).Value

Set Lo = Cells(i, 30).Value

表示Excel中第i列32行的值等于Ho(窗高)

表示Excel中第i列31行的值等于Ho(中心距)

表示Excel中第i列30行的值等于Lo(最大片宽)

下面的代码用于连接AutoCAD,注意:AutoCAD软件必须打开并且已经新建了一个绘图界面,否则当单击“自动自成铁心截面图”时将出现错误。

Dim plinea As AcadLWPolyline

Dim plineb As AcadLWPolyline

Dim dimrotate As AcadDimRotated

Dim thapp As AcadApplication

Dim doc As AcadDocument

Dim text As AcadText

Set thapp = GetObject(, "AutoCAD.Application")

Set doc = thapp.ActiveDocument

For i=58 To 18 Step -2

pt(1)=(i - 18) *15.085

pt(0)=0

Call doc.ModelSpace.AddText("4x"&Round(Ho,pt, 21)

pt(0)=-100

Call doc.ModelSpace.AddText("4x"&Round(Mo, 1), pt, 21)

pt(0)=-200

Call doc.ModelSpace.AddText(Round(Lo,1), pt, 21)

.

下面的代码用于从文件名为“Mydesign.dwg”的文件中拷取典型子件图。

DwgName = "g:\Tank\Mydesign.dwg" '返回文件名

BlkName = "DownTr" '返回块名

ThisDrawing.SetVariable "LTSCALE", 1

ObjDBX.Open DwgName '打开图形

Set BlkObj(0) = ObjDBX.Blocks(BlkName)

ObjDBX.CopyObjects BlkObj, ThisDrawing.ModelSpace '复制对象

.

End sub

3 程序运行与总结

程序运行在AutoCAD环境下,生成如图2所示的铁心截面图。

由此可见,通过实现AutoCAD与Excel间VBA的通信,设计人员可免除大量的重复设计工作,借助于Excel强大的计算功能和AutoCAD的绘图功能,可方便快速地设计出结构图纸。因为大多数设计人员熟悉VB6.0、Excel和AutoCAD,很容易编写出适于自己产品的应用程序,实现产品图纸的参数化。

参考文献:

[1] 路长柏,朱英浩,张怀灵,等.电力变压器计算[M].哈尔滨:黑龙江科学技术出版社,1990.

[2] 谢毓城.电力变压器手册[M].北京:机械工业出版社,2003.

[3] 张帆.AutoCAD VBA开发精彩实例教程[M].北京:清华大学出版社,2004.

上一篇:供热管网的设计及其防腐分析 下一篇:煤矿用织物整芯阻燃输送带检测技术与工艺研究