iCAx开思网

标题: UG二次开发中问一个很菜的问题 [打印本页]

作者: imyourkobe    时间: 2007-7-21 06:52
标题: UG二次开发中问一个很菜的问题
为什么我通过代码创建的PRAT,根据TAG,可以遍历PART中的所有的面,但如果是先通过UG打开某个PART,用函数获取TAG,遍历不到PART中的的面??
代码如下:
如果用:
        UF_MODL_create_cylinder (sign, target_tag, origin,height, diam,direction, &display_tag );

        UF_CALL(UF_MODL_ask_feat_faces(display_tag,&cylinder_face_list));  
        UF_CALL(UF_MODL_ask_list_count(cylinder_face_list, &list_count)); //

         就是说用UF_MODL_create_cylinder 可以得到返回的display_tag ,list_count也有值

但如果通过UG打开某个PART,用函数UF_PART_ask_display_part();获取TAG,有问题啊

                      tag_t display_tag = NULL_TAG;//当前UG进程中的显示部件
        //获得当前UG进程中的显示部件
        display_tag = UF_PART_ask_display_part();
                     UF_CALL(UF_MODL_ask_feat_faces(display_tag,&cylinder_face_list));  
        UF_CALL(UF_MODL_ask_list_count(cylinder_face_list, &list_count)); //
                      但list_count值为0,且,下面都不运行了,我怀疑是display_tag有问题?

大家来帮忙吧,谢谢了

[ 本帖最后由 imyourkobe 于 2007-7-21 06:55 编辑 ]
作者: imyourkobe    时间: 2007-7-21 07:30
继续问一个菜问题,如何遍历出part中的所有body,遍历出part中的所有的面,获取TAG 啊?
作者: imyourkobe    时间: 2007-7-21 18:31
怎么没有人回答啊?
作者: imyourkobe    时间: 2007-7-22 07:18
哎,悲哀,没有人来帮忙,自己已解决了!
作者: 凤华    时间: 2007-7-22 10:29
怎么解决的?我也遇到类似的问题,说一下你的解决办法嘛
作者: zhoujunbo830    时间: 2007-9-17 20:33
兄弟!!
如何解决的啊??
如何找到装配体中各个零件的面的tag_t
!!!
告诉我一下啊!!
谢谢了阿
我的qq::276753279
随时等你的帮助阿
谢谢了阿
作者: cftlin    时间: 2007-9-17 21:12
觉得程序是没有问题的。不知你打开的Part文件是不是装配体部件,如果是的话,它的显示部件与工作部件可能是不同的。
你可以调试一下,具体的看一下调试过程中的display_tag 的值,是不是出错在display_tag 的地方。
作者: ice-snow    时间: 2007-10-18 18:10
你用display_tag = UF_PART_ask_display_part()得到的是part文件的tag值,
而UF_MODL_ask_feat_faces()函数的输入参数应该是特征的tag,所以你输入part的tag当然不可以!
你应该先从打开的零件中遍历出特征,然后再访问特征的面。
作者: ice-snow    时间: 2007-10-18 18:30
需要添加如下代码:
    int       iType;
    tag_t     tFeature;
    iType = UF_feature_type; //设置遍历对象为特征类型
    tFeature = NULL_TAG;     //遍历得到的特征tag,开始遍历时设置为NULL_TAG

   //在当前的工作部件中遍历特征
    UF_OBJ_cycle_objs_in_part(display_tag , iType, &tFeature);

   uf_list_p_t face_list;
   int face_count;
          
  //接下来才可以访问特征面,得到该特征所包含的面的一个列表
UF_MODL_ask_feat_faces (tFeature, &face_list);
UF_MODL_ask_list_count(face_list, &face_count); //得到面的个数

之后你就知道了 :)
作者: sincosxu    时间: 2007-10-19 11:57
好,希望ICE-SNOW兄弟这种乐于助人的人多点!!!!!!!!!!!




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3