资源描述
单击此处编辑母版标题样式,编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,大家好,大家好,1,第,13,讲,三维CAD系统关键技术,及二次开发,简介,13.1,CAD,系统功能需求及体系架构,13.1.1,三维,CAD,系统功能需求,13.1.2,三维,CAD,系统体系架构,13.2,CAD,系统开发技术(选学),13.3,CAD,系统二次开发技术,13.3.1,基于通用,CAD,平台的开发(选学),13.3.2,工程数据处理组件开发,13.3.4,专业化应用组件开发(选学),第13讲 三维CAD系统关键技术,2,本章目的,1,了解三维,CAD,系统的需求及架构,2,、掌握工程数据常用处理方法,3,、了解三维,CAD,系统开发方法及二次开发过程,本章目的 1了解三维CAD系统的需求及架构,3,13.1 CAD,系统功能需求及体系架构,13.1.1 CAD,系统功能需求,Solid Edge,CATIA,UG NX,Pro/E,Inventor,目前最流行的三维,CAD,系统,美、法等国的,CAD,软件技术一直走在世界的前沿,它们拥有许多世界闻名的,CAD/CAM,系统,这些系统具备十分强大的功能。,国内,:,清华大学、北航、新舟、浙大、华工,13.1 CAD系统功能需求及体系架构13.1.1 CA,4,以国家863,国产三维,CAD系统评测要求为例,,三维,CAD,基本功能需求:,真正的产品创新设计有赖于三维,CAD,的应用;,三维,CAD,采用直观的三维模型表达方式,能直观清晰地描绘更复杂的产品结构,能方便地将设计、分析、工艺和辅助制造系统相连接;,CAD,是,CAE,、,CAPP,、,CAM,集成的基础;,三维,CAD,软件可大幅度的减少设计错误,提高产品设计质量,缩短产品研发周期。,三维零件参数化特征建模功能,二维工程图功能,三维零件装配功能,三维零件、装配与二维工程图关联功能,数据接口功能,系统综合管理功能,系统性能需求,以国家863国产三维CAD系统评测要求为例,,5,三维零件参数化特征建模功能,线框造型:,基本几何定义;曲线插值逼近;,NURBS,曲线;曲线组合、打断、光顺、延伸、修整、拼接、求交等;过渡、等距曲线和线性变距曲线;曲线变换(平移、旋转、镜像、阵列等);曲线分析与计算(切矢、曲率、坐标值反求参数值)等。,曲面造型功能:,曲面求交、延伸;直纹面、旋转面、扫成面、点阵面、,NURBS,曲面;给定边界定义曲面;曲面和变距曲面;曲面过渡、拼接、光顺、剪裁、修型;曲面分析与计算(切矢、法矢、曲率、坐标值反求,U,,,V,参数);取子曲面片、曲面轮廓线、曲线在曲面上的投影;散乱点插值、数据预处理、特征点提取及光顺等。,实体造型功能:,草图定义、编辑、约束、导航等;基本体素、自定义体素、体素库(体素库建立、查询、删除等维护);实体生成方法(平扫、旋转扫、广义扫、拔模、抽壳及其它方法);布尔运算(并、交、差);局部操作(剖切、圆角、倒角、局部拉伸);实体编辑(拷贝、镜像、阵列、删除、回退与重作、平移、旋转、缩放、几何元素查询、几何信息的修改);曲面转实体;三维实体向二维的转换(生成轮廓图及消隐);实体体积、质量、质心、惯性矩等计算 。,装配建模功能,装配建模:,装配环境下的零件建模,零件导入、抑制、取消,装配约束管理(装配约束定义、装配约束求解),零件干涉检查,装配爆炸图生成等。,装配管理:,装配结构树维护,生成零件,BOM,表。,扩展功能:,可装配性评价、装配动画仿真、机构运动仿真。,三维零件参数化特征建模功能线框造型:基本几何定义;曲线插值逼,6,三维零件、装配与二维工程图关联功能,零件、装配、工程图关联:,三维模型变化则装配模型及二维图形自适应变化;二维图形主要参数变化则三维模型与装配模型自适应变化;装配模型变化则三维模型与二维图形自适应变化。,数据接口功能,文件的输入及输出;具有某种国际标准接口(如,IGES,、,STEP,等);具有某种工业标准接口(如,DXF,、,X_T,、,SAT,、,STL,、,VRML,等)。,系统综合管理功能,用户界面:,文字或图符菜单、下拉式菜单、动态弹出式菜单、对话框、命令语言、数字化仪、鼠标器、功能键、快捷键、提示信息、出错信息、动态导航功能等。,二维工程图功能,(,参见第,4,讲二维,CAD,系统,略,),图形显示:,视像定义与修改、多视口显示、动态显示、视图的管理、透明命令、图形缩放(,Z00M,)、图形曳移;曲面和线框图显示及轮廓图显示;实体及特征的真实图与简图显示(简图用于二维及三维布置);正投影图、轴测图、透视图、剖切图、,消隐图;渲染图(真实感图);图像文件输出(,GIF,等光栅文件格式)。,视图管理:,视图投影设置、二维视图布局,标准视图和自定义视图输出、剖视,图层控制功能。,图纸输出:,按比例输出图形及自动按图纸设定输出比例;输出图形预览及终止预览;对多张图纸进行编辑打印;绘图输出控制线型及粗细;打印机、绘图机驱动。,三维零件、装配与二维工程图关联功能零件、装配、工程图关联:三,7,13.1.2 CAD,系统体系架构,以天喻软件等六家单位申请项目,“,某航空集团企业创新设计平台,”,为例,13.1.2 CAD系统体系架构以天喻软件等六家单位申请项,8,该系统针对某大型集团企业的创新设计需求,不仅需要强大的通用功能,同时也需要较强的专业化设计功能,系统功能复杂。为此,采用四层体系结构,其中:,系统支撑层:,提供,CAD,软件运行环境(如操作系统、网络协议、数据库管理、图形接口等)。,基础核心层:,提供共性基础构件,几何与拓扑核心数据结构,内存管理机制、基础算法引擎及方法。主要包括以下几个方面:,几何引擎,支持零件造型、装配造型、高级曲面造型等三维数字化设计功能,应具有接口兼容、功能齐全、计算稳定、几何覆盖域宽、多种造型统一表示、可扩展性等特点,2D,、,3D,尺寸约束管理,即变量化草图设计,能够支持,2D,设计、工程图和,2D,轮廓草图,,2D,轮廓草图能够有效地支持,3D,参数化实体模型;支持装配件和机构件的约束管理,能够支持,3D,草图、零件设计和装配设计。此外,支持欠约束和过约束设计并提供冲突检测管理,支持实时动态装配和机构运动仿真等。,通用函数库,提高共享的常用数学运算方法(矢量、矩阵、方程求解、优化)。,图形管理,该模块包括线框显示、隐藏线消除、快速真实感图形显示和高度真实感图形显示等三种不同层次的子模块,以满足多种形式的用户需求。,专业应用层:,提供面向航空制造应用设计分析工具,支持快速产品开发;,接口工具集:,提供系统内部各层间访问接口、外部数据交换接口、系统集成接口、用户二次开发接口。,该系统针对某大型集团企业的创新设计需求,不仅需要强大的通用功,9,通用平台层:,提供通用设计、分析工具构件,支撑用户进行产品结构设计、装配设计、工程绘图、工艺设计、数控代码生成。具体包括:,特征设计工具:是基于参数化的实体造型。包括:草图设计、特征生成两个方面。,曲面造型:,是复杂形体型面造型的最有力的工具。包括直纹面、旋转面、扫描面、等距面、过渡面,曲面裁剪、拼接、缝合、延伸、求交等。,零件设计:,提供以特征为基础的零件设计和管理工具,与装配和工程图设计共同构成一个设计平台。,装配设计:,支持复杂产品装配设计、干涉检查。提供面向设计群体的装配设计环境,支持参数化自动装配功能。,工程图设计:,主要包括图纸生成、编辑、管理及打印输出等。三维零件或装配模型能自动生成各种视图,填充剖面线等;具有国标尺寸标注、标题栏和明细表等。,逆向工程工具:,包括数据获取、噪声点过滤、残缺数据恢复、区域分割、特征提取、三角网格化、参数曲面拟合重建等功能,实现产品的快速原型设计。,钣金设计工具:,针对钣金零件的特点专门设计供处理钣金零件造型用的模块,它根据钣金零件的几何特征进行钣金零件设计,钣金零件自动展开、自动排样计算。,动画与仿真:,提供机构运动仿真、运动协调关系、运动范围设计、运动干涉检查;机械产品可装配性检查;提供产品真实效果显示,机器内部的漫游。,其它设计工具集:,包括标准件库工具,材料库工具,设计图表工具,计算工具,协同管理工具,知识管理工具等。,通用平台层:提供通用设计、分析工具构件, 支撑用户进行产品结,10,13.2 CAD,系统开发技术简介(选学),CAD,技术从诞生至今已有近四十多年的历史,历经二维绘图、线框模型、自由曲面模型、实体造型、特征造型等重要发展阶段,其间还伴随着参数化,(,变量化,),、尺寸驱动、知识融合等技术的融入。目前,CAD,技术在基础理论方面日趋成熟,并推出了许多商品化系统,诸如,CATIA,、,UG,、,Pro/E,、,Solid Works,等。通常,CAD,系统软件的开发方式主要可分为三种:,1,),大部分核心模块自主开发,,少量模块及技术购买版权,该方式周期长、风险高,对,CAD,技术基础及软件开发技术要求高。,2,),基于通用,CAD,系统的二次开发,,如基于,UG,、,AutoCAD,等。目前商用,CAD,系统一般提供,C,,,C,等,Api,函数供用户二次开发。该方式风险小,见效快,适合企业进行专业化应用开发。,3,),基于商业化几何引擎平台(如,Parasolid,、,ACIS,等)的开发,。此类开发较通用,CAD,平台的二次开发更能深入核心层,其难度及风险在二者之间,,但引擎平台的版权费用昂贵。,1,),CAD,系统开发技术概述,13.2 CAD系统开发技术简介(选学)CAD技术从诞生至,11,CAD,系统软件开发的基本原则:,1),支持多种主流的计算平台,包括,Windows,、,UNIX,等;,2),采用面向对象技术,具有封装性、多态性、继承性,使对象模块化、即插即用;,3),采用软件组件技术与开放式结构。基于组件技术可为设计者提供很大程度的柔性,这也为系统的开放性奠定良好的基础;,4),支持混合维造型,线框模型、曲面模型、实体模型,在数据结构层采用统一的精确边界表示,支持流形与非流形拓扑;,5,)支持约束驱动的参数化特征造型等用户化的功能;,6),支持知识融合与知识重用,实现知识驱动的设计,提高系统智能化程度;,7,)支持装配、零件及工程图统一建模,并实现全关联设计;,8,)提供良好的图形交互、显示及渲染;,9,)提供产品数据管理等功能,即提供了一个集造型、可视化、交互、数据管理为一体的集成化开发环境。,CAD系统软件开发的基本原则: 1) 支持多种主流的计算,12,2,)基于商业几何引擎,ACIS,的开发技术介绍,目前市场上较为成熟的商用三维,CAD,几何引擎主要有,ACIS,、,Parasolid,等。其中:,1,)基于,Parasolid,开发的,CAD,系统,UG,、,Solidworks,、,Solidedges,等获得了广泛的应用;,2,)基于,ACIS,开发的,CAD,系统,Inventor,凭借,AutoCAD,拥有的市场优势得到迅速推广;,3,)也有研究机构基于开源几何引擎(,CAS.CADE,)进行研究开发。,ACIS,是美国,Spatial Technology,公司的三维几何造型引擎,它集线框、曲面和实体造型于一体,并允许这三种表示共存于统一的数据结构中,为各种,3D,造型应用开发提供几何造型平台。,2)基于商业几何引擎ACIS的开发技术介绍,13,ACIS,核心模块库:,ACIS,产品由两部分构成:,核心模块(,ACIS 3D Toolkit,),和多种,可选模块,。在核心模块中提供了基本、通用功能,而在可选模块中提供了一些更为高级的和更专用的功能。其主要功能包括:构造曲面技术 、求交与布尔运算、过渡曲面、模型分析、显示与交互、模型管理等。,ACIS 核心模块库:ACIS产品由两部分构成:核心模块(A,14,基于,ACIS,的开发接口有,3,种:,API,函数、,C+,类和,DI,函数,。下图中,AMFC,(,ACIS Microsoft Foundation Class Component,)是专门为,Microsoft Windows,平台提供的与,MFC,的接口。,API,函数:,提供了应用与,ACIS,间的主要接口,应用通过调用,API,函数建立、修改或恢复数据,无论,ACIS,底层的数据结构或函数如何修改,这些函数在各版本中均保持不变。,C,类,:,ACIS,以,C+,类的形式提供的接口,用于定义模型的几何、拓扑以及实现其它功能,开发者可根据需要从,ACIS,类派生出自己的类,类接口在各版本中可能变化。,DI,函数:,提供不依赖于,API,而对,ACIS,造型功能可直接访问的接口,与,API,不同的是,这些函数在各版本中可能有变 。,ACIS,接口方式,基于ACIS的开发接口有3种:API函数、C+类和DI函数,15,ACIS,数据结构,如下图所示:图中的黑虚线框中是,几何信息,,蓝虚线框中是,拓扑信息。,几何(,Geometry,)、拓扑,(Topology),和属性,(Attribute),构成了,ACIS,模型,三者统一由最基础的抽象类,ENTITY,所派生。,ENTITY,本身不代表任何对象,但在,ENTITY,中定义了所有子类应具有的数据和方法(如存储、恢复、回溯等)。,ACIS,采用,CSG,BREP,混合数据结构,其中拓扑信息包括,BODY,(体)、,LUMP,(块)、,SHEL,L,(壳)、,SUBSHELL,(子壳)、,FACE,(面)、,LOOP,(环)、,WIRE,(线框)、,COEDGE,(共边)、,EDGE,(边)和,VERTEX,(顶点)。,ACIS,把,线框(,WIREFRAME,),、,曲面(,SURFACE,),和,实体(,SOLID,),模型存储在统一数据结构中,这种机制使,ACIS,支持混合维模型和各种非闭合模型的统一建模。,几何信息,拓扑信息,ACIS数据结构如下图所示:图中的黑虚线框中是几何信息,蓝虚,16,拓扑信息:,BODY,:,是,ACIS,模型中最高层次的实体;,LUMP,:,一个有边界、连通的区域,一个,BODY,可有多个,LUMP,;,SHELL,:,完全相连的面或线的集合;,SUBSHELL,:,是为了内部计算加速需要增加的一个结构层次;,WIRE,:,一组互连的边框的集合;,FACE,:,是形体边界表面的一部分,一个面只有一个外环,可有,0,n,个内环;所对应的几何信息为,SURFACE,。,LOOP,:,是面的封闭边界的有向边,(COEDGE),的集合,环有内环,和外环之分;,COEDGE,:,形体边(,EDGE,)在一个面上构成环的有向边界情况,,所对应的几何信息为,PCURVE,。,EDGE,:,形体棱边的表达,多为形体表面交线;一条边与多条,COEDGE,关联;所对应的几何信息为,CURVE,。,VERTEX,:,是面的角点,边的端点,对应的几何信息为,APOINT,。,几何信息:,TRABNSFORM,:,实现体的模型变换;,SURFACE,:,一个面(,FACE,)的数学定义(如,B,样条曲面);,CURVE,:,交线边(,EDGE,)的数学定义(,3,维,B,样条曲线);,PCURVE,:,面的有向边(,COEDGE,)的方程定义(,2,维,B,样条);,APOINT,:,顶点的位置坐标定义(,3,维空间坐标) 。,u,t,u2,u1,t2,t1,P,S2,S,1,S,2,w,v,w2,w1,v2,v1,P,S1,拓扑信息:BODY:是ACIS模型中最高层次的实体;几何信息,17,ACIS,的拓扑及几何类成员访问关系,ACIS的拓扑及几何类成员访问关系,18,近年来,,Spatial,公司推出,AGM,框架,,该框架建立在,ACIS,、,HOOPS,和,InterOp,基础之上的应用程序框架,右图所示为,AGM,的架构图。,AGM,中提供了对底层,Spaital3D,组件的访问接口,,3D,应用程序可使用,AGM,中提供的接口访问底层的,3D,组件,也可直接访问底层,3D,组件。,AGM,可选模块中提供了面向行业的应用,如创新的,2D,草绘模块,、,CAE,前后处理模块、机构运动和仿真模块,以及和,解释性语言,Scheme,进行集成等,用户可在商品化软件中直接使用这些模块,大大简化这些行业用户的开发。,目前,,AGM,已经提供了对,VC6.0,和,C+.NET,平台的支持,,而且,AGM,的内部是采用标准,C+,实现的,因此用户可以很容易移植到其它平台。另外,用户可以参考,AGM,中提供的实例增加更加丰富的造型、可视化和数据交换等功能。,AGM,包括,基本模块和可选模块,。,AGM,基本模块中实现了,ACIS,模型和,HOOPS,显示对象之间的映射、模型建立和可视化范例、视图操作、检取高亮、历史回退管理以及显示对象保存等功能,用户可非常方便地进行建模和可视化操作。,ACIS,的,AGM,框架:,近年来,Spatial公司推出AGM框架,该框架建立在ACI,19,13.3 CAD,系统二次开发技术,13.3.1,基于通用,CAD,平台的开发(选学),1,)基于,CATIA,的二次开发,CATIA V5,是达索公司推出的,CAD,软件,该软件能在,Unix,及,Windows,等平台上运行,是目前市场影响最大的,CAD,软件。,CATIA V5,开放了大部分接口,并提供了很好的二次开发平台。其二次开发主要有两种方法,,采用,CAA C+,技术,或采用,Automation,技术,。,CAA,方法,(,Component Application Architecture,),CAA,是,CATIA,的一套,C+,函数库。具有强大的交互、集成和用户特征定义功能,并有自己的体系架构。该函数库在,CATIA,运行时加载,用户可通过,RADE,模块在,VC+,编程环境下编写程序,与,CATIA,进行通信。,基于,CAA,方法可进行最有效率的程序开发,可以进行从简单到复杂的二次开发工作,而且和原系统的结合非常紧密,但入门困难。,13.3 CAD系统二次开发技术13.3.1 基于通用CA,20,Automation API,使用自动化接口的宏,采用交互方式定制,允许用户获取,CATIA,的数据模型。,该方法提供交互的方式,让用户记录操作过程,通过,VB Script,( 或,Java Script,)来录制宏,从而自动生成代码。,Automation,技术,是建立在,COM,基础之上(如下图),提供了约,360,个接口对象。,Automation,技术并不直接处理数据,而是间接利用对象方法和属性来获取及处理数据,允许一个应用程序操作另一个应用程序。,CATIA,与应用程序之间传递消息用接口对象来与外部进行通信,接口对象就是,API,。使用,Automation,技术。,Automation API,具备了与任何,OLE,所兼容的平台进行通讯的能力。,Automation,方法,Automation API 使用自动化接口的宏,采用交互方,21,使用,VB,语言开发相对容易些(,VC,较困难些)。一般先用宏录制过程,然后将,vB,与,catia,链接,其流程如右图:,例:用,VB,开发,要对,CATIA,进行操纵,首先是要连接到他的,COM,接口,主要有,GetObject,和,CreateObject,两种方法。先用,GetObject,方法连接,即:,Dim CATIA As Object,On Error Resume Next,CATIA,的基本操作主要是通过几个,API(Application Programming Interface),对,CATIA,进行文件操作,视图操作等。零件操作主要是进行,CATIA,实体建模,如草绘、约束、实体等操作。,VB,应用与,CATIA,通讯,使用VB语言开发相对容易些(VC较困难些)。一般先用宏录制过,22,如果,CATIA,启动,用,GetObject,连接到,CATIA,Set CATIA = GetObject(, CATIA.Application),如果,CATIA,没有运行,则先用,Create Object,启动,CATIA,If Err.Number 0 Then,Set CATIA = CreateObject(CATIA.Application),CATIA.Visible = True,End If,On Error GoTo 0,通过这段代码,程序即可访问到,CATIA,,如果,CATIA,没有启动,则程序先启动,CATIA,,再对,CATIA,进行访问。,Dim Doc as Document,Set Doc = CATIA.Documents.Add(,“,Part,”,),Dim Doc as Document,Set Doc=CATIA.Documents.Open(,“,E:PartsDocumentToOpen.CATPart,”,),如果CATIA启动,用GetObject连接到CATIADi,23,操纵零件文档的一般步骤如图所示 :,文档零件形体的创建,当创建一个零件文件时,系统会自动创建一个默认的零件体,可以获得并使用它:,Set MyBody = MyDocument.Part.Bodies.Item(PartBody),也可以创建一个新的零件体并使用:,Set MyNewBody = MyDocument.Part.Bodies.Add(),操纵零件文档的一般步骤如图所示 :文档零件形体的创建当创,24,创建凸轮轴主要程序段示例:,创建凸轮组,Sub CreateCamSet(dAngle As Double, dRefDis As Double),CreateBearing dCamSetDis, dRefDis,CreateCam dAngle, dCamSetDis - 3 * dCamThickness + dRefDis,CreateCam dAngle, dCamSetDis - dCamThickness + dRefDis,End Sub,创建驱动轮,Sub CreateDriveWheel(dRefDis As Double),CreateBearing dCamSetDis, dRefDis,End Sub,创建凸轮轴主要程序段示例:创建凸轮组,25,2,)基于,UG,的二次开发简介,UG,是一个优秀的机械,CAD/CAE/CAM,一体化高端软件,它基于完全的三维实体复合造型、特征建模、装配建模技术,能设汁出任意复杂的产品模型。作为通用,CAD,软件,,UG,功能非常强大,但缺乏专业化应用功能。为此,,UG,软件提供了一些先进的编程工具集,以满足用户二次开发的需要 。,UG/Open,为,UG,软件的二次开发工具集模块,利用该模块可对,UG,系统进行用户化剪裁和定制开发。,UG/Open,包括以下几个部分:,UG/Open Menuscript,、,UG/Open UIStyle,、,UG/Open API,、,UG/Open GRIP,等开发工具。,UG/Open UIStyle,开发工具,,是一个开发,UG,对话框,的可视化编辑器,用于创建类似,UG,的交互界面,生成的对话框能与,UG,集成。利用该工具,让用户更方便与,UG,进行交互操作,可为,UG/Open,应用程序开发独立于硬件平台的交互界面,避免复杂的,GUI,的编程,直接将对话框中的基本控件组合生成功能不同的对话框。,UG/Open Menuscript,开发工具,,支持,UG,主菜单和弹出式菜单的设计和修改,改变,UG,菜单布局,对,UG,软件,操作界面进行用户化开发,,无须编程即可对,UG,标准菜单进行编辑重组或在,UG,软件中集成用户自己开发的软件功能。添加新的菜单项以执行用户,GRIP,、,API,二次开发程序、,User Tools,文件及操作系统命令等。,2)基于UG的二次开发简介UG是一个优秀的机械CAD/CAE,26,UG/Open API,开发工具,,提供,UG,软件,直接编程接口,,支持,C,、,C+,、,Fortran,和,Java,等主要高级语言,是一个允许程序访问并改变,UG,对象模型的程序集。,UG/OpenAPI,封装了近,2000,个操作函数,可在,C,程序和,C+,程序中以库函数的形式调用,几乎所有能在,UG,界面上的操作都可以用,API,函数实现,,API,程序根据编译连接的情况可以运行在两种不同的环境中,即,Internal,与,External,模式。,由于采用,API,调用函数,程序的出错率较低,但对初学者掌握,UG/Open API,函数的运用比较困难,要特别注意参数的类型和传递形式。,UG/Open GRIP,开发工具,,是一种类似,APT,的,UG,内部的专用图形交互编程语言,利用该工具用户可生成,NC,自动化或自动建模等用户的特殊应用。开发者可以用,GRIP,编程的方法自动实现在,UG,下进行的绝大部分操作。,GRIP,命令很像英语单词,语法与,BASIC,和,FORTRAN,相似,有某些情况下对于一些高级操作,用,GRIP,编程的方法比用,UG,交互的方法更有效,在,UG,交互环境下可以实现的功能用,GRIP,几乎全都可以实现。,UG,提供了一个名叫,UG/Open GRIP,的,GRIP,语言编辑器,用这个工具可以编辑、修改、编译、连接程序。,GRIP,语言与一般的通用语言一样,有其自身的语法结构、程序结构、内部函数,以及与其他通用语言程序相互调用的接口。,UG/Open API开发工具,提供UG软件直接编程接口,支,27,3,)基于,AutoCAD,的二次开发简介,AutoCAD,是通用二维计算机辅助设计及绘图软件,具有强大的图形编辑和处理功能、开放性体系结构及良好的性能价格比,已广泛应用于机械、电子、建筑、服装等领域,深受国内外工程设计人员的喜爱。到目前为止,,Autodesk,公司已相继推出四代二次开发工具,主要包括:,AutoLISP,,,Visual LISP,,,ADS,,,VBA,,,ObjectARX,和,Dot NET,,其中,ObjectARX,和,Dot NET,是全新的的开发手段,是,AutoCAD,二次开发的方向,表,1,是,6,种工具之比较。,基于,Auto LISP / Visual LISP,的开发技术,AutoLISP,语言,是一种嵌在,AutoCAD,内部的,LISP,编程语言,既具有一般高级语言的基本结构和功能,又具,AutoCAD,所特有的图形处理功能。利用,AutoLISP,可以直接增加、修改和调用,AutoCAD,命令,并能结合各类标准建立大量的参数图形库,还能够对当前图形数据库直接访问和修改等。,3)基于AutoCAD的二次开发简介AutoCAD是通用二维,28,Visual LISP,是一个可视化的,LISP,语言开发环境,,AutoCAD,从,R14,版开始支持,Visual LISP,开发工具,它是,AutoLISP,语言的扩展。,Visual LISP,具有以下特性:,1,)在可视化的开发环境下编写、调试;,2,)经编译后,提高了运行性能和保密性;,3,),LISP,代码通过,AutoCAD,的,Object ARX,接口,提高运行速度;,4,)本质上是一个被建立并装载的,ObjectARX,应用程序,因而可在,AutoCAD,外部装载和更新。,基于,ADS,的开发技术,ADS(AutoCAD Development System),是,AutoCAD,的,C,语言开发系统,是继,AutoLISP,后的第二代开发工具,从,AutoCAD R14,开始引入,它包括了,C,语言的全部功能,可以用,C,语言编写,AutoCAD,应用程序的头文件和目标库,可直接利用各种,C,语言编译器,将应用程序编译成可执行的文件在,AutoCAD,环境下运行。,基于,VBA,的开发技术,自,AutoCAD R14.01,版开始,内置了,VBA,开发工具,,它是一种嵌入,AutoCAD,内部基于对象的集成编程环境,并被集成到,AutoCAD2000,以后所有版本中,为开发者提供了一种新的选择。,VBA,和,AutoCAD,中的,ActiveX,自动化对象模型的结合,具有强大的开发能力,代表了一种新型定制,AutoCAD,的模式架构。,Visual LISP是一个可视化的LISP语言开发环境,,29,VBA,可提供强大的窗体创建功能,为应用程序建立对话框及其他屏幕界面;可建立功能强大的模块级宏指令;提供类模块创建功能,利于组件重用;具备完善的数据访问与管理能力。,基于,ObjeceARX,的开发技术,ObjectARX(AutoCAD Run-Time Extension),是基于,AutoCAD R14,的一种新的编程环境,它提供了以,C+,为基础的面向对象的开发环境及应用程序接口,能真正快速地访问,AutoCAD,图形数据库。,ObjectARX,程序本质上是,Windows,动态链接库,(DLL),程序,直接访问,AutoCAD,数据库结构、图形系统以及,CAD,几何造型核心,以便能在运行期间实时扩展,AutoCAD,的功能。,ObjectARX,的核心是,两组关键的,API,,即,AcDb,(,AutoCAD,数据库)和,AcE,(,AutoCAD,编译器),。另外还有其它的,一些重要库组件,,如,AcRX,(,AutoCAD,实时扩展)、,AcGi,(,AutoCAD,图形接口)、,AeGe,(,AutoCAD,几何库)、,ADSRx,(,AutoCAD,开发系统实时扩展)。与前几种技术相比,该技术拥有对,AutoCAD,最深入的控制能力。能够实现很多原来开发环境难以实现的功能,提高开发效率,它是,AutoCAD,新一代开发技术。但对软件专业知识要求较高,开发周期长。,VBA可提供强大的窗体创建功能,为应用程序建立对话框及其他屏,30,新一代基于,Dot NET,的开发技术,Dot NET,是基于,Mircosoft.NET,架构直接进行,AutoCAD,二次开发的一种新技术。目前能支持,Dot NET,开发方法的软件版本为,AutoCAD2005,之后的版本,事实上能完全支持,Dot NET,开发方法的软件为,AutoCAD2006,之后的版本。,在新推出的支持,Dot NET,开发的,AutoCAD,版本中,,Autodesk,公司专门为其开发增加了,.NET API,,并提供了一系列托管的外包类(,Man-aged Wrapper Class,),使开发人员可在,.NET,框架下,使用任何支持,.NET,的语言,如,VB .NET,、,C,、,C+,等对,AutoCAD,进行二次开发。其优点是完全面向对象,在拥有与,C+,相匹配的强大功能的同时,具有方便易用的特点,是较理想的,AutoCAD,二次开发工具。,小结,目前,第一代的,AutoLISP,基本上能够被第三代的,Visual LISP,完全替代,第三代和第四代开发工具将成为今后,AutoCAD,二次开发的必然选择。其中主要的四种开发技术,Visual LISP,,,VBA,,,ObjectARX,,,Dot NET,分别利用当前比较流行的编辑语言,LISP,,,Visual Basic,,,Visual C+,及,Visual C#,。而,ObjectARX,着眼于应用程序开发的自动化、智能化,为适应未来发展的需要。,Dot NET,在具有,ObjectARX,强大功能的同时,也具有,VBA,使用方便易用的优点,同时具有,C+,的强大功能,是最新的较为理想的开发工具,与,ObjectARX,一起代表了,AutoCAD,二次开发技术的未来发展方向。,新一代基于Dot NET的开发技术Dot NET是基于Mir,31,13.3.2 工程数据处理,组件,在机械设计过程中,往往需要从有关的工程手册或设计规范中查找各种系数或数据,传统方法:设计人员手工查取,费时、繁琐,现代设计方法:计算机处理,中心问题在:如何将这种人工查找转变成在,CAD,进程中的高效、快速处理,,这是,CAD,二次开发必须解决的问题,。,1,)概述,13.3.2 工程数据处理组件 在机械设计过程中,,32,在,CAD,二次开发中,典型的两种处理方法:,程序化,在应用程序内部对这些,数表,及,线图,进行查表、处理或计算。处理方法有两种:,第一种将数表中的数据或线图经离散化后存入一维、二维或三维数组,用查表、插值等方法检索所需数据;,第二种将数表或线图拟合成公式,编入程序计算出所需数据,数据库存储,将数表及线图,(,经离散化,),中的数据按数据库的规定进行文件结构化,存放在数据库中。,(如确定字段名、字段类型、字段宽度等),数据独立于应用程序,又能为所有应用程序提供服务,这是大规模工程数据的主要处理方法。,(需借助专业的数据库管理系统),在CAD二次开发中,典型的两种处理方法:程序化,33,例:程序化方法,例:程序化方法,34,2,)工程数据的拟合插值方法,A,、一元列表函数插值,插值方法很多,在此主要介绍,线性插值,和,二次插值(抛物插值),等方法。,a,) 线性插值方法,算法步骤:,1,)从一维列表中选取两个邻近的自变量,x1,和,x2,,并满足,x1 x x2 2,)用过,A,、,B,两点的直线,g(x),代替原有函数,f(x),,则由解析几何可写出对称式,直线方程的表达式为:,令:,整理得:,2)工程数据的拟合插值方法A、一元列表函数插值插值方法很多,,35,b,)抛物线插值方法,几何解释:,通过三点插值得抛物线,g(x),来近似,(,或逼近,),原有函数,f(x),。,三点选取原则:,三个插值点与待求得插值点临近,(就近原则),b)抛物线插值方法几何解释:通过三点插值得抛物线g(x)来近,36,例:,下表为一组应力集中系数数据,用二次抛物插值计算轴间比为,1.4,时的应力集中系数。,轴间比,6,0,3,0,1,5,1,2,1,1,1,05,1,02,系数,1,49,1,46,1,44,1,42,1,39,1,38,1,34,解:,选点:由于,1.4,在,1.5, 1.2,之间,且更接近,1.5,,选择,3.0, 1.5, 1.2,三点计算,插值:根据抛物插值公式有:,0.011+1.024+0.512 = 1.52513,例:下表为一组应力集中系数数据,用二次抛物插值计算轴间比为1,37,B,、二元列表函数插值,a,)直线直线插值(即双线性插值),(,1,)找出对应于,a,b,c,d,的,A,B,C,D,,,过,A,、,B,用线性插值求得点,E,,再过,C,、,D,用线性插值求得,F,点。,(,2,)过,E,、,F,再用线性插值求得,K,点,此即为所求。,注意:双线性插值计算的顺序并不影响计算结果,算法步骤:,D/d,r/d,d,c,b,a,e,f,A,B,C,D,E,F,K,B、二元列表函数插值a)直线直线插值(即双线性插值)(1),38,例:阶梯轴轴肩圆角过渡处的有效应力集中系数,Ka,与,B,及,r/d,等有关。根据下表,按双线性插值计算求,B,630MPa,,,r/d,0.04,时,Ka,的值。,1,61,1,55,1,50,0,1,1,73,1,69,1,64,0,05,1,76,1,71,1,67,0,03,800,700,600,B,Ka,r/d,解:,1,),k1 = (630-700)/(600-700)*1.67 + (630-600)/(700-600)*1.71 = 1.682,2) k2 = (630-700)/(600-700)*1.64 + (630-600)/(700-600)*1.69 = 1.655,3) ka = (0.04-0.05)/(0.03-0.05)*k1 + (0.04-0.03)/(0.05-0.03)*k2 = 1.6685,例:阶梯轴轴肩圆角过渡处的有效应力集中系数Ka与B及r/d,39,例:三角形的双线性插值处理(多边形填充颜色插值),(提示:三角形先变换到投影面,,r,、,g,、,b,要分别计算),方法,1,方法,2,方法,2,比方法,1,少计算,1,次,例:三角形的双线性插值处理(多边形填充颜色插值)方法1方法2,40,b,)抛物线性插值,算法步骤:,根据,k,点的,(xk,yk),找出周围四个点,a,b,c,d,,并根据抛物线插值中的取点方法增加,2,个点,如图增加,e,、,f,二个点,这样共得六个点,找出对应上述六个点的,A,B,C,D,E,F,,过,A,、,B,、,E,用抛物线插值求得点,U,,再过,C,、,D,、,F,用抛物线插值求得,V,点。,过,U,、,V,再用线性插值求得,K,点,此即为所求。,b)抛物线性插值算法步骤:,41,c,)抛物抛物插值(即双抛物插值),算法步骤:,c)抛物抛物插值(即双抛物插值)算法步骤:,42,3,)工程数据的公式化处理,A,)线图公式化,3)工程数据的公式化处理A)线图公式化,43,B,)最小二乘法逼近,B)最小二乘法逼近,44,用最小二乘法求多项式各个系数时,应注意:,(,1,)开始可用较低幂次数拟合,如求出的值误差太大时,再提高幂次数,(,一般小于,7),拟合;,(,2,)如结果还是不够理想可分段进行拟合。,用最小二乘法求多项式各个系数时,应注意:,45,13.3.3,专业化,应用组件开发(选学),对工程设计人员来说,通用,CAD,设计软件(如,CATIA,、,UG,、,Pro/E,、,Solidworks,等)系统虽然功能齐全,并能提供装配、零件及工程图的集成建模环境,但是这些通用功能本质上是图形建模(,3D,)或绘图(,2D,)工具,只可能考虑一般或普遍的设计要求,解决产品的几何表示问题,它不可能考虑各类专业产品的特殊设计要求,更不能把设计计算及设计员的经验包括进去。,因此,必须根据各专业的设计需要,利用通用,CAD,系统平台提供的二次开发工具或数据接口,将各类专业设计技术开发成专业化的设计工具和知识处理工具,从而使工程设计能按照专业化的设计方式进行。,基于通用平台开发专业化,CAD,系统,开发人员不必过多考虑,CAD,底层的三维建模及图形显示功能如何实现,从而缩短软件开发周期。但是,,专业化开发一定要处理好知识产权问题,避免不必要的产权纠纷。,在进行专业化,CAD,系统开发时,重点应考虑以下一些问题:,1,)用户需求分析,包括使用功能、应用范围、用户对象等;,2,)系统架构、软件技术、开发工具、进度控制、软件文档、维护服务等;,3,)工程数据的搜集,专业设计知识的归纳抽象,设计理论及方法总结等;,4,)专业化的设计标准、技术文档、设计流程整理等。,13.3.3 专业化应用组件开发(选学)对工程设计人员来说,46,三维CAD系统架构及系统开发技术简介课件,47,1,)专业设计知识处理,在进行专业化,CAD,系统开发时,也会涉及到大量的工程设计知识需要处理,主要包括,设计知识的表达、知识推理及重用、知识管理及更新维护,等几个方面。,对于具有知识处理能力的,CAD,软件系统(如,UG,、,CATIA,等),在进行设计知识归纳抽象时,应按照该软件系统所能支持的知识表达规范进行知识描述,以便于软件系统进行知识推理并驱动设计参数。如,UG,通过知识融合模块实现设计知识与几何模型的融合,构建设计实例,从而实现智能化及自动化的产品设计过程。,对于缺乏知识处理能力的,CAD,软件系统必须开发自己的知识处理模块。该模块需具有知识表达(如谓词逻辑、规则、表达式、方程及脚本等)、知识推理求解、知识库管理等功能,并与约束推理相结合,从而为用户提供基于知识的设计方法。,通常,用户只需利用这些知识处理工具,对不同的专业知识进行分类、归纳和抽象,并将这些知识应用到具体的设计对象(零件或部件)中,构建不同的基于知识驱动的设计实例库,以便今后设计实例模型的派生重用及变更修改。,1)专业设计知识处理在进行专业化CAD系统开发时,也会涉及到,48,2,)专业化计算分析工具,在实际工程中,设计人员进行专业设计时,往往也会涉及到大量的工程分析计算,为了提高设计效率,必须开发面向不同专业的计算分析工具,并形成计算分析组件工具集供用户调用。,例如,以齿轮减速箱设计为例,我们可开发:,齿轮强度(弯曲强度、疲劳强度等)校核计算;,齿轮轴强度、刚度校核计算;,轴承载荷校核计算;,减速箱温度及热变形计算;,减速箱关键参数的优化计算等。,因此,对于不同的专业设计,开发不同的设计计算工具将可大大提高设计效率。,但是,需要注意的是,某些复杂的工程分析计算无法通过简单的公式组合计算达到目标,有时往往需要借助商业化的分析软件进行辅助分析计算,如结构分析计算用,Nastran,、,Ansys,等,机械系统动力学分析用,Adams,、,DAS,等。这时必须针对这些商用软件进行接口开发,通过参数传递到这些商用化的软件中进行分析计算,然后再将计算结果返回到所开发的专业化,CAD,系统中。,2)专业化计算分析工具在实际工程中,设计人员进行专业设计时,,49,3,)专业化设计工具集(组件)开发,在实际工程中,不同的行业其产品的结构不同,复杂度也不相同,设计人员进行专业设计时希望系统提供方便的特征建模工具来提高设计效率。,但是,商业化通用,CAD,系统提供的特征建模工具非常有限,且对各种行业通用,如拉伸、回转、拔模、抽壳、切角、过渡等特征,这些特征使用,但建模效率较低。因此应开发面向行业的专业化设计工具集可大大提高设计效率。,以建筑设计为例,我们可开发不同类型的窗户特征、楼梯特征、吊顶特征,以及其它常用典型建筑结构特征与外部景观特征等多种特征设计工具,显然这种专业化的特征工具可大大提高建筑设计人员的设计效率。,通常利用,CAD,系统提供的二次开发接口,将这些特征工具添加到通用,CAD,系统的菜单、工具条及对话框中,从而形成面向专业化的设计系统。,3)专业化设计工具集(组件)开发在实际工程中,不同的行业其产,50,4,)设计过程的模板化处理,模板是从一组相似的事物中抽象出一种框架型的模式,由开发者自己收集、建立并维护的、可重用的对象统称为“模板”,模板相当于一个数据结构,任何一个类似的事物对象都可作为以模板为超类派生类型的实例。,由若干模板类组成一个“模板库”,,对一个设计模板库一般包括以下模板类,:,l),设计方案类:设计方案的文字说明及框图表示,开发规范,开发,工具等。,2),设计知识类:某一特定领域的专家知识,操作经验等。,3),设计文档类:总体设计,需求分析,概要设计,详细设计,用户,手册等。,4)设计过程的模板化处理模板是从一组相似的事物中抽象出一种框,51,4),设计模型类:描述系统的功能模型,信息模型,,3D,模型,物理模,型等。,5),设计 流程图类:工艺流程图,仿真曲线等。,6),组合类:上述模板类的组合。,对不同的专业化设计来说,其模板不同。因此,模板的收集、归纳总结应广泛进行需求调研,并按产品结构层次进行严格的分类管理。考虑到企业产品设计的复杂性,模板类的数量很大,其模板库的管理可借助于数据库管理系统进行有效管理。,对设计人员来说,通常在模板库中搜索最合适的模板,以此为基础进行派生、修改,从而形成最终所需的设计实例。,基于模板的设计思想在企业产品设计中获得广泛的应用,如美国通用汽车公司、日本丰田汽车公司等大量采用可重用的模板技术作为基本设计方法,大大提高设计效率。,4) 设计模型类:描述系统的功能模型,信息模型,52,5,)标准件、常用件库的开发与管理,标准件在机械、汽车、航空、造船等各个领域应用广泛。标准件有国家标准、行业标准及企业标准。据统计,标准件的选用及绘制约占全部设计时间的,70%,。,各种常用机械标准件或通用件信息组成一种典型数据库,,在,CAD,系统中按一定的数据模型格式组织、存储和使用相互关联的标准件(或零件)数据信息集合。,注意:标准件分类一定要遵循有关标准(如,ISO 13584,)。,标准件库应具备以下功能:,标准件的快速查询与检索及视图的屏幕显示、与,CAD,系统集成和装配、标准件库的管理和维护、易于扩充的开放的内部结构。,标准件用户界面,CAD,开发接口、,CAD,自定义特征,国家,标准件,行业,标准件,企业,通用件,标准数据库,标准件模板数据库,在进行标准件开发时,,通常将各标准数据用数据库统一分类管理,以便查询。而标准件的几何模型则是一组典型的参数化模板,通常可用,CAD,软件的自定义特征实现或二次开发实现,其参数变量应与标准数据对应关联,这样当改变标准件的参数时,则其几何模型也随之变化。标准件(或常用件)模板也应由数据库统一分类管理,如右图所示。,常用件开发方法类似于上述方法。,5)标准件、常用件库的开发与管理标准件在机械、汽车、航空、造,53,例:天喻三维标准件库,Inte3D Lib,软件支持:,UG,、,Proe,、,SolidEdge,、,AutoCAD,、,天喻,CAD,等,单机版和服务器客户端版 。,涵盖最新的国标、汽标、航标、机械部标。,例:天喻三维标准件库Inte3D Lib软件支持:单机版和服,54,6,)专业化系统平台构架,专业化,CAD,系统开发可采用三层体系架构:,支撑层、平台层、专业设计工具层,。,支撑层:,操作系统、网络协议、数据库管理系统组成;,平台层:,由,PDM,、,CAD,系统(,CATIA,、,AutoCAD,等 )、,CAE,等设计分析软件;,工具层:,提供面向行业和专业应用的设计、分析工具集。,专业化工具开发可采用面向对象技术及组件开发技术,所开发的专业设计工具集及,CAD,和,CAE,平台由,PDM,系统实现集成管理,便于信息集成与共享。,6)专业化系统平台构架专业化CAD系统开发可采用三层体系架构,55,以汽车设计为例,其框架体系如下图所示:,面向汽车的数字化设计仿真集成平台,CAD,(,CATIA,、,UG,等)、,CAE,(,ADAMS,等),通用标准件工具集,标准规范数据库,汽车设计知识库,汽车总体设计,汽车标准件工具集,汽车车身设计工具,汽车底盘设计工具,汽车转向设计工具,控制系统设计工具,汽车工艺设计工具,汽车性能分析工具,PDM/PLM,产品全生命周期管理平台,操作系统、网络协议、数据库管理系统,汽车产品数据库,平台层,支撑层,专业,工具层,设计用户,汽车性能分析,汽车车身设计,汽车底盘设计,以汽车设计为例,其框架体系如下图所示:面向汽车的数字化设计仿,56,
展开阅读全文