基于UG/Open二次开发平台的Ribbon界面设计探讨
2021-02-15张作胜朱振国陈传胜
张作胜,朱振国,陈传胜
(安徽职业技术学院 机械工程学院,安徽 合肥 230011)
0 引言
Ribbon是一种以面板及标签页为架构的用户界面(user interface),最早出现在 Microsoft Office2007中。这种界面与传统菜单式界面相比,整合了菜单和工具栏,将功能有组织地进行布局。Ribbon除了让用户更容易找到常用的、重要的功能外,还有外观漂亮、功能直观、操作简洁方便等优点。
Siemens UG NX软件是面向产品全生命周期的大型软件,从UG NX9.0起,该软件也开始使用Ribbon界面,相比之前的伸缩下拉菜单或工具条图标,横铺式的菜单更直观且与触摸操作兼容性更好。
为了满足不同类型用户对UG NX软件的个性化定制需求,UG NX软件提供了多种高效的开发工具实现在其平台上的二次开发,二次开发的主要内容涉及用户界面开发及功能开发2个方面[1]。菜单和Ribbon工具条是用户界面的重要组成部分,也是构建模块框架进行二次开发工作的基础,大多数二次开发的应用模块都要通过菜单或工具条与UG平台集成,方便用户调用[2]。
基于UG/Open平台的二次开发,已有众多文献论述,如白海滨等基于NX二次开发的三维弹簧快速设计方法[3]、唐博文等基于STEP的电子束数模特征识别与再建CAD二次开发系统[4]和赵仁兵等基于UnigraphicsNX二次开发功能的批量后置软件[5]等,这些都侧重于二次开发程序的功能设计,对于用户界面开发尤其是Ribbon工具条鲜有论述。
以下基于UG NX12开发平台,应用UG/Open技术框架下的Menuscript编程语言,研究UG NX二次开发中Ribbon工具条的定制与设计技术,对于开发具有良好UI界面的二次开发程序有重要意义。
1 UG NX12的Ribbon界面实现方法
1.1 Ribbon界面的层级
在UG NX12中新建或打开一个部件,此时软件默认处于建模环境。功能区在绘图区上方,包括主页、装配、曲线和视图等选项卡,每个选项卡包含一组或几组面板,每个面板上一般又包含多个工具按钮,UG NX的Ribbon界面如图1所示。
图1 UG NX12 Ribbon界面
UG NX Ribbon界面分为3个层级,分别为选项卡(Tab)、面板(Panel)和元素(Button或 Combo等)[6],可以将这3个层级类比成一级、二级与三级菜单。
(1)选项卡。多个作用相近的命令组合成为一个选项卡,也可称为分类。例如在UG NX的Ribbon界面中,视图相关的命令就放在“视图”这个页面中。在形式上,“选项卡”表现为Ribbon面板上的一个Tab页面。
(2)面板。“选项卡”的下一个层级是“面板”,也是若干个命令的组合,只是同一面板内的命令联系会更紧密。“选项卡”包含“面板”,“面板”又包含下一个层级的“元素”。如图1中“可见性”即为一个面板,其中包含“显示隐藏”和“图层”等多个功能相近的命令按钮。
(3)元素。“元素”是最基本的命令,一般指命令按钮,它们被不同的“面板”所包含,主要完成具体的交互任务。
1.2 Ribbon界面实现思路
UG/Open二次开发平台提供的界面开发工具主要有Block UIStyler和Menuscript两种方式。其中Block UIStyler(块UI样式编辑器)是NX6.0版本之后提供的工具,代替之前的UIStyler,具有可视化功能,可帮助用户快速构建与NX用户界面一致的对话框[7]。而Menuscript技术主要用来定制NX二次开发程序的菜单[8],除此之外,Menuscript技术还可以定制工具条和Ribbon工具条,其脚本文件扩展名分别为:*.tbr和*.rtb。
1.2.1 Menuscript技术环境搭建
利用UGII_VENDOR_DIR环境变量指定二次开发程序及其菜单的放置位置,以基于NX平台二次开发的浇注系统为例,将环境变量指向D:GatingsystemTools,该目录下建有startup和application两个子目录。
Ribbon界面的客户化文件和菜单或工具条*.men、*.trb文件一样,可以放置在application目录、startup目录或applicationprofiles目录下,放在不同位置有如下区别。
(1)startup目录:如果放置在这个文件夹下面,NX启动后会立即显示该Ribbon界面工具条,即Ribbon工具条会在NX启动后,立即全部展现。
(2)application目录:只有在特定的模块下,Ribbon工具条才会显示,通常可以通过定义men文件或通过API函数UF_UI_create_ribbon进行定义。
(3)applicationprofiles目录:可以参考NX安装目录UGIImenusprofiles中对应的模块目录文件夹,可根据软件当前模块自动加载和卸载Ribbon工具条。比如Ribbon工具条文件放在UG_APP_MODELING目录下,只会在建模环境下才会加载。
1.2.2 Ribbon工具条编程语法
使用Menuscript技术创建菜单、工具条和Ribbon工具条的编程语法略有不同,此处着重探讨Ribbon工具条的编程设计方法。在前期完成NX二次开发程序浇注系统的菜单编程的基础上,得到菜单文件JZ_main.men。该文件放置在startup目录,位图等相关资源放入application目录下,其简单Ribbon工具条代码如下:
启动UG NX12,新建或打开一个部件,进入建模环境,可看到浇注系统选项卡已经出现在NX界面,如图2所示。
图2 浇注系统简单Ribbon工具条
从图2可看出,该Ribbon界面只有选项卡和元素2个层级,可以使用GROUP关键字添加面板这一层级。其具体用法是,在需要放置在同一面板的命令按钮代码之前和之后分别添加“BEGIN_GROUP XX”和“END_GROUP”,其中“XX”代表该面板名称。图3所示是添加了GROUP关键字的Ribbon界面。
图3 添加了GROUP关键字的Ribbon工具条
除了GROUP关键字外,UG/Menuscript还为Ribbon工具条提供了用于自定义UI样式的关键字,部分摘录如表1所示。
表1 部分自定义Ribbon工具条的关键字
续 表
可以直接在*.rtb文件中使用GROUP、CASCADE、COLLAPSED等关键字,一般情况下,设计者更倾向于把不同风格的UI制作成不同格式的文件,如*.ddb文件(可变换图标的下拉式按钮)、*.csb文件(不会变换图标的下拉式按钮)、*.gly(galley库样式)文件以及*.grb文件(group文件)等。
1.3 二次开发浇注系统Ribbon界面示例
现在已经完成浇注系统的NX二次开发,为进一步实现图4所示的Ribbon界面,设计步骤如下。
(1)新建一个 Ribbon工具条文件(rbn_jzxi‐tongcs.rtb)放在UG_APP_MODELING目录下,以保证在建模环境下才出现此浇注系统Ribbon界面。其代码如下:
(2)在UG_APP_MODELING目录下创建rib‐bon_group1_jz.grb文件,其部分关键代码如下:
BUTTON JZ_LENG_Z//创建Z形冷料穴命令按钮
RIBBON_STYLELARGE_IMAGE_WITHOUT_TEXT//指明其形式为不带文字大图标
图4 浇注系统Ribbon界面
BUTTON JZ_LENG_ZHUI//创建锥形冷料穴命令按钮
RIBBON_STYLELARGE_IMAGE_WITHOUT_TEXT//指明其形式为不带文字大图标
BUTTON JZ_LENG_HUAN//创建环形冷料穴命令按钮
RIBBON_STYLELARGE_IMAGE_WITHOUT_TEXT//指明其形式为不带文字大图标
(3)继续创建ribbon_gallery1_jz.gly库文件,其部分关键代码如下:
COLUMN_IN_RIBBON 2//指明RIBBON界面出现2列
COLUMN_IN_POPUP 2//指明POPUP时出现2列
GALLERY_STYLE SMALL_IMAGE_AND_TEXT//指明其形式为带文字小图标BEGIN_GALLERY分流道//开始创建分流道库
BUTTON JZ_YUAN//创建圆形分流道命令按钮
BUTTON JZ_TI//创建梯形分流道命令按钮
BUTTON JZ_U//创建U形分流道命令按钮
BUTTON JZ_BAN//创建半圆形分流道命令按钮
BUTTON JZ_JU//创建矩形分流道命令按钮
END_GALLERY//分流道库创建结束
(4)再建ribbon_group2_jz.grb文件,其部分关键代码如下:
BUTTON JZ_CE//创建侧浇口命令按钮
RIBBON_STYLE LARGE_IMAGE_AND_TEXT//指明其形式为带文字大图标
BUTTON JZ_FAN//创建扇形浇口命令按钮
RIBBON_STYLE SMALL_IMAGE_AND_TEXT//指明其形式为带文字小图标
BUTTON JZ_POINT//创建点浇口命令按钮
RIBBON_STYLE SMALL_IMAGE_AND_TEXT//指明其形式为带文字小图标
BUTTON JZ_QIAN//创建潜伏式浇口命令按钮
RIBBON_STYLE SMALL_IMAGE_AND_TEXT//指明其形式为带文字小图标
(5)最后创建ribbon_cascade_jz.csb文件,其部分关键代码如下:
2 结束语
通过对UG/Open二次开发平台Menuscript技术设计Ribbon风格界面的分析和探讨,介绍了Ribbon界面实现的方法、步骤,并通过基于NX二次开发的浇注系统Ribbon界面的设计,实现了不同风格样式的Ribbon界面。以上提出的Ribbon界面UI设计方法适用于各种基于UG NX二次开发的Ribbon工具条定制,对NX二次开发技术人员具有一定的参考意义。