基于UG的热流道标准件库的研究与建立

2014-04-29 00:44纪忠华黄诗君张茜
电子世界 2014年21期
关键词:二次开发

纪忠华 黄诗君 张茜

【摘要】标准件在产品设计的过程中占有很大比例,标准件库的开发是减少重复设计,提高设计效率的重要手段。基于UG,利用Journal及其他二次开发工具制作热流道系统的标准件库,开发效率高,并实现复杂功能,满足开发要求。

【关键词】标准件库;UG;二次开发;热流道

1.引言

UnigraphicsNX7.0(简称UGNX7.0)是当今世界上最先进和高度集成的、面向制造行业的CAD/CAE/CAM软件系统,被广泛应用于机械、模具等领域。NX7.0提供了强大的二次开发接口,支持Java、C++、C#等多种高级编程语言,为自动化和自定义NX提供了一个广发而灵活的环境。

热流道行业中,在标准的建立上仍有所不足,在进行产品开发中,建立企业的标准件库,是减少错误并提高设计效率的最佳手段。

2.UGNX7.0二次开发语言及工具

C++作为一门高级语言,不仅具有强大的函数/类库,而且与NX的最底层经典NXOpen C更是完美兼容,用C++作为开发语言更是支持.NET和Java两大语言的范型,面向对象技术,不仅为开发人员带来诸多便利,更是增加了代码的可读性,为后期程序的优化作准备。

西门子公司为NX设计了许多二次开发工具,BlockUIStyler使界面的开发变得更加方便,MenuScript定义了菜单的脚本语言,并可以创建工具栏。NX系统内嵌的Journal日志功能更是大大降低了二次开发的代码量。

3.标准件库的开发

标准件库的开发利用MenuScript建立工具栏,BlockUIStyler做出界面后生成.hpp和.cpp文件。在VisualStudio 2008(以下简称VS2008)中读取NX7.0 C++模板文件,建立并把生成的.hpp和.cpp文件导入,进行代码的编辑。

开发应用程序项目目录有startup,

application和prt。其中,文件夹startup中存放动态链接库(*.dll)和工具条脚本文件(*.tbr),application中存放对话框文件(*.dlx)、图标位图文件(*.bmp)和图像文件(*.jpg),prt用于存放图形模板文件。

具体开发配置如图1。

应用程序开过过程中需要调试,调试通过“UG->文件->执行->NX Open”执行debug编译成功的*.dll文件。程序发布时需使用release版程序,保证程序的健壮性,并为应用程序配置可执行路径。

图1

3.1 建立工具栏

以记事本格式编写脚本文件,编写完成后更改格式为.tbr,部分脚本内容如下:

TITLE 标准件库导入

VERSION 170

BUTTON fenliuban

LABEL 分流板

BITMAP

ACTION fenliubanpeijian.dll

BUTTON qiyougang

LABEL 汽/油缸

BITMAP

ACTION qiyougang.dll

……

工具栏设计效果如图2所示。

3.2 设计界面

进入NX7.0的块样式编辑器模块(Block UI Styler),设计各级界面(这里以分流板配件及主射咀作一二级界面为例)如图3、图4所示。

图2

图3

图4

界面设计完成,将生成的.hpp和.cpp文件导入VS2008的UG二次开发模板中,界面的跳转在主界面的回调函数update_cb()中完成,主要代码如下:

Intfenliubanpeijian::update_cb(NXOpen

::BlockStyler::UIBlock* block)

