PROE設置零件參數

void  setParameter(float *dbuf1,float *dbuf2,float *dbuf3,float *dbuf4,float *dbuf5,float *dbuf6,float *dbuf7,float *dbuf8)
{
 int i;
 ProMdl prtmdltmp;
 ProFamilyName ctow;
 ProName ctowpam;
 ProModelitem prtmittmp;
 ProParameter prtMdltmPm,prtMdltmPm2; //分別代表參數H1和H2
 ProParamvalueType prtMdltmty,prtMdltmty2; //分別代表參數H1和H2的類型
 ProParamvalue prtMdltmPmva,prtMdltmPmva2;

 
 ProStringToWstring(ctow,prtfilenamebuf2.pfn2[0]); //將數組中第一個零件的名字轉換成Wstring類型
 ProMdlInit(ctow,PRO_MDL_PART,&prtmdltmp);  //將wstring類型的ctow初始化為PRO_MDL_PART類型,並用ProModel類型的prtmdltmp來作為句柄唯一標識。
 ProMdlToModelitem(prtmdltmp,&prtmittmp); //將Mdl類型的轉換為 Modelitem類型
 ProParameterInit(&prtmittmp,L"H1",&prtMdltmPm);//
 ProParameterValueGet(&prtMdltmPm,&prtMdltmPmva);
 ProParamvalueTypeGet(&prtMdltmPmva,&prtMdltmty);
 if (prtMdltmty==PRO_PARAM_DOUBLE)
 {
  prtMdltmPmva.value.d_val=*dbuf1;
  ProParameterValueSet(&prtMdltmPm,&prtMdltmPmva);
 } else {
  printf("Pam Type Error","Error");
 }

 for (i=1;i<=7;i++)
 {
  ProStringToWstring(ctow,prtfilenamebuf2.pfn2[i]);
  ProMdlInit(ctow,PRO_MDL_PART,&prtmdltmp);
  ProMdlToModelitem(prtmdltmp,&prtmittmp);
  ProParameterInit(&prtmittmp,L"H1",&prtMdltmPm);
  ProParameterValueGet(&prtMdltmPm,&prtMdltmPmva);
  ProParamvalueTypeGet(&prtMdltmPmva,&prtMdltmty);
  ProParameterInit(&prtmittmp,L"H2",&prtMdltmPm2);
  ProParameterValueGet(&prtMdltmPm2,&prtMdltmPmva2);
  ProParamvalueTypeGet(&prtMdltmPmva2,&prtMdltmty2);
  if (prtMdltmty==PRO_PARAM_DOUBLE && prtMdltmty2==PRO_PARAM_DOUBLE)
  {
   switch(i)
   {
    case 1:
     prtMdltmPmva.value.d_val=*dbuf2;
     ProParameterValueSet(&prtMdltmPm,&prtMdltmPmva);
     prtMdltmPmva2.value.d_val=*dbuf1;
     ProParameterValueSet(&prtMdltmPm2,&prtMdltmPmva2);
    break;

    case 2:
    
      prtMdltmPmva.value.d_val=*dbuf3;
      ProParameterValueSet(&prtMdltmPm,&prtMdltmPmva);
      prtMdltmPmva2.value.d_val=*dbuf1+*dbuf2;
      ProParameterValueSet(&prtMdltmPm2,&prtMdltmPmva2);
    break;

    case 3:
     prtMdltmPmva.value.d_val=*dbuf4;
     ProParameterValueSet(&prtMdltmPm,&prtMdltmPmva);
     prtMdltmPmva2.value.d_val=*dbuf1+*dbuf2+*dbuf3;
     ProParameterValueSet(&prtMdltmPm2,&prtMdltmPmva2);
    break;

    case 4:
     prtMdltmPmva.value.d_val=*dbuf5;
     ProParameterValueSet(&prtMdltmPm,&prtMdltmPmva);
     prtMdltmPmva2.value.d_val=*dbuf1+*dbuf2+*dbuf3+*dbuf4;
     ProParameterValueSet(&prtMdltmPm2,&prtMdltmPmva2);
    break;

    case 5:
     prtMdltmPmva.value.d_val=*dbuf6;
     ProParameterValueSet(&prtMdltmPm,&prtMdltmPmva);
     prtMdltmPmva2.value.d_val=*dbuf1+*dbuf2+*dbuf3+*dbuf4,+*dbuf5;
     ProParameterValueSet(&prtMdltmPm2,&prtMdltmPmva2);
    break;

    case 6:
     prtMdltmPmva.value.d_val=*dbuf7;
     ProParameterValueSet(&prtMdltmPm,&prtMdltmPmva);
     prtMdltmPmva2.value.d_val=*dbuf1+*dbuf2+*dbuf3+*dbuf4+*dbuf5+*dbuf6;
     ProParameterValueSet(&prtMdltmPm2,&prtMdltmPmva2);
    break;

    case 7:
     prtMdltmPmva.value.d_val=*dbuf8;
     ProParameterValueSet(&prtMdltmPm,&prtMdltmPmva);
     prtMdltmPmva2.value.d_val=*dbuf1+*dbuf2+*dbuf3+*dbuf4+*dbuf5+*dbuf6+*dbuf7;
     ProParameterValueSet(&prtMdltmPm2,&prtMdltmPmva2);
    break;
    
    default:
     printf("Value Num Error","Error");
    break;
   }
  } else {
   printf("Pam Type Error","Error");
  }
 }
 
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章