马上注册登录,享用更多网站功能!
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
做装配的时候,首先让用户选择约束类型,再选择约束面。但在操作过程中发现怎么也获取不了拥有特征的实体
请诸位帮我看看下面的代码
另:弹出UF_UI_select_with_single_dialog对话框的问题已经解决,多谢军波兄的帖子 。
。。。
。。。
char cue_face[] = "Select faces";
char title[] = "Boundary Selection";
UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM); //加锁,解锁否则对话框弹不出来while(true)
{
UF_CALL(UF_UI_select_with_single_dialog(cue_face,title,UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,init_proc1,NULL,&response,&first_plan,cursor,&view));
if (response == UF_UI_OBJECT_SELECTED)
{
UF_MODL_ask_face_data(first_plan,&type,point,dir,box,&radius,&rad_data,&norm_dir);
if (type!=22) {
uc1601("please select a plane",1);
UF_DISP_set_highlight(first_plan,0);
UF_terminate();
}
else if (response == UF_UI_OK || response == UF_UI_CANCEL || response == UF_UI_BACK)
{
/* Geometry selection is finished. */
break;
}
}
UF_UI_unlock_ug_access(UF_UI_FROM_CUSTOM);
//调试时发现已经选择到了面
tag_t sel_part_occ;
ret=UF_ASSEM_ask_parent_component(first_plan,&sel_part_occ);
//获取父对象,也就是拥有面的实体,但调试的时候发现sel_part_occ的tag值为0
tag_t sel_part_ins;
sel_part_ins=UF_ASSEM_ask_inst_of_part_occ(sel_part_occ);
UF_ASSEM_ask_component_data(sel_part_occ,part_name,refset_name,instance_name,origin,csys_matrix,transform);
。。。
。。。 |