读书人

Creo二次开发-函数(7)-尺寸遍历操作函

发布时间: 2013-02-18 10:50:49 作者: rapoo

Creo二次开发--函数(七)--尺寸遍历操作函数

特别声明:由于最近发现好多网站在转载的过程中没有声明出处,更有甚者将文章直接改头换面就作为自己的东西了。所以放缓了发布的节奏。

另外,原本打算的实例部分也将直接发布到豆丁网上。下周将完成尺寸部分修改的实例。将给出具体的详细说明。


ProSolidDimensionVisit--访问实体中的所有尺寸对象。需要定义访问动作函数及过滤函数。


以下代码来自Toolkit的帮助文件,实现了将对象的所有尺寸对象收集到pp_dims这个数组中的过程。

/*=========================================================================*\    目的:尺寸访问动作函数,将所访问的尺寸对象添加到data所指示的数组中    返回值:PRO_TK_NO_ERROR - success;\*=========================================================================*/ProError ProUtilCollectDimVisitAction (ProDimension *dimension,                                       ProError     filter_status, /* ignored */                                       ProAppData   data){  ProDimension **p_dims = (ProDimension**)data;  ProDimension cur_dim;  cur_dim.owner = dimension->owner;  cur_dim.id = dimension->id;
  //转载请注明http://blog.csdn.net/jh2005  cur_dim.type = dimension->type;  ProArrayObjectAdd((ProArray*)p_dims, PRO_VALUE_UNUSED, 1, &cur_dim);    return PRO_TK_NO_ERROR;}/*=========================================================================*\    Function:ProUtilCollectDimensions()    Purpose:Return a list of dimensions in the part, assembly, or drawing    Returns:PRO_TK_NO_ERROR - success;PRO_TK_BAD_INPUTS - invalid parameters\*=========================================================================*/ProError ProUtilCollectDimension(     ProMdlmodel,    /* In:  The handle to the model */    ProBoolean   refdim,    /* In:  PRO_B_TRUE for collecting reference dimensions,                                    PRO_B_FALSE for collecting standard dimensions */     ProDimension **pp_dims   /* Out: ProArray with collected dimensions.     The function allocates memory     for this argument, but you must     free it. To free the memory,     call the function ProArrayFree()*/){
   //转载请注明http://blog.csdn.net/jh2005    int n;    ProError status;    status = ProArrayAlloc( 0, sizeof(ProDimension), 1, (ProArray*)pp_dims);        if( status == PRO_TK_NO_ERROR )    {      status = ProSolidDimensionVisit( (ProSolid)model, refdim,                (ProDimensionVisitAction)ProUtilCollectDimVisitAction,                (ProDimensionFilterAction)NULL,                (ProAppData)pp_dims);    }    ProArraySizeGet((ProArray*)pp_dims, &n);    if (n==0)    {      status = PRO_TK_E_NOT_FOUND;    }    return (status);}
转载请注明http://blog.csdn.net/jh2005


读书人网 >编程

热点推荐