Hi @ all
I use a Toolkit DLL from JLink. I want to set the Tolerance Options. I think I can do it with ProSolidModelClassSet but have too Problems.
First is that I don't know if its the right command, because I haven't a option to set "ANSI". I think PROMODELCLASS_NONE can be ANSI but don't know it for sure.
Second is that always I set another ModelClass everything seems to be fine. If I click into (WF4) Setup - Tolerances - ModelClass, Pro/Engineer killed themself.
Everyone has a Idea how I can set the Tolerance Modes (DIN/ISO - ANSI) and ModelClass correctly ?
Thanks,
Eike
I know it's years later : )
But here are my solution for thread completness.
ProError setToleranceTypeF(ProName mdlName, ProName mdlType, ProName tolType, ProArgument** outputs)
{
ProError ret = PRO_TK_NO_ERROR;
ProMdl mdl = NULL;
ProWstring *w_array;
ProValueData data;
data.type = PRO_VALUE_TYPE_WSTRING;
// read the model
if (wcslen(mdlName) > 0) {
ProMdlType type = GetMdlType(mdlType);
ret = ProMdlInit(mdlName, type, &mdl);
if (ret != PRO_TK_NO_ERROR)
return PRO_TK_CONTINUE;
}
if (mdl == NULL)
return PRO_TK_LINE_TOO_LONG;
// save the status
ProModelClass pmc;
if (wcscmp(tolType,L"ANSI") == 0) {
ret = ProMacroLoad(L"~ Command `ProCmdMmSetup` ;#TOL SETUP;#STANDARD;#ANSI;Ja; #DONE/RETURN;#DONE");
ret = ProMacroExecute();
ret = ProMacroLoad(L"~ Command `ProCmdMmModelProperties` ; ~ Activate `mdlprops_dlg` `TOLERANCE_lay_Controls.push_Change.lay_instance`; #STANDARD;#ANSI;Ja; #DONE/RETURN;~ Activate `mdlprops_dlg` `DlgClose_push`;");
ret = ProMacroExecute();
} else {
ret = ProMacroLoad(L"~ Command `ProCmdMmSetup` ;#TOL SETUP;#STANDARD;#ISO/DIN;Ja; #DONE/RETURN;#DONE");
ret = ProMacroExecute();
ret = ProMacroLoad(L"~ Command `ProCmdMmModelProperties` ; ~ Activate `mdlprops_dlg` `TOLERANCE_lay_Controls.push_Change.lay_instance`; #STANDARD;#ISO/DIN;Ja; #DONE/RETURN;~ Activate `mdlprops_dlg` `DlgClose_push`;");
ret = ProMacroExecute();
if (wcscmp(tolType,L"FINE") == 0) {
pmc = PROMODELCLASS_FINE;
} else if (wcscmp(tolType,L"MEDIUM") == 0) {
pmc = PROMODELCLASS_MEDIUM;
} else if (wcscmp(tolType,L"COARSE") == 0) {
pmc = PROMODELCLASS_COARSE;
} else if (wcscmp(tolType,L"VERY_COARSE") == 0) {
pmc = PROMODELCLASS_VERY_COARSE;
}
ret = ProSolidModelclassSet((ProSolid)mdl, pmc);
}
if (ret != PRO_TK_NO_ERROR && ret != PRO_TK_BAD_CONTEXT)
return ret;
return ret;
}
Best regards,
Eike