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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值