原创 基于VBA的AutoCAD二次开发及应用实例

2011-9-23 16:54 2138 20 20 分类: MCU/ 嵌入式

  本文介绍了VBA二次开发AutoCAD的技术特点,并以实例说明VBA应用程序的编写要点。进一步验证了AUTOCAD与VBA以Activex Automation自动化接口技术实现连接,利用VB的可视化编程设计实现CAD系统设计的实际价值。

  1引言

  AutOCAD2005是AutOdesk公司的系列产品,该软件从其使用和设计思路上都秉承了工程制图人员的绘图习惯,能够非常轻松地绘制出带有平面视图和三维渲染效果的工程图纸,是绘图人员的一个理想工具。随着CAD基础理论和应用技术的不断发展,对CAD系统的功能要求也越来越高。因而AutoCAD不可能完全满足每个用户的具体而特定的要求。设计人员希望它能从本质上减轻大量简单烦琐的工作量,使他们能集中精力于那些富有创造性的高层次思维活动中。

  AutoCAD提供的开放式体系结构允许用户和开发者采用高级编程语言对其进行扩充和修改,即二次开发,能最大限度地满足用户的特殊要求,更方便、更规范、更专业的实现设计和绘图中的应用。VBA最早是建立在0ffice97中的标准宏语言,由于它在开发方面的易用性及具有的强大功能,许多软件开发商都将其嵌入自己的应用程序中,作为一种开发工具提供给用户使用。AutOdeSk公司自从Aut0CADRl4.0l版开始,内置了VBA开发工具。

  新一代程序开发工具ViSual BaSic,不仅继承了面向VBA和AutoCAD中强大的Activex自动化对象模型的结合,代表了一种新型的定制AutoCAD的模式构架。通过VBA,我们可以操作AutoCAD2004,控制ActiveX和其它一些应用程序,使之相互之间发生互易活动下面就是VBA的主要功能:

  (1)VBA提供强大的窗体创建功能,为应用程序建立对话框及其他屏幕界面。

  (2)可以创建自己的工具条。

  (3)可以创建功能强大的模块级宏指令,宏名实质上就是模块的过程名。

  (4)提供建立类模块的功能,这对开发大型工程非常有用,因此类可以提供重用组。

  (5)具备完善的数据访问和管理能力,通过ADO(ActivexData Objects),可以对Access数据库或其他外部数据库(像dBase,FoxPro等)实现访问和管理。此功能比直接使用AutoCAD的数据库管理系统要方便,且功能强大。

  2.2 VBA AutoCAD ActiveX Automation对象模型

  VBA是通过AutoCAD ActiveX Automation接口来建立和AutoCAD对象问的联系。ActiveX是建立在COM对象模型之上的一个标准通信协议,它允许对象之间通过一定的接口相互通信。

  AutoCAD Activex使用户能够从AutoCAD的内部或外部以编程方式来操作AutoCAD。它是通过将AutoCAD对象显示到“外部世界”来做到这一点的。这些对象被显示后,许多不同的编程语言和环境以及其他应用程序(例如Microsonword VBA或Excel VBA)就可以访问它们。如图1是编程语言和应用程序通过AutoCAD ActiveX访问AutoCAD。

编程语言和应用程序通过AutoCAD AcfiveX访问AutoCAD

图1 编程语言和应用程序通过AutoCAD AcfiveX访问AutoCAD

  在AutoCAD中实现ActiveX接口有两大优点:

  ·更多的编程环境可以编程访问AucOCAD图形。在ActiveXAutomation出现以前,开发人员只能使用AutoLISP或C++接口。

  ·与其他windows应用程序(如Microsoft ACCESS和Word)共享数据变得更加容易。

  对象是所有Activex应用程序的主要构造块。每一个显示的对象均精确代表一个AutoCAD组件。AutoCAD ActiveX接口中有许多不同类型的对象。例如:

  ·直线、圆弧、文字和标注等图形对象都是对象。

  ·线型与标注样式等样式设置都是对象。

  ·图层、编组和块等组织结构都是对象。

  ·视图与视口等图形显示都是对象。

  ·甚至图形、AutoCAD应用程序本身也是对象。

文章评论0条评论)

登录后参与讨论
我要评论
0
20
关闭 站长推荐上一条 /2 下一条