您的位置:首页 > 其它

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

2013-02-27 19:15 465 查看
访问基准点

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

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: