基于VBA的AutoCAD开发实践

  • 格式:pdf
  • 大小:977.75 KB
  • 文档页数:2

开发研究

基于VBA

的AutoCAD

开发实践

任艳霞 丁 刚

(济源职业技术学院,河南济源459000)

摘要:针对AutoCAD

现有功能的不足,基于Auto-

CAD

的VBA

接口,通过二次开发增加一种矩形绘制

命令,可通过指定矩形的中心及长、宽及旋转角度来进

行矩形的绘制,使绘图效率大大提高。

关键词:AutoCAD; VBA ;

开发;实践

0

引言

AutoCAD

是Autodesk

公司的CAD

软件,具有良好

的用户操作界面,利用命令行或交互菜单方式可以进行各

种操作。软件具有强大的绘图及图形编辑功能,绘图效率

很高,被广泛使用于工程制图、土木建筑,电工电子工业等

多饨域。

面对用户的多样化需求,任何软件都不可能做到面面

俱到,所以AutoCAD

软件提供了一些二次开发接口,以满

足用户根据工作需求对软件进行一些针对性的开发工作。

其中的VBA

工具,把AutoAD

和VisualBasic

的强大功

能进行组合,利用VBA

可以操作AutoCAD

的暴露对象,

可以根据需求对AutoCAD

进行二次开发。

下面结合实例来说明运用VBA

对AutoCAD

进行二

次开发的方法和技巧,掌握这种二次开发方法对于提高工

作效率具有重要的意义。

1 AutoCADVBA

接口

Microsoft VBA

是一个面向对象的编程环境,可提供

类似Visual Basic

的丰富开发功能。VBA

和VB

的主要

差别是VBA

和AutoCAD

在同一进程空间中运行,提供

的是具有AutoCAD

智能的、非常,决速的编程环境。

VBA

也向其他支持VBA

的应用程序提供应用程序

集成。这就意味着AutoCAD

伽其他应用程序对象库)

可以是如Microsoft Word

或Excel

之类的其他应用程

序的Automation

控制程序。

在AutoCAD

中实现VBA

有如下优点:

VBA

及其开发环境易于学习和使用;VBA

可与

AutoCAD

在同一进程空间中运行,使得程序执行速度彳艮

快,开发人员可以构造应用程序并迅速收到设计的反馈;工

程可以是独立的,也可以嵌入到图形中,为开发者提供了非

常灵活的方式来发布囲蒯

2

增加一种矩形绘制命令

图1

所示为一个长方形薄板零件,其内部被切割掉了

作者简介:任艳霞(1977-),

女,河南鹤壁人,硕士,讲聊,研究

方侖:模具CAD/CAM

。丁刚(1972-),

男,河南信阳人,副教

授,硕士,研究方向:CAD/CAM

。1

个大的长方形的倾斜槽和4

个小的长方形槽。对于这个

零件图的绘制,可以采用AutoCAD

现有的矩形命令再结

合旋转、镜像等命令进行处理,但利用AutoCAD

现有的矩

形命令在跻这个图形时会面临相对坐标的输入和坐标值

的除法运算,给使用者带来了较大的麻烦。笔者考虑可以

通过二次开发增加一种矩形绘制命令,通过指定矩形的中

心及长、宽及旋转角度可一次性完成进行图1

所示的倾斜

矩形槽的绘制,对于图]中的几个小矩形槽也可直接绘制。

和软件现有矩形命令相比,绘图效率将大大提高。

2.1打开

AutoCAD软件,进入开发环境

打开AutoCAD

软件,新建图形文件,如图2

所示。

||□优附⑨国固切之口色/挣" 丨懿实

AutoCAD经典 丫豳禮|觀色文件

(F)碉

(E)视囹

(V)摄入

(I) :?§式(

0)工

S(T)绘囹

(D)

标注

(N)修改

(M)旨口

(W)帮肋

(H) Express

・14 4卜討\複型布局

