搜档网
当前位置:搜档网 › UG二次开发技术在虚拟装配干涉检验中的应用

UG二次开发技术在虚拟装配干涉检验中的应用

第3期(总第166期)

2011年6月机械工程与自动化

MECHANICAL ENGINEERING &AUTOMATION No.3Jun.

文章编号:1672-6413(2011)03-0043-03

UG 二次开发技术在虚拟装配干涉检验中的应用

康文利,陈晓明

(华北电力大学机械工程学院,河北

保定071003)

摘要:为了缩短产品设计周期、有效提高UG (Unigraphics NX )平台的使用效率,介绍了一种利用UG 的二次开发技术与Visual C ++相结合实现在UG 虚拟装配模块中提高干涉检验效率的方法。关键词:UG ;二次开发;干涉检验中图分类号:TP391.9?TG95

文献标识码:A

收稿日期:2010-09-07;修回日期:2011-01-08

作者简介:康文利(1961-),女,河北保定人,副教授,硕士,研究方向:数字化设计与制造。

引言

在虚拟装配过程中,存在着隐性干涉等设计问题,虽然一般的商业化CAD 软件Solid edge 、Pro /E 、UG 、Catia 等都带有干涉检验模块,但专业性较差,

在干涉检验时仅显示发生干涉的零件名称和干涉体积,当干涉众多时会显得混乱,装配部件数量大时则不易找到干涉部位,导致设计人员不能快速发现干涉的具体情况。为了提高干涉检验的效率和质量,改进产品设计装配时的不足,本文对虚拟装配干涉检验做了一定的研究。

1UG 中的虚拟装配与干涉检验1.1UG 中的虚拟装配

UG 中提供了两种装配方法,一种是自底向上的装配方法,指将全部设计好的装配组件添加到装配中并设置约束。另一种是自顶向下的装配方法,这是一种全新的装配方法,主要是基于有些模型需根据实际情况来判断装配件的位置和形状,也就是说只能通过装配完毕的组件来定位其形状位置。这种装配方法有两种装配方式,一种是首先在装配体中建立一个几何对象,然后建立一个新的组件,同时将该集合模型链接到新组件中,从而达到自顶向下的装配效果;另一种装配方式是首先在装配体中产生一个新的组件(该组件不包括任何几何对象),使其成为工作组件,并在其中建立几何模型,从而达到自顶向下的装配效果。通常需要干涉检验的装配体都是按自底向上的装配方式装配的。

1.2UG 中的干涉检验

在UG 中,干涉检验包括动态干涉检验和静态干

涉检验。静态干涉检验主要对各个零部件的位置关系、公差配合等因素进行判断;而动态干涉检验是在装配部件运动时分析其运动部件在运动空间上是否有干涉的存在。通常所说的干涉检验是指静态干涉检验,在UG 中静态干涉检验就是对部件间的间隙进行检查,在检查时用户可自定义一个间隙大小。干涉的类型可以分为不干涉、接触干涉、硬干涉、软干涉和包容干涉。其中不干涉(No Interference )是指2个对象间的距离大于间隙区域;接触干涉(Touch inter-ference )是指两个对象相互接触但是没有干涉,这时UG 干涉系统会给出一个表示接触干涉的点;硬干涉(Hard interference )指两个对象相交,有公共的部分,但没有完全重合,这时系统会建立一个干涉实体,可以选择以高亮形式表示;软干涉(Soft inter-ference )是指最小距离小于间隙区域,但不接触,这时系统建立表示最小距离的一条线;包容干涉(Con-tainment interference )指一个实体被完全包容在另一个实体之内,这时系统建立表示干涉被包容实体的拷贝。

以UG5.0为例,在进行干涉检验时首先打开要检查的干涉组件,然后选择文件—打开,选择一个装配好的文件(.asm )双击,之后就会看到打开的装配文件,这时选择分析选项卡中的简单干涉即可对任意两个部件的干涉情况进行检查。在选择要检查的干涉部件时需要在装配区域单击选择要检查的部件,确定之前在干涉结果选项卡处可以选择检查出的干涉的表现形式,图1为UG 间隙分析界面。这里的干涉表现形式有两种,一种是干涉体,一种是高亮显示的面

对,选择好之后单击确定即可看到检查结果。这种检查方式简单易行,可是只能对两个零部件或者两个solid 进行干涉分析,并且在选择要检查的部件时只能选择可见部件,这样在部件多时很不方便,一般只在少数情况下使用

图1UG 间隙分析界面

若要进行全局干涉及多部件间的干涉分析则要选择装配间隙选项,装配间隙选项可以在装配菜单和分析选项卡中找到。在执行间隙分析时可以在间隙集中对间隙检查进行具体设置,若要对装配体进行全局干涉检验则要在基本选项卡中选择一个列表选项,这样在干涉检验时系统将对装配体中所有的部件进行间隙检查,当间隙小于默认值(默认值为0)或小于设定值时则确认部件间的干涉为硬干涉,这时需要对装配部件进行修改或者修改装配关系,其他干涉类型则视具体情况而定;若要对多个部件进行干涉检验则要在基本选项卡中选择两个列表选项,然后在两个列表中选择相互要检查的对象。间隙分析结束后系统会自动生成检查报告,间隙分析如图2所示

图2间隙分析

2对干涉检验系统的二次开发2.1系统总体设计

通过对UG 中装配和干涉检验系统的介绍可知,虽然UG 中提供了可以供用户使用的干涉检验模块,可是在检查时存在一定的不足之处,如在选择检查部件时无法选择装配体内部部件、干涉结果中干涉体的

体积无法计算等。为了解决这些弊端,本文利用二次开发技术对干涉检验模块进行二次开发,总体设计思路是依靠UG /Open 开发工具结合VC 设计菜单、窗口信息、UI 对话框,编写回调函数,生成可执行的.dll 连接并利用Visual C ++编写体积计算函数,通过UG 与C ++的接口技术返回计算结果。2.2自定义菜单及UI 对话框的设计

自定义的菜单制作要用到UG /Open 中的Menu-script 开发工具,首先在计算机中定义环境变量,在“我的电脑”上单击鼠标右键,选择属性命令,切换到高级选项卡,单击环境变量—注册环境变量,变量名

为UG Ⅱ

_USER_DIR ,变量值为C :\ug_menu ,单击确定保存;然后在相应变量值下创建startup 和application 两个文件夹,在startup 文件夹中编写菜单文件函数并保存为.men 格式。所编写的函数代码如下:

VERSION 120

EDIT UG_GATEWAY_MAIN_MENUBAR BEFORE UG_HELP

CASCADE_BUTTON menu_name_1LABEL 干涉检验开发END_OF_BEFORE MENU menu_name_1BUTTON menu_name_21LABEL 测试开始ACTIONS ceshi.dlg END_OF_BEFORE MENU menu_name_1BUTTON menu_name_21LABEL 间隙分析ACTIONS jianxifenxi.dlg END_OF_MENU

编辑好的菜单界面如图3所示。菜单编辑好之后要设置菜单连接,具体步骤如下:①选择要设置的菜单;②进入ufsta 程序入口;③通过status =UF_MB_add -actions (actionTable )函数注册actionTable 中包含的函数,并对其相应函数进行调用。其中ac-tionTable 是UF_MB_action_t 数据类型。这样既可以把菜单ACTIONS 后面的名称与自己编制的程序对应起来,又可以通过执行自定义的函数判断是否调用对话框

图3菜单界面

·

44·机械工程与自动化2011年第3期

UI (User Interface )对话框的设计可以使用UG /

Open UIStyler 模块,它是UG /Open 应用程序开发独立于硬件平台的交互界面的工具;之后采用UG /Open API 开发工具,提供UG 软件直接编程接口来实现系统功能。可是这种做法的界面不直观,利用VC 的MFC 开发更容易布局和修改、调试。可先按设计布局编写对话框资源文件,保存在ug_menu_test \application \目录下,然后编写相应的控制程序。创建UI 对话框必须依次完成以下操作:读取资源文件并调入内存;定义UI 对话框控件行为函数;将UI 对话框显示并激活,接受用户交换,释放内存。UI 对话框部分C 源程序如下:

//CInterferenceCheckDlg message handlers BOOL CInterferenceCheckDlg ::OnInitDialog ()

{CDialog ::OnInitDialog ();//TODO :Add extra initialization here m_infoShow.InsertColumn (0,"序号",LVCFMT_LEFT60);

m_infoShow.InsertColumn (1,"菜单1部件",LVCFMT _LEFT ,100);

m_infoShow.InsertColumn (2,"菜单2部件",LVCFMT _LEFT ,100);

m_infoShow.InsertColumn (3,"干涉体积",LVCFMT _LEFT ,100);}

void CInterferenceCheckDlg ::OnOK (){//TODO :Add extra validation here UpdateData (TRUE );

m_infoShow.DeleteAllItems ();

int index =m_computeType.GetCurSel ();if (index ==-1)

{AfxMessageBox ("选择计算类型!");Return ;}

设计好对话框之后,用Visual C ++编译系统程序。首先把ugopen.hlp 及ugopen.awx 两个文件复制到C ++的安装目录,之后启动Visual C ++,在创建工程时选择Unigraphics NX AppWizard V1,project-name 的名称是ganshe ,Location 是C :

\ganshe \

ganshe ,最后单击Finish 按钮完成工程创建。接下来在程序框架中删除ganshe.cpp 和ganshe.h 头文件,并将ganshe_dialog.cpp 和ganshe_dialog.h 添加到工

程当中,在工程项目中双击ganshe_dialog.cpp 对其进行编辑。由于篇幅限制本处不再提供程序代码,程序运行结果如图4所示

图4程序运行结果

3结语

计算机技术和信息技术在制造业的作用显得越来

越重要,对工程应用软件实施不同程度的二次开发已经成为提高设计效率的重要手段。本文提出对UG 软件进行的二次开发的研究可以使UG 的功能更专业,使用更方便。

参考文献:

[1]黄勇,张博林,薛运峰.UG 二次开发与数据库应用基础

与典型范例[

M ].北京:电子工业出版社,2007.[2]吴丽霞.基于UG 的齿轮参数化设计及运动仿真分析研

究[

D ].北京:北京邮电大学,2009:32-39.[3]胡晓康.UG 运动分析培训教程/Unigraphics 应用指导系

列丛书[

M ].北京:清华大学出版社,2002.[4]张右军,王世杰.UG CAD /CAM 基础教程/CAD /CAM 模

具设计与制造指导丛书[M ]

.北京:清华大学出版社,2006.[5]黄翔,李迎光.数控编程理论、技术与应用[

M ].北京:清华大学出版社,

2006.[6]夏天,吴立军.UG 二次开发技术基础[

M ].北京:电子工业出版社,

2005.[7]陈刚.C ++高级进阶教程[M ].武汉:武汉大学出版社,

2008.

Application of UG Secondary Development Technology in Interference Examination of Virtual Assembly

KANG Wen-li ,CHEN Xiao-ming

(College of Mechanical Engineering ,North China Electric Power University ,Baoding 071003,China )

Abstract :In order to shorten the product design cycle ,improve the use efficiency of UG (Unigraphics NX )platform effectively ,this paper introduces a method which combining UG secondary development technology and Visual C ++to improve interference examination efficiency in UG virtual assembly module.

Key words :UG ;secondary development ;interference examination

·

54·2011年第3期康文利,等:UG 二次开发技术在虚拟装配干涉检验中的应用

相关主题