![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=1738946163-b13WIsFTafjNQaHBZeb4Ct9EtvPY1sNB-0-5dd1b1177a9ec6d45e509a741d14222b)
图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=1738946163-f5srNUP257jveyGGeJAPRk8tBPU6dZ5g-0-05d70e9a6bdf9bcb2dd9da4ce3f1db0a)
图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=1738946163-nBf18bFHpfCDvecYGVcd4b4T1RRXYLua-0-d4979d32d688b2fbeb75022b28db4c4c)
保存该文件,开发者可根据需要增加其他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=1738946163-YN5DkcSa1tfJ8frNAg4MiLmoFtiCbsKs-0-58b433217fc7dd10810eadcd9736617f)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_24_1.jpg?sign=1738946163-IU2vSQLe6oNSQg1GKjZXDyUX9fnf0yKc-0-44db6b7c12f76d3f50c8ce79d60e4a4e)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_25_1.jpg?sign=1738946163-2VXnSiyYMXzuxxp4Dvwql3TOt1MxKgFl-0-c2c8c4cf9bafbc95cbeaef95e8a3f28d)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_26_1.jpg?sign=1738946163-n9ctcTRp9y9EqqgPchp7S1NbqPyPPAwi-0-419605119a6b85ce41a04276c0b098aa)
(5)配置在Sketch(草图)模块显示的菜单项。在“D:\nxopen_demo\application”目录下新建“nxopen_demo_sketch.men”文本文件,输入以下代码并保存。
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_26_2.jpg?sign=1738946163-xwZNcSoxqZKxeS5p42vOQlkzzHf8aTj5-0-908fb649fd3b4c5e872837a72649e5f9)
(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=1738946163-fJARGQT23oCLpUjyqOmIqELJiE1rTOaX-0-09598b26fd957eae9d8cf81f76b73095)
(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=1738946163-o09d35ihUmAMAODxm7USzMFsQDO1ATPg-0-1a4c2c92dd156e53a87bad0caffbc9bc)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_27_1.jpg?sign=1738946163-CJXxM1GfmXn0lLj9kvpKej4pt6H9DNVI-0-e9152880be10218185704e97d692010d)
(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=1738946163-89LUDPNON0wc8b6BheOvT88CuAXRGP1x-0-552d4c9d39f1b21aedb05a00541c7e94)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_28_1.jpg?sign=1738946163-6Wik82DPQbTLy6pfpm7pDqfNnKphMj9Y-0-375285195d1358bc35cbf94bb9ea9840)
(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=1738946163-OnM15xnqvLjqP4K5vD8TRWWO8BpLLZso-0-772498e6e6b5277e750337b343a98eab)
图2-6 建模模块显示菜单结果
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_29_1.jpg?sign=1738946163-qgwKxi0iqUJT6fmMPAVPCTKldAYO4TjD-0-ae19f8316b001e28b86af24e41090338)
图2-7 草图模块菜单及功能区显示结果