官方例子:怎样创建一个NXOpen程序

你可以为许多不同的任务和函数创建一个NX打开的程序,比如在NX中操作的一个从命令行启动的函数,它可以被添加到菜单列表或其他NX命令结构中,或者是一个新对话框。

在这个例子中,我们创建一个对话框,选择面然后改变面颜色。

主要步骤如下:

1
2
3
4
5
创建一个对话框
从对话框中生成代码
添加代码到生成的源文件中
设置目录结构
测试

在这个例子中,我们修改initialize(初始化)和apply(应用)回调函数。对于更复杂的对话框,你可以将代码添加到update(更新)回调函数来处理不断的变化。
有关创建对话框的其他信息,参见UIStyler块介绍
有关使用静态API属性的信息,参见块属性的静态API

一、创建对话框

1.打开NX

2.打开建模应用模块。可以通过打开一个零件或新建一个模型进入

3.搜索“块 UI 样式编辑器”进入UI编辑器(注意搜索要带空格)

4.在块目录组中,打开‘选择’目录。点击‘选择对象’,创建并显示“无标题”对话框

选择对象

5.打开‘基本’目录,点击‘对象颜色拾取器’

6.通过修改对话框中的属性来更改对话框标签。

  • 在块选项卡,group块树中选择selection0。在属性选项卡,选择LabelString。双击修改为”选择面”
  • 选择SelectMode,右击将值从Single改Multiple
  • 在树列表中选择colorPicker0。在属性选项卡,选择Label。双击修改为”选择颜色”
  • 在树列表中选择Group。在属性选项卡,选择Label。双击修改为”面”
  • 在树列表中选择Dialog。在属性选项卡,选择Label。双击修改为”改变面的颜色”

最终结果

二、从对话框生成代码

1.在设计对话框选择”代码生成”块,右击”语言”,选择Java

2.右击”生成附注”,选择True

3.右击”特定于块的代码”,选择True

4.确保”用户出口”为True。

5.确保”更新”、”确定”、”显示的对话框”为True

6.选择保存(ctrl+s),生成一个.dlx文件,一个.java文件

7.点击”退出块 UI 样式编辑器”

三、向生成代码中添加代码

1.打开.java 文件

2.添加”添加以下代码”、”添加代码结束”中间代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public void initialize() throws NXException, RemoteException
{
try
{
group0 = (nxopen.blockstyler.Group)theDialog.topBlock().findBlock("group0");
selection0 = (nxopen.blockstyler.SelectObject)theDialog.topBlock().findBlock("selection0");
colorPicker0 = (nxopen.blockstyler.ObjectColorPicker)theDialog.topBlock().findBlock("colorPicker0");
//添加以下代码---------------
selection0.addFilter(nxopen.blockstyler.SelectObject.FilterType.FACES);//过滤器,只能选择面
//添加代码结束---------------
}
catch(Exception ex)
{
//---- Enter your exception handling code here -----
theUI.nxmessageBox().show("Block Styler", nxopen.NXMessageBox.DialogType.ERROR, ex.getMessage());
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public int apply() throws NXException, RemoteException
{
int errorCode = 0;
try
{
//---- Enter your callback code here -----
//添加以下代码---------------
//获取DisplayModification对象
TaggedObject[] selObjs = selection0.getSelectedObjects();
DisplayModification dispMod = theSession.displayManager().newDisplayModification();
//获取选择的颜色
int[] colors = colorPicker0.getValue();
dispMod.setNewColor(colors[0]);
//获取选择的面
List<DisplayableObject> dispObjs = new ArrayList<DisplayableObject>();
for (TaggedObject taggedObject : selObjs) {
dispObjs.add((DisplayableObject) taggedObject);
}
//应用
dispMod.apply((DisplayableObject[]) dispObjs.toArray());
dispMod.dispose();
//添加代码结束---------------
}
catch(Exception ex)
{
//---- Enter your exception handling code here -----
errorCode = 1;
theUI.nxmessageBox().show("Block Styler", nxopen.NXMessageBox.DialogType.ERROR, ex.getMessage());
}
return errorCode;
}

四、设置目录结构

1.设置以下环境变量作为应用程序的根目录。

UGII_USER_DIR(或UGII_GROUP_DIR)=<full directory path>

注意:此环境变量仅适用于单个应用程序。有关为单个或多个应用程序设置根目录的附加信息,请参见环境变量

2.在上面指定的根目录下创建应用程序的目录结构。请参见应用程序目录结构,看看如何设置目录结构以及NX如何在启动时加载自定义文件和应用程序。

3.复制.class、.dlx文件到上一步中创建的应用程序目录

五、测试

1.打开模型应用模块(打开或新建一个模型)

2.点击 文件–执行–NXOpen。快捷键Ctrl+U。选择.class文件运行

六、实例文件

对话框文件:changeFaceColor.dlx
源码:changeFaceColor.java