您的位置:网站首页 > UG教程下载

UG二次开发的过程与方法

时间:2010-11-15 10:01:36 来源:

  1 前言

  美国UGS公司的Unigraphics(UG)软件是一套优秀的以机械产品为主的CAD/CAE/CAM一体化软件,应用范围非常广泛,在引入国内不到十年的时间内,就拥有了几百家用户,其发展势头非常强劲。Unigraphics在提供了强大功能的同时,还具有Grade和User Function二种二次开发工具,Grade是一种类似于FORTRAN语言的开发工具,User Function是一种C或FORTRAN语言开发工具。用户在购买了Unigraphics软件后,针对自身产品的特点进行一些二次开发是必不可少的,对提高产品的设计效率,缩短产品设计周期,使设计符合国家标准等,具有重大意义。通常,用户需要针对自身产品建立必需的标准件参数化图库,建立行业标准件和通用件图库,针对产品特点做专门开发等,以提高设计效率和设计质量。

  用户二次开发的结果,最终要供他人使用,因此良好的交互界面是非常重要的。UG提供的User Tool工具可使用户的开发结果与UG的集成交互界面有机地结合起来,形成一个风格一致的统一界面,方便了用户的使用和操作。

  根据我们在UG上进行二次开发的经验,本文将系统介绍User Tool的使用过程和方法,详细介绍User Tool各种用户界面的定义格式,使拥有UG的用户在较短的时间内就能设计出比较好的用户界面。我所用的硬件平台为SGI Indigo2和SGI Indy,其操作系统为IRIX 5.3。

  2 在UG中调用二次开发程序

  用户二次开发的结果,在UG中统称为User Tool。Grade程序(.grx文件)可通过主菜单项File的菜单项Execute→Grip来直接执行,User Function程序可通过主菜单项File的菜单项Execute→User Function来直接执行。这种方法功能比较简单,一次只能执行一个GRIP或User Function程序,不能将由多个GRIP或User Function程序完成的一组功能集中到一块,而且用户必须确切知道要执行的GRIP或User Function程序所在的目录路径。实际上,UG提供了一个专门调用User Tool的交互接口,即在UG的主菜单中有一菜单项User Tools,用来调用二次开发的User Tool对话框。缺省的User Tools菜单有如下三个菜单项: Show CurrentHide Current Reload Default Show Current菜单项用于调用由环境变量UG_USER_TOOLS_FILE或菜单定义文件中的 DEFAULT选项指定的User Tool(对话框或工具条,.utd文件)。 Hide Current菜单项用于隐藏当前已经显示的User Tool。 Reload Default菜单项用于重新调用由环境变量UGII_USER_TOOLS_FILE或菜单定义文件中的DEFAULT选项指定的User Tool。 有了这一工具,用户可将由多个Grip或User Function程序构成的内容集成到一个U ser Tool对话框或工具条中,每一个程序由对话框或工具条中的一个图标(或一个按钮或一个任选项)来调用,使用起来就非常方便。 若用户开发的User Tool只是一个方面的内容(如"标准件"),用一个User Tool对话框或工具条即可实现,这时利用User Tools菜单的Show Current或Reload Default菜单项来调用就非常方便。 若用户开发的User Tool内容比较多,需要多个User Tool对话框或工具条来实现(如开发了"标准件"、"通用传动件"、"专用结构设计工具"三部分内容,用三个User Tool对话框或工具条来实现),这时可以重新定义User Tools菜单的内容。

  3 User Tools下拉菜单的定义

  User Tools菜单定义文件为.utd的文本文件,该文件的定义格式为: ! usrmenu.utd1997.7 DEFAULT/usr/people/zxy/usrtools/sta_part.utd LABEL Standard Parts USRT sta_part.utd LABEL Drive Parts USRT drv_part.utd 以符号"!"开头的是注解行,在菜单定义文件中不起作用。 DEFAULT关键词后面指定的参数是缺省的菜单定义文件名,也可通过环境参数UG_USE R_TOOLS_FILE来指定。进入UG后,用户可通过User Tools菜单中的Show Current或Relo ad Default菜单项来调用缺省的菜单定义文件。 后面以每两行定义一项菜单。LABEL关键词后面指定的参数是菜单项标题,该标题内容就显示在User Tools菜单中。 USRT关键词后面指定的参数是对应菜单项定义的文件标识符,该文件即是所谓的Us er Tool定义文件,用来对该项菜单要执行的动作进行定义。可以使用完整的文件名标识符,没指定路径时将使用环境变量UG_DEFAULT_USRT_DIR指定的目录路径。

  4 User Tool对话框的定义

  User Tool对话框定义文件是一个.utd的文本文件,由对话框标题(Title)、按钮(B utton)、图标(Icon)、列表框(List Box)等内容组成。标题部分由关键词TITLE开头,按钮部分由关键词BUTTONS开头,图标部分由关键词ICONS开头,列表框部分由关键词LIST 开头。标题部分是唯一的;按钮、图标、列表框部分可以有多段定义,每一段定义若干个按钮(或图标、或列表框),各段的排列顺序可任意,取决于设计者对各按钮、图标和对话框的排列外观。对话框的最后部分将自动出现OK、Apply、Cancel三个按钮和Auto Dismiss开关钮,以便对选定的内容(按钮、图标或列表框条目)进行确认或取消当前的操作。

  4.1 标题部分的定义

  标题部分定义的格式如下: TITLE name定义将显示在User Tool对话框标题行的文字,name可有可无VERSION 1 定义版本号 OPTION DISMISS ON|OFF定义Auto Dismiss状态,缺省为OFF。若为ON,则选择一项 (按钮、图标或列表框条目)后,就取消User Tool 其中大写部分为关键词,不能改变;其余部分可自行定义。以下类同。

  4.2 按钮部分的定义

  按钮部分定义的格式如下: BUTTONS 按钮部分定义开始 LABEL name按 钮部分标题行。name为字符串,最多127个字符。可省略 COLUMNS number 指定每一行排列按钮的个数以下每三行定义一个按钮 NAME name 按钮上显示的内容,name为字符串 TYPE fileType 指定激活按钮时所完成动作的类型 ACTION pathname 指定激活按钮时所调用的程序的路径和文件名激活按钮时所完成动作的类型有如下几种,分别由fileType定义: MACRO 调用一宏定义文件(.micro文件) UFUN调用一User Function程序 GRIP调用一GRIP程序(.grx文件) USRT调用一User Tool定义文件(.utd文件) 按钮的大小将由各按钮定义中name字符串的最大长度、每行排列按钮的个数以及对话框的总体宽度来决定。

  4.3 图标部分的定义

  图标部分定义的格式如下: ICONS图标部分定义开始 LABEL name图标部分标题行。name为字符串,最多127个字符。可省略 COLUMNS number指定每一行排列图标的个数以下每四行定义一个图标 NAME name当光标位于图标上时显示的文字,用于对图标的功能进行注解 BITMAP pathname指定图标所使用的图象文件的路径和文件名 TYPE fileType指定激活图标时所完成动作的类型,与按钮部分所用的类型一致 ACTION pathname指定激活图标时所执行的程序的路径和文件名 图标显示时所用的图象文件,可使用标准的X位图格式图象编辑程序来定义,如IRI X操作系统中即使用bitmap程序。定义图标位图时,应使用白色背景和黑色前景,不支持彩色。一般情况下,推荐使用36(36象素的位图块来定义图标,更小或更大尺寸的图标将影响整个UG操作界面的一致性。

  4.4 列表框部分的定义

  列表框部分定义的格式如下: LIST列表框部分定义开始 LABEL name列表框部分标题行。name为字符串,最多127个字符。可省略 SIZE number 指定列表框窗口的高度(行数或条目项数),数字非法时缺省为7以下每三行 定义一个列表框条目 NAME name指定显示在列表框中的条目文字 TYPE fileType指定选中该条目时所完成动作的类型,与按钮部分所用的类型一致 ACTION pathname指定选中该条目时所执行的程序的路径和文件名

  4.5 User Tool对话框定义实例

  以下是一个User Tool对话框定义实例,用于定义一组标准件图库。 TITLE Hexagonal Head Bolts标题部分定义开始 VERSION 1 OPTION TOOLBAR这是一个User Tool工具条 OPTION DISMISS OFF ICONS图标部分的第一段定义 COLUMNS 4每行排列四个图标 NAME Hex Head Locking (GB838-88)第一段第一个图标的功能定义,图标名BITMAP gb8 38.ubm该图标对应的位图文件名,其缺省路径由环境变量来设置 TYPE GRIP激活该图标时,将调用一GRIP程序 ACTION sta_part/screw/gb838.grx 激活该图标时要调用的GRIP程序的路径和文件名NAME Knurled Locking (GB839-88) 第一段第二个图标的功能定义 BITMAP gb839.ubm TYPE GRIP ACTION sta_part/screw/gb839.grx …… ICONS图标部分的第二段定义 COLUMNS 4 NAME Round-head Cross Tapping (GB845-85) 第二段第一个图标的功能定义 BITMAP gb845.ubm TYPE GRIP ACTION sta_part/screw/gb845.grx NAME Countersunk-head Cross Tapping (GB846-85) BITMAP gb846.ubm TYPE GRIP ACTION sta_part/screw/gb846.grx …… BUTTONS按钮部分定义开始 LABEL Basic Options按钮部分标题 COLUMNS 4每行排列四个按钮 NAME Back第一个按钮功能定义,按钮显示文字内容 TYPE USRT激活按钮,将调用一User Tool定义文件 ACTION sta_part.utd 激活按钮时要调用的User Tool文件的路径和文件名 …… 该实例文件实现的User Tool工具条

  5 User Tool工具条的定义 ,

  User Tool工具条是一种特殊的User Tool,其格式与User Tool对话框基本一致。U ser Tool工具条中可出现按钮和图标,但一般不包含对话框,因此其尺寸通常比较小,占有较小的屏幕空间。User Tool工具条的标题部分与对话框的标题部分有所区别,其格式如下: TITLE name VERSION 1 OPTION TOOLBAR该行表示这是一个User Tool工具条,以便与User Tool对话框相区别 OPTION DISSMIS ON|OFF 其它部分定义的格式与User Tool对话框的定义一致。

  6 工作环境参数设置

  二次开发的内容主要是做一些共用性的工作,开发的结果将以相应的可执行文件、数据文件等存放于硬盘的某个目录或多个目录下。这些结果必须为具有指定访问权限的各个用户所共用,即在调用相应的程序模块时,系统应能查找到相应的文件。利用User Tool开发UG应用模块时,必须设置几个有关的环境变量,用来指定程序执行时的有关路径。这些环境变量是: UG_USER_TOOLS_FILE指定缺省的User Tool定义文件(.utd文件) UG_USER_TOOLS_MENU指定User Tools下拉菜单的菜单定义文件(.utd文件) UG_USER_TOOLS_BITMAP_PATH指定图标位图文件的路径(.ubm文件) UG_DEFAULT_USRT_DIR指定User Tool文件(.utd文件)的缺省目录 UG_INITIAL_GRIP_DIR指定User Tool所用GRIP可执行程序(.grx文件)的缺省目录 UG_INITIAL_UFUN_DIR指定User Tool所用User Function可执行程序的缺省目录 UG_INITIAL_MACRO_DIR 指定User Tool所用宏文件(.micro文件)的缺省目录 工作环境参数的设置,可用两种方法来实现。一种方法是利用操作系统的setenv命令,对各个环境参数进行设置。另一种方法是将以上环境参数增加在操作系统的用户注册文件.login 的后面,其格式为: setenv UG_USER_TOOLS_MENU /usr/people/zxy/usrtools/usermenu.utd setenv UG_USER_TOOLS_FILE /usr/people/zxy/usrtools/stadpart.utd setenv UG_USER_TOOLS_BITMAP_PATH /usr/people/zxy/usrtools/bitmap/ setenv UG_DEFAULT_USRT_DIR /usr/people/zxy/usrtools/ setenv UG_INITIAL_GRIP_DIR /usr/people/zxy/usrtools/ 工作环境参数的设置,应由系统管理员完成。一旦设置好后,具有指定访问权限的用户就可以调用这些二次开发的User Tool模块了。