找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

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

UG OPEN API 啊,大家帮帮忙!

[复制链接]
跳转到指定楼层
1
发表于 2006-11-28 20:27:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个例子是清华那本UG/OPEN API 编程基础最后的那个联合开发的例子。我简化一下如下:
tag_t   tooltag;

int CYLINDER_cylinder_action_create_tool_cb ( int dialog_id,
             void * client_data,
             UF_STYLER_item_value_type_p_t callback_data)       //建模的控件的回调函数
{
                     tag_t instance;
        tag_t displayed_part;
        tag_t root_tag;
        displayed_part=UF_PART_ask_display_part();//获得当前显示的零件的ID 如果没有显示部件,则返回NULL_TAG
root_tag=UF_ASSEM_ask_root_part_occ(displayed_part);//获取根节occurence的tag,如果没有根节点,则返回NULL—TAG
ret=UF_ASSEM_create_component_part(displayed_part,"c:\\tmp\\verifytoolstool.prt",
        "","verifytool",1,0,csys_origin,matrix_values,0,NULL,&instance)         //在displayed_part下建立一个部件,并据此函数得到此关系的instance.
........
........    //建立一个圆柱体

tag_t target=UF_ASSEM_ask_part_occ_of_inst(root_tag,instance);
tooltag=target;

}

int CYLINDER_cylinder_action_position_tool_cb ( int dialog_id,
             void * client_data,
             UF_STYLER_item_value_type_p_t callback_data)//定位的回调函数
{
tag_t member=NULL_TAG;
int ret=UF_OBJ_cycle_objs_in_part(UF_ASSEM_ask_prototype_of_occ(tooltag),
                 UF_solid_type,&member);
......
......
}
说明此程序中有两个控件的回调函数,一个建模,另一个随后进行定位,条件是点击两个控件之前,视图中已经存在一个装配!即:存在根节点。对话框如图所示。
问题:在定位函数中,为何UF_OBJ_cycle_objs_in_part()函数执行不了,已经查出是由于第一个参数UF_ASSEM_ask_prototype_of_occ(tooltag)的原因。
另外,我还想问一下,UF_OBJ_cycle_objs_in_part()的第一个参数一定要prototype 的tag么?occurance的tag 可不可以?

非常感谢!非常感谢!!非常感谢!!!

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2006-11-28 21:59:24 | 只看该作者
www.cadway.org问问,那边高手较多,我有问题也是那边帮解决的!
3
发表于 2006-11-29 11:55:21 | 只看该作者
我从昨晚到现在两顿饭没吃了,大家不要见死不救啊!!!
4
发表于 2006-11-29 13:52:10 | 只看该作者

原帖由 missing914 于 2006-11-28 21:59 发表
www.cadway.org问问,那边高手较多,我有问题也是那边帮解决的!

最SB 的就是这种托儿,自己没点斤两,还显得很有领导才能似的,物尽其才,回家看孩子去吧
5
发表于 2006-11-29 14:30:37 | 只看该作者
不可以用occurance的tag 。
6
发表于 2006-11-29 14:32:45 | 只看该作者
因为这个函数用途是在一个文件内找对象,occurance只是装配中对文件的引用。
7
发表于 2006-11-29 17:44:34 | 只看该作者
楼上的你好,按照你的说法,那这程序应该是没有错啊,我就是用UF_ASSEM_sak_prototype_of_occ(tooltag)来得到tootag的prototype 的tag啊,可是程序就是到这里就停止了,麻烦你,再帮我看看,多谢!!!
8
发表于 2006-11-29 19:09:45 | 只看该作者
顶你!
9
发表于 2006-11-29 19:28:22 | 只看该作者
妈的,我倒是好心,想帮你们解决问题,我拖什么啊,他们给我钱啊!
听不听随便你们吧!
真是狗咬吕洞宾不识好人心!
10
发表于 2006-11-29 20:05:49 | 只看该作者
missing 别生气嘛,vodka 也别生气哦,大家还不都是 为了解决问题,是吧:)
在ghmirist的提醒下,我想我已经发现问题了,就是因为UF_OBJ_cycle_objs_in_part()需要在一个文件中去执行,而这个程序中ret=UF_ASSEM_create_component_part(displayed_part,"d:\5.prt",
                        "","verifytool",1,0,csys_origin,matrix_values,0,NULL,&instance);
虽然在displayed_part下建立了一个部件,但是并没有在windows下建立一个文档来储存新建立的这个部件。导致函数无法执行!

问题已经找到,现在正在解决中,期待大家的高见:)
多谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2025-1-16 06:03 , Processed in 0.025716 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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