在零部件的装配过程中,如果待装配件能在装配过程中自动改变尺寸以适应相应装配基件的尺寸,如把一个轴套装到轴上,若轴套的内径和轴的直径不同(暂不考虑间隙、过渡和过盈配合情况),轴套在装配时,能根据轴的直径尺寸而自动改变其内径尺寸,以满足装配,且轴套的外径或壁厚也同时发生相应变化,这样必能大大提高装配设计的效率。基于关联和尺寸驱动原理,使用CAXA实体设计建立可重用的参数化智能图素,调用CAXA实体设计的二次开发函数以及C++标准模板库(Standard Template Library,简称STL),通过参数名建立了不同特征尺寸之间的映射关系,以此来驱动相应的尺寸值,在CAXA实体设计上,成功实现了自动装配设计功能。
1 关联原理
关联是指事物之间所具有的彼此约束的关系。在机械产品中,关联性体现在装配实体模型中不同零件实体之间所具有的内在联系,通过一个零件实体的某一部分属性,可以完整或部分地推导出另一个实体的某一部分属性,具有关联关系的零件实体互为关联单元。关联可分为变量关联和几何关联两类。
1.1 变量关联
变量关联是在分属不同参数集的变量间建立映射关系,以便对某个变量修改后,与之对应的变量能自动修改。它适用于装配环境下零件间尺寸约束的关联。对于参数化特征造型系统,其构造的特征模型可以表示为:
M={F'i,Pi}
式中:M-系统所构造的特征模型;
Fi——构成特征模型的组成特征;
Pi——与特征相对应的参数集。
于是,当引入其它具有工程意义的尺寸控制参数集Qi,并建立参数集Qi与Pi的映射关系f,使得:Pi=f(Qi)。
那么,几何模型就可具有另一种表示:
M={F'i,f(Qi))
这样,对新参数的修改,必然引起模型的更新。若新参数是其它零件的控制参数,那就意味着其它零件具有了驱动该零件的能力。
1.2 几何关联
几何关联是将一个零件的几何信息提取出来,作为其它零件的基准或控制结构,以达到联动的目的。它适用于有形状或定位要求的场合。文中主要使用变量关联。
2 尺寸驱动原理
待装配件的重新生成是对相应智能图素进行尺寸驱动的过程。尺寸驱动即在零件拓扑结构不变的情况下,把零件的尺寸参数定义为尺寸变量,并定义出变量间的关系,当给定不同的尺寸值,就可得到一组结构相同而尺寸不同的零件。每一类待装配件对应一个智能图素,在智能图素中定义尺寸变量和变量间的关系。由于CAXA实体设计采用了参数化的设计方法,在设计智能图素时没有必要再做尺寸的约束求解,所以,零件的最后生成可以依靠CAXA实体设计的参数化功能来实现,即通过用新的尺寸值对事先准备好的智能图素进行尺寸驱动,来生成一个新的待装配件。
3 CAXA实体设计及二次开发关键技术
CAXA实体设计是一个全功能的CAD软件,采用拖方式的实体造型,并结合智能捕捉与三维球定位技术,使得没有其他造型软件在设计效率和速度上能与其相匹配。拖方式是指能够来回用鼠标拖放标准件和自定义的设计元素。智能捕捉是一个动态的三维约束算法工具,它为图形方式下的特征和图素拖动提供精确定位和对齐功能。三维球工具为各种对象的平移、旋转或各种复杂三维变换提供了精确定位方法。结合几何智能捕捉工具,可实现对复杂零件的装配与修改。智能图素是参数化的三维模型体。为避免重复劳动,提高设计效率,标准件、常用件及标准结构的三维参数化模型库的建立,是CAD系统走向实用化的必然趋势。CAXA实体设计的元素库体现了这种思想。
CAXA实体设计提供了一个二次开发向导(ICAddinAppWizard.awx),它可以帮助用户创建一个基于Add-in的ATL工程。将其添加到VC++的Common\MSDev98\Template\目录下,这样用户可以通过VC++的IDE来创建自己的工程。
在CAXA实体设计二次开发环境中,开发人员可以获得/设置子坐标系相对于其父坐标系的变换矩阵ChildToParent。开发人员也可以获得/设置锚(Anchor)的变换矩阵,锚是一个对象依附于其他对象的点。子对象的锚变换矩阵A是指子对象的锚相对于子坐标系的变换矩阵。通过CAXA实体设计的交互界面(UI),用户可以获得子对象的锚在父坐标系中的精确位置。位置变换矩阵P是子对象的锚相对于父坐标系中的变换矩阵。锚、位置和ChildToParent变换矩阵的关系如图1所示。
图1 锚、位置和Child To Parent变换矩阵的关系
在CAXA实体设计中,每个设计界面有一个全局坐标系,界面上的每个零件有一个局部坐标系,零件上的每个特征也有一个局部坐标系。在选中零件的状态下转动三维球,则零件的局部坐标系将随着三维球一起转动。对于装配情况,装配基件的坐标系是父坐标系,待装配件的坐标系是子坐标系。文中只考虑子坐标系对父坐标系的转换矩阵,这样即使转动装配基件的三维球,在装配时也不用考虑此动作对待装配体的影响。
4 标准模板库(STL)
STL是一个高效的C十十程序库,它是ANSI/ISO C++标准中的一部分。该库包含了诸多常用的基本数据结构和基本算法,为程序员提供了一个可扩展的应用框架,高度体现了软件的可复用性。从逻辑层次来看,在STL中体现了泛型化程序设计的思想;从实现层次看,整个STL是以一种类型参数化的方式实现的。STL主要由两种组件构成:一是容器,包括vector,list,map等类。另一种是用以操作这些容器类的泛型算法。map是一对对的key/valuP组合,key用于搜索,value用来表示要存储或取出的数据。
5 自动装配设计的实现
自动装配设计使用STL容器map类的实例,key表示参数名,value表示参数值。自动装配设计的实现和参数的个数无关。装配基件和待装配件的参数名可以任取,但是要在自动装配过程中装配基件的参数能正确驱动待装配件相应的参数,则必须使它俩相对应的参数名一致且唯一,整个自动装配设计流程如图2所示。
图2 自动装配设计流程
详述如下:
Step1.鼠标拖出/拾取装配基件,输入待装配体要装入的距离值(默认的距离值是零,即待装配体装配在所选择的装配基件的装配面上),将距离值存储下来。
Step2.检查map类的实例是否为空,如果不为空,则清空。
Step3.遍历装配基件的每一个特征,对于每一个特征,如果有参数,将参数名和参数值存人map类的实例中。
Step4.将设计图素库中已设置好参数的待装配件拖出,放在第一步所选的装配基件的相应装配面上。
Step5.检查map类的实例是否为空,如果为空,再检查距离值是否为零,如果为零,则不做任何改变;若距离值不为零,则将待装配件按所选装配基件的相应装配面的法线方向上,平移第一步输入的距离值。
Step6.如果map类的实例不为空,则遍历待装配体的每个特征,对于每个特征,如果有参数,则搜索map类的实例中的参数名,如果存在一致的参数名,则提取此参数名对应的参数值,将待装配体相同的参数名对应的参数值改成此值,然后将map类的实例中的这个参数对删除,这样可以提高以后搜索map类实例参数名的效率,接着继续搜索待装配体的下一个参数,重复上面所述操作,直到遍历完待装配体所有的参数,然后按新的参数值重新生成待装配件;再检查距离值是否为零,如果为零,则待装配件不做任何平移;若距离不为零,则将新生成的待装配件按所选装配基件的相应装配面的法线方向上,平移第一步输入的距离值。
Step7.将距离值设为零,将map类的实例清空,此时完成一次自动装配设计。
下面是一简单的实现原型。使用CAXA实体设计做出图3所示的装配基件和待装配件,此时要正确设定特征之间的约束关系;再按图上所示的参数分布,通过参数表设定好参数名和参数值。图4是装配基件的参数设定,待装配件也同样这样设定;然后将设定好参数的装配基件和待装配件拖到设计元素库,方便以后重用。
图3 装配基件(左)和待装配件的参数分布
图4 装配基件的参数设定
从设计元素库将装配基件拖出,用鼠标拾取,输入装入的距离值,然后从设计元素库中,将待装配体件拖出放在装配基体最上面上,智能捕捉点是面的中点,可以看到拖入开始的效果如图5a所示,然后待装配件得到相应的装配基件的尺寸后重新生成并平移,装配基件和待装配件就成功地装配在一起了,如图5b所示。
图5 智能装配设计的实现
自动装配设计通过搜索相同的参数名来建立不同特征尺寸之间的映射关系,并以此来驱动相应的尺寸值,因而装配基件和待装配件的设定只和拖出的前后顺序有关。此过程也适用于部件的装配,但是如果参数个数很多,则汁算量将较大,并且零件的特征之间的约束关系的设定,以及所有参数的命名也是需要仔细注意的地方。
6 结论
基于关联和尺寸驱动原理,使用CAXA实体设计建立可重用的参数化智能图素,调用CAXA实体设计的二次开发函数以及C++标准模板库,通过参数名建立了不同特征尺寸之间的映射关系,以此来驱动相应的尺寸值,在CAXA实体设计上成功实现了自动装配设计功能,并给出应用实例原型。此功能已应用于国家“八六三”计划先进制造与自动化领域CIMS主题目标的发展项目《面向家电产品的三维CAD创新设计系统》之中,可以增强装配设计的方便性以及提高设计效率,并且此方法也同样适用于其它的CAD软件。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:基于关联的自动装配设计