zoukankan      html  css  js  c++  java
  • Parameter操作

    ProE的一大特色就是参数化设计,可见,参数在ProE中的作用。

    在ProE中,单击Tools->Parameters菜单项,即可弹出参数对话框。如下图所示:

    通过该对话框即可查看、新建、删除、修改参数。

    红线框住部分用于切换参数所属的是当前模型,某个特征,还是某个面等等。

    那么怎样用代码实现参数的新增、删除、修改与查询呢?

    下面通过例子来说明:

    Ex01:新增参数------------------------------------------------------

    为当前模型新增参数,参数类型为Double,参数名为Param_Double_Test,参数值为123.45

     1  // 获取当前模型
     2  ProError err;
     3  ProMdl mdl_curr;
     4  ProModelitem mdl_item_curr;
     5  err = ProMdlCurrentGet(&mdl_curr);
     6  err = ProMdlToModelitem(mdl_curr, &mdl_item_curr);
     7 
     8  // 添加参数
     9  ProParamvalue param_val;
    10  double d_val = 123.45;
    11  err = ProParamvalueSet(&param_val, &d_val, PRO_PARAM_DOUBLE);
    12  ProParameter param;
    13  err = ProParameterCreate(&mdl_item_curr, L"Param_Double_Test", &param_val, &param);
    14  if (err == PRO_TK_NO_ERROR)
    15  {
    16      AfxMessageBox(TEXT("成功新增参数!"));
    17  }
    18  else
    19  {
    20      AfxMessageBox(TEXT("新增参数失败!"));
    21  }

    Ex02:删除参数------------------------------------------------------

    在当前模型中删除参数名为Param_Int_Test的参数

     1  // 获取当前模型
     2  ProError err;
     3  ProMdl mdl_curr;
     4  ProModelitem mdl_item_curr;
     5  err = ProMdlCurrentGet(&mdl_curr);
     6  err = ProMdlToModelitem(mdl_curr, &mdl_item_curr);
     7 
     8  // 获取参数
     9  ProParameter param;
    10  err = ProParameterInit(&mdl_item_curr, L"Param_Int_Test", &param);
    11  if (err == PRO_TK_NO_ERROR)
    12  {
    13      AfxMessageBox(TEXT("成功获取参数!"));
    14  }
    15  else
    16  {
    17      AfxMessageBox(TEXT("获取参数失败!"));
    18      return -1;
    19  }
    20 
    21  // 删除获取的参数
    22  err = ProParameterDelete(&param);
    23  if (err == PRO_TK_NO_ERROR)
    24  {
    25      AfxMessageBox(TEXT("成功删除参数!"));
    26  }
    27  else
    28  {
    29      AfxMessageBox(TEXT("删除参数失败!"));
    30  }

    Ex03:修改参数值------------------------------------------------------

    将当前模型中名为Param_String_Test的String参数值修改为"Hello Kitty"

    并输出修改之前的参数值

     1 // 获取当前模型
     2  ProError err;
     3  ProMdl mdl_curr;
     4  ProModelitem mdl_item_curr;
     5  err = ProMdlCurrentGet(&mdl_curr);
     6  err = ProMdlToModelitem(mdl_curr, &mdl_item_curr);
     7 
     8  // 获取参数
     9  ProParameter param;
    10  err = ProParameterInit(&mdl_item_curr, L"Param_String_Test", &param);
    11  if (err == PRO_TK_NO_ERROR)
    12  {
    13      AfxMessageBox(TEXT("成功获取参数!"));
    14  }
    15  else
    16  {
    17      AfxMessageBox(TEXT("获取参数失败!"));
    18      return -1;
    19  }
    20 
    21  // 获取参数值并输出
    22  ProParamvalue param_value;
    23  ProParamvalueType param_type;
    24  err = ProParameterValueGet(&param, &param_value);
    25  if (param_value.type != PRO_PARAM_STRING)
    26  {
    27      AfxMessageBox(TEXT("参数类型不为String."));
    28      return -1;
    29  }
    30  ProLine old_value;
    31  err = ProParamvalueValueGet(&param_value, PRO_PARAM_STRING, old_value);
    32  CStringW cstr_old_val;
    33  cstr_old_val.Format(L"Old Value: %s", old_value);
    34  MessageBoxW(NULL, LPCWSTR(cstr_old_val), L"Test", MB_OK);
    35 
    36  // 设置新的参数值
    37  ProLine new_value = L"Hello Kitty";
    38  err = ProParamvalueSet(&param_value, new_value, PRO_PARAM_STRING);
    39  err = ProParameterValueSet(&param, &param_value);
    40  if (err == PRO_TK_NO_ERROR)
    41  {
    42      AfxMessageBox(TEXT("修改参数值成功!"));
    43  }
    44  else
    45  {
    46      AfxMessageBox(TEXT("修改参数值失败!"));
    47  }

    对于特征&面等包含的参数的操作类同。

  • 相关阅读:
    js数组去重五种方法
    wm_concat 多行字符串拼接
    ORACLE WITH AS 简单用法
    layui laytpl 语法
    看懂Oracle执行计划
    GIT RM -R --CACHED 去掉已经托管在GIT上的文件
    sourceTree使用教程--拉取、获取
    SourceTree忽略文件和文件夹
    layui table 详细讲解
    利用POI实现下拉框级联
  • 原文地址:https://www.cnblogs.com/Hisin/p/2614188.html
Copyright © 2011-2022 走看看