• 【ProToolkit范例之三】遍历模型下的所有Feature


    Pro/E是完全基于Feature(特征)的三维软件。

    在模型树上的每个项目都是特征。如下图所示

    以下程序实现对ProE当前模型下Feature的遍历访问,附代码:

    ProError _VisitSolidAllFeats_(ProFeature* p_feature,
                                  ProError status,
                                  ProAppData app_data)
    {
        ProArrayObjectAdd((ProArray*)app_data, -1, 1, p_feature);
        return PRO_TK_NO_ERROR;
    }
    
    
    int Test(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;
    
        // 定义数组变量,用于记录后面遍历访问的所有ProFeature
        ProArray arr;
        ProArrayAlloc(0, sizeof(ProFeature), 10, &arr);
    
        // 变量访问当前模型下的所有Feature
        ProSolidFeatVisit((ProSolid)mdl, _VisitSolidAllFeats_, NULL, &arr);
    
        // 输出数组中的所有ProFeature的Id
        int nSize;
        ProArraySizeGet(arr, &nSize);
        CString cstr;
        cstr.Format(TEXT("共有%d个Feature"), nSize);
        AfxMessageBox(cstr);
    
        for (int i=0; i<nSize; ++i)
        {
            int id = ((ProFeature*)arr)[i].id;
            cstr.Format(TEXT("Feature Id = %d"), id);
            AfxMessageBox(cstr);
        }
    
        // 释放数组资源
        ProArrayFree(&arr);
    
    
        return 0;
    }

    源码下载 VS2005+Proe3.0
    http://download.csdn.net/detail/wangyao1052/4945338

  • 相关阅读:
    两人合作
    JUnit单元测试
    结对编程-——游戏五子棋
    使用Junit等工具进行单元测试
    软件工程
    两人项目---打飞机的游戏
    使用Junit等工具进行单元测试
    软件工程
    使用Junit等工具进行单元测试
    软件工程
  • 原文地址:https://www.cnblogs.com/Hisin/p/2840064.html
Copyright © 2020-2023  润新知