iCAx开思工具箱
标题:
UG OPEN API 啊,大家帮帮忙!
[打印本页]
作者:
chengcheng82
时间:
2006-11-28 20:27
标题:
UG OPEN API 啊,大家帮帮忙!
这个例子是清华那本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 可不可以?
非常感谢!非常感谢!!非常感谢!!!
作者:
missing914
时间:
2006-11-28 21:59
去
www.cadway.org
问问,那边高手较多,我有问题也是那边帮解决的!
作者:
chengcheng82
时间:
2006-11-29 11:55
我从昨晚到现在两顿饭没吃了,大家不要见死不救啊!!!
作者:
vodka
时间:
2006-11-29 13:52
01x
原帖由 于 2006-11-28 21:59 发表
去
www.cadway.org
问问,那边高手较多,我有问题也是那边帮解决的!
最SB 的就是这种托儿,自己没点斤两,还显得很有领导才能似的
,物尽其才,回家看孩子去吧05x
作者:
ghmirist
时间:
2006-11-29 14:30
不可以用occurance的tag 。
作者:
ghmirist
时间:
2006-11-29 14:32
因为这个函数用途是在一个文件内找对象,occurance只是装配中对文件的引用。
作者:
chengcheng82
时间:
2006-11-29 17:44
楼上的你好,按照你的说法,那这程序应该是没有错啊,我就是用UF_ASSEM_sak_prototype_of_occ(tooltag)来得到tootag的prototype 的tag啊,可是程序就是到这里就停止了,麻烦你,再帮我看看,多谢!!!
作者:
风一样的我
时间:
2006-11-29 19:09
顶你!
作者:
missing914
时间:
2006-11-29 19:28
妈的,我倒是好心,想帮你们解决问题,我拖什么啊,他们给我钱啊!
听不听随便你们吧!
真是狗咬吕洞宾不识好人心!
作者:
chengcheng82
时间:
2006-11-29 20:05
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下建立一个文档来储存新建立的这个部件。导致函数无法执行!
问题已经找到,现在正在解决中,期待大家的高见:)
多谢!
作者:
chengcheng82
时间:
2006-12-4 18:57
已搞定,原来是创建部件的参数问题。终于可以睡个安稳觉了!
欢迎光临 iCAx开思工具箱 (https://t.icax.org/)
Powered by Discuz! X3.3