许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  【Creo 5.0二次开发参数化】参数遍历与参数值获取

【Creo 5.0二次开发参数化】参数遍历与参数值获取

阅读数 21
点赞 0
article_banner

参数遍历,值获取


主要 函数

官方文档 可查看具体使用方法

ProParameterVisit
ProMdlCurrentGet
 ProMdlToModelitem
  ProParameterValueGet

代码

访问动作函数

ProParameterVisit 函数会遍历访问模型的参数,通过过滤函数进行跳过筛选,通过动作函数进行想要的操作。

//参数访问动作函数定义

ProError ParameterActionFn(ProParameter *param,ProError status ,ProAppData app_data ) {
    //获取app_data 的地址
    ProArray* p_array;
    p_array = (ProArray*)(ProParameter**)app_data;
    //给数组赋值,添加
    ProArrayObjectAdd(p_array, -1, 1, param);
    return PRO_TK_NO_ERROR;
}


入口函数

void ParamsGet() {
    ProError status;
    ProParameter *p_data;
    ProStringToWstring(msgfil, (char*)MSGFIL);
    ProCharLine sdf;
    ParametersGet(&p_data);
    //遍历获取参数值
    ProParamvalue pvalue;
    int n;
    ProArraySizeGet(p_data, &n);
    for (int i= 0;i<n;i++)
    {   
        AfxMessageBox((p_data+i)->id);
        ProParameterValueGet(p_data + i, &pvalue);
        status = ProMessageDisplay(msgfil, (char*)"TEST String: %0s", pvalue.value.s_val);
        AfxMessageBox(pvalue.value.s_val);
        
    }
    
    //修改参数的值
  
    ProWstringToString(sdf, L"ok");
    ProStringToWstring(pvalue.value.s_val, sdf);
    ProParameterValueSet(p_data + 3, &pvalue);
   

}

从当前模型获取参数列表

ProError ParametersGet(ProParameter** p_data) {
    ProMdl model;
    ProModelitem modelitem;
   // 获取当前模型
    ProError status;
    status=   ProMdlCurrentGet(&model);
    if(status!= PRO_TK_NO_ERROR){
        AfxMessageBox(_T("当前不存在模型"));
        return status;
    }
    ProMdlToModelitem(model, &modelitem);
    //分配内存?什么时候
    ProArrayAlloc(0, sizeof(ProParameter), 1, (ProArray*)p_data);
    //调用访问函数,获取参数
    status= ProParameterVisit(&modelitem, NULL, ParameterActionFn, p_data);
    return status;
}

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空