许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Creo二次开发常用函数(13):基准点与基准平面

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

阅读数 22
点赞 0
article_banner

访问基准点

    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


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空