【ProToolkit范例之二】获取当前模型的名称并显示
函数:ShowCurrModelName
注意:ShowCurrModelName_Access函数保证只有在ProE有打开Part档或Asm档时命令才有效
源码下载:http://download.csdn.net/detail/wangyao1052/4917016
//----------------------------------------------------------------------------- //***************************************************************************** //----------------------------------------------------------------------------- #pragma region #include <ProToolkit.h> #include <ProUtil.h> #include <ProMenuBar.h> #include <ProMenu.h> #include <ProMode.h> #include <ProMdl.h> #include <ProSolid.h> #include <ProAsmcomp.h> #include <ProArray.h> #include <ProModelitem.h> #include <ProLayer.h> // 函数声明 uiCmdAccessState TestAccess(uiCmdAccessMode access_mode); uiCmdAccessState ShowCurrModelName_Access(uiCmdAccessMode access_mode); int Test(uiCmdCmdId command, uiCmdValue *p_value, void *p_push_command_data); int ShowCurrModelName(uiCmdCmdId command, uiCmdValue *p_value, void *p_push_command_data); extern "C" int user_initialize() { ProError err; ProFamilyName MsgFile; ProStringToWstring(MsgFile, "Test_Msg.txt"); // 添加菜单TestMenu err = ProMenubarMenuAdd("TestMenu", "TestMenu", "Help", PRO_B_TRUE, MsgFile); // 添加命令和Menu Item uiCmdCmdId cmd_id1; err = ProCmdActionAdd("Test", Test, uiProeImmediate, TestAccess, PRO_B_FALSE, PRO_B_FALSE, &cmd_id1); err = ProMenubarmenuPushbuttonAdd("TestMenu", "Test", "Test", "Test_Help", NULL, PRO_B_TRUE, cmd_id1, MsgFile); uiCmdCmdId cmd_id2; err = ProCmdActionAdd("ShowCurrModelName", ShowCurrModelName, uiProeImmediate, ShowCurrModelName_Access, PRO_B_FALSE, PRO_B_FALSE, &cmd_id2); err = ProMenubarmenuPushbuttonAdd("TestMenu", "ShowCurrModelName", "ShowCurrModelName", "ShowCurrModelName_Help", NULL, PRO_B_TRUE, cmd_id2, MsgFile); return 0; } extern "C" void user_terminate() { } int Test(uiCmdCmdId command, uiCmdValue *p_value, void *p_push_command_data) { AfxMessageBox(TEXT("Just For Test")); return 0; } // //获取当前模型的名称并显示 // int ShowCurrModelName(uiCmdCmdId command, uiCmdValue *p_value, void *p_push_command_data) { ProError err; ProMdl mdl; err = ProMdlCurrentGet(&mdl); if (PRO_TK_NO_ERROR != err) return -1; ProName name; err = ProMdlNameGet(mdl, name); CString cstrName = name; AfxMessageBox(cstrName); return 0; } uiCmdAccessState TestAccess(uiCmdAccessMode access_mode) { return ACCESS_AVAILABLE; /* ProError err; ProMode mode; err = ProModeCurrentGet(&mode); if (err != PRO_TK_NO_ERROR) { return ACCESS_UNAVAILABLE; } if (mode == PRO_MODE_PART || mode == PRO_MODE_ASSEMBLY) { return ACCESS_AVAILABLE; } else { return ACCESS_UNAVAILABLE; } */ } // // 只在Part和Asm状态下才能访问 // uiCmdAccessState ShowCurrModelName_Access(uiCmdAccessMode access_mode) { ProError err; ProMode mode; err = ProModeCurrentGet(&mode); if (err != PRO_TK_NO_ERROR) { return ACCESS_UNAVAILABLE; } if (mode == PRO_MODE_PART || mode == PRO_MODE_ASSEMBLY) { return ACCESS_AVAILABLE; } else { return ACCESS_UNAVAILABLE; } } #pragma endregion //----------------------------------------------------------------------------- //***************************************************************************** //-----------------------------------------------------------------------------
posted on 2012-12-22 16:11 wangyao1052 阅读(1131) 评论(1) 编辑 收藏 举报