基于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
期