{

try

{

if(block == btZhushezui)

{

zhushezui *zsz=new zhushezui;//跳转至主射咀界面

zsz->Show();

}

}

要完成界面的跳转还需要在主界面代码中添加子界面程序的头文件,具体头文件代码如下:

#include”fenliubanpeijian.hpp”

#include”fangzhuanxiao.hpp”

#include”fareguanjietou.hpp”

#include”luosi.hpp”

#include”redianou.hpp”

#include”yalijiezi.hpp”

#include”zhongxinding.hpp”

#include”zhushezui.hpp”

3.3 子界面功能设计

标准件库中部件的导入是通过现有部件的名称及型号进行调用、判断进而选择模型文件。导入方向与模型WCS方向一致,可根据需要在目标文件中修改WCS方向再进行调用,调用位置根据“指定原始点”确定,模型方向通过“指定原始点”与“指定方向点”确定,程序附带一个-Z轴移动距离功能,方便用户进行面操作之后的移动。代码在子界面程序的apply函数中的try函数中添加,主要代码如下:

partImporter1->SetFileName

(“\\\\192.168.1.3\\rui\\UGkaifa\\reliudao-3D\\01-fenliubanpeijian\\zhushezui\\”+str+”.prt”);//获取标准件文件名称

......

NXMatrix *nXMatrix1;

WCS* wcs=workPart->WCS();

NXObject *nullNXObject(NULL);

//--------------------------//通过“指定原始点”与“指定方向点”重新定义要导入部件的WCS方向

//----------------------------

Point3d opoint=point0->GetProperties()

->GetPoint(“Point”);

Point3d pointY,originp(0,0,0);

pointY=point01->GetProperties()->GetPoint(“Point”);

Vector3d vecz(0,0,1),vecy(pointY.X-opoint.X,pointY.Y-opoint.Y,pointY.Z-opoint.Z);

Direction *directionY,*directionZ;

directionY=workPart->Directions()->CreateDirection(originp,vecy,SmartObject::

UpdateOptionWithinModeling);

directionZ=workPart->Directions()->CreateDirection(originp,vecz,SmartObject::

UpdateOptionWithinModeling);

Point *point1;

point1=workPart->Points()->CreatePoint

(opoint);

Xform *xform1;

xform1=workPart->Xforms()->CreateXformBy

PointYDirZDir(point1,directionY,directionZ,

SmartObject::UpdateOptionWithinModeling,

1.0);//建立坐标系

......

double dble=double0->GetProperties()->GetDouble("Value");

Point3d destinationPoint2(destinationPoint1.X,destinationPoint1.Y,destinationPoint1.Z-dble);//设置-Z轴的移动距离

(篇幅原因只简述部分代码)

3.4 配置程序执行路径

开发完成后,将程序发布,需要将程序打包,并制定程序说明书,说明程序的配置及使用方法。开发环境通过配置文件方法进行配置,将配置文件(“$(UGII_BASE_DIR)\ UGII\menus\custom_dirs.dat”)用记事本格式打开,并将程序执行路径添加到最后一行,如图5所示。

图5

配置程序之后重新启动UG主程序,在菜单项中即可找到自定义程序入口。

4.结论

通过UG二次开发技术,研究并建立了热流道系统的标准件库,极大程序地减少了标准件重复设计的时间,系统界面简便且人性化。系统简便实用,降低了设计者的劳动强度,对设计效率有很大提高。

参考文献

[1]唐杰,张祥林.C++在UG二次开发中的应用[J].现代机械,2007(1):80-82.

[2]王艺树,张毅,梁强.基于UG的参数化标准件库的研究与实现[J].信息与技术,2009,38(2):127-129.

[3]周临震,李青祝,秦珂.基于UGNX系统的二次开发[M].江苏大学出版社,2012.

[4]UGS公司.NX7.5 HelpLibrary[Z].2010.

作者简介:纪忠华(1990—),男,江苏东台人,广东工业大学硕士研究生在读,研究方向:NX二次开发。

猜你喜欢
二次开发
浅谈基于Revit平台的二次开发
西门子Operate高级编程的旋转坐标系二次开发
浅谈Mastercam后处理器的二次开发
三维详图设计软件Tekla Structures二次开发实例
基于C#的AutoCAD建筑构件库二次开发
西门子Easy Screen对倒棱机床界面二次开发
CAD二次开发在铁路车站信号设计中的应用
基于全站仪二次开发的覆冰厚度测量与实现
Micaps3.2 版本二次开发入门浅析
基于VB的ANSYS二次开发在变压器抗短路性能分析中的应用