NX二次开发-使BlockUI强制执行确定应用和取消

NX二次开发-使BlockUI强制执行确定应用和取消

作者:薛剑腾   审校:叶齐天

适用版本:NX11以上

一般对于BlockUI界面需要用户手动点击应用、确定或取消按钮,界面才会进入相关的回调函数进行响应。那是否有方法通过代码使程序进入这些回调里面?NX6.0以后NXOpen提供了BlockDialog.PerformApply( )方法,NX11.0后又提供了BlockDialog.PerformOk( )和BlockDialog.PerformCancel( )方法,本技巧将对它们进行介绍。

详细内容

PerformApply(  )方法

有的情景,例如做标注有关的功能开发时需要在选定标注位置后马上创建标注,这时可以用PerformApply( )方法,使程序在用户指定位置后马上应用,然后在应用回调中创建标注,应用回调返回后界面会重新初始化并进入初始化回调和界面显示回调。需注意的是此方法只能在更新回调中调用。

NX二次开发-使BlockUI强制执行确定应用和取消

图1

除了即时应用外,此方法还可以用于重置界面和重读数据,例如更改配置值后,只需要在用成员变量创建一个标记让程序不要进行应用操作只进行初始化操作。

PerformOK(  )和PerformCancel(  )

在NX11.0后NXOpen中加入了BlockDialog.PerformOK( )和BlockDialog.PerformCancel( )方法。不难想到,通过这两个方法我们可以实现如:在不满足条件时在显示界面后马上关闭界面;在自定义的按钮中实现关闭界面或确定的操作。但如果我们尝试直接在显示回调或更新回调中调用这两个方法程序会抛出异常:

NX二次开发-使BlockUI强制执行确定应用和取消

图2

根据帮助文档,这两个方法应该在别的线程中调用,不应该直接在界面程序的主线程中调用。因此我们需要先在显示回调或更新回调创建新的线程,并让新线程调用这两个方法:

NX二次开发-使BlockUI强制执行确定应用和取消

图3

NX二次开发-使BlockUI强制执行确定应用和取消

图4

我们也可以用静态方法替换:

NX二次开发-使BlockUI强制执行确定应用和取消

图5

总    结

通过调用PerformApply( )、PerformOK( )和PerformCancel( )方法,我们对BlockUI界面的控制可以更灵活,可以摆脱对界面下方三个默认按钮的依赖性。

相关软件
40 多年来,Nastran 有限元求解器一直是应力、振动、屈曲、结构故障、热传递、声学和气动弹性力学分析方面的行业标准。航空航天、汽车、电子、重型机械、医疗设备及其他行业的众多制造商和工程供应商均依靠 NX Nastran 软件满足在工程
相关阅读