欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 科技论文 > 计算机论文

AutoCAD二次开发的方法与实例

时间:2011-04-23  作者:秩名

论文导读:VBA(ViSual BasiCfor App1i catiOil)是一种嵌入AutoCAD内部基于对象的集成编程环境。在VBA中AutoCAD通过AetiveX提供了一个沟通外部世界的机制。使得AutoCAD通过不同的编程语言和环境进行二次开发。并通过ActiveX Automatian接口提供对Aut0CAD的编程控制。
关键词:VBA,AutoCAD,二次开发,ActiveX
1 引言
AutoCAD以其强大的交互功能和图形处理能力而成为工程技术人员最为喜爱的绘图软件,但其本身计算功能不足,无法解决一些设计计算、数据处理的问题。免费论文网。传统的计算机辅助机械设计通常是采用高级语言进行设计计算,将结果存储为标准结构的数据文件(如 * .DXF) ,再由AutoCAD调用该文件形成图形,其编程和调用过程复杂而效率低下。值得庆幸的是,Autodesk 从AutoCAD14 开始为我们提供了更为有效的二次开发工具———VBA(Visual Basic for Application) ,它是内嵌于AutoCAD中的完全面向对象体系结构的一种二次开发编程语言,与VB 有着几乎一样的开发环境和语法,具有功能强大和易于掌握的特点。它驻留在主程序内部,使其结构精简,故代码运行效率非常高。它的出现弥补了AutoCAD 计算功能不足的缺陷,使开发机械CAD一体化系统成为可能。本文以绘制常用函数几何曲线为例,详细介绍利用VBA进行AutoCAD 二次开发的方法.
2二次开发工具一VBA
VBA(ViSual BasiCfor App1i catiOil)是一种嵌入AutoCAD内部基于对象的集成编程环境。在VBA中AutoCAD通过AetiveX提供了一个沟通外部世界的机制,使得AutoCAD通过不同的编程语言和环境进行二次开发。从语言结构上来讲,VBA是VB(Visual Basic)的一个子集,它们的语言结构是相同的,VBA 依附于主应用程序AutoCAD,与主应用程序的通信简单而高效。由于共享内存空间,使它具有更快的执行速度,且语法结构简洁,便于用户快速高效地开发出适用的应用软件,因此得到了广泛的应用。
Aut0CADVBA允许其Visual Basic环境与Aut0CAD同时运行,并通过ActiveX Automatian接口提供对Aut0CAD的编程控制。这样就把Aut0CAD、ActiveX Automatian和VBA紧密结合在一起,提供一个非常强大的接口。它不仅控制Aut0CAD对象,也能向其它应用程序发送数据或从中提取数据。
3应用VBA 开发AutoCAD 的程序实例
利用AutoCAD VBA语言实现常用函数几何曲线的精确绘制。程序的运行界面如图1所示,能在图形中创建四种常用三角函数的曲线。

图1程序运行界面
(1). 利用AutoCADVBA语言编程的基本思路
首先绘制坐标轴的箭头,在图形中创建了一个多段线,然后使用SetWidth方法设置起点和端点的宽度,起点宽度设置为1.5,终点宽度为0,获得箭头的效果。使用图像框来显示WMF文件,可以先由程序代码在图形窗口中创建,然后对图形对象进行适当的修改。在AutoCAD主应用程序中,选择【文件/输出】菜单项,就可以导出一个WMF文件。
然后绘制三角函数曲线,其方法与创建其他曲线的方法一致,计算出曲线中多个点的坐标,创建一条轻量多段线来模拟函数曲线。
最后利用AutoCAD软件将当前图形窗口中的几何曲线输出为BMP文件,可供其他的图像编辑软件使用。
(2). 程序开发的基本步骤
1)在AutoCAD2004中,打开【VBA管理器】对话框,创建一个新工程,保存在适当的位置,进入VBA集成开发环境。
2)选择【插入/用户窗体】菜单项,向程序中添加一个用户窗体,并在窗体中放置控件。窗体的名称修改为Form,图像控件的名称为imgPreview,组合框的名称修改为cboType,其它命令按钮的名称为cmdPick、emdOk和cmdCancel。如图2所示。