lj(布局

2/

自动保存至

9 C: \Users\ADMINI-l\AppDaca\Local\Temp\l *

甜令: 4 口 卜

134.5460, 85.2505 , 0.0000 捕捉栅格正交|极轴懸含▼ 口

图2

新建图形文件

按下键盘Alt+ F11

组合键,软件即打开VBA

开发环

境,如图3

所示。其中左边为工程资源管理器窗口,右边为

程序代码窗口,在这里可以进行程序的调试运行工作。

《湖北农机化》

204 9年第

20

期开发研究

Microsoft Visual Basic - F:\AutoCADVBA\VBA\MNJUXING.dvb

图3 VBA

开发环境

2.2

淆加子程序

单击'插入”菜单,再单击“过程(P)...”

子菜单,则系统

弹出图4

所示对话框,在“名称'处输yVXINJUXING”

,单

击'确定”按钮,则系统建立一^ 程序。

图4

添加子程序

在子程序中输入代码:

Public Sub XINJUXINGO

Dim Die As Variant

Dim D

订 As Variant

Dim Di5 As Variant

Dim 1 As Double

Dim w As Double

Dim tuXObj As Object

Set tuXObj = ThisDrawing.Utility

Dim plineObj As AcadPolyline

Dim location As Variant

Dim pi As Double

Dim ra As Double

pi = 3.141592654

Die = ThisDrawing.Utility.GetPoint(,

"输入矩形中

心")l=ThisDrawing. Utility. GetDistance(

,"输长

度")

w=ThisDrawing. Utility. GetDistance (,”

输入

宽度")

ra=ThisDrawing.Utility.GetReal("

输入旋转角度")

D

订=ThisDrawing.Utility.PolarPoint(Dic, 0,1/2)

Di2=ThisI>awing.Utility.PolarPoint(Dil, pi/2, w/2)

Di3=ThisDrawing.Utility.PolarPoint(Di2,pi,l)

Di

炉ThisDrawing.Utility.PolarPoint(Di3,3 *pi

12, w)

Di5=ThisDrawing.Utility.PolarPoint(Di4, 0,1)

tuXObj.CreateTypedArray location, vbDouble, _

D

订(0), D

订(1), 0,_

Di2(0), Di2(l), 0, _

Di5(0), Di5(l), 0, _

DfL(0), Dil(l), 0

Set plineObj = ThisDrawing. ModelSpace. Ad-

dPolyline(location)

plineObj.Rotate Die, dtr(ra)

End Sub

2.3

运行程序,进行图形绘制

单击“运行”菜单,再单击“运行子过程/用户窗休,子菜

单,或按压键盘F5

键,则系统运行子程序,切换到绘图窗

口,系统命令行提示瀚入矩形中心:”,在屏幕适当处单击

鼠标确定矩形中心点,系统继续依次提示'输入矩形长度”

'输入矩形宽度”'输入旋转角度'等交互信息,按照图]所

示图形尺寸输入相应几何要素的尺寸值,即可快速完成图

1

所示图形中的各个矩形的绘制。

3

结束语

利用AutoCAD

现有的矩形绘制命令绘制长方形,要

先输入一个角点,然后输入另一个角点。绘图时可以使用

绝对坐标法也可使用相对坐标法,但如果图形中有多个矩

形,则还涉及到各个矩形的相对定位问题和矩形的倾斜问

题,在绘图时将考虑各个角点坐标的计算问题,操作起来比

较麻烦。通过增加的输入矩形的中心和长、宽及旋转角度

绘制矩形的新方法,将使图形的绘制效率大大提高。

利用软件提供的VBA

接口,根据实际工作的功能需

求,有针对性地对AutoCAD

进行二次开发,可以进一步丰

富软件的功能,对提高工作效率具有重要的意义。

参考文献:

[1 ]

丁刚,彭晓南.结合AutoCADVBA

提升ANSYS

分析建模

效率[J].

装备制造技术,2007(01);42-43+ 47.

[21Dietmar Rudolph. AutoCAD 2000

对象开发从入门到精

通[Ml.

北京:电子工业出版社,2000.

(收稿日期:2019-08-05)

30

《湖北农机化》2019

年第20