Pro/TOOLKIT示例程序(十)尺寸ProDimension

尺寸ProDimension

在Pro/TOOLKIT中,类型ProDimension用来表示尺寸。定义如下:

typedef struct pro_model_item
{
  ProType  type;
  int      id;
  ProMdl owner;
} ProDimension;

ProDimension和ProModelitem共用相同的数据结构。

  • type:值为PRO_DIMENSION或PRO_REF_DIMENSION。
  • id:尺寸ID。
  • owner:拥有尺寸的模型。

尺寸常用的API如下:

// 获取尺寸名称
ProError ProDimensionSymbolGet(ProDimension *dimension,
                 ProName      symbol);
// 设置尺寸名称
ProError ProDimensionSymbolSet(ProDimension *dimension,
                 ProName      symbol);
// 获取尺寸值
ProError ProDimensionValueGet(ProDimension *dimension,
                double       *value// 设置尺寸值
ProError ProDimensionValueSet(ProDimension *dimension,
                double       value// 获取尺寸公差值
ProError ProDimensionToleranceGet(ProDimension *dimension,
                  double       *upper_limit,
                  double       *lower_limit);
// 设置尺寸公差值
ProError ProDimensionToleranceSet(ProDimension *dimension,
                  double       upper_limit,
                  double       lower_limit);
示例

ProFeatureParamsDisplay:显示特征的尺寸参数

ProError ProFeatureParamsDisplay(ProSelection feature_sel,
                                 ProParamType param_type

代码如下:

// 获取尺寸数据
int TestGetDimInfo(uiCmdCmdId  command,
                   uiCmdValue *p_value,
                   void       *p_push_command_data)
{
    ProError err;

    // 选择特征
    ProSelection* sels;
    int nSel = 0;
    err = ProSelect("feature", 1, NULL, NULL, NULL, NULL, &sels, &nSel);
    if (PRO_TK_NO_ERROR != err || 1 != nSel)
    {
        return -1;
    }

    // 显示特征的所有尺寸
    err = ProFeatureParamsDisplay(sels[0], PRO_DIM_PARAM);

    // 选择尺寸
    nSel = 0;
    err = ProSelect("dimension", 1, NULL, NULL, NULL, NULL, &sels, &nSel);
    if (PRO_TK_NO_ERROR != err || 1 != nSel)
    {
        return -1;
    }
    ProDimension dim; 
    err = ProSelectionModelitemGet(sels[0], &dim);

    // 尺寸名称
    ProName dimName;
    err = ProDimensionSymbolGet(&dim, dimName);
    // 尺寸值
    double value;
    err = ProDimensionValueGet(&dim, &value);
    // 尺寸显示值
    double display_value;
    err = ProDimensionDisplayedValueGet(&dim, &display_value);
    // 尺寸的上下公差
    double upper_limit;
    double lower_limit;
    err = ProDimensionToleranceGet(&dim, &upper_limit, &lower_limit);

    // 显示信息
    CStringW cstrInfo;
    cstrInfo.Format(L"尺寸名称: %s \n尺寸值: %.5f \n尺寸显示值: %.5f \n尺寸的上公差: %.5f \n尺寸的下公差: %.5f",
        dimName, value, display_value, upper_limit, -lower_limit);
    MessageBoxW(NULL, cstrInfo, L"icaxdev: Sample006", MB_OK);

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值