AutoCAD_VBA开发教程.doc
文本预览下载声明
第1章 走进AutoCAD ActiveX/VBA
1.1 ActiveX 自动化在AutoCAD中的应用
ActiveX是微软近年推出的一个基于COM(Component Object Model)的技术规范。它是在OLE(Object Linked and Embedded)基础上发展的新技术,其宗旨是在Windows系统的统一管理下协调不同的应用程序,构成复合文档。应用程序可以决定将自己哪些信息暴露出来,这个暴露自身信息的应用程序称为服务程序(Server);而操纵服务程序的程序称为客户程序(Client)。所谓ActiveX部件(简称“部件”),是一段可重复使用的编程代码和数据,它由利用ActiveX Automation(自动化)技术创建的一个或多个对象所组成。由于编写客户程序比将其做成服务程序要简单得多,因此要利用已有的ActiveX部件作为被调用的服务程序。
Autodesk公司采纳了微软的这一技术规范,最早在AutoCAD R14.0版推出了基于ActiveX Automation技术的开发方式。随后就有AutoCAD R14.01版,该版支持“前期绑定”,并且内嵌了AutoCAD VBA 。到AutoCAD 2000/2002(属R15版)、AutoCAD 2004/2005/2006(属R16版)和AutoCAD 2007(属R17版),这种新型的开发方式得到了进一步的改进及完善。
AutoCAD ActiveX 使用户能够从 AutoCAD 的内部或外部以编程方式来操作 AutoCAD。它是通过将 AutoCAD 对象显示到“外部世界”来做到这一点的。一旦这些对象被“暴露”,许多不同的编程语言或其他应用程序(例如VB、C++、Java、Word VBA 或 Excel VBA等)就可以访问它们。VB功能强大、语法简单、应用广泛,是良好的外部编程环境。AutoCAD VBA是内嵌在AutoCAD内部的编程环境。
AutoCAD VBA 允许 VBA 环境与 AutoCAD 同时运行。VBA 通过 AutoCAD ActiveX Automation 接口将消息发送到 AutoCAD,并通过 ActiveX Automation 接口对 AutoCAD 进行编程控制。将AutoCAD 、ActiveX Automation 和 VBA/VB 相结合编程有三个基本要素。第一个要素是 AutoCAD 本身,它拥有丰富的封装了的 AutoCAD 图元、数据和命令的对象集。 AutoCAD 是一个具有多层接口的开放架构应用程序。第二个要素是 AutoCAD ActiveX Automation 接口,它建立与 AutoCAD 对象的消息传递(通信)。第三个要素是 VBA/VB 集成编程环境 (IDE),它具有自己的对象组、关键词和常量等,能提供程序流、控制、调试和执行等功能。
在AutoCAD 2000/2002中,几乎对外暴露了所有对象,包括图形对象(如直线、圆弧)、样式设置对象(如线型、文本样式)、组织结构对象(如图层)、图形显示对象(如视口)以及菜单和工具栏等。到AutoCAD 2004/2005/2006版,又得到逐步的改进,如真彩色控制和表等。
1.2 AutoCAD VBA基础
1.2.1概述
VBA (Visual Basic for Applications)与VB(Visual Basic)一样也是一种面向对象的程序设计语言,它继承了VB语法简单功能强大的特点。
AutoCAD 2000/2002 VBA相当于VB5,而AutoCAD 2004/2005/2006 VBA相当于VB6,VB所支持的对象属性和方法,VBA也支持。
AutoCAD VBA 允许其Visual Basic环境与 AutoCAD 同时运行,并通过 ActiveX Automation 接口提供对 AutoCAD 的编程控制。这样就把 AutoCAD、ActiveX Automation和 VBA 紧密连结在一起,提供一个非常强大的接口。它不仅能控制 AutoCAD 对象,也能向其他应用程序发送数据或从中提取数据。
在AutoCAD中与VBA应用程序开发有关的下拉菜单如图1-1所示。
图1-1与VBA应用程序开发有关的下拉菜单
注:VBA 不支持创建可执行文件,但它提供了口令保护,以工程的方式保护工程窗体、类和模块的可见性。用户可以在 VBA IDE 中选择菜单“工具(T)”|“ACAD Project属性(E)...”,在“ACAD Project- 工程属性”对话框的“保护”选项卡进行相应的操作。
VBA常用的工程术语有:
(1)内嵌工程(embedded project):内嵌在AutoCAD图形中的VBA工程,打开图
显示全部