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

发布时间 : 星期三 文章基于UG二次开发的直齿、斜齿圆柱齿轮及锥齿轮的参数化建模更新完毕开始阅读d06167eb185f312b3169a45177232f60ddcce7ea

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

图8-12 编译工程

打开“File View”选项卡,分别单击“spur_gear.files”、“Source Files”和“Header

Files” 前面的“+”,双击“spur_gear.cpp”,就能看见文件中的内容。

步骤六:将UG/Open UI Styler 模块生成的对话框文件spur_gear_template.c

和spur_gear.h分别重新命名为spur_gear_dialog.cpp和spur_gear_dialog.h,复制到工程所在的文件夹内。在VC++中选择菜单“工程”—“增加到工程”—“文件”,将上述两个文件加入工程中,结果如图8-13所示。注意应将spur_gear_dialog.cpp

中头文件的#include修改为#include

“spur_gear_dialog.h”。

41

学士学位论文

图8-13 将对话框文件加入工程效果图

步骤七:在工程中编写程序。从前面的程序设计思路可知,该程序中主要

包括:入口函数程序、主程序、检测部件程序、获取表达式程序、传递对话框中数值程序。入口函数程序是将菜单中定义的按钮和程序连接起来,当点击对应的按钮时调用可执行程序,调用程序后执行主程序。在主程序中先检测部件是否是对应的部件,否时弹出提示信息,退出;是的话调用对话框,执行对话框中的程序,程序运行结束后退出。现就几个主要程序做简单介绍。 {

int resp; //设置变量 主程序,程序代码如下:

int errorCode = UF_initialize(); //程序初始化

if ( 0 == errorCode )

{

if(PRO_DESIGN_check_part()) //调用部件检查程序 {

uc1601(\当前显示模型不是直齿轮部件,不能进行参数化设计\;

42

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

return UF_MB_CB_CONTINUE; //不是对应部件时弹出对话框

提示,并退出

}

LaunchProDesignDialog( &resp); //调用对话框 errorCode = UF_terminate(); } }

在主程序中有检测部件程序和调用对话框程序,调用对话框程序是系统自return UF_MB_CB_CONTINUE;

动生成的,只需要在上面加上函数名就可以了,而检测部件程序是需要自己编写的,主要程序代码如下:

变量声明

part_tag=UF_PART_ask_display_part();

if(part_tag==NULL_TAG)

return 1; //检测是否有部件显示,没有部件显示时返回1

UF_PART_ask_part_name(part_tag,part_fspec); //查询部件文件名 for(i=0;i<50;i++) { }

pdest=strrchr(part_fspec,ch);

len=strlen(pdest);

part_name[i]='\\0'; temp_name[i]='\\0';

strncpy(temp_name,pdest+1,len-1);

len=strlen(temp_name); //查询部件文件名长度 strncpy(part_name,temp_name,len-4); //去掉文件名中文件格式部分

strupr(part_name);

43

学士学位论文

if(strcmp(part_name,\比较读取的文件名与指定文件名

return 0;

else

return 1; //返回值

调用对话框后,单击对话框中的控件时要有相应的程序来响应它,对话框

中包括有确定、应用、取消三个控件。加上调用对话框时应读取表达式中的参数,要加一个构造函数。因此对话框程序主要包含有这四个程序,其中取消按钮的程序系统已自动生成,确定和应用这两个按钮程序所执行的功能大体是一样的,只是在执行程序后确定是退出对话框,而应用是返回到对话框。因此主要有两段程序,现简要介绍如下;

构造函数主要程序:

data.item_attr=UF_STYLER_VALUE; //指定获取控件的值

data.item_id=SPUR_GEAR_REAL_Z; //控件标识,可从对话框头文件中获得 UF_MODL_eval_exp(\根据表达式名称计算表达式的数值 UF_STYLER_set_value(dialog_id,&data);//给对话框中的相应控件赋值

应用和确定主要程序:

data.item_attr=UF_STYLER_VALUE; //指定获取控件的值

data.item_id=SPUR_GEAR_REAL_Z; //控件标识,可从对话框头文件中获得 UF_STYLER_ask_value(dialog_id,&data);//查询对话框控件中的值 PRO_DESIGN_edit_exp(\;//修改表达式中的值 UF_MODL_update(); //更新模型

程序中引用了PRO_DESIGN_edit_exp子程序,该程序主要代码如下: 变量声明

strcpy(exp,dim_name);//获取表达式参数 strcat(exp,\;

sprintf(temp,\;//获取控件中数值 strcat(exp,temp);

err=UF_MODL_edit_exp(exp); //修改表达式

44