[案例二] 菜单条制作(Menuscript)与工具条制作(Toolbar)
最近五一正好毕业论文盲审,抽时间研究一下菜单条制作(Menuscript)与工具条制作(Toolbar)的制作,在NX二次开发中唐康林老师已经讲的很详细了,在这里只对视频中的内容进行总结,并且根据自己的想法进行补充。在里海博主的直播教学中发现一个很有趣的NX图标工具,本人大概做了一下,虽然不是完美但是可以实现大概的功能。再次感谢各位NX二次开发的大佬,让后辈站在巨人的肩膀上进行更好的探索。
一、菜单文本的概述
二、菜单脚本的创建与挂载菜单
2.1菜单脚本的创建
2.2挂载菜单
2.2.1环境变量的设置
2.2.2设置显示模块
三、菜单开关按钮、快捷键和动态提示语言的创建
四、经典版本下工具条的制作
五、Ribbon版本下工具条的制作
5.1设置显示模块
5.2Ribbon界面风格
5.2.1直接添加按钮
5.2.2调用经典工具条风格(.tbr文件)
5.2.3调用rbn界面下的tbr(.tbr文件)
5.2.4直接使用组(FLOWLAYOUT)风格
5.2.5直接使用组(DEFAULT)风格
5.2.6使用drop_down风格(.ddb文件)
5.2.7使用cascade风格(.csb文件)
5.2.8使用gallery样式风格(.gly文件)
5.2.9使用gallery样式2,有最近使用风格(.gly文件)
5.2.10使用gallery样式3,NX官方格式风格(.gly文件)
5.2.11使用group样式1风格(.grb文件)
5.2.12使用group样式2风格(.grb文件)
5.2.13使用group样式3风格(.grb文件)
六、自制图标的加载与NX图标显示规则
6.1自制图标的加载
6.2NX图标显示规则
6.3自制一个图标名称查看器
一、菜单文本的概述
在NX 软件中,官方使用菜单文本对制作的应用程序进行挂载显示,通过点击相应的菜单调用相应的应用程序。大家在开发自己的菜单时可以根据西门子官方菜单或者市场现有的商家的菜单进行参考。一般来说菜单脚本文件所有用户都可以查看,允许用户相互学习,允许用户编辑。用户可以参考NX官方标准菜单脚本文件、GC工具箱单脚本文件或者第三方公司菜单脚本,见下图所示。其中,NX官方标准菜单脚本文件地址为:.......\UGII\menus,主要参考menus文件夹中的.men文件和.tbr文件。GC工具箱中,.......\LOCALIZATION\prc\application中的.men文件和.tbr文件。
二、菜单脚本的创建与挂载菜单
2.1菜单脚本的创建
为了更加详细的说明这里给出了自己制作菜单的.men文件内容,具体详解见以下代码以及图片内容注解。
代码:
VERSION 120
EDIT UG_GATEWAY_MAIN_MENUBAR
!BEFORE之后,AFTER前
BEFORE UG_HELPCASCADE_BUTTON lwc_tools_mainLABEL 潘多拉魔盒
END_OF_BEFOREMENU lwc_tools_mainBUTTON tkl_tools_button1LABEL 按钮1!BITMAP datumaxisBITMAP caseACTIONS BUTTON tkl_tools_button2LABEL 按钮2BITMAP revolutionACTIONSBUTTON tkl_tools_button3LABEL 按钮3BITMAP blockACTIONS BUTTON tkl_tools_button4LABEL 按钮4BITMAP line_wendptsACTIONSEND_OF_MENU
代码:具有二级子菜单
VERSION 120
EDIT UG_GATEWAY_MAIN_MENUBAR
!BEFORE之后,AFTER前
BEFORE UG_HELPCASCADE_BUTTON lwc_tools_mainLABEL 潘多拉魔盒
END_OF_BEFOREMENU lwc_tools_main!SEPARATORCASCADE_BUTTON NXEXAMPLELABEL NX官方例子解读SEPARATORCASCADE_BUTTON NXTREELABEL NX官方例子树案例CASCADE_BUTTON COMMONTOOLLABEL 常用工具BUTTON tkl_tools_button1LABEL 按钮1!BITMAP datumaxisBITMAP caseACTIONS BUTTON tkl_tools_button2LABEL 按钮2BITMAP revolutionACTIONSBUTTON tkl_tools_button3LABEL 按钮3BITMAP blockACTIONS BUTTON tkl_tools_button4LABEL 按钮4BITMAP line_wendptsACTIONSBUTTON tkl_tools_button5LABEL 两点圆柱工具BITMAP cylinderACTIONS Example_Twopoint_GreatCyl1BUTTON tkl_tools_button6LABEL 彩色球BITMAP sphereACTIONS nxopen_great_color_sphereBUTTON tkl_tools_button7LABEL 体收集器BITMAP select_bodyACTIONS bodyCollector_filterBUTTON tkl_tools_button8LABEL 高级过滤BITMAP mnt_filtering_modeACTIONS set_select_hole。。。。。。END_OF_MENUMENU NXEXAMPLEBUTTON NXOPEN_Example1LABEL NX官方装配导航器案例BITMAP appl_assembliesACTIONS NXOpen_Example1_AssemblyViewerEND_OF_MENUMENU NXTREEBUTTON NXOPEN_TREELISTDOMOLABEL NX官方树列表案例MESSAGE NX官方树列表案例提示语ACTIONS TreeListDemoTOGGLE_BUTTON NXOPEN_Example_CHAMFERLABEL NX官方解读案例1倒圆角!BITMAP blendACCELERATOR Alt+OVALUE ON!SENSITIVITY OFFSENSITIVITY ONACTIONS!ACTIONS NXOpen_Tree1_ChamferTOGGLE_BUTTON NXOPEN_Example_EDITLABEL NX官方解读案例2编辑节点MESSAGE NX官方解读案例2编辑节点提示语BITMAP blendACCELERATOR Alt+IVALUE ON!SENSITIVITY OFFSENSITIVITY ONACTIONS!ACTIONS NXOpen_EditTreeBUTTON NXOPEN_DRAGANDDROPTREELABEL NX树列表拖放ACTIONS NXOpen_DragAndDropTreeBUTTON NXOPEN_USERTREESLABEL NX树列表引用封装函数ACTIONS NXOpen_UserTreesEND_OF_MENUMENU COMMONTOOLBUTTON NXOPEN_SETTRANSLUCENCYLABEL 一键设置透明ACTIONS NXOpen_SetTranslucency。。。。。。END_OF_MENU
图片注解:
挂在帮助之前或者之后,同理也可以挂在视图之前或者之后。可以通过ug_main.men查看视图的ID。根据下图可知,视图为UG_VIEW。
2.2挂载菜单
2.2.1环境变量的设置
添加系统环境变量UGII_VENDOR_DIR;变量值:${UGII_BASE_DIR}\LWCTOOLS。
2.2.2设置显示模块
例如,在建模模块、加工模块和制图模块中分别显示。
在NX目录下,创建一个......\LWCTOOLS\Startup和Application文件夹,在Startup文件夹中创建.men文件,在Application分别创建建模模块、加工模块和制图模块的.men文件,具体详解见以下代码以及图片内容注解。
Application下的建模模块.men
VERSION 120
EDIT UG_GATEWAY_MAIN_MENUBAR
!BEFORE之后,AFTER前
BEFORE UG_HELPCASCADE_BUTTON lwc_tools_mainLABEL 潘多拉魔盒
END_OF_BEFOREMENU lwc_tools_main!SEPARATORCASCADE_BUTTON NXEXAMPLELABEL NX官方例子解读SEPARATORCASCADE_BUTTON NXTREELABEL NX官方例子树案例CASCADE_BUTTON COMMONTOOLLABEL 常用工具BUTTON tkl_tools_button1LABEL 按钮1!BITMAP datumaxisBITMAP caseACTIONS BUTTON tkl_tools_button2LABEL 按钮2BITMAP revolutionACTIONSBUTTON tkl_tools_button3LABEL 按钮3BITMAP blockACTIONS BUTTON tkl_tools_button4LABEL 按钮4BITMAP line_wendptsACTIONSBUTTON tkl_tools_button5LABEL 两点圆柱工具BITMAP cylinderACTIONS Example_Twopoint_GreatCyl1BUTTON tkl_tools_button6LABEL 彩色球BITMAP sphereACTIONS nxopen_great_color_sphereBUTTON tkl_tools_button7LABEL 体收集器BITMAP select_bodyACTIONS bodyCollector_filterBUTTON tkl_tools_button8LABEL 高级过滤BITMAP mnt_filtering_modeACTIONS set_select_hole。。。。。。END_OF_MENUMENU NXEXAMPLEBUTTON NXOPEN_Example1LABEL NX官方装配导航器案例BITMAP appl_assembliesACTIONS NXOpen_Example1_AssemblyViewerEND_OF_MENUMENU NXTREEBUTTON NXOPEN_TREELISTDOMOLABEL NX官方树列表案例MESSAGE NX官方树列表案例提示语ACTIONS TreeListDemoTOGGLE_BUTTON NXOPEN_Example_CHAMFERLABEL NX官方解读案例1倒圆角!BITMAP blendACCELERATOR Alt+OVALUE ON!SENSITIVITY OFFSENSITIVITY ONACTIONS!ACTIONS NXOpen_Tree1_ChamferTOGGLE_BUTTON NXOPEN_Example_EDITLABEL NX官方解读案例2编辑节点MESSAGE NX官方解读案例2编辑节点提示语BITMAP blendACCELERATOR Alt+IVALUE ON!SENSITIVITY OFFSENSITIVITY ONACTIONS!ACTIONS NXOpen_EditTreeBUTTON NXOPEN_DRAGANDDROPTREELABEL NX树列表拖放ACTIONS NXOpen_DragAndDropTreeBUTTON NXOPEN_USERTREESLABEL NX树列表引用封装函数ACTIONS NXOpen_UserTreesEND_OF_MENUMENU COMMONTOOLBUTTON NXOPEN_SETTRANSLUCENCYLABEL 一键设置透明ACTIONS NXOpen_SetTranslucency。。。。。。END_OF_MENU
Application下的加工模块.men
VERSION 121
EDIT UG_GATEWAY_MAIN_MENUBARAFTER UG_HELPCASCADE_BUTTON TKL_TOOLS_MENLABEL 潘多拉魔盒CAM
END_OF_AFTERMENU TKL_TOOLS_MENBUTTON CAM_ONTLABEL 加工导航器BITMAP machining_operationACTIONS CAM_UI_ONTBUTTON CAM_PROGRAMLABEL 创建程序组BITMAP cam_new_programACTIONS CAM_create_programBUTTON CAM_DELETELABEL 删除CAM对象BITMAP deleteACTIONS CAM_delete_objectBUTTON CAM_NCMTHDLABEL 创建加工方法BITMAP cam_new_methodACTIONS CAM_create_NCMTHDBUTTON CAM_NCGEOM