iCAx开思网
标题:
位置公差中ProMdlGtolVisit为何用不了?
[打印本页]
作者:
api303
时间:
2003-7-18 12:26
标题:
位置公差中ProMdlGtolVisit为何用不了?
我用的是TestGtol.C作为例子,
可是却无法遍历到模型中所有的几何位置公差?
如下所示,问题就出在ProMdlGtolVisit上:
ProError TestGtolCollect(ProMdl mdl, ProGtol **gtol)
{
 
roGtol *tmp_gtol = NULL;
 
roError error;
//  
roAppData app_data;
.23
if((gtol==NULL)||(mdl==NULL))
return(PRO_TK_BAD_INPUTS);
/*--------------------------------------------------------------------*\
Alloc memory for gtol array.
\*--------------------------------------------------------------------*/
error = ProArrayAlloc(0, sizeof(ProGtol),1,(ProArray*)[$tmp_gtol)]
TEST_CALL_REPORT ("
roArrayAlloc()",
"TestGtolCollect()", error, error != PRO_TK_NO_ERROR);
TEST_CALL_REPORT ("
roArrayAlloc()",
"TestGtolCollect()", error, error != PRO_TK_NO_ERROR);*/
if(error!=PRO_TK_NO_ERROR)
return(error);
/*--------------------------------------------------------------------*\
Visit and add all gtol from the specified model.
\*--------------------------------------------------------------------*/
error = ProMdlGtolVisit(mdl,(ProGtolVisitAction)TestGtolCollectVisit,
(ProGtolFilterAction)PRO_TK_NO_ERROR,(ProAppData)[$tmp_gtol)]
TEST_CALL_REPORT ("ProMdlGtolVisit()",
"TestGtolCollect()", error, error != PRO_TK_NO_ERROR);
/*--------------------------------------------------------------------*\
If error then free memory.
\*--------------------------------------------------------------------*/
if(error!=PRO_TK_NO_ERROR)
{
if(tmp_gtol!=NULL)
{
error=ProArrayFree((ProArray*)[$tmp_gtol)]
TEST_CALL_REPORT ("ProArrayFree()",
"TestGtolCollect()", error, error != PRO_TK_NO_ERROR);
tmp_gtol = NULL;
}
return(error);
}
error = ProArrayObjectAdd((ProArray*)[$tmp_gtol,PRO_VALUE_UNUSED,1,gtol)]
.2 add
TEST_CALL_REPORT ("ProArrayObjectAdd()",
"TestGtolCollectVisit()", error, error != PRO_TK_NO_ERROR);
.2 add
*gtol = tmp_gtol;
return(PRO_TK_NO_ERROR);
}
欢迎光临 iCAx开思网 (https://www.icax.org/)
Powered by Discuz! X3.3