![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=1738897957-cQwq7kHn1t2OEtQaJwprGPdA5LFWdL3O-0-e73acb93baee423d291bbf47275cb7be)
图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=1738897957-0cdy4VcLbHmiFI5eEWXmZGF853UU2UoG-0-fc40f63ec42e4d1e304c317dd39393a0)
图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=1738897957-pzaytNqGxOBR1d9D2C3RTpghSQsqZlFo-0-eeff7f32e1fdb1fc3d175cfc23d4621b)
保存该文件,开发者可根据需要增加其他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=1738897957-qdqq692QJzZFhGbzxVlJW6qgAgSIF1q9-0-a334adc1c51221c1641f9204b69ab39f)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_24_1.jpg?sign=1738897957-hNzLGYenreIJ6tyYr90hTENzR0gvncCr-0-523b3bea7da4f0308607d5cf71011e24)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_25_1.jpg?sign=1738897957-Kdo2caXXuXZXZPBg8EZBukzgh1JGGlMl-0-760612ff7714ad4a5ebf259631d10fb1)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_26_1.jpg?sign=1738897957-MPhXzWBQXMFT5cH6xClZvJo0V87Ya8z4-0-caa5ea9e618df6ca56b87562963a4fbc)
(5)配置在Sketch(草图)模块显示的菜单项。在“D:\nxopen_demo\application”目录下新建“nxopen_demo_sketch.men”文本文件,输入以下代码并保存。
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_26_2.jpg?sign=1738897957-hG5cLhnmb5uaUiZvkpOO9XLnpcix0Nrz-0-fc359456e97aa8055e511c082d32eba5)
(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=1738897957-UH2Va1VK1KuUwlDWG1SE1ptTWny4FcqF-0-2fb163dae594026281835e0987dbbcac)
(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=1738897957-Uf4vuivSd6RM9agzEw7P5j9Wo6lkZhZ1-0-be7e4203e28c344262a190e78c84035c)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_27_1.jpg?sign=1738897957-n65zYsKExxtZMMinRJT2dG0p5VVOLK1V-0-66017906f4d0978a787dd0ff5627ebac)
(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=1738897957-NgkmbUyrPSmLKobJaXP5egwZlgZVht9o-0-1459b42769451a5d07d8c8cd02973549)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_28_1.jpg?sign=1738897957-UFj4GoXkc6bPQJSbtsjrncmmhaD97fk3-0-5612197bd2fd7f524ba4666567e6ffb5)
(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=1738897957-QTX1goSX3OhMnYgrBhSl1nhy9qvPNi65-0-55af0ca7368e43a074374b22e2ee0191)
图2-6 建模模块显示菜单结果
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_29_1.jpg?sign=1738897957-3IazjPHG22wXOjHKTn3qMAxGIJjXUAFY-0-7142a5a2194cf98e89698196560d8dfb)
图2-7 草图模块菜单及功能区显示结果