找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 16597|回复: 9
打印 上一主题 下一主题

UG二次开发中问一个很菜的问题

[复制链接]
跳转到指定楼层
1
发表于 2007-7-21 06:52:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
为什么我通过代码创建的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 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2007-7-21 07:30:53 | 只看该作者
继续问一个菜问题,如何遍历出part中的所有body,遍历出part中的所有的面,获取TAG 啊?
3
发表于 2007-7-21 18:31:49 | 只看该作者
怎么没有人回答啊?
4
发表于 2007-7-22 07:18:58 | 只看该作者
哎,悲哀,没有人来帮忙,自己已解决了!
5
发表于 2007-7-22 10:29:01 | 只看该作者
怎么解决的?我也遇到类似的问题,说一下你的解决办法嘛
6
发表于 2007-9-17 20:33:44 | 只看该作者
兄弟!!
如何解决的啊??
如何找到装配体中各个零件的面的tag_t
!!!
告诉我一下啊!!
谢谢了阿
我的qq::276753279
随时等你的帮助阿
谢谢了阿
7
发表于 2007-9-17 21:12:53 | 只看该作者
觉得程序是没有问题的。不知你打开的Part文件是不是装配体部件,如果是的话,它的显示部件与工作部件可能是不同的。
你可以调试一下,具体的看一下调试过程中的display_tag 的值,是不是出错在display_tag 的地方。
8
发表于 2007-10-18 18:10:51 | 只看该作者
你用display_tag = UF_PART_ask_display_part()得到的是part文件的tag值,
而UF_MODL_ask_feat_faces()函数的输入参数应该是特征的tag,所以你输入part的tag当然不可以!
你应该先从打开的零件中遍历出特征,然后再访问特征的面。
9
发表于 2007-10-18 18:30:56 | 只看该作者
需要添加如下代码:
    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); //得到面的个数

之后你就知道了 :)
10
发表于 2007-10-19 11:57:26 | 只看该作者
好,希望ICE-SNOW兄弟这种乐于助人的人多点!!!!!!!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-1-3 02:52 , Processed in 0.040783 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表