第二章 理解ActiveX自动操作基础
应用程序对象也是AutoCAD界面的全局对象。也就是说应用程序对象的所有方法和属性在全局名称空间都是有效的。
11
第二章 理解ActiveX自动操作基础
2.2.2文档 (Document)对象
文档对象,实际上就是AutoCAD图形,它可以在文档集合 (Documents)中找到,它提供访问所有图形还有大部分非图形的AutoCAD对象。通过提供的 模型空间(ModelSpace)和图纸空间 (PaperSpace)访问图形对象(线、圆、弧等),通过提供的如Layers(图层)、Linetypes(线型)和TextStyles(文字样式)这样名称的集合访问非图形对象(如图层、线型、字型等)。文档 (Document)对象也提供访问打印出图 (Plot)和实用工具 (Utility)对象。
12
第二章 理解ActiveX自动操作基础
2.2.3集合 (Collection)对象
AutoCAD组合大部分的对象在集合中。尽管这些集合包含不同类型的数据,但它们是通过相似的技术进行处理。每一集合都有添加对象到集合中的方法。大多数集合使用“添加 (Add)”方法添加集合成员对象。不同的是,图元对象通常使用标头为“Add+图元对象名称”这样的方法来进行添加。例如,添加一条直线你必须使用Addline方法。为便于理解,类库中翻译为“创建直线”,直译应为添加直线。
集合也拥有共用的一些其它方法和属性。“成员数(Count)”属性可用于获取集合中对象的数目。“取成员(Item)”方法可用于获取集合中的对象。 2.2.4图形和非图形对象
图形对象,也称为图元,它是构成图形的可见对象(如直线、圆、光栅图像等)。创建这些对象,可用在模型空间或图纸空间对象中创建。修改或查询这些对象,可使用对象自身的方法和属性。每一图形对象都有方法允许应用程序执行大部分的AutoCAD编辑命令,如复制、删除、移动、还有镜像等。这些对象也有相应方法可以设定及返回扩展数据(xdata)、高亮和更新、返回对象的边框范围等。图形对象具有如图层、线型、颜色和句柄这样典型的属性。它们也有其特殊的依赖于这些对象类型的属性,如圆心、半径和面积等。
非图形对象为不可见(指示性)对象,它们是图形的一部分,就如图层 (Layers)、线型 (Linetypes)、标注样式 (DimStypes)、选择集 (SelectionSets)等。创建这些对象,可在父集合对象中使用添加 (Add)方法。而修改或查询这些对象,可使用对象自身的方法和属性。每一非图形对象均有其特殊的方法及属性以实现某种功能;所有对象都有方法可以设定及返回扩展数据。
13
第二章 理解ActiveX自动操作基础
2.2.5参数选择 (Preferences)、打印出图 (Plot)和实用工具 (Utility)对象
在参数选择(Preferences)对象下边为对象集,每一对象集都与选项对话框的一个选项卡相关。它们共同提供访问在选项对话框中所有的注册设置。图形设置包含在数据库参数选择(DatabasePreferences)对象中。你也可通过SetVariable和GetVariable方法来设定和修改选项(系统变量不是选项对话框的一部分)。设置选项的详细内容请参考“设定AutoCAD参数”。
打印出图(Plot)对象提供访问在打印对话框的设定,并且让其它程序可以使用不同的方法打印图形。图形打印的相关内容请参考“打印图形”。
实用工具(Utility)对象提供用户输入和转换功能。用户输入功能是在AutoCAD命令行中提示用户输入不同类型数据的方法,如输入字符串、整数、实数、点等。转换功能是操作AutoCAD特有数据类型的方法,如点和角度,另外还有字符串和数字的处理。用户输入功能的相关内容请参考“提示用户输入”。
14
第二章 理解ActiveX自动操作基础
2.2访问对象层次
用易语言与AutoCAD应用程序进行连接并访问其对象是非常容易的。通过在易语言中定义变量引用AutoCAD对象,然后用定义的变量链接到当前AutoCAD进程并获取其活动图形。通过使用定义的变量可以直接获得访问当前文档对象和所有相关的方法和属性以及所有在该层次中的其它对象。
在对象层次中引用对象
你可直接可通过用户定义变量引用对象。直接引用对象,应包括对象的层次。例如,以下语句创建一条直线到模型空间。注意到层次状态为文档(Document),然后是模型空间 (ModelSpace)对象,最后才是创建直线(AddLine)方法:
通过用户定义变量引用对象,首先定义变量的类型,然后设定变量为适当的对象。例如,以下代码定义一个类型为模型空间(AcadModelSpace)的变量“模型空间1”,设定变量等于“文档1”的模型空间:
以下语句使用用户定义变量增加一条直线到“文档1”的模型空间中
访问应用程序对象
文档对象之上对象层次为根对象(应用程序对象) ,以下代码为“文档1”对象链接到“应用程序”变量“AuCAD2007程序”的活动文档。
2.3集合对象操作
集合对象是预先定义的对象,它包含所有相似对象的实例(即这些对象的父对象)。集合对象有以下的对象:
15