[Parametrisierung der Creo5.0-Sekundärentwicklung] Parameterdurchquerung, Parameterwerterfassung

Hauptfunktion

Spezifische Gebrauchsanweisungen finden Sie in der offiziellen Dokumentation.

ProParameterVisit
ProMdlCurrentGet
 ProMdlToModelitem
  ProParameterValueGet

Code

Zugriffsaktionsfunktion

Die ProParameterVisit-Funktion durchläuft die Parameter des Zugriffsmodells, überspringt die Filterung durch die Filterfunktion und führt die gewünschte Operation durch die Aktionsfunktion aus.

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

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;
}


Eingabefunktion

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);
   

}

Parameterliste vom aktuellen Modell abrufen

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;
}

Supongo que te gusta

Origin blog.csdn.net/qq_43886548/article/details/127666157
Recomendado
Clasificación