基于ug二次开发工具的直齿圆柱齿轮、斜齿轮、直齿锥齿轮的参数化设计内容摘要:

以相互调用其它 工具开发的结果,这就大大扩展了工具本身所具有的功能,方便用户进行二次开发。 它们之间的关系如下附图所示: Menu Script 所开发的菜单可以与User Tools 开发的对话框相互调用; Menu Script 所开发的菜单与 User Tools 开发的对话框可以调用 UI Styler 开发的对话框; Menu Script、 User Tools 和 UI Styler 开发的对话框均可以调用 GRIP 程序和 API 程序。 GRIP 程序和 API 程序之间也可以相互调用。 另外,使用 UG 二次开发工具必须要设置相应的环境变量,这样系统才能 找到这些开发文件,执行相应的程序。 图 31 二次开发工具关系图 本课题的目的是以 UG 为平台,使用 UG 二次开发工具,实现齿轮的参数化设计。 在 UG 界面中就是实现在对话框中输入齿轮的各个参数,确定后 UG系统自动生成对应的实体模型。 要达到设计要求,首先必须自定义一个菜单,制作相对应的对话框,使设计者能调用对应的对话框并输入所需齿轮的参数。 之后更重要的是编写一定的程序,程序的作用是读取对话框中的参数并自动生UIStyler Dialog User Tools API GRIP MenuScript 成所需的实体模型。 通过对 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 语言进行编程,程序应把对话框和模型联系起来,将对话框中输入的值传递到模型的表达式中,并更新程 序。 这样,当在对话框中输入齿轮的设计参数后,运行程序,原来的齿轮部件就会按新的表达式数据重生成模型,这样就得到了设计所需要的齿轮实体模型。 将新生成的部件另存,保留原部件,这样就可以随时生成需 要的齿轮了。 UG 二次开发工具的功能非常强大,要实现本课题目的应还有其他方案,在这里只列举了这三个常用方案。 3. 2 方案选择 比较上述三个方案,有一个共同点就是都使用了菜单技术和对话框技术。 这是为了在设计齿轮时设计者能在 UG 界面下直接输入对应的参数,使该模块更加直观,方便设计者使用。 这三个方案中,前两个都是使用编写程序来绘制齿轮实体,程序比较复杂;最后一个是建立模型后将对话框中数值传递到表达式,程序较简单。 齿轮是较复杂的实体部件,精度要求也比较高,要创建齿轮实体比较麻烦。 前两种方案中,都是用程序来 编写整个齿轮实体创建过程,这要涉及到的函数非常多,程序烦琐,出现错误时不容易修改和维护。 此外,在画齿轮轮廓过程中需要修剪、变换许多曲线,这在程序中很难做到。 如果要使用前两种方案,需要深入学习 GRIP 和 API 这两种语言,需要花费很多时间。 而第三种方案是直接在 UG 界面上画实体模型,可以直接对各种特征进行编辑、修改曲线,相对于前两种方案来说更直观、更容易。 不过要注意的是在第三种方案中,在画齿轮实体过程中要注意应保证所画出的实体模型应能随着表达式中的值的变化而变化。 不过在 UG 界面下比程序中绘制参数化齿轮模型要直观、容易的多。 在编写程序方面,最后一种方案只需写一些数值的传递的程序,使用的函数少,程序简单,易于发现错误和修改调试。 同时,如果能够实现,前两种方案所得的齿轮设计模块使用起来要比第三种方案方便。 由于毕业设计时间不长,而且之前没有接触过有关二次开发的知识,在短时间内无法深入学习GRIP 和 API 的知识,前两种方案很难实现。 第三种方案最为简单,也最有可能在规定时间内完成设计任务,达到设计目的。 综合比较这三种方案,最终选择第三种方案作为本次设计方案。 3. 3 利用二次开发工具制作系统菜单 设置系统环境变量 虽然各种菜单的制作方法 ,在结构、内容和开发过程上有一定的差异 ,但是在整个构建过程中有其共性和相同的部分 ,就是菜单制作之前应先设置系统环境变量。 设置了系统环境变量, UG 才能找到开发内容所在目录。 系统环境变量设置方法有以下两种: 方法一:打开 $UG_BASE_DIR/ugii 目录下的 文件 (该文件包含 Unigraphics 系统的全部环境变量及系统路径定义 ) ,找到下面两条语句:UG_VENDOR_DIR=${UGA LLIANCE_DIR}/vendor 和 UG_ SITE_DIR= ${UGALLIANCE_DIR}/site。 将它们前面的注释符号 “”删除,以使它们起作用。 这两条语句其实指明了供用户放置二次开发文件的目录。 在 Unigraphics 初始安装时,它们不起作用,当删除了 “”号后, UG/OPEN 才能从这些目录下得到二次开 发的功 能扩 展。 这 两个 目录的 功能和 结构 是完全 相同 的,下 面都有startup 和 application 两个目录。 其中 startup 存放 Unigraphics 启动时需载入的动态共享库 (以 ufsta()为入口的 .dl1)及菜单脚本文件 (.men); application 目录存放具体的功能扩展程序文件 (如应用模块的功能扩展共享库 ( .dl1) 及对话框资源文件 ( .dlg))。 Unigraphics 下设置的这两个目录是为不同等级的开发者提供的, vendor 目录下放置 Unigraphics 指定的开发商的二次产品, site 目录下存放其余开发者的产品。 因此 vendor 目录下同类内容的文件要比 site 目录下的优先载入。 此外,在 文件中还有一条语句,是用来设置用户自己二次开发内容的目录: UG_USER_DIR =${HOME},同样将其前面的 “”号删除,并在 其后使用用户自己的目录替换 ${HOME}。 例如, UG_USER_DIR=E: \ugapi,在此目录下也必须建立目录 startup 和 application,存放的内容和 site 及 vendor下的 startup、 application 一样 ,不过它的优先级更低 [ 13]。 方 法 二 : 打 开 UG 安装目录 UGⅡ _BASE_DIR\ UGⅡ \menus 下的(用记事本打开),在文件最后添加开发的文件夹的绝对路径。 在添加的文件里建立两个子目录: startup 和 application ,分别用来放 置开发的各种文本文件( .men 文件)、动态库文件和对话框文件。 上述两种方法中第二种方法较简单方便,本课题采用第二种方法。 打开UG 安装目录 UGⅡ _BASE_DIR\ UGⅡ \menus 下的 ,在文件最后添加开发的文件夹的绝对路径 E:\gearsopen。 在 E:\gearsopen 文件夹下建立startup 和 application 两个子目录。 制作菜单 本课题涉及到三个齿轮的参数化设计,因此应在一个主菜单下建立三个子菜单。 在 E:\gearsopen\startup 下建立文件 ,代码如下: VERSION 120 //菜单脚本文件的版本信息 EDIT UG_GATEWAY_MAIN_MENUBAR //编辑 UG 系统菜单文件 BEFORE UG_HELP //定义菜单位于 “帮助 ”菜单前 CASCADE_BUTTON GEARS //主菜单按钮名 LABEL 齿轮参数化设计 //主菜单标题 END_OF_BEFORE //结束 BEFORE 定义 MENU GEARS //定义主菜单 BUTTON SPUR_GEAR //第一个子菜单名 LABEL 直齿圆柱齿轮 //第一个子菜单标题 ACTIONS SPUR_GEAR //第一个子菜单的 ID BUTTON HELICAL_GEAR //第二个子菜单名 LABEL 斜齿轮 //第二个子菜单标题 ACTIONS HELICAL_GEAR //第二个子菜单的 ID BUTTON STRAIGHT_BEVEL_GEAR //第三个子菜单名 LABEL 直齿锥齿轮 //第三个子菜单标题 ACTIONS STRAIGHT_BEVEL_GEAR //第三个子菜单的 ID END_OF_MENU //结束菜单的定义 运行结果如图 32 所示: 图 32 菜单运行效果图 在菜单的基础上,可以制作工具栏,这样可以在工具栏点相对应的工具来直接调用对话框。 工具栏是一种快速激活相关命令的工具按钮的集合。 在 UG中,使用菜单工具可以制作工具栏。 工具栏文件是以 .tbr 为后缀名的文本文件,每个工具栏按钮名称应与菜单文件中相应按钮的名称相同,工具栏按钮图标所对应的位图文件,应放置在 相应的 application 文件夹下。 工具栏文件写好后,应放在对应的 stratup 文件夹中。 编写的工具栏文件如下: TITLE 齿轮 //工具栏标题 VERSION 160 //工具栏文件的版本信息 DOCK NO //工具栏导入时是浮动的 BUTTON SPUR_GEAR //直齿轮对应按钮的名称 LABEL 直齿圆柱齿轮 //工具栏按钮的标题 BITMAP //直齿轮对应按 钮图标 BUTTON HELICAL_GEAR //斜齿轮对应按钮的名称 LABEL 斜齿轮 //工具栏按钮的标题 BITMAP //斜齿轮对应按钮图标 BUTTON STRAIGHT_BEVEL_GEAR //锥齿轮对应按钮的名称 LABEL 直齿锥齿轮 //工具栏按钮的标题 BITMAP //锥齿轮对应按钮图标 运行效果如图 33 所示: 图 32 工具 栏效果图 第四章 齿轮常用的齿形曲线 —— 渐开线 从理论上讲 ,只要给出一条齿廓曲线 ,就可以根据齿廓啮合的基本定律 (用图解法或解析法 )求出与其共轭的另一条齿廓曲线。 因而,作共轭齿廓的曲线是很多的。 生产实际中。 结合设计、制造、安装和使用方面的诸多要求 (如强度、效率、磨损、寿命、互换性 ),通常选用的定传动比齿廓曲线有渐开线、摆线和圆弧。 由于渐开线齿廓具有制造容易、便于安装、互换性好等多方面优点 ,所以目前大部分齿轮采用渐开线齿廓。 4. 1 渐开线的形成原理。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。