AutoCAD二次开发实用教程第12章 使用Ac课件.ppt
《AutoCAD二次开发实用教程第12章 使用Ac课件.ppt》由会员分享,可在线阅读,更多相关《AutoCAD二次开发实用教程第12章 使用Ac课件.ppt(38页珍藏版)》请在三一办公上搜索。
1、第12章 使用ActiveX,Visual LISP为AutoCAD提供了许多新的功能,包括支持ActiveX对象的操作以及支持ActiveX与其他程序的交互等。 ActiveX Automation技术使用户可以方便地使用其他许多面向对象的高级语言来开发AutoCAD程序,它的作用是面向对象的编程接口,程序可以据此访问AutoCAD所有的绘图对象和非绘图对象。,第12章 使用ActiveX,ActiveX Automation是一种新的方法,通过它可以用编程的方式操作AutoCAD图形。,第12章 使用ActiveX,许多语言和环境都可以使用ActiveX编程界面,如C+、Visual Ba
2、sic、Java和Delphi等。在AutoLISP中使用ActiveX对象,与其模型、属性和方法和在其他编程环境中使用的ActiveX对象完全相同。,12.1 在AutoLISP中使用ActiveX对象,对象是ActiveX应用程序的主要组成部分。例如,直线、圆弧、多义线和圆等都被称为图形对象。但在使用ActiveX时,以下AutoCAD本身及概念都被称为对象。 1. 样式设置对象,如线型(linetype)、文本样式(style)和尺寸样式(dimstyle)等。 2. 组织结构对象,如图层(layer)和块(block)等。 3. 图形显示对象,如视图(view)和视口(viewport
3、)。 4. 图形的模型空间(modelspace)和图纸空间(paperspace)。,12.2 AutoCAD对象模型,AutoCAD对象是通过分层方式来组织的,应用程序(Application)对象为根对象。这种分层结构的视图被归结为对象模型。Application对象还提供指向AutoCAD图形(通过Documents集合)、AutoCAD菜单和工具栏(通过 MenuBa 和MenuGroup 集合)以及 VBA IDE(通过VBE特性)的链接。,12.2.1 对象属性,AutoCAD对象模型中的所有对象都有一个或多个特性,我们把这些特性称为属性。属性用于描述对象。例如,圆具有半径、面积
4、、线型等属性,通过半径、面积、线型等属性描述一个具体的圆。椭圆具有面积和线型属性,虽然没有半径这个属性,但可以用其长轴和短轴的比例来描述它。通过ActiveX函数访问AutoCAD数据时必须知道特性名称。,12.2.2 对象方法,ActiveX对象也包括方法 ,它们是为特定类型的对象提供的动作。某些方法可应用到大多数AutoCAD图形对象。 在Visual LISP中,ActiveX方法是用AutoLISP函数实现的,在Visual LISP文档中,用户会看到许多关于ActiveX函数的内容,但是应该清楚在ActiveX术语中,它们应被称为方法。,12.2.3 对象集合,AutoCAD通过集合
5、将所有对象进行分类。虽然这些集合包含了不同类型的数据,但是可以使用相似的技术来处理它们。每一个集合都提供了向其中添加对象的方法。大多数集合是通过 Add 方法完成的。但添加图元对象通常使用名为 Add 的方法。例如,要添加直线,请使用 AddLine 方法。,12.3 访问AutoCAD对象,通过Document对象的Application特性可以访问Application对象。在对象层次结构中,Application对象位于Document对象的上方。 如果要AutoLISP中使用ActiveX函数,用户必须先加载支持代码来使这些函数可用。,12.3.1 访问AutoCAD应用程序,获取Au
6、toCAD应用程序2. AutoCAD应用程序的属性和方法,12.3.2 应用程序对象以下的其他ActiveX对象,沿着AutoCAD对象模型层次图,应用程序对象的ActiveDocument特性将把用户带到文档对象,它代表当前AutoCAD图形。 文档对象有许多特性。对非图形对象(如图层、线型和组等)的访问是由名称相近的特性(如Layers、Linetype和Groups等)提供的。,12.3.3 过程总结,实现的功能是用ActiveX Automation在AutoCAD图形中画一个圆对象,函数调用序列如下所示:(vl-load-com)(setq acadObject(vlax-get-
7、acad-object)(setq acadDocument(vla-get-ActiveDocument acadObject) (setq mSpace(vla-get-ModelSpace acadDocument)(setq mycircle(vla-acadCircle mSpace(vlax-3d-point (3.0 3.0 0.0)2.0),12.3.4 编程技巧,在编程中应避免反复调用AutoCAD应用程序、活动文档和模型空间对象,因为它们降低程序的运行速度,在编写程序时,用户应该让自己的应用程序一次获取这些对象,然后在整个应用程序中都引用所获取的对象指针。,12.3.5 在
8、Visual LISP函数中使用 ActiveX,为访问ActiveX对象,Visual LISP给AutoLISP语言增加了一些函数。1. vla-函数和每个ActiveX方法相对应,可用这些函数调用ActiveX方法(如vla-addCircle调用addCircle方法)。2. vla-get-函数和每个特性相对应,可获取ActiveX特性的值(如vla-get-Color获取对象的Color特性)。3. vla-put-函数和每个特性相对应,可设置ActiveX特性的值(如vla- put Color获取对象的Color特性)。,12.3.6 确定所需的Visual LISP函数,Vi
9、sual LISP ActiveX函数实际上是提供了对ActiveX方法的访问能力,如,在Visual LISP控制台提示下输入下列AutoLISP语句:_$ (setq mycircle(vla-addCircle mSpace(vlax-3d-point (3.0 3.0 0.0)2.0)# 该命令用addCircle方法向图形中添加圆,为绘制圆而调用的函数是vla-addCircle。,12.4 ActiveX对象访问,Application对象是AutoCAD对象模型中的基础,从Application对象可以访问其他任何对象,或是被访问对象的特性或方法。如果要在AutoLISP中使用A
10、ctiveX函数,必须先调用vl-load-com函数来加载所有的ActiveX函数。 该函数先检查是否已经加载了ActiveX函数,如果已经加载,则该函数不做任何工作,如果尚未加载ActiveX支持函数,vl-load-com函数将为AutoLISP语言加载ActiveX以及其他Visual LISP扩展部分。,12.4 ActiveX对象访问,12.4.1 查看对象特性 查看AutoCAD应用程序对象的特性,可以选中指向此对象的变量,然后选择“视图”“检验”命令,或者单击“视图”工具栏中的“检验”按钮。,12.4 ActiveX对象访问,12.4.2 访问图形对象获取AutoCAD应用程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AutoCAD二次开发实用教程第12章 使用Ac课件 AutoCAD 二次开发 实用教程 12 使用 Ac 课件

链接地址:https://www.31ppt.com/p-1456137.html