基于ProE的齿轮参数化设计文档格式.docx
《基于ProE的齿轮参数化设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于ProE的齿轮参数化设计文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
BEGIN_MESSAGE_MAP(CchilunshejiApp,CWinApp)
END_MESSAGE_MAP()
//CchilunshejiApp构造
CchilunshejiApp:
:
CchilunshejiApp()
//唯一的一个CchilunshejiApp对象
CchilunshejiApptheApp;
//CchilunshejiApp初始化
///////////////FUNCTION:
user_initialize()
extern"
C"
intuser_initialize()
{
ProErrorstatus;
ProFileNameMsgFile;
uiCmdCmdIdPushButton_cmd_id;
ProStringToWstring(MsgFile,"
Message1.txt"
);
//设置菜单信息文件名//
status=ProMenubarMenuAdd("
GearDesign"
"
"
Utilities"
PRO_B_TRUE,MsgFile);
ProCmdActionAdd("
PushButtonAct"
(uiCmdCmdActFn)GearDesign1MenuActFn,
uiCmdPrioDefault,AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&
PushButton_cmd_id);
ProMenubarmenuPushbuttonAdd("
"
GearDesign1"
GearDesign
1"
NULL,PRO_B_TRUE,PushButton_cmd_id,MsgFile);
returnstatus;
GearDesign2"
2"
66
}
/////////////////////FUNCTION:
user_terminate()
voiduser_terminate()
AFX_MANAGE_STATE(AfxGetStaticModuleState());
BOOLCchilunshejiApp:
InitInstance()
CWinApp:
InitInstance();
returnTRUE;
staticuiCmdAccessStateAccessAvailable(uiCmdAccessModeaccess_mode)
return(ACCESS_AVAILABLE);
二、齿轮设计对话框实现文件
LoadDlg2.h"
LoadDlg3.h"
LoadDlg4.h"
ProSolid.h>
math.h>
ProWindows.h>
ProParameter.h>
ProParamval.h>
IMPLEMENT_DYNAMIC(CLoadDlg,CDialog)
CLoadDlg:
CLoadDlg(CWnd*pParent/*=NULL*/)
:
CDialog(CLoadDlg:
IDD,pParent)
~CLoadDlg()
voidCLoadDlg:
DoDataExchange(CDataExchange*pDX)
CDialog:
DoDataExchange(pDX);
BEGIN_MESSAGE_MAP(CLoadDlg,CDialog)
67
/////////////////FUNCTION:
ON_BN_CLICKED(IDC_BUTTON1,&
OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON2,&
OnBnClickedButton2)
ON_BN_CLICKED(IDC_BUTTON3,&
OnBnClickedButton3)
OnBnClickedButton1()
intstatus;
CLoadDlg2LoadDlg;
status=LoadDlg.DoModal();
OnBnClickedButton2()
CLoadDlg3LoadDlg;
OnBnClickedButton3()
CLoadDlg4LoadDlg;
三、直齿圆柱齿轮对话框实现文件
//LoadDlg2.cpp:
实现文件
IMPLEMENT_DYNAMIC(CLoadDlg2,CDialog)
CLoadDlg2:
CLoadDlg2(CWnd*pParent/*=NULL*/)
CDialog(CLoadDlg2:
M_Z=17;
M_ANGLE=20;
68
M_C=0.25;
M_M=10;
M_HA=1;
M_B=100;
M_D=0;
M_DB=0;
M_DA=0;
M_TIP_RAD=0;
M_DF=0;
~CLoadDlg2()
BEGIN_MESSAGE_MAP(CLoadDlg2,CDialog)
ON_BN_CLICKED(IDOK,&
OnBnClickedOk)
ON_BN_CLICKED(IDCANCLE,&
OnBnClickedCancle)
ON_BN_CLICKED(IDC_mokuaichongsheng,&
OnBnClickedmokuaichongsheng)
voidCLoadDlg2:
OnBnClickedOk()
OnOK();
ProMdlmodel;
ProModelitemmodelitem;
ProName
ParamName1,ParamName2,ParamName3,ParamName4,ParamName5,ParamName6;
//wchar_t*ParamName;
ProParameterparam1,param2,param3,param4,param5,param6;
ProParamvaluevalue1,value2,value3,value4,value5,value6;
ProErrorstatus;
UpdateData(true);
status=ProMdlCurrentGet(&
model);
if(status!
=PRO_TK_NO_ERROR)
return;
ProMdlToModelitem(model,&
modelitem);
ProStringToWstring(ParamName1,"
Z"
ProStringToWstring(ParamName2,"
ANGLE"
ProStringToWstring(ParamName3,"
ProStringToWstring(ParamName4,"
M"
ProStringToWstring(ParamName5,"
HA"
ProStringToWstring(ParamName6,"
B"
status=ProParameterInit(&
modelitem,ParamName1,&
param1);
modelitem,ParamName2,&
param2);
modelitem,ParamName3,&
param3);
69
modelitem,ParamName4,&
param4);
modelitem,ParamName5,&
param5);
modelitem,ParamName6,&
param6);
if(status==PRO_TK_NO_ERROR)
{
ProParameterValueGet(&
param1,&
value1);
value1.value.d_val=M_Z;
ProParameterValueSet(&
//Z
param2,&
value2);
value2.value.d_val=M_ANGLE;
//ANGLE
param3,&
value3);
value3.value.d_val=M_C;
//C
param4,&
value4);
value4.value.d_val=M_M;
//M
//获得参数值(HA)
param5,&
value5);
value5.value.d_val=M_HA;
//HA
param6,&
value6);
value6.value.d_val=M_B;
//B
ProSolidRegenerate((ProSolid)model,PRO_B_TRUE);
ProWindowRepaint(PRO_VALUE_UNUSED);
UpdateData(false);
}
OnBnClickedCancle()
OnCancel();
OnBnClickedmokuaichongsheng()
ParamName1,ParamName2,ParamName3,ParamName4,ParamName5,ParamName6;
70
M_D=M_Z*M_M;
//D
M_DB=M_D*cos(M_ANGLE);
//DB
M_DA=M_D+2*M_M*M_HA;
//DA
M_TIP_RAD=3.1415*M_M/8;
//TIP_RAD
M_DF=M_D-2*M_M*(M_HA+M_C);
//DF
71
BOOLCLoadDlg2:
OnInitDialog()
OnInitDialog();
status=ProParamete