zoukankan      html  css  js  c++  java
  • 【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
    //-----------------------------------------------------------------------------
    //*****************************************************************************
    //-----------------------------------------------------------------------------
  • 相关阅读:
    Kafka 配置说明
    Ubuntu中网络配置问题
    vuecli全家桶搭建个人博客并迁移nuxtjs由后端服务渲染页面
    记录vim模式快捷键
    开发常用mac软件推荐(JetBrains IntelliJ IDEA 2019 for Mac, Parallels Desktop 15 for Mac,cleanmymac, MindNode 7 for mac 思维导图软件)
    gulp4 多页面项目管理打包(html, es6,less编译压缩版本控制)
    Adobe Photoshop 2021 for mac(PS 2020) v22.0.0中文激活破解版
    git 常用命令使用,git bash通用命令
    mac百度网盘破解版免费
    好久木来了,一直忙于项目太忙(tailan),今天讲讲vuecli3.0的使用
  • 原文地址:https://www.cnblogs.com/Hisin/p/2829193.html
Copyright © 2011-2022 走看看