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);
}
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);
}
相关文章推荐
- Creo二次开发--函数(11)--基准轴
- Creo二次开发--函数(12)--基准坐标系
- Creo二次开发--内存清理函数
- Creo二次开发--函数(4)--常用操作类函数
- Creo二次开发--函数(2)--信息类函数
- Creo二次开发--函数(8)--质量函数
- Creo二次开发--内存清理函数
- Creo二次开发--函数(6)--选择对象
- Creo二次开发--函数(14)--与颜色有关的函数
- Creo二次开发--函数(9)
- Creo二次开发--函数(七)--尺寸遍历操作函数
- Creo二次开发--函数(10)--配置类函数
- Creo二次开发异步模式——字符串操作函数
- Creo二次开发--函数(1)--可扩展数组
- Creo二次开发--函数(3)--菜单类函数
- Creo二次开发--函数(5)--字符串类函数
- Creo二次开发:导出模型清单,包含序号、模型名称
- MCADEx开发 ProE二次开发 Creo二次开发-Creo Toolkit安装
- MCADEx开发 ProE二次开发 Creo二次开发 菜单创建
- PHPCMS V9二次开发自定义分页函数的解决方案