王耀东,崔洪斌,耿建璞
(河北科技大学 机械电子工程学院,石家庄 050035)
从设备的技术资料管理而言,目前很多企业仍然采用人工方式管理产品的技术资料,资料的管理和维护占用了大量的物理空间和人力资源。如何将它们有效地管理起来,即在节省存储空间和人力资源的同时,又能够满足用户方便、快捷地查询、获取所需文档的要求,是多数企业需要解决的问题。
为此,本文以UG 6.0为研究对象,就BOM管理系统进行相关的研究与开发[1]。
图1所示是UG平台下装配BOM信息管理系统的总体设计框架,它主要由以下五部分组成:
1)UG装配体。它是系统的基础,它的装配结构树反映了构成产品零部件的装配关系和层次关系,所有的BOM信息都是围绕装配结构树上的零部件而展开的。
2)基于UG平台的编码器。它的功能是用来对UG装配体中新建的零部件进行编码或对已有的编码进行查询。
图1 装配BOM信息管理系统的总体设计框架
3)基于UG平台的二次开发接口。该部分的功能是把UG装配体的二维工程图的明细表信息导出到Excel报表中,同时,也把在Excel中对装配BOM信息的修改反馈到UG的装配BOM信息浏览界面上,它充当着UG与数据库之间联系纽带的角色。
4)Excel报表。该部分的功能是存储所有的装配BOM信息,这不仅保证了UG与信息管理系统之间装配BOM信息数据的一致性,而且也间接地充当UG与信息管理系统之间桥梁的角色。
5)信息管理系统浏览器。它的功能是查看装配零部件的装配BOM信息,同时也可对这些信息进行添加、查找、修改和补充[2]。
Visual Basic语言是目前流行的高级编程语言,该语言功能强大,并且支持OLE自动化技术。能够通过Windows里的COM的dIiPsathc接口,使不同程序之间进行通信。UG还提供了大量与Visual Basic语言接口的类型库,让使用者在UG自动化组件的程序中参考,因此本文采用Visual Basic对UG进行二次开发。
在开发之前,必须在Visual Basic环境下引用以下的类型库,这样才能通过OLE自动访问UG提供的对象,并在此基础上进行二次开发。下面是有关库的介绍:
l)UG Assembly Type Library:装配类型库(Assembly.tlb)。
2)UG draft Type Library:制图类型库(draf.tlb)。
3)UG Frame work Support Type Library:框架结构支持类型库(framewokr.tlb),支持二维对象,主要用于制图,草图环境中,如布局,轮廓等。
在Visual Basic的集成对象中的“工程”菜单中选择“引用”命令,弹出如图2所示对话框,在对话框中添加上述类库[3,4]。
图2 应用UG类型库
图3 模板
从UG6安装目录下面的UGSNX 6.0UGOPENvs_fi les文件夹中拷贝VB文件夹到 Microsoft Visual Studio 2005文件夹下覆盖原来文件。这样就在Microsoft Visual Studio 2005中建立了一个模板如图3所示,不必在编程时添加NXOpen.dll、NXOpen.Utilities.dll、NXOpenUI.dll、NXOpen.UF.dll四个动态连接库。
1) 二次开发主目录的建立:在硬盘上建立一个目录存放开发的内容,例如在F盘下建立一个名My Direction的文件夹,用于存放二次开发的内容。
2) 二次开发子目录的建立:在My Direction 下建立三个子目录startup 、application 和udo,分别存放具体的开发内容。将菜单文件(.men)、工具栏文件(.tbr)、对话框文件(.dlg)和二次开发的可执行文件(.exe)放入application文件夹中(由用户激活)。将菜单文件(.men)、工具栏文件(.tbr)、对话框文件(.dlg)和二次开发的动态链接库文件(.dll)放入StartUp文件夹中(UG系统启动时会自动加载运行)。将用户自定义的特征对象文件放入udo文件夹中。
3) 二次开发目录的注册:在$U GⅡ BASE DIR U GII menus 目录下,找到custom dirs.dat ,用记事本打开,在最后一行输入盘符:My Direction ,存盘,退出。
4) 利用UG/MenuScript,创建文本文件BOM.txt并放置于Strartup文件夹中,在文本文件中编写如下代码:
VERSION 120// 菜单脚本文件的版本号
EDITUG_GATEWAY_MAIN_MENUBAR
!*****添加UG的顶级菜单*****
BEFORE UG_HELP//编辑主菜单,并置于HELP菜单前位置
CASCADE_BUTTON tashebei//定义顶级菜单ID
LABEL 塔设备//定义顶级菜单标题
END_OF_BEFORE
!*****一级级联子菜单*****
MENU tashebei //编辑第一级菜单,为顶级菜单的下拉菜单
CASCADE_BUTTON BOMguanli
LABEL BOM管理
ACTIONS BOM //运行BOM模块
SEPARATOR
CASCADE_BUTTON CAM
LABEL 辅助制造
ACTIONS CAM //运行CAM模块
END_OF_MENU
完成菜单代码的编写后,用men扩展名取代扩展名txt并保存。
打开UG 6.0,可以看到按菜单文件定制的菜单,如图4所示。
图4 定制UG下拉菜单
定义:系统环境变量UGII_USER_DIR为F:My Direction;
此接口模块用于链接菜单项与对话框,即通过菜单项激活对话框窗口的程序。在工程项目中通过添加模块→接口,并命名为“接口模块.v b”,其代码如下所示:
Function Startup(ByVal args As String()) As Integer//UG环境初始化
Dim theSession As Session = Session.GetSession()
… …
theUI.MenuBarManager.AddMenuAction("daijingpinghan_M", AddressOf BOM) //菜单注册函数
… …
Public Function BOM(ByVal button Event As NXOpen.MenuBar_
.MenuButtonEvent) As NXOpen.MenuBar.MenuBarManager.CallbackStatus
//窗体显示程序
Dim frm As New BOM… …
End Function
最后,然后将 UG安装目录下的moldwizardmoldwizard_add_in.xla 拷贝到 Program FilesMisrosoftoffi ceOffi ceXLStart这样当导出到Excel表中后作的任何修改只需保存就可以关联到UG中。至此完成项目的开发,单击图4中塔设备 BOM管理按钮,弹出如图5所示登陆窗体。
用户输入自己的登录用户名和密码即可进入系统主界面,如图6所示,此时系统已根据用户名将相应的功能权限和对象赋予用户。
图5 登陆窗体
图6 系统主界面
该系统面实现的功能是:在UG二维工程图中生成明细表后,将明细栏导出到Excel中,并将此Excel表链接到系统主界面中,这样在VB中做的修改、添加、删除等操作都可以关联到UG二维工程图的明细栏。
该系统与生产管理系统(Access数据库)相连接,PDM(产品数据管理)人员可以通过本系统查看零件库存信息,物料需求信息和生产进度信息。
结合技术资料管理现状,建立了BOM管理系统,该系统通过UG NX6.0、VB2005、Access和
Excel的链接,使得用户快速的查询到自己需要的信息,并实现了对UG二维工程图明细栏信息的修改。为制造企业资料的管理和维护节省了大量的空间资源和人力资源。
[1] 俞晓梅,袁孝竞,等.石油化工设备选用手册-塔器[M].北京:化学工业出版社,2010.
[2] 赵文龙.CAD平台下装配BOM信息管理的研究与实践[D] 重庆大学,2004.
[3] 席炜.基于Solid Edge的装配BOM信息管理的研究与实践 [D] 苏州大学,2006.
[4] 董正卫,田立中,付宜利.UG/OPEN API 编程基础[M].北京:清华大学出版社,2002.
[5] 唐鑫辉,秦晓英,崔洪斌,刘文学.NET环境下利用.UG/NXOpen和UG/Journal对UG的二次开发[J].现代制造工程,2011,(4):60-62.