基于autocad的箱包cad系统设计与开发_毕业设计论文(编辑修改稿)内容摘要:

不断发展,对 CAD 系统的功能要求也越来越高。 因而 AutoCAD 不可能完全满足每个用户的具体而特定的要求。 设计人员希望它能从本质上减轻大量简单繁琐的工作量,使他们能集中精力于那些富有创造性的高层次思维活动中。 [8] [9] AutoCAD 提供的开放式体系结构允许用户和开发者采用高级编程语言对其进行扩充和修改,即二次开发,能最大程度地满足用户的特殊要求,更方便、更规范、更专业的实现设计和绘图中的应用。 AutoCAD 二次开发,有很多不同层次的语言和库可供选择。 迄今为止 , AutoCAD 二代三代开发工具,如图 所示 图 开发语言的发展进程 首先是 VisualLisp 和 AutoLisp。 Lisp 是一门历史悠久的函数式编程语言,很多概念和 C 这种过程式语言不一样,据说他在人工智能等方面有广泛的应用。 CAD引入了这种语言,给他添加相应的函数库,就成了命令行使用的 AutoLisp。 在此基础上再增加关于对话框和窗口界面的库,就是 VisualLisp,简称 VL。 VL 在 CAD中可以视为 CAD 命令的整合,是脚本语言,而且由 CAD 程序提供了编写环境。 浙江大学城市学院毕业论文 第 2 章 AutoCAD 二次开发和 VBA 语言 5 因此上手相当容易,便于编写,调 试也很方便。 第二大类是使用 ActiveX 和 VB。 ActiveX 是 Microsoft 提出的一组使用COM(Component Object Model,部件对象模型 )使得软件部件在网络环境中进行交互的技术集。 ACAD 使用 Acitvex 把数据传送给 ActiveX 程序,程序处理后再传回ACAD。 这个过程有点像浏览器浏览动态网站。 AcitveX 与具体的编程语言无关,因此理论上说可以用任何一种支持他的语言来编写,但通常大家选择 VB 语言。 VBA 是 VB的特殊形式,他将 VB植入到应用程序中。 ACAD 包含的 VBA 能够和CAD 共享地址空间,而独立的 VB 则需要通过接口完成。 这种方法在编写上比 Lisp复杂,调试也困难。 但速度快,功能更强劲。 但是在某些对速度要求相当高的运算和涉及 CAD 内部的应用上仍然会显得力不从心。 对于熟悉 VB语言又不想学习Lisp 奇怪语法的开发者来说,这是不错的选择。 [12] 第三大类就是 ADS ARX 和 ObjectARX。 ADS 是 AutoDesk 从 ACAD R11 开始提供的 C 编程环境。 它具有 C 的一切优点,又能操作 CAD。 但他和 ActiveX 类似是通过管道通讯的。 ARX(AutoCAD Runtime eXtension)是在 ADS 基础上发展的面向对象的环境,使用 C++语言。 最终 ARX 进化为 ObjectARX,他完全面向对象,并且是以 dll(动态链接库 )的形式共享 CAD 的地址空间。 由于先前的 ARX 已被包含为子集,人们也就简称 ObjectARX 为 ARX。 在 CAD20xx 以前,只能使用 C++语言和 VC 编译器来生成 ObjectARX 程序。 但目前已经可以使用 C C++等语言配合 编译器来生成 ARX 程序了。 要选用何种语言进行二次开发,需要开发人员按照所开发系统的功能特性进行筛 选来决定。 VBA 开发语言 VBA 开发的技术特点 VBA 是微软开发出来的应用程序共享一种通用的自动化语言,它可以使常用的程序自动化,并可以创建自定义的解决方案。 VBA 被集成到 AutoCAD 中, VBA 和 AutoCAD 中强大的 ACtiveX 自动化对象模型的结合,代表了一种新型的定制 AutoCAD 的模式构架。 通过 VBA,我们浙江大学城市学院毕业论文 第 2 章 AutoCAD 二次开发和 VBA 语言 6 可以操作 AutoCAD 软件,控制 ActiveX 和其它一些应用程序,使之相互之间发生互易活动。 下面就是 VBA 的主要功能: ( 1) VBA 提供强大的窗体创建功能,为应 用程序建立对话框及其他屏幕界面。 ( 2) 可以创建自己的工具条。 ( 3) 可以创建功能强大的模块级宏指令,宏名实质上就是模块的过程名。 ( 4) 提供建立类模块的功能,这对开发大型工程非常有用,因此类可以提供重用组。 ( 5) 具备完善的数据访问和管理能力,通过 ADO(ActiveX Data 0bjects),可以对 Access 数据库或其他外部数据库 (像 dBase, FOxPro 等 )实现访问和管理。 此功能比直接使用 AutoCAD 的数据库管理系统要方便,且功能强大。 [14] VBA 开发的优势 ( 1) VBA 能够使 AutoCAD 于其它应用程序直接共享数据,如 Microsoft Office软件。 因为所有的 VBA 应用程序都可以方便的相互沟通,在设计过程中可以很容易得将 AutoCAD 与基于 windows 的应用程序联系起来。 ( 2) 在 VBA 综合开发环境中,可以通过拖动图表的方法,简单而可视化的建立用户界面用户可以使用 AutoCAD 工具栏,也可以使用标准 VBA 界面工具创建新的工具栏。 ( 3) VBA 的语言代码完全继承了 VB的特征,可以说是世界上最简单的编程语言,但其功能不弱。 从数据计算,书库管理到 Intemet 软件开发,都可以见到VB 的身影,并可通过各种在线帮助,随时得到名师真传。 ( 4) 具有全开放式的对象模型。 AutoCAD 软件中的 ActiveX 对象模型十分有用,它显示了每一个对象的方法和属性,用户可以按照自己的愿望编程或定制AutoCAD 软件。 ( 5) 良好的运行速度。 VBA 是一个内嵌式的控制器,共享 AutoCAD 的内存空间,可以更好的与 AutoCAD 沟通。 其运行速度与 ObjectiRX 应用程序非常接近,比其它开发方式 (如: ADSRX, ADS 和 LISP)要提高许多。 无论编程技术水平如何,使用 VBA编程都不会感到有很多困难。 自从带有 VBA浙江大学城市学院毕业论文 第 2 章 AutoCAD 二次开发和 VBA 语言 7 开发接口的 AutoCAD R14 发行以来,已经有超过 80 万的开发者使用了这一软件,开发的应用程序将有更多机会为不断增长的用户群体服务。 [15] ActiveX 技术 对 AutoCAD 的二次开发可以通过 ActiveX 技术来实现,利用 ActiveX 技术,通过编程,用户可以在自己的应用程序中方便地对另一应用程序进行操作。 自AutoCAD R14 后, AutoCAD 都支持该技术,这样许多面向对象的语言和应用程序都可以通过该接口从 AutoCAD 内部或外部来操纵 AutoCAD 暴露的对象。 在AuotCAD 中,几乎暴露了所有对象,也就是说,用户可以操作几乎所有的 AutoCAD对象。 AutoCAD VBA 是受 ActiveX 技术支持的,从运作上看, VBA 通过 AutoCAD ActiveX Automation 接口将信息传送给 AutoCAD,而 AutoCAD VBA 也允许 VBA环境与 AutoCAD 环境同时执行并通过 ActiveX Automation 接口提供 AutoCAD 的程序。 如此, AutoCAD、 ActiveX Automation 与 VBA 的结合方式,提供了功能极强大的接口,不 仅可以操作 AutoCAD 的内部对象,更可以在其他的应用程序之间传送或接受数据。 [15] ActiveX 对象的使用 AutoCAD 暴露的这些对象是以层次式结构来组织的,其根部是应用程序对象,对象的继承阶层结构就称为“对象模型”。 VBA 访问 AutoCAD 对象的原则是按照对象模型进行访问。 VBA 提供了一个特殊的对象 —— Thisdrawing,它是 AutoCAD VBA 的一个术语,代表当前打开的AutoCAD 图形文件。 在创建实体对象之前,要确定实体将放于何处,并且要先引用这个对象。 创建实体采用 AddEntity 形式的方法,即“创建( Add)” +“实体名字( Entity name)”。 浙江大学城市学院毕业论文 第 2 章 AutoCAD 二次开发和 VBA 语言 8 ADO 数据库连接及操作技术 数据库系统概述 数据库系统是由计算机软、硬件资源组成的系统,它实现了有组织地、动态地存储大量关联数据,方便多用户访问。 通俗地讲,数据库系统可把日常的一些表格、卡片等的数据有组织地集合在一起,输入到计算机,然后通过计算机处理,再按一定要求输出结果。 所以,对于数据库来说,主要解决三个问题: ( 1) 有效地组织数据,即对数据进行合理设计,以便计算机存取; ( 2) 方便地将数据输入到计算 机中; ( 3) 根据用户的要求将数据从计算机中抽取出来。 我们这里主要是解决第 3 个问题,任何将数据库中,满足要求的数据,抽取出来,进行设计。 数据库种类 数据库在发展过程中诞生了层次型、网状型、关系型三种类型的数据库。 其中,关系型数据库具有更完美的内在机制,它建立在严密的关系代数基础之上,可以通过 SQL 标准查询语言实现对数据库的操作。 因此,自上一个世纪 80 年代来,关系型数据库成为了主流数据库而被广泛应用。 包括大型数据库,如 Oracle,SQL Servwe 和桌面数据库,如 Access, FoxPro 都 属于关系型数据库。 在 VBA 环境下, Access 数据库是缺省数据库, Access 所采用的 Jet 数据库引擎得到了最有效的利用,例如 VBA 的内部数据访问控件( Data)就是建立在 Jet引擎基础上的。 因此,我选用 Access 数据库建立数据库。 Access 数据库管理系统是 Microsoft Office 套件的重要组成部分。 Access 不仅是一个数据库,而且它具有强大的数据管理功能,它可以方便地利用各种数据源,生成窗体(表单),查询,报表和应用程序等。 浙江大学城市学院毕业论文 第 2 章 AutoCAD 二次开发和 VBA 语言 9 数据库系统的建立 在 Access 数据库系统中, 信息以数据库形式为文件单位储存到介质如磁盘、光盘中。 其数据库文件扩展名为 MDB。 在“程序”菜单中会出现 Microsoft Access 项,单击“ 开始 ” / “程序” / “ Microsoft Access”。 启动后会出现一个对话框,对话框中有两个组合框,选择“ Access 数据库向导”,单击“确定”。 接着选择“常用”中的“数据库”,单击“确定”,接着找到合适的存储地方,单击“确定”,出现一个新页面,双击“通过输入输入数据创建表格”,最后根据需要输入字段,输入完毕后,保存。 这样一个数据库就建好了。 ADO 对象 AutoCAD 的 dbconnect 功能可以在 AutoCAD 环境下配置数据库,还可以直接连接到外部数据库,纸箱数据的浏览、查询和管理。 可以通过 VBA 与 ADO( Microsoft ActiveX DataObjects)的结合使用达到与外部数据库连接的目的。 ADO 是以 OLEDB 为基础的面向对象的应用程序接口,核心是 Connection、Command 和 Recordset 对象。 Connection 对象用于建立与数据源的连接, Command对象可以在数据源中添加、删除或才更新数据、 或者在表中查询数据、 Recordset对象只代表记录集、在 ADO 对象模型中所有对数据源的操作几乎都是 Recordset对象完成的。 把从数据库中检索出的数据和 AutoCAD 编程对象方法中的参数进行加护,就可以在 AutoCAD 环境下实现基于外部数据库应用的流程图件图 浙江大学城市学院毕业论文 第 2 章 AutoCAD 二次 开发和 VBA 语言 10 图 ADO 流程图 数据库的连接和操作 首先应该连接数据库到 AutoCAD,这样就可以调用数据库指令。 ( 1) 定义工程文件路径和对象以及记录集对象: Public strPath01 As String Dim adoCon01 As Connection Dim adoRs01 As Recordset ( 2) 必须先获得当前的工程路径: strPath = ( 3) 连接数据库: Set adoCon = New Connection = adUseClient Provider=。 Data Source= amp。 Left(strPath, Len(strPath) 14) amp。 *.mdb。 ( 4) 打开记录集: Set adoRs = New Recordset lianzhouqi,adoCon,adOpenDynamic, adLockOptimistic ( 5) 将型号添加到列表框中: RefreshList ‘为刷新列表框子程序 If 0 Then VBA 工程 Automation 对象 ADO 对象 AutoCAD 应用 OLEDB 数。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。