UG NX二次开发菜单工具条的制作
####UG NX菜单工具条的制作1
1. 基础知识
- 菜单利用MenuScript脚本语言进行编辑
- 菜单脚本文件的扩展名为:*.men(文本文件)
- MenuScript还可以定制工具条,其脚本文件扩展名为:*.tbr(文本文件)
- 还有另外一种是Ribbonbar
- 自定义UG菜单的两种方法
- Add-on菜单文件
对于与具体应用模式无关的菜单文件只需将其放置在startup 文件夹下;
与具体应用模式(如装配应用模式)相关的菜单文件放置在相应的application 文件夹下;
通过使用MENU_FILES 声明,即可将菜单名与应用模式按钮相关联;
在点击该应用模式按钮后即可自动加载与其关联的菜单文件。- 复制和编辑系统菜单文件,放在某特定文件加下,覆盖原来的。
复制和编辑系统菜单文件方法不推荐使用,这主要是由于其编辑起来相当复杂,特别
是对于像ug_main.men 这样的大型菜单文件。
- 将startup和application所在文件夹的路径注册到custom_dirs.dat 文件中,启动UG 可以看到定制的下拉菜单
- Example:
D:\Workspace\NX_SD\OPEN
- 该文件一般路径为:
D:\Program Files\Siemens\NX 11.0\UGII\menus\custom_dirs.dat
#####2. 定制菜单栏和工具栏一般步骤 2
- 新建一个文件夹,在里面新建startup文件夹和application文件夹
- 找到
custom_dirs.dat
文件,填入存放 - 在startup下,新建一个文本文件,重命名,扩展名
.men
。在application下,放入二次开发生成的.dll
文件。 - UG NX起动时将搜索.men文件,并根据它来添加菜单;
- 其中VERSION是版本,BEFORE UG_HELP是指菜单在HELP之前,CASCADE_BUTTON是给主菜单起的一个名字,LABEL是菜单的显示名称,MENU与CASCADE_BUTTON相呼应,BUTTON是给子菜单起的一个名字,
ACTIONS
指定了这个菜单将执行application文件夹下的哪个程序!
VERSION 10
EDIT UG_GATEWAY_MAIN_MENUBAR
BEFORE UG_HELP
CASCADE_BUTTON MY_MENU
LABEL 我的菜单 END_OF_BEFORE
MENU MY_MENU
! 子菜单1
BUTTON MENU_HELLO_WORLD
LABEL HELLO WORLD!
ACTIONS helloworld.dll
END_OF_MENU
- 起动UG NX,可以看到菜单栏中出现了自定义菜单,单击菜单,指定的程序将被执行。
- 自定义工具栏的制作与此类似,只不过是在startup文件夹下建立文件的扩展名是
.tbr
,文件内容也不同。(BUTTON
是给按钮起一个名字,LABEL
是鼠标放上去的显示名称,BITMAP
是按钮的图案,ACTION
指定了这个菜单将执行哪个程序,注意必须是绝对路径!)
TITLE MY_TOOLBAR
VERSION 160
DOCK TOP
BUTTON MY_BUTTON
LABEL HelloWorld
BITMAP mybitmap.bmp
ACTION D:\TEST\startup\helloworld.dll
- 从NX9开始NX的界面使用了微软目前最新的对话框布局格式,Ribbon界面,除了本身的Ribbon的功能外,NX也额外的增强了Ribbon界面的功能。目前可以进行定义的菜单种类包括groups, galleries, drop-down ,对应的文件后缀如下:
|Extension|UI object|
|—|---|
|.tbr|Toolbar|
|.grb|Group|
|.gly|Gallery|
|.ddb|Drop-down|
|.rtb|Ribbon tab|
|.csb|Cascade|
|.abr|Attachment| - RIBBON菜单的加载Ribbon界面的客户化文件和我们的菜单或者工具条.men,.trb文件一样,你可以放置在application目录,startup目录或者application\profiles目录下。具体的区别如下:
- Startup目录:这个文件夹下面的内容,是NX启动后,立即显示的类型,也就是说你的菜单会在NX启动后,立即全部展现出来。
- Application目录:和startup区别在于,只有在特定的模块下,才会显示,通常可以通过定义men文件或者通过API函数UF_UI_create_toolbar, UF_UI_create_ribbon进行定义。
- application\profiles目录:可以参考NX目录下UGII\menus\profiles目录下的定义
- 对应的模块目录文件夹下:这种情况,根据你当前的模块去自动加载和卸载
- ALL:和startup类似,全部加载
- reference:在模块下的特殊子模块下加载,需要在.dtx文件里面定义
- 另外,还有更简单的方法来控制RIBBON界面在不同的模块显示情况,那就是角色文件mtx,大家可以参考PLM之家NX工具包的V1.1.0版本,在这里startup目录下面有mtx格式的文件,这种文件就是,大家可以把所有的ribbon文件全部放置在startup目录下,启动nx后,在ctrl+1编辑菜单的模式下,在不同的模块下自己去取消掉不需要的菜单,比如PLM之家NX插件下面的创建程序组功能,这个功能只能在加工环境下使用,因此,我们可以把这个工具条在制图,建模下面移除掉,更改完成后,将mtx文件保存下来,放在startup目录下,这样NX加载的时候会自动的去根据mtx来加载菜单!
-
关于Ribbon界面上关键字的定义
a. RIBBON_STYLE关键字: 默认情况下是大图标LARGE_IMAGE
ALWAYS_EXTRA_LARGE_IMAGE_WITHOUT_TEXT
EXTRA_LARGE_IMAGE_WITHOUT_TEXT
ALWAYS_LARGE_IMAGE_WITHOUT_TEXT
LARGE_IMAGE_WITHOUT_TEXT
ALWAYS_LARGE_IMAGE
LARGE_IMAGE
ALWAYS_MEDIUM_IMAGE_AND_TEXT
MEDIUM_IMAGE_AND_TEXT
MEDIUM_IMAGE
ALWAYS_SMALL_IMAGE_AND_TEXT
SMALL_IMAGE_AND_TEXT
SMALL_IMAGE
b. Group关键字的定义:
关键字是Group。
创建新的Group,使用BEGIN_GROUP,END_GROUP.
GROUP_STYLE 可以用DEFAULT和FLOWLAYOUT。
4. Create a customized toolbar with a TBR file5
- Create a .tbr file for the new toolbar.
- You can copy an existing .tbr file, such as the ug_standard.tbr file (in the UGII_BASE_DIR/UGII/menus directory), and modify the copied file to suit your needs.
- Complete the header definition section.
- Complete the contents of toolbar section.
- (Optional) Specify bitmaps for one or more toolbar buttons.
- (Optional) Add menus to the toolbar.
- (Optional) Create custom buttons to show and hide toolbar sets.
- Load the toolbar at startup or during an NX session.
#####5. Tips
- 可以现在
.men
文件中定义BUTTON
的相关属性,然后再在.tbr
、.rtb
等文件里面指定预定义过的BUTTON按钮,然后自动加载; - The platform must be in all upper case letters as shown;
- 可以在官方帮助文档找到很详细的菜单定制文档;