图2添加窗体控件
3)在【工程资源管理器】窗口中双击ThisDrawing,在此代码窗口中添加宏的启动代码:
Sub CreateCurve()
Form.Show
End Sub
4)在窗体模块的通用代码区,添加公有变量的声明,其相关代码为:
Const PI AS Double = 3.141592653
Dim ptCenter(2)As Double
Dim strPath As String ‘工程文件的路径
Dim bPick As Boolean ‘用户是否已经拾取原点
5)窗体的初始化事件中,获得工程文件的路径,向组合框中添加元素,并且设置控件的初始状态,其相关代码为:
Private Sub UserForm_Initialize()
'获得工程文件的路径
strPath=ThisDrawing.Application.VBE.ActiveVBProject.FileName
With cboType
.AddItem'y=Sinx'
.AddItem 'y=Cosx'
.AddItem'y=Sinx+Cosx'
.AddItem'y=Sinx-Cosx'
'使用下拉列表
.Style = fmStyleDropDownList
.BoundColumn = 0
'设置默认的显示项目
.ListIndex = 0
End With
imgPreview.AutoSize = False '无论图像大小如何,图像控件大小不变
bPick = False
End Sub
6)窗体中[拾取]按钮的单击事件,用来拾取坐标系的原点位置,其实现代码为:
Private Sub cmdPick_Click()
Dim PtPick As Variant
Form.Hide
PtPick = ThisDrawing.Utility.GetPoint(, '请输入坐标系的原点:')
ptCenter(0) = PtPick(0)
ptCenter(1) = PtPick(1)
ptCenter(2) = PtPick(2)
bPick = True '已经拾取原点
Form.Show
End Sub
7)在组合框的改变选项事件中,需要在图像控件中显示与函数相对应的曲线图像,其实现代码为:
Private Sub cboType_Change()
'使用相对路径
Select Case cboType.Value
Case 0
imgPreview.Picture= LoadPicture(Left(strPath, Len(strPath) - 8) & 'PICUTRE.wmf')
Case 1
imgPreview.Picture= LoadPicture(Left(strPath, Len(strPath) - 8) & 'PICUTRE.wmf')
Case 2
imgPreview.Picture= LoadPicture(Left(strPath, Len(strPath) - 8) & 'PICUTRE.wmf')
Case 3
imgPreview.Picture= LoadPicture(Left(strPath, Len(strPath) - 8) & 'PICUTRE.wmf')
End Select
End Sub
8)窗体【确定】按钮的单击事件,用来在图形中绘制指定的曲线(其实现代码略)
(3 )运行程序,绘制并输出图形
在VBA集成开发环境中,运行程序,系统会弹出【函数曲线】对话框,如图3所示。免费论文网。从组合框中分别选择一种曲线,在图像框中就会自动显示出该曲线的略图,单击【确定】按钮,在图形窗口中所得结果如图3所示。


图3绘制的函数曲线

4 结论
基于ActiveX技术, 使用VBA 或VB 等面向对象的开发工具对AutoCAD 进行二次开发, 为应用程序的编写带来了很大的灵活性, 充分利用面向对象的开发技术和AutoCAD及Windows 的资源, 可以进一步增强程序的功能和代码重用性。免费论文网。实践证明, 应用上述技术开发产品CAD系统是一种行之有效、方便实用的设计方法。
参考文献
1 张帆 AutoCAD VBA二次开发教程清华大学出版社,2006年1月(第一版) .
2 佟士懋. AutoCAD ActiveX/VBA二次开发技术基础及应用实例.国防工业出版社, 2006年4月(第一版) .
3 肖刚 机械CAD原理与实践清华大学出版社,1999年7月(第三版)
 

查看相关论文专题
加入收藏  打印本文
上一篇论文:ATS软件开发平台研究综述
下一篇论文:AutoCAD绘图技巧
科技论文分类
科技小论文 数学建模论文
数学论文 节能减排论文
数学小论文 低碳生活论文
物理论文 建筑工程论文
网站设计论文 农业论文
图书情报 环境保护论文
计算机论文 化学论文
机电一体化论文 生物论文
网络安全论文 机械论文
水利论文 地质论文
交通论文
相关计算机论文
    无相关信息
最新计算机论文
读者推荐的计算机论文