资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
基于的波浪形棘轮参数化设计汪健1,2王树林1 ( 1. 江苏大学机械工程学院,镇江212013,E-mail:net_wj126.com )(2. 江苏省武进职业教育中心校,常州213164) 摘 要:本文依据波浪形曲线方程利用表达式实现波浪形棘轮的参数化精确建模,并以此为模板,借助平台,利用UG/Open二次开发模块,设计MenuScript菜单和 UIStyler对话框,编写UG/Open API 编程接口及其控制程序,实现模型的调用和更改,进行波浪形棘轮参数化设计,为大家提供了一种三维设计的新思路。 关键词: 波浪形棘轮;UG/Open ;表达式;参数化设计 Parameterization Design of Wavy Ratchet Based on UG NX Wang Jian1,2, Wang Shuling1( 1. School of Mechanical Engineer, JiangSu University, ZhenJiang 212013,China) (2. Wu Jing Vocational Education Center School, ChangZhou, 213164, China) Abstract: According to wavy curve equation, and using the function of UG NX functional expressing, the paper constructed an accurate parametric modeling as wavy ratchet the modeling object. Further, by virtue of the secondary development function of UG NX/Open, the menu of MenuScript and the dialog box of UIStyler were designed in the VC+ platform, and programming interface of UG/Open API and its controlling program were compiled. In the end, the calling function and parameterization design of three dimensional module of wavy ratchet were realized, and a new design idea for construction digital model of similar workpiece was provided. Key Words: Wavy ratchet; UG NX/Open ; Secondary development; Parameterization design 引言参数化设计以约束造型为核心、以尺寸驱动为特征,在产品的系列设计中可以大大提高模型的生成和修改的速度。软件可以提供参数化驱动特征建模技术、二次开发工具包UG/Open,再借助Vc+平台,具有很强的二次开发能力。这特别适合零件参数化设计的需要。 UG 二次开发的参数化设计方法有两种,即基于图形模板的参数化设计方法和基于参数化程序的设计方法。在波浪形棘轮参数化设计中,由于建模涉及草图、基准、曲面和实体等各类特征,直接使用程序来生成部件的三维参数化模型比较繁琐。因此, 我们选用了比较方便、容易实现的基于图形模板的参数化设计方法。1 基于三维模型的参数化设计的基本原理基于图形模板的参数化设计方法是通过修改图形模板的特征,从而驱动图形模板发生相应变化来进行参数化设计的,采用了三维图形模板与程序控制相互结合的方式。基于表达式可以实现建模参数与主要参数相关联从而生成主要参数驱动部件的特点,首先通过UG 的交互界面运用一组可以完全控制三维模型形状和大小的参数创建一个图形模板,而不是由程序来创建。再利用UG/Open 二次开发模块,并结合Vc+ .进行二次开发,设计MenuScript 菜单和 UIStyler 对话框,编写UG/Open API 编程接口及其控制程序。通常情况下,修改特征通过修改主要参数来实现:首先通过API 接口访问图形模板获得主要参数,然后改变该参数值,最后利用函数更新模型,使得对参数的修改反映在图形上,过程如图1 获取主要参数修改主要参数值图 1 参数化设计过程图形模板参数化设计程序新的模型2 波浪形棘轮参数化设计2. 1 设置环境变量在自定义目录下创建startup、application 、part 和 chenxu 四个文件夹,startup 子文件夹 用来放置菜单MenuScrip 文件jilun . men 及动态链接库文件DLL 文件, application 子文件 夹用来放置对话框文件jilun.dlg ,prt 用来存放图形模板jl2.part。注册环境变量,在【我的电脑】上单击鼠标右键选择【属性】,在弹出的对话框里选择 【高级】选项卡,在该选项卡里选择【环境变量】进行环境变量注册。如图2 图 2 环境变量设置2. 2 构建参数化波浪形棘轮图形模板 构建波浪形曲线,首先在UG 系统【建模】模块环境下,根据波浪形曲线的数学方程表 达式,使用表达式功能选择【工具】菜单的【表达式】选项,在弹出的表达式对话框中输入表 1 中的棘轮参数。其中,主要参数为c(棘轮齿数)、g(棘轮圆柱高度) 、h(棘轮齿高) 、r(棘轮圆柱外径) ,参变量为t,其余参数与主要参数关联。然后选择【插入】菜单的【曲 线】【规律曲线】, 利用规律函数对话框中的函数按钮来构建波浪形曲线(图3) 。表 1 棘轮参数表图 3 波浪形曲线棘轮成形,首先通过【曲线】【投影】生成内波浪形曲线,并用直纹曲面生成波浪形曲面,再利用补片 命令对圆柱套筒(套筒在波浪曲线前生成)修整,产生棘轮齿形。 创建棘轮其他部分,即内花键。同样向表达式对话框里添加内花键的主要参数,然后依次进行圆柱套筒创 建、单个键形创建、布尔运算、实例特征,实现主要参数驱动部件。把前后两实体运用“布尔加”合并,并保存为文件 名为 jl2.prt的图形模板,属性设为只读。(图 4) 。图 4 棘轮图形模板2. 3 编写菜单文件菜单是人机交互最重要的方式之一,在 UG 开发环境中, 用户化的菜单的制作通过MenuScript 实现。本例用记事本创建名为jilun.men 的菜单程序如下:VERSION 120 EDIT UG_GATEW AY_MAIN_MENUBAR AFTER UG_APPLICATION CASCADE_BUTTON menu_prt LABEL 参数化设计END_OF_AFTER MENU menu_prt BUTTON jilun_prt LABEL 基于图形模板的棘轮参数化设计ACTIONS jilun.dlg END_OF_MENU 2. 4 设计用户对话框使用 UG/OPEN UIStyler 用户界面编辑器创建自定义对话框(图 5) 。此对话框可以在 UG菜单项上调用 , 作为接口界面 , 实现用户与API 应用程序的交互,从而将用户程序与 UG完全融合。用户可以通过它输入数据 , 由回调函数来响应用户事件。本例对话框定义了5 个回调函数,即取消按钮回调函数CANCEL_CB、确定按钮回调函数OK_CB 、构造回调函数 CONSTRUCTOR_CB、 毁坏回调函数DESTRUCTOR_CB、 读入模型按钮回调函数readmodel_act_cb 。完成后,以c 语言保存在application 子文件夹中,一共3 个文件 : jilun. dlg( 对话框图 形界面的文件 ) 、 jilun. h (头文件 ) 、jilun_temple. C(对话框控制文件) 。为了便于Vc+ 编程,更改jilun _template.c 名为 jilun.cpp 。图 5 对话框设计2. 5 编写相应的控制程序(1 )创建应用程序框架。启动中文Vc+ 6 . 0 选择 “ 文件 | 新建 ” 菜单项,在弹出的对话框中选择“ 工程 ” 选项卡 ,在列表区中选择Uni grap hic s NX App wizard V1 (U G 工程向导 ) 项,然后根据Vc+ 向导建立应用框架,使用ufsta 函数作为入口函数,语言选择Vc+,保存在 chenxu 文件夹。为了与前面的对话框有机结合,在空间中删除jilun.cpp 和 jilun.h 这两个向导自动生成文件, 把 application 目录下对话框控制文件jilun.cpp 和头文件jilun.h 复制到 chenxu 文件夹的jilun目录下,并添加到Vc+6 . 0 向导建立的应用程序框架中。(2)编写、修改程序。头文件 jilun.h 的源代码自动生成。主程序文件jilun.cpp 中有部分源代码自动生成,例 如取消按钮回调函数,毁坏回调函数、 退出程序等, 但也有许多需要根据程序功能要求编写、修改的地方。在jilun.cpp 文件中添加头文件的包含,并把 改为 “jilun.h“ 。编写对话 框“读取模型”按钮的回调函数JILUN_readmodel_act_cb () ,用于读取图形模板;编写构造回调函数 JILUN_CONSTRUCTOR_CB ()对话框进行初始化, 用于获取部件相关表达式的值, 并显示在对话框中;编写对话框“确定”按钮的回调函数JILUN_OK_CB () ,用于获取用户在对话框中的输入,修改表达式,更新模型。部分代码如下:extern void ufsta (char *param, int *retcode, int rlen) int error_code; if ( (UF_initialize() != 0) return; if ( (error_code = UF_MB_add_styler_actions ( actions ) ) != 0 ) char fail_message133; UF_get_fail_message(error_code, fail_message); printf ( “%sn“, fail_message ); UF_terminate(); return; #ifdef DISPLAY_FROM_CALLBACK extern int ( int *response ) int error_code = 0; if ( ( error_code = UF_initialize() ) != 0 ) return (0) ; if ( ( error_code = UF_STYLER_create_dialog ( “jilun.dlg“, JILUN_cbs, JILUN_CB_COUNT, NULL, response ) ) != 0 ) char fail_message133; UF_get_fail_message(error_code, fail_message); UF_UI_set_status (fail_message); printf ( “%sn“, fail_message ); UF_terminate(); return (error_code); #endif ,2. 6 编译、连接。选择【工程】【设置】命令,在【连接】选项卡中添加libufun.lib 、libugopenint.lib 。 选择【工具】【选项】命令,在【目录】选项卡中添加API 函数库所在的路径。然后,选择【组建】【配置】选项,用Release方式进行编译、连接,这样生成的代码经过优化, 容量小,执行速度快。最后,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号