基于ObjectARX技术的AutoCAD图库管理系统设计与开发高级建模工具的二次开发软件工程课程设计.docx
《基于ObjectARX技术的AutoCAD图库管理系统设计与开发高级建模工具的二次开发软件工程课程设计.docx》由会员分享,可在线阅读,更多相关《基于ObjectARX技术的AutoCAD图库管理系统设计与开发高级建模工具的二次开发软件工程课程设计.docx(37页珍藏版)》请在冰豆网上搜索。
基于ObjectARX技术的AutoCAD图库管理系统设计与开发高级建模工具的二次开发软件工程课程设计
基于ObjectARX技术的AutoCAD图库管理系统设计与开发
(高级建模工具的二次开发)
软件工程课程设计
引言
在现代的工业生产和机械制造业中,CAD/CAM技术应用得越来越广。
图库管理软件使用现代数据库管理,从图库中调取部件图作为编制加工高级部品的依据,从部件设计到部件组合加工编程,数据信息流是连续的,有利于计算机辅助设计和制造的集成,容易发现和修改错误,可靠性更强。
本课题利用ObjectARX的编程开发技术,在AutoCAD图形软件平台上,针对石材行业的生产需求和国际石材行业标准,研究与开发了石材行业图库管理系统和与之配套的高级建模工具软件系统。
该系统与工程出图,工程效果渲染相集成,实现了石材行业的专用CAD软件。
第一章:
概述
1.1图库管理
1.1.1图库管理的发展历程
图库管理软件的发展是在制造业发展过程中形成的基于设计人员需求的平台软件。
在图库管理中经历了几个阶段:
1)设计人员给图档分类存档,自建目录管理
2)使用文本管理工程图档
3)使用外部数据库管理CAD图档
第一阶段是制造业初期,很多产品的设计是按照标准资料开发。
在开发中设计人员有复用的需求,使用自建目录管理不仅不易使用,而且效率和复用性低。
第二阶段在复用中使用文本记录需要复用的标准件的基本资料,便于用户检索。
使用弊端是无法对多个目录操作,及没有分级别管理,数据量大时较混乱。
第三阶段使用高级外建数据库管理图档,使用树型数据库结构,多级别管理使图库更加清晰明了。
而且用户可以对其添加,删除,改写等操作,并且屏蔽了用户对工程文件的操作,避免丢失数据
1.1.2图库管理与传统CAD文档管理的区别
一、当前CAD文档管理情况
标准件是机械制造企业在设计、生产过程中使用最频繁的基础单元。
标准件种类多、数量大,传统的使用方式是:
设计人员按照图纸要求查询相关标准资料,然后完成绘制工作。
传统方式容易出现的弊端有:
1)资源分散导致资源浪费设计人员出于方便,往往将曾经使用过的标准件信息及图形文件自行管理起来,以备今后使用。
每个设计人员手中都会有一部分标准件图形的备份,但是,凭一个人的力量和工作经历难以将全部标准件图形备份,更谈不上进行有效管理。
即使设计人员做到了这一步,这也只能体现出资源严重浪费、管理不善。
2)缺乏管理导致标准件使用出现混乱状态设计人员自行管理标准件的模式,直接导致标准件使用过程中的混乱现象。
在现实工程,设计人员在标准件选择上是具有相当自主权的,但是,企业出于节约采购成本、控制生产质量等目的,极希望设计人员在完成设计要求的基础上,尽量降低标准件种类(节约不必要的采购支出和不必要的标准件质量检测实验费用),但是根据调查结果,很多企业目前仍然处于这种比较混乱的情况下。
3)烦琐工作占用设计人员宝贵时间设计人员在设计过程中,会很频繁地用到标准件,如果每次都绘制,尤其是三维图形需要建模工作,设计人员的很多时间将会不必要地浪费掉。
即使设计人员自己积累了一定的标准件图形文件,但都是很有限的,这种情况使工作经历少的设计人员越发处于劣势,更加浪费时间。
标准件图库为企业设计人员提供齐全的标准件信息及图形文件,目的也是为了使设计人员可以从烦琐地图形绘制工作中解脱出来。
二、标准件管理系统提供的解决方案
标准件管理系统,针对企业存在的上述问题,完成了企业标准件资源整合、统一有效管理,从企业的角度解决了资源浪费、成本增加的问题;同时,标准件管理系统还极大地解决了设计人员重复劳动的问题,使设计人员能够从查询标准手册、绘制标准件图形的烦琐工作中解脱出来,更便洁、高效的工作。
标准件管理系统具有以下几个突出特点:
1)完整的标准件标准信息系统中收录了全部的标准件标准信息,标准件分类方法按照国标分类方法建立树形目录,清晰明了的结构使设计人员可以在友好的界面中方便地查询到标准件的所在位置。
2)一对一的标准件图形文件
该系统提供每一个标准中每个规格的标准件图形文件。
设计人员可以直接调用矢量图形,无须再重新绘制。
虽然当前各种绘图软件参数化绘制过程已经简化了设计人员的工作,但是对于三维部件图而言,建模还是需要花费设计人员的宝贵时间。
本系统也是出于这个考虑,为设计人员提供完全到位的支持,即提供每个标准中每个规格的标准件图形文件。
3)强大的标准件管理功能
企业开发人员只需对标准件库进行有效管理,就能够轻松达到节约成本、提高效率的开发目标。
该系统提供了强大的图档管理功能,能够根据企业需要添加新的标准部件、添加新的部件规格,修改部件信息、删除部件及图形文件等。
4)提高企业效率
图库管理系统使设计人员从绘制图形的工作中解脱出来,节省大量时间,对于企业领导层来说,这等于提高了技术人员使用率,等于无形中增加了已有技术人员的实际工作时间。
从成本角度来说,提高设计人员工作效率就等于降低成本。
1.1.3图库管理的意义
图库管理是现代制造行业的企业的发展趋势,图库管理能够为企业节约成本、提高效率,研究当前机械制造行业的发展趋势可以发现,越来越多的企业将注意力提高到标准化管理中来。
标准化图库管理系统能够为企业的标准化建设提供巨大的帮助,企业应用图库管理系统,能够迅速实现企业标准化管理、标准化使用、标准化生产的基础工作。
1.2关于图库管理的国内外研究动态与发展现状
1.2.1图库管理的国内外研究动态,水平
本软件主要开发石材行业,该行业在国际领先技术的国家是日本,因此我们对比日本的石材设计软件来看有以下特点:
第一、日本软件是使用文本操作的格式,其对文本数据进行加密管理,其有固定的使用格式。
其行业严格按照国际标准化,开发精度高,但其图库结构单一,开发分类必须通过WINDOWS文件管理,而且工程量大时候效率会低。
第二、国内开发起步较晚,但使用二次开发工具选择也比较新,但大部分还是使用文本管理的方式,对外建数据库的使用不多,对处理大型工程复用性来看效率不高。
界面不够人性化。
1.2.2本图库管理软件的存在的问题.
本系统主要使用Windows提供的ADO数据库访问接口访问数据库文件,使用分级别管理来管理图档,用户可以自由的添加修改图档资料,对用户而言屏蔽了后台工程图库文件,产生问题如下:
1、未进行工程备份模块开发,一旦用户误操作导致系统外建数据库丢失会造成工程图库文件无法识别。
2、使用外建数据库管理,并未开发对外建数据库管理接口
3、设计人员使用效率较高但自扩展性较低
1.3高级建模
1.3.1高级建模的定义
在AutoCAD中建立的三维对象一般称为模型(model),建立模型的过程称为造型(modeling),AutoCAD支持三种类型的三维模型:
线框模型,曲面模型和实体模型,在本系统中高级建模的对象是实体模型。
高级建模的定义是通过ObjectARX编程,实现对三维实体的拉伸,变形,着色,定位等操作,以加快设计人员的开发效率。
1.3.2高级建模的意义
高级建模工具的开发使得设计人员在设计模型的同时减少了设计中处理实体的难度,降低的出错的机率,是实现了对设计的辅助开发。
1.4本软件开发行业背景
1.4.1石材行业的国内发展现状
我国石材加工技术和加工机械的整体水平与外国相比还有一定的差距。
从市场上来看,国内产品结构不平衡,供过于求,石材市场竞争过于激烈。
从产业规模来看,大多数企业规模偏小,产品单一,在与国外企业的竞争中,越来越不利。
从产品生产结构来看,虽然我国石材出口已跃居世界第一,但出口产品档次低,数量大,进口产品档次高,价格高。
这些因素导致了我国的石材行业竞争激烈而且标准化不够,这些使得我国石材业在国际市场上生存力不强。
在这些不利的环境中,我们希望在国内的标准化产业能尽快与国际接轨,只有这样,才能在国际市场站稳脚跟。
1.4.2石材软件的图库管理需求
在石材行业中,使用了大量的重复开发的模型,而由于对这些模型缺乏有效的管理,导致开发效率低,开发标准化不够,可重用性差等问题。
这些问题导致了石材行业对图库管理软件的需求十分迫切。
分析所得图库管理需求如下:
需求模块
简要功能描述
部材库录入
部材化建模时为加快建模速度,将已设计成型的部材录入部材库,录入部材为已部材化的cad实体和按标准定义的部材。
部材库索引是由外栅,周边,墓石等大类,以及其包含的小类构成的。
周边,外栅,墓石三大类为标准,其他小类是可以添加,删除,修改的。
录入功能包括:
一般部材录入和复合部材录入
部材库调用
部材化建模时为加快建模速度,从部材库中调出已存在的部材,实际上是提供一个部材库的索引。
1:
部材库索引是由外栅,周边,墓石等大类,以及其包含的小类构成的。
2:
此部材库由三结构相同的库组成,一个是一般部材库,一个是复合部材库。
所谓一般部材库是指由单个实体或块按一定的标准形成的部材库。
所谓复合部材是指把两个或两个以上的一般部材或伸缩部材等(必须是实体)进行组合登录,其在出部品图时,又逐个解绑还原为单个部材,与单一部材的区别是:
单一部材若是由两个以上的实体组成,在出部品图或入库时都是视作一个一般部材。
所谓复合部材库,是指由上述复合部材组成的结构同一般部材库的部材库。
部材选择分为
一般部材选择
复合部材选择。
两种选择都提供预览缩略图功能。
部材库维护
1:
部材修改(修改部材相关属性,长宽高的修改,基点的修改,名称的修改等)
2:
部材删除(从部材库中删除部材)
表1:
图库管理需求
1.5本课题研究的主要内容和意义
1.5.1课题研究方向的选择
本课题来源于厦门豪达石制品有限公司的设计需求,在对其开发过程的详细调研之后发现图库管理是其公司在设计中迫切的需求,在开发中对图库的管理制约了其开发可利用的效率,设计人员缺乏高效的图档管理工具,重复劳动较多。
1.5.2本课题研究的主要内容
1.图库管理系统的后台外建数据库结构。
2.图库管理系统中图档的多级别管理实现。
3.AutoCAD的实体建模及ObjectARX实现。
4.AutoCAD内部数据库的高级访问操作。
5.AutoCAD的高级建模工具的实现。
1.5.3在理论及应用方面的意义
图库管理作为工程行业中提高开发效率的有利方法,逐步形成在工程行业中有不可缺少的地位,我们尝试使用ObjectARX技术来开发新的图库系统,不仅能提高设计人员开发效率,而且在AutoCAD平台上使用新的技术架设新的设计管理软件对国内的ObjectARX研究也是一种推动。
第二章:
图库管理的理论基础
2.1图库管理
2.1.1图库的定义
图库泛指由各种图形或符号构成的文件。
在基于AutoCAD的CAD系统中,图库实质上是AutoCAD的一个图形文件。
在图库文件中,由线、圆、弧和文字等图元构成基本单元称为块(block)或图块,用来表示一种图形或符号。
与一般图形文件不同之处在于图库文件不作为一个机械零部件图使用,而是一个存放块的容器。
图库管理系统的基本功能就是图库文件的生成和库中块的定义和使用。
2.1.2图库管理的分层组织结构
图1:
图库管理组织结构图
(1)建库模块:
创建和扩充图库;
(2)插入模块:
用多种途径向当前图形数据库中插入图形或图块;
(3)查询模块:
检索图库中已包含的块、在交互界面中预览图块和制作供预览用的幻灯片;
(4)输出模块:
从图库文件中选择任意图块作为一个独立的图形文件保存。
2.2图形数据库研究
2.2.1数据库概要
数据库是指在计算机存储设备上合理存放的相互关联的数据的集合。
这些数据集合具有如下特点:
尽可能不重复,即最小冗余,以节约存储空间;以最优的方式服务于一个或多个应用程序,以实现应用程序对数据资源的共享;数据的存放尽可能的独立于使用它的应用程序,即保持数据的独立性,以使设备具有良好的可维护性;与有良好的数据操作语言和面向终端用户的查询语言,通过软件对数据进行统一管理,以方便的进行数据的输入、修改、增删、检索等操作。
2.2.2图形系统与数据库
任何计算机系统都有数据组织问题。
在以前的图形系统中,图形数据都作为“文件”存放在计算机中,以“数据文件”的形式实现。
在大型复杂的图形系统中,人们逐步发现这种方法的缺点,如数据的冗余性、不完整性以及处理各个文件的复杂性等。
诸如数据文件只对某一应用程序有意义,而其它程序无法利用这些数据;各自独立的多个数据文件使得管理、查找数据要花费巨大的代价。
因此,大系统必须考虑使用统一的图形数据结构,并用有效方法来管理、使用这些数据。
数据库就是为有效管理数据的工具。
2.2.3图形数据库的形成、特点及类型
1.图形数据库的形成
在计算机辅助设计中,用户所涉及的图形往往是比较复杂的,复杂的图形
涉及的数据量大,要完全放在内存中是不可能的,这些数据不是孤立的,而是
彼此密切联系的,并且要高速的处理以实现人机交互作用。
另外,图形设计往
往需要很多单位,许多人共同工作,而且要经常共用以前的设计经验,应用以
前设计的图形与数据,以及一些标准的零件、部件、组合件等模型,这些都必
须存储起来供用户随时调用。
把这些相关联的数据以便于存储的形式组织起来,
存放在磁盘中,这就形成了图形数据库。
2.图形数据库的特点
图形数据库在用途上不同于通用数据库,它更侧重于图形的生成、图形的
组合、图形的变换方面。
图形数据库的主要数据是几何图形,且要管理两种类
型的信息:
一种是有关设计环境的信息,包括规则、方法、标准元素等静态实
体。
另一种是有关设计对象的数据,此数据用于建立设计的客体,在设计过程
中是动态的。
实用中图形、符号较差,两种类型的数据信息经常混合出现。
图形数据库向用户提供的是图形数据。
图形数据库的特点是图形数据很复
杂;图形数据量大;图形操作特殊,实时性强;图形具有一定的属性。
图形数
据库在处理大量数据时,重要的一点是使数据库的逻辑结构能够反映出现实世
界中相应物体的结构,数据库软件能将逻辑数据库映射到实际存储的物理数据
结构中去。
2.3数据库类使用分析
2.3.1数据库访问接口说明
使用ADO对MS_ACCESS或SQL_Server等当前流行数据库进行访问,以下对该类进行具体方法说明:
变量及具体方法
参数说明
_ConnectionPtrm_pConnection;
指向Connection对象的指针
_RecordsetPtrm_pRecordset;
指向Recordset对象的指针
ADOConn();
数据库访问类构造函数
virtual~ADOConn();
数据库访问类销毁函数
voidOnInitADOConn();
数据库访问类初始化函数
_RecordsetPtr&GetRecordSet(_bstr_tbstrSQL);
查询SQL语句,返回Recordset对象指针
bstrSQL为Cstring类型的SQL语句
BoolExecuteSQL(_bstr_tbstrSQL);
执行SQL语句,如InsertUpdate语句
成功返回TURE,失败返回FALSE
voidExitConnect();
退出ADO连接
表2:
ADO数据库接口说明
2.3.2数据库兼容性分析
使用ADO数据库访问接口访问windows平台下的各种主流数据库,而且访问类接口方便并且兼容性较强,ACCESS数据库和SQL_Server,ORACLE等数据库可以相互转化,使用非常方便.
第三章:
图库管理的系统构成
3.1软件开发环境
3.1.1开发环境的选择
CAD技术最早可以追溯到20世纪40年代,它是20世纪最杰出的科技成果之一。
近年来,CAD技术从最初的平面辅助绘图工具,迅速向智能化、三维化、集成化和网络化的方向发展。
其中,三维技术以其突出的优越性,迅速成为CAD.业界的发展主流。
三维技术使工程设计实现了技术上的巨大飞跃,给工程技术人员带来了强烈的震撼,为工程师们的创意和想象力提供了最为广阔的空间,并从设计中得到无穷的乐趣。
三维技术的应用,是CAD技术向纵深发展的必由之路。
AutoCAD是当今最流行的CAD软件之一,在建筑和机械等工程设计中得到了极为广泛的应用。
它将用户和设计信息与外部世界联系起来,在强大的技术平台框架上,集成了许多用户一直追求的特性,构成了充满活力而又轻松易用的设计环境。
同时,AutoCAD采用开放式的体系结构允许用户或二次开发商扩充新的功能和设计各种应用程序,随着系统功能的逐渐增强和版本的不断升级,提供了一系列开发环境和工具。
AutoCAD2002提供了完整、高性能且面向对象的CAD程序开发环境,从菜单和工具栏直到每一个图形对象,都可以精确地定制,为用户和开发者提供了多种选择。
这些选择包括基于C++②的ObjectARX;基于ActiveXAutomation(AutoCAD的ActiveXAutomation(AutoCAD的COM接口))的VBA和VisualLISP.所有这些开发接口都能与AutoCAD的ActiveXAutomation或COM接口对象协同工作。
正是由于这些第三代的开发环境和工具的支持,使AutoCAD本身不仅是一个轻松的设计环境,而且是一个强大的开放式的面向对象的CAD技术平台。
ObjectARX是软件本身提供的一种开发AutoCAD应用程序的C++语言环境。
ARX表示AutoCAD运行时扩展(AutoCADRuntimeExtension).ObjectARX2002是一个综合的API(ApplicationProgrammingInterface).本文采用ObjectARX2002作为AutoCAD的二次开发工具主要原因为:
ARX程序有如下的优点:
(1)ARX由于是动态链接库类型,在运行期间实时扩展AutoCAD,共享AutoCAD位址空间,性能无比强大,运行速度要比ADS更快。
(2)采用面向对象程序设计方法设计,因此AutoCAD公司提供了220多个面向对象的C++类,与操作系统环境紧密联合起来,可充分利用操作系统的各种资源。
(3)可创建用户自己的对象和实体,如同AutoCAD内部的对象和实体一样。
ARX应用程序以C++为基本开发语言,具有面向对象编程方式的资料可封装性、可继承性及多态性等特点。
用其开发的工程CAD软件具有模块性好、独立性强、连接简单、使用方便、内部功能高效实用以及代码可重用性强等优点,并且支持VC,能简洁高效地实现许多复杂功能。
此外,考虑到其运行速度快、保密性好、交互式接口容易生成等因素,绘图程序决定采用ARX编写。
同时,ARX程序也有它自身的缺点:
(1)稳定性:
运行稳定性反映出程序可能出现的严重错误所导致的危险。
由于
ARX应用程序共享AutoCAD的地址空间,所以一旦其失败,AutoCAD进程也随着崩溃。
(2)技术难度:
程序核心部分用VisualC++语言,由于ARX依赖于C++语言,它必须经过严格的控制的编译、链接才能生成应用程序。
经分析比较,虽然。
ObjectARX编程难度大,但功能速度最好同时又提供了许多便于开发的特征和功能。
因此,我们选用了ObjectARX作为AutoCAD2002平台上的二次开发工具。
通过综合分析各种CAD软件的扩展功能,图形功能及开发中成本难度风险,本文选用AutoCAD2002作为开发平台,对其进行二次开发,建立了基于ObjectARX2002的AutoCAD图库管理模块和高级建模工具模块。
3.1.2AutoCAD和高级语言的接口
计算机辅助设计(CAD)是计算机应用中的一个非常重要部分,微机CAD工作已在各个领域得到广泛的开展和应用。
但是AutoCAD在CAD系统仅是一个支撑平台,它必须与工程设计的计算分析软件、应用开发软件、数据库相联系才能发挥其优势,才能形成参数作图、编辑处理的能力,真正起到辅助设计的作用。
二次开发是用一定的高级语言编写与AutoCAD连接的程序,通过程序对原始资料进行处理和运算,形成所有目标图素的AutoCAD命令和相应的运行参数组织起来,通过AutoCAD的外部程序(参数)入口,一次性的输入到AutoCAD内部,让它连续快速地编辑图形,提高运行效率,用程序方法对AutoCAD进行二次开发,就是以AutoCAD为支撑软件进行的软件开发。
在AutoCAD提供的各种开发工具中,以C/C++开发工具的效率最高、功能最强。
AutoCAD2002使用一种特定的C/C++编程环境一ObjectARX(以下简称ARX)应用程序与AutoCAD在同一地址空间内运行并能够直接用AutoCAD的核心数据库结构和代码。
由于AutoCAD软件自身的很大一部分就是用ARX实现的,使用ARX能以无缝集成的技术方法向AutoCAD增加自定义的新实体和设计对象,以及创建全面享受AutoCAD固有命令之特权的新命令。
3.1.3VisualC++/MFC开发环境
VisualC++6是Microsoft在多年使用过程中不断改进的基础上推出的,用于支持Win32,Windows95/98和WindowsNT平台的应用程序、服务和控件的一个优秀的可视化开发工具。
该开发工具以其用户界面友好、开发过程简单、类库结构完备、不断支持最新技术等等一系列优点而备受开发人员青睐。
VisualC++6.0给用户提供了良好的可视化编程环境,该软件包含了许多独立的组件,如编辑器、编译器、连接器、实用程序生成器、调试器,以及各种各样为开发Windows环境下的C/C++程序而设计的工具,其中最重要的是DeveloperStudio的集成开发环境。
DeveloperStudio把所有的VisualC++工具结合在一起,集成为一个由窗口、对话框、菜单、工具栏、快捷键及宏组成发和谐系统,通过该集成环境,程序员可以观测和控制整个开发进程。
VisualC++提供APPWizard帮助使用MFC的用户构造一个程序框架.MFC借助C什的优势为Windows开发开辟了一片新天地,同时也借助ApplicationWizard使开发者摆脱了那些每次都必写基本代码,借助ClassWizard和消息映射使开发者摆脱了定义消息处理时那种混乱和冗长的代码段。
更令人兴奋的是利用C++的封装功能使开发者摆脱Windows中各种句柄的困扰,只需要面对C++中的对象,这样一来使开发更接近开发语言而远离系统。
另外,VisualC++6.0具有执行速度快,底层操作能力强,数据占用资源可以准确控制等优点,但对于图形图像编程则需要特定的开发包,所需工作量大。
3.1.4开发环境配置
在使用ObjectARX2002开发应用程序时,需要使用Windows9X/NT4/2000操作系统平台,MicrosoftVisualC++6.0以上版本的编译器,并同时在硬盘上安装好AutoCAD2002和ObjectARX2002开发系统。
因为开发生成的应用程序要在AutoCAD2002环境中运行,因此,运行ARX应用程序所需硬件环境同AutoCAD2002。
即最低硬件配置为:
1)Pentium1.7GCPU
2)256MB内存
3)10G硬盘自由空间
4)1024X768VGA视频显示
5)Windows视频显示驱动
3.2ObjectARX2002简介
3.2.1ObjectARX简介
AutoCAD是AutoDesk公司推出的通用绘图软件,它具有最广大的用