Creo二次开发--函数(13)--基准点与基准平面

访问基准点
ProPointIdGet() --获得基准点的标识符
ProPointInit() --获取指定标识符的基准点的句柄,基准点也是一个模糊句柄,用ProPoint来定义。
ProPointToGeomitem()--将基准点句柄转换为几何元素句柄。
ProGeomitemToPoint()--将几何元素句柄转换为基准点
要获取一个模型的所有基准点,需要使用ProSolidFeatVisit()或者 ProFeatureGeomitemVisit() 来访问。

访问基准平面

ProSurfaceInit()-- 获取指定标识符的基准平面的句柄,基准平面也是一个模糊句柄,用ProSurface来定义。
ProSurfaceIdGet() --获得基准平面的标识符
ProSurfaceToGeomitem()--将基准平面句柄转换为几何元素句柄。
ProGeomitemToSurface()--将几何元素句柄转换为基准平面句柄
要获取一个模型的所有基准平面,需要使用ProSolidFeatVisit()或者 ProFeatureGeomitemVisit() 来访问。

可以使用下面的函数获取特征为p_featuer的所有类型为item_type的几何元素集合,然后通过转换获取相应的基准点或者基准平面。

ProError ProUtilCollectFeatureGeomitems( ProFeature *p_feature, ProType item_type,ProGeomitem **p_geomitems )
{
    ProError     status;

    if( p_geomitems != NULL )
    {
 status = ProArrayAlloc( 0, sizeof(ProGeomitem), 1,
     (ProArray*)p_geomitems );
 if( status == PRO_TK_NO_ERROR )
 {
     status = ProFeatureGeomitemVisit( p_feature, item_type,
  (ProGeomitemAction)ProUtilCollect3ParamDBVisitAction,
                (ProGeomitemFilter)ProUtilDefaultFilter,
                (ProAppData)&p_geomitems );

     if( status != PRO_TK_NO_ERROR )
     {
  ProArrayFree( (ProArray*)p_geomitems );
  *p_geomitems = NULL;
     }
 }
    }
    else
 status = PRO_TK_BAD_INPUTS;

    return (status);
}
ProError ProUtilCollect3ParamDBVisitAction(
    void     *p_object, /* In: The pointer to the object
     being visited */
    ProError     status, /* In:  The status returned by filter func */
    ProAppData     app_data) /* In: In fact it's ProArray** */
{
    return (ProUtilCollect2ParamDBVisitAction(p_object, app_data));
}
ProError ProUtilCollect2ParamDBVisitAction(
    void     *p_object, /* In: The pointer to the object
     being visited */
    ProAppData     app_data) /* In: In fact it's ProArray** */
{
    ProError status;
    ProArray *p_array;
   
    p_array = (ProArray*)((void**)app_data)[0];
    status = ProArrayObjectAdd(p_array, PRO_VALUE_UNUSED, 1, p_object );
    return (status);
}

转载于:https://www.cnblogs.com/jh0262/archive/2013/02/27/2946777.html

你可能感兴趣的:(Creo二次开发--函数(13)--基准点与基准平面)