基于UG二次开发的直齿、斜齿圆柱齿轮及锥齿轮的参数化建模 下载本文

基于UG二次开发的直齿、斜齿圆柱齿轮及锥齿轮的参数化建模

Script用于菜单的开发。 2.2.5 User Tools工具

UG软件为用户提供了一个调用二次开发结果的交互式接口:User Tools。

它的功能是生成弹出式对话框或工具条,其界面风格与UG界面风格一致。通过执行对话框或工具条,操作相应的控件就可运行菜单文件、宏文件、UG/Open GRIP程序、UG/Open API程序和其他二次开发文件。例如,执行齿轮生成的程序集,可以用User Tools工具产生两个对话框分别为直齿轮和斜齿轮,然后在相应的对话框上进行操作就生成相应种类的齿轮。通过编写对话框定义文件(*.utd)来实现User Tool工具的功能。编写文件完成以后,在UG 中执行Tools—Customize—User Tools—Load.选择所编写的*.utd文件即可弹出需要的对话框或工具条。*.utd这个文件是文本文件,可用 Windows中的记事本进行编写和编辑。一种比较简单的实现方法:拷贝UG中的模板文件Usertoo1.utd到UG启动目录下,然后编辑模板文件,实现所需要的功能。在以前较早版本中例如V13,运用User Tools工具必须编写两个文件:菜单定义文件(*.utm)和对话框定义文件(*.utd),然后通过执行菜单项弹出相应的对话框或工具条。现在,较高的UG版本已经省略产生菜单这一步,操作同上所述。在UG 界面中应用File— Execute UG/Open菜单执行UG/Open API程序或UG/Open GRIP程序,操作一次只能执行一个程序,而且必须找到程序所在的路径。若利用User Tools这个工具,用户可以将多个GRIP或API函数所编写的程序集成到一个User Tools对话框或者工具条中,一个程序对应一个控件,通过操作控件来调用程序,使用起来就非常方便。

9

学士学位论文

第三章 二次开发方案的选择

3.1可行方案

UG软件为用户提供的二次开发工具不但可以独立使用,而且可以相互调用其它工具开发的结果,这就大大扩展了工具本身所具有的功能,方便用户进行二次开发。它们之间的关系如下附图所示:Menu Script所开发的菜单可以与User Tools开发的对话框相互调用;Menu Script所开发的菜单与User Tools开发的对话框可以调用UI Styler开发的对话框;Menu Script、User Tools和UI Styler开发的对话框均可以调用GRIP程序和API程序。GRIP程序和API程序之间也可以相互调用。另外,使用UG二次开发工具必须要设置相应的环境变量,这样系统才能找到这些开发文件,执行相应的程序。

MenuScript UIStyler User Tools GRIP API

图3-1 二次开发工具关系图

本课题的目的是以UG为平台,使用UG二次开发工具,实现齿轮的参数

化设计。在UG界面中就是实现在对话框中输入齿轮的各个参数,确定后UG系统自动生成对应的实体模型。要达到设计要求,首先必须自定义一个菜单,制作相对应的对话框,使设计者能调用对应的对话框并输入所需齿轮的参数。之后更重要的是编写一定的程序,程序的作用是读取对话框中的参数并自动生

10

基于UG二次开发的直齿、斜齿圆柱齿轮及锥齿轮的参数化建模

成所需的实体模型。通过对UG系统中各个二次开发工具的性能和特点的分析,要实现设计要求有以下几种方案:

(1)在菜单和对话框的基础上使用GRIP语言编写生成齿轮实体的程序。

由二次开发工具之间的关系我们知道,UG对话框可以调用GRIP程序。只要能编写出一个生成齿轮实体的程序,我们就可以用编制好的对话框调用该程序,生成齿轮实体,满足设计要求。在UG/Open GRIP 工具中中拥有丰富的函数,可实现几何体的生成、数据的存取和分析、变换等一系列功能。因此,使用GRIP完全能编写出生成齿轮实体程序,程序编写好后使用User Tool工具对程序进行编译连接,最后生成可被对话框调用的可执行程序。将可执行程序放在对应的文件夹里就可实现对话框对程序的调用,执行程序,满足设计要求。

