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