1、UG二次开发培训 基于VB.NET的UGNX6.0二次开发基础陶剑 2011年9月 http:/ UG二次开发简介,2. VB.NET软件的安装与设置,3. UG VB.NET二次开发流程,4. 一个简单开发实例,1. UG二次开发简介,二次开发是在软件原有功能基础上进行的对软件功能的针对性扩充改造,以满足不同用户对特定功能的要求。如UG原本不具备批量设置程序参数,二次开发就能实现这一功能。二次开发的前提是软件提供了二次开发的接口和相应的功能函数。目前在UG上应用得比较成功的通用性的二次开发主要有华中科技大学CAD/CAM国家重点实验室和UGS公司合作开发的级进模向导。再有就是一些在建模和编程
2、上用的一些小型外挂,如东创,进玉电极外挂等。由于二次开发的针对性较强,这样其通用性往往会受到不同程度的限制。,1.1 UG二次开发简介,1. UG二次开发简介,1.2 UG二次开发的意义,2.VB.NET软件的安装与设置,从VB6.0以后VB不再提供单独的安装包安装,而是和VC,VC+,VJ#一起集成在基于统一的.NET平台的Visual Studio一起发布,我们将要使用性能比较稳定的 Visual Studio 2005CHS版本VB.NET对UG NX6.0进行二次开发。,2.1 VB.NET简介,2.VB.NET软件的安装与设置,2.2 VB.NET安装,2.VB.NET软件的安装与设
3、置,2.3 VB.NET设置(1),初次启动弹出默认环境设置,如右图所示,选择VB开发设置即可。,2.VB.NET软件的安装与设置,2.3 VB.NET设置(2),默认环境VB并不支持直接进行UG二次开发,需要将UG二次开发模板导入到VB的开发环境中。,2.VB.NET软件的安装与设置,2.3 VB.NET设置(3),打开UG安装目录,复制VB开发模板文件夹。,2.VB.NET软件的安装与设置,2.3 VB.NET设置(4),将VB开发模板文件夹粘贴到Visual Studio安装目录下。,2.VB.NET软件的安装与设置,2.3 VB.NET设置(4),再次打开VB开发环境,即有了NX6的二
4、次开发模板了。,3. UG VB.NET二次开发流程,UG VB.NET二次开发流程如下:,1.选择NX6开发模板 2.设置开发环境 3.添加引用连接 4.编写代码 5.调试 6.添加快捷图标,3. UG VB.NET二次开发流程,在VB开发环境选择NX6的二次开发模板,设置名称,选择位置,设置解决方案名称。注意这些名称最好是英文,便于UG调试,因为UG暂时不支持中文。,3.1.选择NX6开发模板,3. UG VB.NET二次开发流程,单击“确定”后进入应用设置界面,将”USE APIs”的两个勾都勾上。,3.2 设置开发环境(1),3. UG VB.NET二次开发流程,单击“NEXT”后进入
5、接入点设置界面,选择图示的接入和退出方式。,3.2 设置开发环境(2),3. UG VB.NET二次开发流程,单击”FINISH”后进入编程模块界面,但此时的编程模块有两个错误(VB有错误会在出错的地方出现波浪线,类似于WORD)需要改正。,3.3 添加引用连接(1),3. UG VB.NET二次开发流程,双击”My Project”选择引用,NX6的四个库函数引用错误,需要重新定向。,3.3 添加引用连接(2),3. UG VB.NET二次开发流程,选择如图所示的定向目录,注意:目录定向完成后,不要选择复制引用的库文件,否则会造成使用麻烦。,3.3 添加引用连接(3),3. UG VB.NE
6、T二次开发流程,3.4 编写程序代码,3. UG VB.NET二次开发流程,3.5 程序调试(1),3. UG VB.NET二次开发流程,3.5 程序调试(2),3. UG VB.NET二次开发流程,3.5 程序调试(3),3. UG VB.NET二次开发流程,将插件添加到UG功能区,在D盘新建一个包含application 和startup文件夹的目录TOOL,并新建环境变量UGII_USER_DIR=D:TOOL,3.6 添加快捷图标(1),3. UG VB.NET二次开发流程,在startup文件夹中新建TXT文件,添加格式如下的文本,保存后将文件后缀改为TBR,注意文本所指文件必须存在
7、,且和你开发的DLL文件一致。,3.6 添加快捷图标(2),4. 一个简单开发实例,本实例开发的功能是读取所选操作的程序名,加工刀具和加工余量三个参数,在编程界面添加如下代码:,在Module Module1下定义如下变量:Dim ts As Session = Session.GetSession()Dim tui As UI = UI.GetUI()Dim tufs As UFSession = UFSession.GetUFSession()Dim mytag() As NXOpen.Tag 选择的加工操作标记Dim mcount As Integer 选择的加工操作数量Dim tool
8、pathname As String 定义选择的第一个加工操作的名称Dim toolname As String 定义选择的第一个加工操作的刀具名称Dim stock As Double 选择的第一个加工操作的加工余量,4. 一个简单开发实例,Sub Main()下添加如下代码:Try获取选择的操作数tufs.UiOnt.AskSelectedNodes(mcount, mytag)If mcount = 0 ThenMsgBox(“未选择加工操作!“, MsgBoxStyle.OkOnly, “提示“)Exit SubEnd If获取操作名称tufs.Oper.AskNameFromTag(
9、mytag(0), toolpathname)获取加工刀具Dim tooltag As NXOpen.Tag 定义刀具标记tufs.Oper.AskCutterGroup(mytag(0), tooltag)tufs.Obj.AskName(tooltag, toolname)获取加工余量tufs.Param.AskDoubleValue(mytag(0), NXOpen.UF.UFConstants.UF_PARAM_STOCK_PART, stock)输出结果MsgBox(“您选择的操作参数如下:“ + Chr(13) + _“程序名:“ + toolpathname + Chr(13) + _“刀具: “ + toolname + Chr(13) + _“余量: “ + stock.ToString + Chr(13), MsgBoxStyle.OkOnly, “提示“)Catch ex As ExceptionMsgBox(ex)End Try,4. 一个简单开发实例,本实例运行效果如图:,