(2)在菜单和对话框的基础上使用API语言编写生成齿轮实体的程序。同

样,对话框也能实现对API程序的调用。只要能编写出实现齿轮建模的API程序,就能实现设计要求。API与GRIP一样,也具有丰富的函数。运用该语言可以实现对部件保存、打开等基本操作、对表达式的操作、装配体操作、工程图的生成和控制等功能,可以满足生成齿轮实体的程序的编写。此外,API语言借助C++来编写程序,借助C++强大的编程功能,编写API程序比GRIP更加灵活、更加的简单使用,还能满足更多的编程要求。在C++中编写好相应的程序后编译程序,将生成的可执行程序(.dll)放在对应的文件夹下,就可以实现对话框对程序的调用和执行,满足设计要求。

(3)基于三维模型的参数化程序设计。该方法采用三维模型与程序控制相

结合的方式,在创建好三维模型的基础上,根据部件的设计要求建立一组可以完全控制三维模型形状和大小的设计参数。参数化程序针对该部件的设计参数进行编程,实现设计参数的查询、修改,根据新的参数值更新模型从而实现设计变更。其中程序的编写是使用API语言的表达式功能。在本课题中,采用这种方案具体方法是先新建一个部件,在建模模块下写好表达式,然后使用表达式绘出齿轮的三维实体,并确保实体模型应随着表达式的值变化而变化。建好模型后,编写菜单和对话框,然后在C++上用API语言进行编程,程序应把对话框和模型联系起来,将对话框中输入的值传递到模型的表达式中,并更新程

11

学士学位论文

序。这样,当在对话框中输入齿轮的设计参数后,运行程序,原来的齿轮部件就会按新的表达式数据重生成模型,这样就得到了设计所需要的齿轮实体模型。将新生成的部件另存,保留原部件,这样就可以随时生成需要的齿轮了。

UG二次开发工具的功能非常强大,要实现本课题目的应还有其他方案,

在这里只列举了这三个常用方案。

3.2 方案选择

比较上述三个方案,有一个共同点就是都使用了菜单技术和对话框技术。

这是为了在设计齿轮时设计者能在UG界面下直接输入对应的参数,使该模块更加直观,方便设计者使用。这三个方案中,前两个都是使用编写程序来绘制齿轮实体,程序比较复杂;最后一个是建立模型后将对话框中数值传递到表达式,程序较简单。齿轮是较复杂的实体部件,精度要求也比较高,要创建齿轮实体比较麻烦。前两种方案中,都是用程序来编写整个齿轮实体创建过程,这要涉及到的函数非常多,程序烦琐,出现错误时不容易修改和维护。此外,在画齿轮轮廓过程中需要修剪、变换许多曲线,这在程序中很难做到。如果要使用前两种方案,需要深入学习GRIP和API这两种语言,需要花费很多时间。而第三种方案是直接在UG界面上画实体模型,可以直接对各种特征进行编辑、修改曲线,相对于前两种方案来说更直观、更容易。不过要注意的是在第三种方案中,在画齿轮实体过程中要注意应保证所画出的实体模型应能随着表达式中的值的变化而变化。不过在UG界面下比程序中绘制参数化齿轮模型要直观、容易的多。在编写程序方面,最后一种方案只需写一些数值的传递的程序,使用的函数少,程序简单,易于发现错误和修改调试。同时,如果能够实现,前两种方案所得的齿轮设计模块使用起来要比第三种方案方便。由于毕业设计时间不长,而且之前没有接触过有关二次开发的知识,在短时间内无法深入学习GRIP和API的知识,前两种方案很难实现。第三种方案最为简单,也最有可能在规定时间内完成设计任务,达到设计目的。综合比较这三种方案,最终选择第三种方案作为本次设计方案。

12