![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=1739316910-0OO0kIRiGNbViTY8GpTsMWWimavS0CsL-0-578797a154c2de64c41ce7b28b981f07)
图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=1739316910-89h84VlkLnXTPxKBYEqa6erFDKxjGCaG-0-dc8e66105ae71cda55021de5a40a5db7)
图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=1739316910-ntSGEKsgdTCmoGY21ogn0IwhM5yWI1Cj-0-c58e00ab2c1d55a2d88e19de2e4ff0f3)
保存该文件,开发者可根据需要增加其他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=1739316910-DFR0cdHXUrWPcuVMzeZ7siv6K3D9rWSn-0-baa46dbd06898008512798d3edba152e)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_24_1.jpg?sign=1739316910-7wT8Y9WcXUMpVEwLnRZRjfXZ4qvIFIBX-0-2142bf657b22deca73207cb925529f3f)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_25_1.jpg?sign=1739316910-QlRfQqOC2jPxQWfStG3RHimHZ6YqX3CH-0-9a9b1b5021a58c113bf640c4f7f4681e)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_26_1.jpg?sign=1739316910-OavINTc5IK87brqeynW79TrsVpGPBE30-0-c98999f1a3f4c065c7c07429404da3f5)
(5)配置在Sketch(草图)模块显示的菜单项。在“D:\nxopen_demo\application”目录下新建“nxopen_demo_sketch.men”文本文件,输入以下代码并保存。
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_26_2.jpg?sign=1739316910-VruCvwX2PvGz5rI9tiSCeZ6xuzJ4mBbW-0-da61e6199532f6acb3cf0e1105f6fdb1)
(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=1739316910-EjrqUgAnYxLPGr85BAfbxQ1ovluvSXNV-0-1f7f1d71d64d62c9b35dea891065721f)
(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=1739316910-Y6e0eflhZhSWWRhPYlSp1w1FgS0hZKLv-0-1b30d0809254bcc7e4e87bebc24177a3)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_27_1.jpg?sign=1739316910-hQKcjaQoCWfVDQuM2dOzevproZdkABmt-0-d9128aae121293de0860af12e44e9380)
(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=1739316910-PrZ6QwlFk10hCdWCiXkZ3Nkq0l2gKN5D-0-332217a41818a79378f50e9727c9e78d)
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_28_1.jpg?sign=1739316910-eQS3SRxRLWyupayiyGQ6UH6HZt3xAlku-0-b2e15644bd26787f5ee13047e01fbcf8)
(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=1739316910-Oc16bVVOZHJxFrM6D6Ro5xtJcJ6H1bVN-0-8400bb814d3557954cddea2c173213fe)
图2-6 建模模块显示菜单结果
![](https://epubservercos.yuewen.com/A6F99C/21440188008281206/epubprivate/OEBPS/Images/32757_29_1.jpg?sign=1739316910-AiE1Zp7S691F3PCDntOuZbTEctcBmITI-0-7ebe5f1c98396c88a82d15166330c296)
图2-7 草图模块菜单及功能区显示结果