![Siemens NX二次开发](https://wfqqreader-1252317822.image.myqcloud.com/cover/979/41202979/b_41202979.jpg)
2.4 自定义菜单和功能区实例
本实例使用MenuScript相关语法设计菜单;使用Ribbon工具条接口文件配置NX的功能区,增加选项卡并在其中添加按钮。请读者跟随本书练习该实例,后面章节会基于该实例设计对话框与编码实现相应功能。
本实例主要在Modeling(建模)、Sketch(草图)两个模块中增加菜单与Ribbon工具条按钮,其他模块中增加按钮的方法与此类似。
如图2-4所示,在Modeling(建模)模块的功能区中,增加了NXOpen Demo选项卡,选项卡中包含了不同的工具按钮。按钮的排列方式通过Ribbon工具条接口文件配置,Sketch(草图)模块中的显示与此类似。
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_22_2.jpg?sign=1739373276-haM609fACz3ZwXD9FRiYgoUbUGWuFqev-0-aa485d996b63c8c6fff687a30b559abf)
图2-4 定制的Ribbon工具条在NX中的显示结果
实现本实例的操作步骤如下:
(1)创建NX二次开发目录,结构如图2-5所示(本例目录位于“D:\nxopen_demo”)。
(2)去掉“%UGII_BASE_DIR%\UGII\menus\custom_dirs.dat”文件的只读属性,用记事本打开它,在最后一行添加“D:\nxopen_demo”并保存(该行开头不能包含“#”)。
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_23_1.jpg?sign=1739373276-NAo6Gj56RHc6wghEUvBU8kM3RVKYyRTe-0-f962bfc132cc9bea4e36c99e54c5e68f)
图2-5 NX二次开发目录结构
(3)配置自定义菜单在NX不同模块中的显示。在“D:\nxopen_demo\startup”目录下新建“nxopen_demo_main.men”文本文件(开发者可根据实际需要使用其他名称),输入以下代码。这样,在Modeling(建模)模块中将显示“nxopen_demo_modeling.men”中定义的菜单项,在Sketch(草图)模块中将显示“nxopen_demo_sketch.men”中定义的菜单项。
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_23_2.jpg?sign=1739373276-uQvdRE8bZiMpUkLeWjTGFC2I9g7awsDj-0-da1d52cec92eea1014dd4159f8347a44)
保存该文件,开发者可根据需要增加其他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”文本文件,输入以下代码并保存。
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_23_3.jpg?sign=1739373276-I0x5rQcBsKBWHqPXtjagcGCpq8mQhUNu-0-242268bb67e6b028045c8e4bb297d662)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_24_1.jpg?sign=1739373276-MGQL1L7BQBWvgiPKmb1oY2RYoL1T3rLk-0-c1f0ed28112b5bf02a0dae10f4bf366c)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_25_1.jpg?sign=1739373276-oVCxJrrampXXZDxD1HBHDsvPDNmrfGDj-0-d54b1d3ed247c17936ea1931204023e0)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_26_1.jpg?sign=1739373276-NeKPLRm5y4qP58Z030COa35k06Yn6tX8-0-bcdb055af41041276f2d8cfcb0f4f259)
(5)配置在Sketch(草图)模块显示的菜单项。在“D:\nxopen_demo\application”目录下新建“nxopen_demo_sketch.men”文本文件,输入以下代码并保存。
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_26_2.jpg?sign=1739373276-xM8R99Ibb1oMgMIQQvXTJt9TTypmqzTD-0-11c18e49c7a5c3906bd295434796eeaf)
(6)配置Sketch(草图)模块功能区选项卡。在“D:\nxopen_demo\application\profiles\UG_APP_SKETCH_TASK”目录下新建“rbn_nxopen_demo_skecth.rtb”文本文件,输入以下代码并保存。
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_26_3.jpg?sign=1739373276-idEKvLFNOPliKJocziATmQOfWatdt9EV-0-fab4514a1e7c5e51acffc6492b19c8d2)
(7)配置Modeling(建模)模块功能区选项卡。在“D:\nxopen_demo\application\profiles\UG_APP_MODELING”目录下新建“rbn_nxopen_demo_modeling.rtb”文本文件,输入以下代码并保存。
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_26_4.jpg?sign=1739373276-zQsKLAYXzjlBSk1xW7aU37OQn480Fi3p-0-e5253fd5bf6d790e78c71801ff9d9f25)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_27_1.jpg?sign=1739373276-QP1knUUoV7ivzTfhg3lW5nnI9pfWvnUH-0-67e86f8ee7d680ab9d96e64c0ccedd9a)
(8)配置“rbn_nxopen_demo_modeling.rtb”中的Gallery文件。在“D:\nxopen_demo\application\profiles\UG_APP_MODELING”目录下新建“nxopen_demo_modeling_more.gly”文本文件,输入以下代码并保存。
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_27_2.jpg?sign=1739373276-NO1dJgBVD2SfhkBB9R9RxvGj6yVwwRPl-0-34dbd685db0b7c9f4da33de44ac7caf1)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_28_1.jpg?sign=1739373276-twDFfeZhUo0nqa1TgJZrpRrS7OD9GyJl-0-2e931a14f0a6a507aca4744b102d7fdf)
(9)重新启动NX。图2-6为步骤4定义文件的应用结果,图2-7为步骤5与步骤6定义文件的应用结果。图2-4为步骤7与步骤8的应用结果。
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_28_2.jpg?sign=1739373276-WS4Ouk9qXVCw1xcWE8N4KnI67bAm3DgB-0-4f393009e35139ec0a7a39fcfa10c461)
图2-6 建模模块显示菜单结果
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_29_1.jpg?sign=1739373276-I0d7ZoKbZp4Wm7HmKh2ko0aKecDSlL3G-0-fd96b5d8545e6d4895182010242ddac1)
图2-7 草图模块菜单及功能区显示结果