CAD/CAM软件 |
|
| 按行业筛选 |
|
|
| 按产品筛选 |
|
|
| |
查看本类全部文章 |
| |
|
|
|
基于UG二次开发的零件设计可重用技术研究 |
|
作者:缪丽燕 邢建国 |
|
企业要想在竞争中处于领先地位,必须对市场的需求变化快速响应,即把握市场机遇,快速开发出新产品。产品的快速开发,必然要求重用那些成熟的零件设计结果。零件设计可重用技术基于实例,在设计中直接调用实例,简化了设计过程。零件设计可重用技术的推广,可以提高新产品开发的效率及其可靠性,为新产品的快速开发提供有力的技术支持。通用三维实体CAD软件行业针对性差、零件的设计能力弱,对三维CAD软件进行二次开发是提高设计效率和加工质量的有效手段。
美国EDS公司的Unigraphics(UG)是一个优秀的机械CAID/CAD/CAE/CAM一体化高端软件,它基于完全的三维实体复合造型、特征建模、装配建模技术,能设计出任意复杂的产品模型。再加上技术上处于领先地位的CAM模块、内嵌的CAE模块,使CAD、CAE和CAM有机集成,可以使产品的设计、分析和制造一次完成,已经广泛应用于航空航天、汽车、通用机械、家用电器等领域。作为通用CAID/CAD/CAE/CAM软件,UG功能非常强大,但缺乏通用标准件库及行业标准件库,而具体行业的产品设计会经常用到通用标准件和本行业标准件。若每次设计对每一零件均从头开始建模,则要做大量重复性工作,因此,有必要开发零件重用系统,建立通用标准件和本行业标准件库,以提高产品设计效率,缩短设计周期。
零件可重用技术,根据零件的相似性特点,通过实例检索、编辑修改、实例存储等过程实现零件的重用,其中实例检索模块是最重要的。实例检索的合理性和准确度直接影响零件重用的可靠性。
1 UG二次开发的关键技术
UG软件提供了CAD/CAE/CAM业界最先进的编程工具集,以满足用户二次开发的需要,这组工具集称之为UG/Open,是一系列UG开发工具的总称,它们随UG一起发布,以开放性架构面向不同的软件平台、提供灵活的开发支持。利用UG/Open提供的应用程序开发工具,用户可以在其提供的平台上开发出适合自己需要的CAD产品。
以UGNX 4.0作为软件平台,在深入研究UG二次开发技术的基础上,使用其提供的UG/Open套件,即UG/Open API、UG/Open GRIP、UG/OpenMenu Script、UG/Open UI Styler四个开发工具,和Visual C++6.0开发工具,建立了一套完整的零件设计可重用技术。该标准件库能与UG的集成环境有机结合在一起,界面友好,具有良好的可扩充性和可移植性。
2 零件编码模型
在进行零件设计时,利用成组技术原理,根据零件间的相似性,在原有零件设计基础上进行适当修改,即可方便、准确地达到预期的设计效果,节省设计时间、设计成本,同时也降低了设计难度。保存后的零件设计结果及其编码,在新的设计任务中可作为待设计零件的检索相似件使用。
所谓零件分类编码,就是首先按照零件轮廓的形状、尺寸的大小、加工表面的一致性以及加工表面精度和表面粗糙度的接近程度对零件进行分类,然后用一系列字母或数字符号分别表示零件的形状、尺寸、加工表面、材料及精度等特征。
对零件信息进行准确描述,进而对零件加以严格分类并编码,是零件设计可重用技术中的关键技术。零件信息描述是把零件的几何形状和技术要求转化为计算机能够识别的代码信息,零件编码是用数字表示零件的形状特征,代表零件特征的每一个数字码称为特征码。迄今为止,世界上已经有70多种分类编码系统。应用最广的是奥匹兹(Opitz)分类编码系统,它具有很好的适用性,是一种比较优越的分类系统,为欧洲多数企业所采用;由日本通产省机械技术研究所提出草案,并经日本机械振兴协会成组技术研究会下属的零件分类编码系统分会讨论修改而成的KK-3编码系统;我国机械工业部为在机械加工中推行成组技术而开发的JLBM-1系统,在结构上结合OPITZ系统和KK-3系统的特点,克服了OPTIZ系统的分类标志不全和KK-3系统环节过多的缺点。但是由于上述这些编码有太大的概括性而使得它在一些具体类型零件的编码上存在一些缺陷,如编码过于泛泛,造成编码的多义性,不能满足CAD、CAPP系统对信息描述的需要。因此,在已有的比较成熟的编码系统基础上,针对具体产品设计有针对性的分类编码系统,结合行业特点进行适应性修改,以形成适合零件设计需要的专用编码系统是非常必要的。
零件分类的评判依据有很多,对设计环节而言,主要的评判依据是零件结构与工艺的相似性。其中最常用的零件描述方法是编码描述法,它是用顺序排列的字符(数字或数字、字母兼用)对零件的信息进行标识描述。这种描述方法适于计算机进行处理,同时又可以准确、直观、详细地描述零件信息,因而使用普遍。
本文介绍的这种零件编码方法,将零件信息分为主要特征信息和辅助特征信息两大类。主要特征包括平面、圆柱面、圆锥面、球面、螺旋面及其它连续曲面等;辅助特征包括孔、凸台、键槽、倒角、螺纹等。本文在综合分析各种分类方法的基础上,对我国制定的JLBM-1分类系统进行改进,将材料、热处理、毛坯原始形状、主要尺寸等变化较少的分类标志配置在系统的前面,同时尽量采用关联环节以尽可能详细地反映零件信息,形成十进制、十四位代码体系。第1、2码位为名称类别矩阵;第3、4码位为材料及热处理类别与毛坯形状类别矩阵;第5、6码位为主要尺寸类别;第7码位为精度类别;第8~14码位为形状与加工码位,且这7个码位中回转体类零件与非回转体类零件截然区分,分别进行分类。零件的这一组数据可以充分反映零件的设计、加工、管理等方面的信息,便于计算机管理。 图1所示的零件采用这种编码技术时的编码为:25101112500300。其各码位表示的含义如表1所示。 3 相似矩阵及相似性系数的确定
零件的相似性包括几何相似性和工艺相似性,本文侧重于零件的几何相似性。实例检索是实例重用技术的关键。为提高实例检索的准确度,采用两级检索策略,通过检索矩阵计算目标零件与实例零件的相似度。相似性系数是用于衡量新零件与某一个实例零件相似程度的一个参数,用S表示。相似性系数不仅与零件类型、主特征、辅助特征有关,还与零件的材料、精度等级、热处理方法、形状特征等因素有关。在计算相似性系数时,必须综合考虑这些因素。
参照按零件分类系统对零件建立的14位编码,根据各码位重要性的不同,分成两组数据,先后进行两级检索。
第一检索矩阵为零件级检索,对零件的形状、材料、热处理、精度要求进行匹配,即零件的前五位编码的匹配。建立m×n的相似矩阵A。其中,m代表同时对m个零件进行比较,m=1代表目标零件;n代表目标矩阵的n个相似特征,n的取值范围为1~5。
目标零件与各实例零件的相似性系数为: 其中:S1i代表目标零件与第i个零件相比较的相似性系数;Sik代表零件编码的第i个零件第k码位上的数字(0≤Sik≤9);ωk为权重系数,ωk∈[0,1],且∑ωk=1,ωk取值如表2所示。 在确定各项检索指标的权重时,评价尺度一般规定用1、1/3、1/5、1/7、1/9分别表示i元素与j元素同等重要、比较重要、重要、很重要、特别重要,也可根据情况取其他值。
第二检索矩阵为特征级检索,即零件形状的进一步匹配。由于零件的各个特征之间是不平等的,主特征和辅助特征在决定零件形状方面的作用是不同的,所以在计算零件形状相似度时,需要区别对待。我们把零件的特征分为主特征集和辅助特征集,分别建立相似矩阵B和C。
首先建立m×k的主特征相似矩阵B。其中,n代表同时对n个零件进行比较,n=1代表目标零件;k代表目标矩阵的第k个主要特征,回转体类零件k=6、7、8、10,非回转体类零件k=6、7、8、9、12。从第8码位开始,回转体类零件与非回转体类零件采取完全不同的分类指标。回转体零件,k的取值依次代表:圆柱特征、圆锥特征、螺纹特征、齿形特征[3]等外部主要形状特征和内部主要形状特征;非回转体零件,k的取值依次代表:板块类零件、杆条类零件、座架类零件、箱体类零件等外部主要形状特征。
然后建立m×l的辅助特征相似矩阵C。其中,m代表同时对m个零件进行比较,m=1代表目标零件;l代表零件设计编码的l个辅助特征码位,l的取值依次代表:倒角特征、环槽特征、键槽特征、径向孔特征、轴向特征,即回转体类零件,l=9、11、12,若为非回转体类零件,l=10、11。
第二阶段目标零件与第i个零件相比较的相似性系数为: 其中:Szi代表目标零件与第i个零件主特征相比较的相似性系数;Sfi代表目标零件与第i个零件辅助特征相比较的相似性系数。S=S1i+S2i
S为最终比较所得的相似性系数,它将被保存在实例零件的信息模型中,即:若目标零件的某一特征与实例的某一特征匹配,则将实例信息模型上用于记录实例的某一特征与其他零件的特征匹配情况的变量if_match赋为True,并将目标零件中与实例零件相匹配的特征的ID值赋给实例零件中相应特征的变量match_ID。
4 相似零件检索算法
系统以用户所填的目标零件信息和零件分类索引库为依据,自动检索出相似的实例零件。其总体策略如下:
(1)系统根据用户所填的零件信息,自动从零件分类索引库中检索出当前零件所从属的实例类。
(2)目标零件与实例零件一一匹配比较,计算相似性系数S。在找到当前零件所从属的实例类后系统首先将目标零件的信息装入内存,然后依次将实例类中的各实例零件的信息装入内存,将目标零件的信息与所选实例类中各实例的零件信息逐一进行匹配和比较,自动计算S,同时将目标零件的特征和每个实例零件特征的匹配情况记录于实例零件信息形状二叉树的各个节点上。在比较匹配完成后将S大于给定相似性系数基准的实例的零件图号、相似性系数等相关信息按相似性系数的大小显示在Data Grid控件上,供用户选用。
5 零件设计可重用系统的实现
在模型创建的过程中,添加设计变量,通过设计变量表中的表达式,设置变量间的关联规则,通过对设计变量的修改来驱动生成新零件。在三维CAD环境中,建立产品实体模型。将每个特征相关的数据用变量表示,以便于变量的驱动和管理;对于相互关联的特征尺寸,在变量表的公式中表达,简化实体的尺寸要素,建立零件族的参数表。
利用VC++和UG/Open对UG软件进行二次开发,以实现零件设计可重用系统。UG/Open是一系列UG开发工具的总称,现在分别介绍如下:
(1)以UG/OpenAPI作为开发工具。这是一个允许程序访问并改变UG对象模型的程序集,它封装了近2000个UG操作的函数,可以方便地对UG的图形终端、文件管理系统和数据库进行操作,该程序使用C或C++编程语言。
(2)选用UG/Open Menu Script创建用户化菜单的功能工具。支持UG主菜单和快速弹出式菜单的设计和修改,可以改变UG菜单的布局,添加新的菜单项以执行用户应用开发程序,最后生成一个菜单脚本文件(*.men),供UG系统调用以触发应用程序。
(3)选用UG/Open UI Styler开发UG风格对话框。可以方便地添加各种控件,在生成对话框文件(*.dlg)的同时,生成一个C语言文件(*.c)及C语言头文件(*.h),并提供相关控件操作的函数框架,可以方便、高效地编程与UG系统集成进行交互操作。
(4)配置开发环境及工程路径。以VC++提供的MFC App Wizard建立工程项目,把UI Styler生成的*.c文件和*.h文件添加到工程里,同时在VC++编译连接的对象库中添加UG库文件,以保证正确编译。
VC++编程及设置部分介绍如下:
(1)基于Windows操作系统的UG软件开发可在VC++6.0环境下进行,在VC++环境中建立一个UG的二次开发工程,配置工程的各种设置,建立起UG软件和VC++的连接。再利用MFC App Wizard建立的系统架构下添加功能函数,通过编译生成动态链接库文件(*.dll),UG启动时会自动加载动态链接库文件供用户菜单调用,从而实现应用开发程序与UG平台的无缝集成。
(2)在MFC App Wizard建立的系统架构下,添加利用UG对话框生成的文件(*.h)及(*.c)。对话框提供了相关操作按钮的回调函数框架。UG外部开放程序允许用户在C/C++程序中,调用UGAPI函数及UG API提供的各种数据类型。在调用UG API函数之前应对应用程序进行一定的设置,包括UGAPI函数的库文件(*.lib)及所声明API函数和数据类型的头文件(*.h)。
(3)添加相应功能函数,与参数表中数据比较,以查询库中是否存在所需零件。程序代码为:
UF_FAM_ask_Member_column_data(*family_tag,0,&column_data);//获得行数
for(i=0;(i
{
flag=0;//输入值与参数表中值相同,flag为0
UF_FAM_ask_member_row_data(*family_tag,i,&row_data);//获得参数数值
for(j=0;j<7;j++)//逐个比较,相同则返回flag=0,否则flag=l
{
Cmp[j]=strcmp(item[j].value.string,row_data.value.string,row_data.valued[j+1]);
if(Cmp[j]!=0)flag=1;
}
}
如果存在符合要求的零件,则获得该零件名以备打开或用于装配;否则,告知不存在零件,提示输入零件名,添加该零件入库。
以UF_FAM_ask_member_row_data()创建一组新的数据,将所输入参数赋予这组新值,用UF_FAM_add_member()函数添加新零件,同时用UF_PART_ask_part_name()获得该零件名,以备打开或装配用。
以UF_PART_set_display_part()函数将已经载入的零件设置为当前显示零件,即打开视图。或在装配时,选择“已载入部件”将零件添加到装配中。
6 结论
本文给出了零件实例表达的方法,相似性系数的计算公式,实例检索的策略和方法。利用相似性系数进行相似性比较,检索实例零件,将相似性进行量化,对零件的相似程度进行排序,根据零件各项信息的重要程度分配指标权重,快速准确地得到符合要求的实例零件,可应用范围广泛。
在特征参数化建模方法和理论基础上,介绍了基于UG系统的零件族,运用UG提供的二次开发工具包UG/Open和VC++的MFC App Wizard建立工程项目,进行相似零件的查询、显示、打开、修改等操作。二次开发提供了一个良好的人机界面,提高了零件的设计效率,在实际运用中效果较好。
|
|
文章内容仅供参考
(投稿)
(如果您是本文作者,请点击此处)
(7/8/2008) |
对 CAD/CAM软件 有何见解?请到 CAD/CAM软件论坛 畅所欲言吧!
|