[免费]AutoCAD与易语言交互开发指南.doc_第1页
[免费]AutoCAD与易语言交互开发指南.doc_第2页
[免费]AutoCAD与易语言交互开发指南.doc_第3页
[免费]AutoCAD与易语言交互开发指南.doc_第4页
[免费]AutoCAD与易语言交互开发指南.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

前 言前 言易语言是一门计算机程序语言。以“易”著称,以中文作为程序代码表达的语言形式。易语言的创始人是吴涛。早期版本的名字为E语言。易语言最早的版本的发布可追溯至2000年9月11日。可以说,创造易语言的初衷是进行用中文来编写程序的实践。从2000年至今,易语言已经发展到一定的规模:功能上、用户数量上都十分可观。易语言提供对OCX控件、类型库、API函数、COM协议等一系列接口的支持,并开放其支持库接口技术文档供第三方使用,这为AutoCAD与易语言交互开发提供了良好的技术支持。易语言与AutoCAD交互开发全中文编程可以摆脱英语的瓶颈,宜于理解和交流,在很短的时间就可以掌握编程操作AutoCAD的关键技术。学习和掌握AutoCAD与易语言交互开发技术,对于非专业的AutoCAD二次开发人员,是个不错的选择。 作者:石头也疯狂 QQ:58530494声明:本教材部分内容来源于互联网,这部分内容版权归其作业所有。本教材只用于交流严禁转载!23文本目录目录第一章AutoCAD与易语言交互开发基础31.1AutoCAD与易语言交互开发环境31.2 Hello word练习示例7第二章 理解AutoCAD对象操作基础102.2访问对象层次152.3集合对象操作152.4理解属性和方法182.5理解父对象182.6引用类型库182.7在数据库中返回第一个图元192.8使用变体19第三章 控制AutoCAD环境223.1打开、保存和关闭图形22第一章AutoCAD与易语言交互开发基础第一章AutoCAD与易语言交互开发基础本章将为你介绍AutoCAD与易语言交互开发基础知识1.1AutoCAD与易语言交互开发环境 1.1.1环境平台AutoCAD与易语言交互开发使,首先要确定你的目标平台, 获得适当的开发环境。 如果你是在 AutoCAD 2007 平台上开发,你就需要具备下面的工具和软件: AutoCAD 2007 中文版。 易语言5.0。 本节将要介绍开发环境的构建,包括开发类库的获得、开发类库的组成部分、AutoCAD类库的安装。你也可以采用本节的方法以其他AutoCAD版本未平台构建开发环境,目前常用的版本为AutoCAD 2004和AutoCAD2007,最高版本为AutoCAD2011。一般来说,开发类库的版本和 AutoCAD 的版本是对应的。AutoCAD2004、AutoCAD2005和AutoCAD2006类库版本为16,AutoCAD2007、AutoCAD2008和AutoCAD2009类库版本为17, AutoCAD2010、AutoCAD2011类库版本为18。1.1.2构建步骤你可以使用易语言“类型库及OCX组件”工具定义、汉化、安装AutoCAD自带的类型库,构建开发环境,以AutoCAD2007为例,步骤如下:1.在工具菜单中选择【类型库或OCX组件-支持库】,弹出标题为“请选择欲包装的OCX组件或类型库”的对话框。图1.2.12.向下拖动滚动条,可以看到一个类型库的分类,在类型库分类中选中类型库“AutoCAD 2007 Type Library 版本1.0”。 图1.2.23.点击【下一步】,会看到一个类似我们使用过的OCX注册那样的窗口,可以在这里对这个类型库进行汉化操作。图1.2.34.选中AutoCAD,点击【保存】,弹出通用对话框,选择保存目录,保存类型库文件,文件名为“acax17chs.npk”。图1.2.45. 保存完成后,会有提示信息提示你是否要把我们注册好的类型库保存到“易语言”目录中去,选择【是】会提示安装成功。6运行“易语言”,在工具支持库配置,将AutoCAD2007类库前面打“”,设为所需要使用的支持库,在工具夹的支持库里就会看到我们刚才注册的类型库,见图1.2.5。用同样的方法可以添加“AutoCAD/ObjectDBX Common 17.0 Type Library”类型库,保存类型库文件,文件名为“axdb17chs.npk”。 图1.2.5至此AutoCAD 2007 版本的两个类型库“AutoCAD 2007 Type Library 版本1.0”类型库(以下简称AutoCAD类库)和“AutoCAD/ObjectDBX Common 17.0 Type Library”类型库(以下简称ObjectDBX类库)安装成功了。1.2.3环境类库对比安装的AutoCAD类库和ObjectDBX类库发现两个类型库会发现很多函数命令都是一样的,两者均可以对AutoCAD对象进行操作,但两者是有所区别的,AutoCAD类库类库命令必须打开“*.dwg”图形文件”然后对文件中中对象进行操作。ObjectDBX类库不需要打开“*.dwg”图形文件,可直接对*.dwg文件中的文件中对象进行操作。ObjectDBX类库比AutoCAD类库少了一些类库命令:1.DBX类库中没有Application对象,也就是说没有应用程序对象,所以一切与该对象有关的属性方法都不可用。3.DBX类库中没有打印项,但有打印配置。 4.DBX类库中没有选择集。 5.DBX类库中没有菜单和工具栏项。 6.DBX类库中没有Utility(实用工具)项,也就是说该项中的各种数据的输入方法都不可用。 7.DBX中没有设置当前标注样式、字体样式、图层、布局、线型、视口、选择集等项。 8.由于DBX类库中的SaveAs方法只能另存为当前版本的DWG文件, 没有Export和Import方法,所以增加了DXFIn和DXFOut两个方法来输入和输出DXF文件。 9.DBX类库中没有保存SetVariable和读取GetVariable系统变量的方法。 10.DBX类库中没有EndUndoMark、LoadShapeFile、PurgeAll、Regen、SendCommand、StartUndoMark 、WBlock 方法。相比每张图形文件都在CAD程序中打开操作而言, DBX无疑是效率高很多的,目前CAD免费提供的DBX并不是ObjectDBX的全部,完整版的ObjectDBX可以完全脱离AutoCAD程序操作dwg文件,但完全版需购买才能获得。1.2 Hello word练习示例本节介绍一个简单的“Hello World”的练习示例,虽然它很简单,但是用来描述程序的基本结构却非常合适。程序所要展示的效果非常简单:当用户点击按钮【Hello,word】时,启动AutoCAD应用程序,在命令行中输入Hello并按下Enter键,AutoCAD会在命令行提示显示“Hello World” 。启动易语言程序,新建windows窗口程序,在窗体添加按钮1,设置按钮1的标题为“Hello World”,如图1.2.6所示。图1.2.6 双击按钮1进入窗口程序集1编写如下代码:程序运行显示效果见图1.2.7图1.2.7当程序运行完成后,你可看到在命令行中出现有“Hello World”的提示文本。第二章理解ActiveX自动操作基础第二章 理解AutoCAD对象操作基础 2.1理解AutoCAD对象模型 一个对象就是AutoCAD界面里的一个主要功能组成单元。每一对象均描绘了AutoCAD的一个主要功能的精确部分。在AutoCAD界面里中有许多不同类型的对象。例如:图形对象,如线、圆、文本、多段线、三维面和标注等对象;样式设置,如线型和文字样式、标注样式均为对象;组织结构,如图层、组合和图块也是对象;图形显示,如视图和视口都是对象;甚至图形和AutoCAD应用程序本身也是对象。各个对象之间是通过分层方式来组织的,应用程序对象为根对象。这种分层结构的视图被归结为对象模型。对象模型提供了你访问按层次排列的每一个对象的途径。2.1.1应用程序(Application)对象应用程序对象是AutoCAD对象模型的根对象。通过应用程序对象,你可访问其它的每一个对象,并指派对象的属性和方法。应用程序对象的其它属性提供你访问应用程序指定的数据,如应用程序的名称和版本、还有AutoCAD的窗口大小、位置和可见性等。应用程序对象的方法执行应用程序指定的动作,如列出、装载、卸载ADS和ARX应用程序,还有退出AutoCAD。 应用程序对象也提供通过文档 (Documents)集合链接到AutoCAD图形、通过菜单栏(MenuBar)和菜单组(MenuGroups)集合链接到AutoCAD菜单和工具栏。应用程序对象也是AutoCAD界面的全局对象。也就是说应用程序对象的所有方法和属性在全局名称空间都是有效的。2.2.2文档 (Document)对象文档对象,实际上就是AutoCAD图形,它可以在文档集合 (Documents)中找到,它提供访问所有图形还有大部分非图形的AutoCAD对象。通过提供的 模型空间(ModelSpace)和图纸空间 (PaperSpace)访问图形对象(线、圆、弧等),通过提供的如Layers(图层)、Linetypes(线型)和TextStyles(文字样式)这样名称的集合访问非图形对象(如图层、线型、字型等)。文档 (Document)对象也提供访问打印出图 (Plot)和实用工具 (Utility)对象。2.2.3集合 (Collection)对象AutoCAD组合大部分的对象在集合中。尽管这些集合包含不同类型的数据,但它们是通过相似的技术进行处理。每一集合都有添加对象到集合中的方法。大多数集合使用“添加 (Add)”方法添加集合成员对象。不同的是,图元对象通常使用标头为“Add+图元对象名称”这样的方法来进行添加。例如,添加一条直线你必须使用Addline方法。为便于理解,类库中翻译为“创建直线”,直译应为添加直线。集合也拥有共用的一些其它方法和属性。“成员数(Count)”属性可用于获取集合中对象的数目。“取成员(Item)”方法可用于获取集合中的对象。2.2.4图形和非图形对象图形对象,也称为图元,它是构成图形的可见对象(如直线、圆、光栅图像等)。创建这些对象,可用在模型空间或图纸空间对象中创建。修改或查询这些对象,可使用对象自身的方法和属性。每一图形对象都有方法允许应用程序执行大部分的AutoCAD编辑命令,如复制、删除、移动、还有镜像等。这些对象也有相应方法可以设定及返回扩展数据(xdata)、高亮和更新、返回对象的边框范围等。图形对象具有如图层、线型、颜色和句柄这样典型的属性。它们也有其特殊的依赖于这些对象类型的属性,如圆心、半径和面积等。 非图形对象为不可见(指示性)对象,它们是图形的一部分,就如图层 (Layers)、线型 (Linetypes)、标注样式 (DimStypes)、选择集 (SelectionSets)等。创建这些对象,可在父集合对象中使用添加 (Add)方法。而修改或查询这些对象,可使用对象自身的方法和属性。每一非图形对象均有其特殊的方法及属性以实现某种功能;所有对象都有方法可以设定及返回扩展数据。2.2.5参数选择 (Preferences)、打印出图 (Plot)和实用工具 (Utility)对象在参数选择(Preferences)对象下边为对象集,每一对象集都与选项对话框的一个选项卡相关。它们共同提供访问在选项对话框中所有的注册设置。图形设置包含在数据库参数选择(DatabasePreferences)对象中。你也可通过SetVariable和GetVariable方法来设定和修改选项(系统变量不是选项对话框的一部分)。设置选项的详细内容请参考“设定AutoCAD参数”。 打印出图(Plot)对象提供访问在打印对话框的设定,并且让其它程序可以使用不同的方法打印图形。图形打印的相关内容请参考“打印图形”。 实用工具(Utility)对象提供用户输入和转换功能。用户输入功能是在AutoCAD命令行中提示用户输入不同类型数据的方法,如输入字符串、整数、实数、点等。转换功能是操作AutoCAD特有数据类型的方法,如点和角度,另外还有字符串和数字的处理。用户输入功能的相关内容请参考“提示用户输入”。2.2访问对象层次 用易语言与AutoCAD应用程序进行连接并访问其对象是非常容易的。通过在易语言中定义变量引用AutoCAD对象,然后用定义的变量链接到当前AutoCAD进程并获取其活动图形。通过使用定义的变量可以直接获得访问当前文档对象和所有相关的方法和属性以及所有在该层次中的其它对象。在对象层次中引用对象你可直接可通过用户定义变量引用对象。直接引用对象,应包括对象的层次。例如,以下语句创建一条直线到模型空间。注意到层次状态为文档(Document),然后是模型空间 (ModelSpace)对象,最后才是创建直线(AddLine)方法:通过用户定义变量引用对象,首先定义变量的类型,然后设定变量为适当的对象。例如,以下代码定义一个类型为模型空间(AcadModelSpace)的变量“模型空间1”,设定变量等于“文档1”的模型空间:以下语句使用用户定义变量增加一条直线到“文档1”的模型空间中 访问应用程序对象文档对象之上对象层次为根对象(应用程序对象) ,以下代码为“文档1”对象链接到“应用程序”变量“AuCAD2007程序”的活动文档。2.3集合对象操作 集合对象是预先定义的对象,它包含所有相似对象的实例(即这些对象的父对象)。集合对象有以下的对象:文档(Documents)集合包含所有在当前AutoCAD进程打开的文档。模型空间(ModelSpace)集合包含在模型空间中的所有图形对象(图元)。图纸空间(PaperSpace)集合包含在活动图纸空间布局中的所有图形对象(图元)。图块(Block)对象包含在指定图块定义中的所有图元。图块(Blocks)集合包含在图形中的所有图块。字典(Dictionaries)集合包含在图形中的所有字典。标注样式(DimStyles)集合包含在图形中的所有标注样式。组合(Groups)集合包含在图形中的所有组合。超级链接(Hyperlinks)集合包含提供图元的所有超级链接。图层(Layers)集合包含在图形中的所有图层。布局(Layouts)集合包含在图形中的所有布局。线型(Linetypes)集合包含在图形中的所有线型。菜单栏(MenuBar)集合包含当前显示于AutoCAD的所有菜单。菜单组(MenuGroups)集合包含当前装载到AutoCAD中的所有菜单和工具栏。注册应用程序(RegisteredApplications)集合包含在图形中的所有注册的应用程序。选择集(SelectionSets)集合包含在图形中所有的选择集。文字样式(TextStyles)集合包含在图形中所有的文字样式。UCSs 集合包含在图形中所有的用户坐标系统(UCS)。视图(Views)集合包含在图形中所有的视图。视口(Viewports)集合包含在图形中所有的视口。2.3.1访问集合大多数集合对象是通过文档对象来访问的。文档对象包含每个集合对象的属性。例如,以下代码定义一个变量“图层集1”并将设定该变量为“文档1”的图形的图层集合中:文档集合、菜单条集合和菜单组集合是通过应用程序对象进行访问。应用程序对象为这些集合的每一个集合包含一个属性。例如,以下代码定义了一个变量“菜单组1”并且设定该变量为应用程序中的菜单组集合:2.3.2添加新成员到集合对象添加新成员到集合中使用的是“添加(Add)”方法。例如,以下代码创建一个新的图层1并且将其添加到“图层集1”集合中:2.3.3在集合对象中循环选择集合对象中的一个指定成员,使用的是“取成员 (Item)”方法。“取成员”方法需要一个标识符。该标识符可以是指定集合内部项目位置的索引或者描述项目名称的字符串。需要注意的是索引号是从0开始的,比如集合有3个成员,则索引号分别为0,1,2。 以下例子在信息框中显示集合中所有图层的名称:注意:当在集合循环时,不要在对象上使用图元编辑方法(复制、阵列、镜像等),你只能在完成循环之后才可试着去编辑对象,或者先创建一个临时的数组并且设定其与集合相等,然后才可以在该复制的阵列中循环并执行你的操作。2.3.4删除集合对象中的成员删除指定的成员,可使用所找到成员对象的删除(Delete)方法。例如,以下代码删除“图层1”:图层1=文档1.取图层集合().取成员(“图层1”)图层1.删除当对象被删除后,你再也不能试图用程序去访问该对象了。2.4理解属性和方法 每一对象都有其属性、方法和事件。属性描述该对象的特性,而方法是一种可在该对象上执行的行为,事件在该对象被修改时触发。当对象创建后,你就可通过属性和方法查询和编辑对象。例如,一个圆对象有圆心属性。该属性以三维世界坐标系统的坐标描述了圆的圆心。更改圆的圆心,你只要简单地将该属性设定为新的坐标。圆对象也有称为偏移(Offset)的方法。该方法可在相对于现存圆的指定偏移距离创建一个新的对象。关于对象所有属性和方法,可参见类库命令。2.5理解父对象 每一个对象都有其永远不变的父对象。所有对象都源于称为根对象的单个父对象。你可以通过从根对象链接到子对象的方法访问所有在界面中的对象。还有,所有对象都有称为应用程序的属性以直接链接回根对象。AutoCAD界面的根对象为AutoCAD应用程序。2.6引用类型库 通过自动操作对象暴露的对象、属性和方法都包含在类型库中。类型库是一个文件或一个文件的一部分,它描述一个或多个对象的类型。类型库并不保存对象;它们只保存信息。通过访问类型库,应用程序和浏览器可确定对象的特征,如对象支持的界面和每一界面成员的名称和地址。在使用通过应用程序暴露出来的自动操作对象,你必须引用其类型库。该引用已由易语言程序中创建,见1.1节内容。你也可以在没有引用应用程序类型库的情况下使用应用程序对象。然而,由于以下理由,可考虑增加类型库引用:1.全局可访问函数可无条件直接访问。2.调用函数、属性和方法可在编译时检查其正确性,这样可以在运行时有更快的速度。3.有可能的话可声明定义在库中的变量类型,这样可增加运行时的可靠性和可读性。2.7在数据库中返回第一个图元 以下例子返回模型空间中的第一个图元对象。对于图纸空间中的图元,代码略有不同:返回模型空间中的第一个图元2.8使用变体 AutoCAD 对象操作是使用变体传递数组数据。AutoCAD为对象操作提供了帮助你转换数据类型的工具。2.8.1什么是变体?变体是一种特殊的数据类型,它可包含除固定长度字符串数据和用户定义类型外的其它任何类型的数据。变体也可包含特殊的值,如Empty、Error、Nothing和NULL。你可通过易语言中数据类型的“变体型”和“变体类型”中的函数命令来确定变体中数据。2.8.2在数组数据中使用变体变体是用于传递数组数据进和出对象操作。也就是说你的数组必须为变体以由AutoCAD 对象的方法和属性所接受。另外,从AutoCAD对象操作中输出的数组数据必须处理为变体。2.8.3转换数组为变体AutoCAD对象操作提供了实用方法以转换数组中的数据为变体。该方法为“创建变体(CreatTypedArray)”的方法,它创建包含整数、浮点数、双精数等数组的变体。你可传递这些结果的变体到任何接受作为变体的数据数值的AutoCAD方法或属性。“创建变体”方法接受在数组中输入的数值类型,和转换的数组数据。它返回数组数值为变体。以下代码使用“创建变体”转换有两个个数组:直线的起点坐标和终点坐标。然后传递这些变体到“创建直线”方法以创建直线。使用创建变体的方法创建直线2.8.4解释变体数组从AutoCAD 对象操作传递回的数组信息是以变体的方式传递回。如果你知道数组

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论