2.4 自定义菜单和功能区实例
本实例使用MenuScript相关语法设计菜单;使用Ribbon工具条接口文件配置NX的功能区,增加选项卡并在其中添加按钮。请读者跟随本书练习该实例,后面章节会基于该实例设计对话框与编码实现相应功能。
本实例主要在Modeling(建模)、Sketch(草图)两个模块中增加菜单与Ribbon工具条按钮,其他模块中增加按钮的方法与此类似。
如图2-4所示,在Modeling(建模)模块的功能区中,增加了NXOpen Demo选项卡,选项卡中包含了不同的工具按钮。按钮的排列方式通过Ribbon工具条接口文件配置,Sketch(草图)模块中的显示与此类似。
图2-4 定制的Ribbon工具条在NX中的显示结果
实现本实例的操作步骤如下:
(1)创建NX二次开发目录,结构如图2-5所示(本例目录位于“D:\nxopen_demo”)。
(2)去掉“%UGII_BASE_DIR%\UGII\menus\custom_dirs.dat”文件的只读属性,用记事本打开它,在最后一行添加“D:\nxopen_demo”并保存(该行开头不能包含“#”)。
图2-5 NX二次开发目录结构
(3)配置自定义菜单在NX不同模块中的显示。在“D:\nxopen_demo\startup”目录下新建“nxopen_demo_main.men”文本文件(开发者可根据实际需要使用其他名称),输入以下代码。这样,在Modeling(建模)模块中将显示“nxopen_demo_modeling.men”中定义的菜单项,在Sketch(草图)模块中将显示“nxopen_demo_sketch.men”中定义的菜单项。
保存该文件,开发者可根据需要增加其他NX模块应显示的菜单文件。
初学的读者,会面临定义其他模块菜单时如何输入“APPLICATION_BUTTON”后面关键字的问题。根据笔者经验,可以打开“%UGII_BASE_DIR%\UGOPEN\uf.h”文件,查找“Unique identifiers for standard NX applications”,在它下方列出了NX所有应用模块的标识符字符串,在使用时把字符串开头的“UF”改为“UG”即为所需的关键字。
(4)配置在Modeling(建模)模块中显示的菜单项。在“D:\nxopen_demo\application”目录下新建“nxopen_demo_modeling.men”文本文件,输入以下代码并保存。
(5)配置在Sketch(草图)模块显示的菜单项。在“D:\nxopen_demo\application”目录下新建“nxopen_demo_sketch.men”文本文件,输入以下代码并保存。
(6)配置Sketch(草图)模块功能区选项卡。在“D:\nxopen_demo\application\profiles\UG_APP_SKETCH_TASK”目录下新建“rbn_nxopen_demo_skecth.rtb”文本文件,输入以下代码并保存。
(7)配置Modeling(建模)模块功能区选项卡。在“D:\nxopen_demo\application\profiles\UG_APP_MODELING”目录下新建“rbn_nxopen_demo_modeling.rtb”文本文件,输入以下代码并保存。
(8)配置“rbn_nxopen_demo_modeling.rtb”中的Gallery文件。在“D:\nxopen_demo\application\profiles\UG_APP_MODELING”目录下新建“nxopen_demo_modeling_more.gly”文本文件,输入以下代码并保存。
(9)重新启动NX。图2-6为步骤4定义文件的应用结果,图2-7为步骤5与步骤6定义文件的应用结果。图2-4为步骤7与步骤8的应用结果。
图2-6 建模模块显示菜单结果
图2-7 草图模块菜单及功能区显示结果