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