




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于 Pro/E的齿轮参数化设计 一、齿轮设计实现文件 / chilunsheji.cpp : 定义DLL 的初始化例程。 #include stdafx.h #include chilunsheji.h #include LoadDlg.h #include ProMenu.h #include ProUtil.h #include ProMenubar.h #include /Functions declaration int GearDesign1MenuActFn(); static uiCmdAccessState AccessAvailable(uiCmdAccessMode); #ifdef _DEBUG #define new DEBUG_NEW #endif int GearDesign1(); int GearDesign2(); / CchilunshejiApp BEGIN_MESSAGE_MAP(CchilunshejiApp, CWinApp) END_MESSAGE_MAP() / CchilunshejiApp 构造 CchilunshejiApp:CchilunshejiApp() / 唯一的一个CchilunshejiApp 对象 CchilunshejiApp theApp; / CchilunshejiApp 初始化 /FUNCTION: user_initialize() extern C int user_initialize() ProError status; ProFileName MsgFile; uiCmdCmdId PushButton_cmd_id; ProStringToWstring(MsgFile,Message1.txt);/设置菜单信息文件名/ status=ProMenubarMenuAdd (GearDesign, GearDesign, Utilities, PRO_B_TRUE, MsgFile); ProCmdActionAdd(PushButtonAct,(uiCmdCmdActFn) GearDesign1MenuActFn, uiCmdPrioDefault,AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&PushButton_cmd_id); ProMenubarmenuPushbuttonAdd(GearDesign,GearDesign1,GearDesign1,GearDesign 1, NULL, PRO_B_TRUE, PushButton_cmd_id, MsgFile); return status; ProMenubarmenuPushbuttonAdd(GearDesign,GearDesign2,GearDesign2,GearDesign 2, NULL, PRO_B_TRUE, PushButton_cmd_id, MsgFile); 66 return status; /FUNCTION: user_terminate() extern C void user_terminate() AFX_MANAGE_STATE(AfxGetStaticModuleState(); BOOL CchilunshejiApp:InitInstance() CWinApp:InitInstance(); return TRUE; static uiCmdAccessState AccessAvailable(uiCmdAccessMode access_mode) return (ACCESS_AVAILABLE); 二、齿轮设计对话框实现文件 #include stdafx.h #include chilunsheji.h #include LoadDlg.h #include LoadDlg2.h #include LoadDlg3.h #include LoadDlg4.h #include #include #include ProUtil.h #include #include #include IMPLEMENT_DYNAMIC(CLoadDlg, CDialog) CLoadDlg:CLoadDlg(CWnd* pParent /*=NULL*/) : CDialog(CLoadDlg:IDD, pParent) CLoadDlg:CLoadDlg() void CLoadDlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); BEGIN_MESSAGE_MAP(CLoadDlg, CDialog) 67 return status; /FUNCTION: user_terminate() extern C void user_terminate() AFX_MANAGE_STATE(AfxGetStaticModuleState(); BOOL CchilunshejiApp:InitInstance() CWinApp:InitInstance(); return TRUE; static uiCmdAccessState AccessAvailable(uiCmdAccessMode access_mode) return (ACCESS_AVAILABLE); 二、齿轮设计对话框实现文件 #include stdafx.h #include chilunsheji.h #include LoadDlg.h #include LoadDlg2.h #include LoadDlg3.h #include LoadDlg4.h #include #include #include ProUtil.h #include #include #include IMPLEMENT_DYNAMIC(CLoadDlg, CDialog) CLoadDlg:CLoadDlg(CWnd* pParent /*=NULL*/) : CDialog(CLoadDlg:IDD, pParent) CLoadDlg:CLoadDlg() void CLoadDlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); BEGIN_MESSAGE_MAP(CLoadDlg, CDialog) 67 ON_BN_CLICKED(IDC_BUTTON1, &CLoadDlg:OnBnClickedButton1) ON_BN_CLICKED(IDC_BUTTON2, &CLoadDlg:OnBnClickedButton2) ON_BN_CLICKED(IDC_BUTTON3, &CLoadDlg:OnBnClickedButton3) END_MESSAGE_MAP() void CLoadDlg:OnBnClickedButton1() AFX_MANAGE_STATE(AfxGetStaticModuleState(); int status; CLoadDlg2 LoadDlg; status=LoadDlg.DoModal(); void CLoadDlg:OnBnClickedButton2() AFX_MANAGE_STATE(AfxGetStaticModuleState(); int status; CLoadDlg3 LoadDlg; status=LoadDlg.DoModal(); void CLoadDlg:OnBnClickedButton3() AFX_MANAGE_STATE(AfxGetStaticModuleState(); int status; CLoadDlg4 LoadDlg; status=LoadDlg.DoModal(); 三、直齿圆柱齿轮对话框实现文件 / LoadDlg2.cpp : 实现文件 #include stdafx.h #include chilunsheji.h #include LoadDlg2.h #include #include #include ProUtil.h #include #include #include IMPLEMENT_DYNAMIC(CLoadDlg2, CDialog) CLoadDlg2:CLoadDlg2(CWnd* pParent /*=NULL*/) : CDialog(CLoadDlg2:IDD, pParent) 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:CLoadDlg2() BEGIN_MESSAGE_MAP(CLoadDlg2, CDialog) ON_BN_CLICKED(IDOK, &CLoadDlg2:OnBnClickedOk) ON_BN_CLICKED(IDCANCLE, &CLoadDlg2:OnBnClickedCancle) ON_BN_CLICKED(IDC_mokuaichongsheng, &CLoadDlg2:OnBnClickedmokuaichongsheng) END_MESSAGE_MAP() void CLoadDlg2:OnBnClickedOk() OnOK(); ProMdl model; ProModelitem modelitem; ProName ParamName1,ParamName2,ParamName3,ParamName4,ParamName5,ParamName6; /wchar_t *ParamName; ProParameter param1,param2,param3,param4,param5,param6; ProParamvalue value1,value2,value3,value4,value5,value6; ProError status; UpdateData(true); status=ProMdlCurrentGet(&model); if (status!=PRO_TK_NO_ERROR) return ; ProMdlToModelitem(model, &modelitem); ProStringToWstring(ParamName1,Z); ProStringToWstring(ParamName2,ANGLE); ProStringToWstring(ParamName3,C); ProStringToWstring(ParamName4,M); ProStringToWstring(ParamName5,HA); ProStringToWstring(ParamName6,B); status=ProParameterInit(&modelitem,ParamName1,¶m1); status=ProParameterInit(&modelitem,ParamName2,¶m2); status=ProParameterInit(&modelitem,ParamName3,¶m3); 69 status=ProParameterInit(&modelitem,ParamName4,¶m4); status=ProParameterInit(&modelitem,ParamName5,¶m5); status=ProParameterInit(&modelitem,ParamName6,¶m6); if (status=PRO_TK_NO_ERROR) ProParameterValueGet(¶m1, &value1); value1.value.d_val=M_Z; ProParameterValueSet(¶m1, &value1);/Z ProParameterValueGet(¶m2, &value2); value2.value.d_val=M_ANGLE; ProParameterValueSet(¶m2, &value2);/ANGLE ProParameterValueGet(¶m3, &value3); value3.value.d_val=M_C; ProParameterValueSet(¶m3, &value3);/C ProParameterValueGet(¶m4, &value4); value4.value.d_val=M_M; ProParameterValueSet(¶m4, &value4);/M /获得参数值(HA) ProParameterValueGet(¶m5, &value5); value5.value.d_val=M_HA; ProParameterValueSet(¶m5, &value5);/HA ProParameterValueGet(¶m6, &value6); value6.value.d_val=M_B; ProParameterValueSet(¶m6, &value6);/B ProSolidRegenerate (ProSolid)model,PRO_B_TRUE); ProWindowRepaint(PRO_VALUE_UNUSED); UpdateData(false); void CLoadDlg2:OnBnClickedCancle() OnCancel(); void CLoadDlg2:OnBnClickedmokuaichongsheng() ProMdl model; ProModelitem modelitem; ProName ParamName1,ParamName2,ParamName3,ParamName4,ParamName5,ParamName6; /wchar_t *ParamName; ProParameter param1,param2,param3,param4,param5,param6; ProParamvalue value1,value2,value3,value4,value5,value6; 70 ProError status; UpdateData(true); status=ProMdlCurrentGet(&model); if (status!=PRO_TK_NO_ERROR) return ; ProMdlToModelitem(model, &modelitem); ProStringToWstring(ParamName1,Z); ProStringToWstring(ParamName2,ANGLE); ProStringToWstring(ParamName3,C); ProStringToWstring(ParamName4,M); ProStringToWstring(ParamName5,HA); ProStringToWstring(ParamName6,B); status=ProParameterInit(&modelitem,ParamName1,¶m1); status=ProParameterInit(&modelitem,ParamName2,¶m2); status=ProParameterInit(&modelitem,ParamName3,¶m3); status=ProParameterInit(&modelitem,ParamName4,¶m4); status=ProParameterInit(&modelitem,ParamName5,¶m5); status=ProParameterInit(&modelitem,ParamName6,¶m6); if (status=PRO_TK_NO_ERROR) ProParameterValueGet(¶m1, &value1); value1.value.d_val=M_Z; ProParameterValueSet(¶m1, &value1);/Z ProParameterValueGet(¶m2, &value2); value2.value.d_val=M_ANGLE; ProParameterValueSet(¶m2, &value2);/ANGLE ProParameterValueGet(¶m3, &value3); value3.value.d_val=M_C; ProParameterValueSet(¶m3, &value3);/C ProParameterValueGet(¶m4, &value4); value4.value.d_val=M_M; ProParameterValueSet(¶m4, &value4);/M ProParameterValueGet(¶m5, &value5); value5.value.d_val=M_HA; ProParameterValueSet(¶m5, &value5);/HA ProParameterValueGet(¶m6, &value6); value6.value.d_val=M_B; ProParameterValueSet(¶m6, &value6);/B 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 ProSolidRegenerate (ProSolid)model,PRO_B_TRUE); ProWindowRepaint(PRO_VALUE_UNUSED); UpdateData(false); BOOL CLoadDlg2:OnInitDialog() CDialog:OnInitDialog(); ProMdl model; ProModelitem modelitem; ProName ParamName1,ParamName2,ParamName3,ParamName4,ParamName5,ParamName6; /wchar_t *ParamName; ProParameter param1,param2,param3,param4,param5,param6; ProParamvalue value1,value2,value3,value4,value5,value6; ProError status; status=ProMdlCurrentGet(&model); if (status!=PRO_TK_NO_ERROR) ProMdlToModelitem(model, &modelitem); ProStringToWstring(ParamName1,Z); ProStringToWstring(ParamName2,ANGLE); ProStringToWstring(ParamName3,C); ProStringToWstring(ParamName4,M); ProStringToWstring(ParamName5,HA); ProStringToWstring(ParamName6,B); status=ProParameterInit(&modelitem,ParamName1,¶m1); status=ProParameterInit(&modelitem,ParamName2,¶m2); status=ProParameterInit(&modelitem,ParamName3,¶m3); status=ProParameterInit(&modelitem,ParamName4,¶m4); status=ProParameterInit(&modelitem,ParamName5,¶m5); status=ProParameterInit(&modelitem,ParamName6,¶m6); if (status=PRO_TK_NO_ERROR) ProParameterValueGet(¶m1, &value1); M_Z=value1.value.d_val; ProParameterValueSet(¶m1, &value1);/Z ProParameterValueGet(¶m2, &value2); M_ANGLE=value2.value.d_val; ProParameterValueSet(¶m2, &value2);/ANGLE ProParameterValueGet(¶m3, &value3); M_C=value3.value.d_val; 72 ProParameterValueSet(¶m3, &value3);/C ProParameterValueGet(¶m4, &value4); M_M=value4.value.d_val; ProParameterValueSet(¶m4, &value4);/M ProParameterValueGet(¶m5, &value5); M_HA=value5.value.d_val; ProParameterValueSet(¶m5, &value5);/HA ProParameterValueGet(¶m6, &value6); M_B=value6.value.d_val; ProParameterValueSet(¶m6, &value6);/B return TRUE; / return TRUE unless you set the focus to a control void CLoadDlg2:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT1, M_Z); DDX_Text(pDX, IDC_EDIT2, M_ANGLE); DDX_Text(pDX, IDC_EDIT3, M_C); DDX_Text(pDX, IDC_EDIT4, M_M); DDX_Text(pDX, IDC_EDIT5, M_HA); DDX_Text(pDX, IDC_EDIT6, M_B); DDX_Text(pDX, IDC_EDIT7, M_D); DDX_Text(pDX, IDC_EDIT8, M_DB); DDX_Text(pDX, IDC_EDIT9, M_DA); DDX_Text(pDX, IDC_EDIT10, M_TIP_RAD); DDX_Text(pDX, IDC_EDIT11, M_DF); 四、直齿圆锥齿轮对话框实现文件 / LoadDlg3.cpp : 实现文件 #include stdafx.h #include chilunsheji.h #include LoadDlg3.h #include #include #include ProUtil.h #include #include #include IMPLEMENT_DYNAMIC(CLoadDlg3, CDialog) CLoadDlg3:CLoadDlg3(CWnd* pParent /*=NULL*/) 73 DDX_Text(pDX, IDC_EDIT7, M_BETA); DDX_Text(pDX, IDC_EDIT8, M_S); DDX_Text(pDX, IDC_EDIT9, M_GAMMA); 六、响应文件 /响应函数 #includestdafx.h #includeLoadDlg.h #includechilunsheji.h #include LoadDlg.h int GearDesign1MenuActFn() AfxMessageBox(_T(齿轮); AFX_MANAGE_STATE(AfxGetStaticModuleState(); int status; CLoadDlg LoadDlg; status=LoadDlg.DoModal(); if(sta
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年武警安徽总队医院招聘41人模拟试卷及答案详解(有一套)
- 2025年中共南平市委党校紧缺急需专业教师招聘考前自测高频考点模拟试题附答案详解(典型题)
- 飞机雷达安装调试工安全操作规程背诵考核试卷及答案
- 公司烧碱蒸发工岗位工艺技术规程
- 静电成像感光元件(光导鼓)制造工事故案例分析能力考核试卷及答案
- 2025年威海技师学院公开招聘工作人员(29名)考前自测高频考点模拟试题参考答案详解
- 2025年新疆汽车销售售后服务质量合同协议
- Olsalazine-Disodium-13C12-生命科学试剂-MCE
- 2025涟水县事业单位招聘人员40人考前自测高频考点模拟试题及答案详解(名校卷)
- 2025北京首都师范大学实验小学招聘2人考前自测高频考点模拟试题及答案详解一套
- 2025浙江杭州市工会社会工作者招聘工作40人笔试模拟试题及答案解析
- 2025年镇江市中考英语试题卷(含答案及解析)
- 2025年云南省“爱我国防”知识竞赛考试题库150题(含答案)
- 济南生物考试题目及答案
- 2025西安市第五医院招聘(6人)考试参考试题及答案解析
- 《英语(第三版)》课件-Unit 3
- 2025年江西省高考生物试卷真题(含标准答案及解析)
- 2025-2026学年九年级英语上学期第一次月考 (江苏省连云港专用)原卷
- 2025年食品行业市场风险防范策略方案
- 电动消防排烟窗施工方案
- 2025年1月浙江省高考政治真题卷含答案解析
评论
0/150
提交评论