iCAx开思网
标题:
API如何编辑遍历得到的特征(十万火急)
[打印本页]
作者:
dyks000
时间:
2009-5-23 22:13
标题:
API如何编辑遍历得到的特征(十万火急)
比如我在UG界面里做了一个圆,
然后在 API 中用 UF_OBJ_cycle_objs_in_part( part, type, &feature );
type=UF_circle_type 遍历得到了这个圆的特征标识 circle_tag
然后想用函数 UF_MODL_create_extruded(loop_list,taper_angle,limit,ref_pt,direction,UF_NULLSIGN,&features);
来拉伸这个圆,但是用 UF_MODL_put_list_item(loop_list,circle)编译的时候
总是提示 local variable 'loop_list' used without having been initialized
也就是没有把圆的 tag添加到 链表中,所以不能拉伸,不知道这种问题应该怎么解决啊
请大家指点我一下,跪谢了!!!
作者:
ffhi
时间:
2009-5-25 11:13
1#
dyks000
是不是没有调用UF_MODL_create_list()?
作者:
dyks000
时间:
2009-5-25 15:52
的确 ,是没有调用 UF_MODL_create_list() 的结果,现在问题解决了,
但是我想拉伸草图里的圆的话,
我先在草图中画了一个圆,现在想用API拉伸这个草图,我用
UF_OBJ_cycle_objs_in_part( part, type, &feature )来遍历
一、 设定type =UF_sketch_type,遍历到草图的特征标识 sketch_tag ;
二、 然后用 UF_SKET_ask_sketch_features(sketch_tag,&loop_list);
获得草图里的特征标识的链表 ;
三、 再用UF_MODL_create_extruded (loop_list,taper_angle,limit,ref_pt,direction,UF_NULLSIGN,&features);
来拉伸;但是总是不能拉伸成功,不知道是哪步做的有问题啊
代码如下:
char *taper_angle="0.0";
char *limit[2],limitl[2][30];
double direction[3]={0.0,0.0,1.0};
double ref_pt[2];
strcpy(limitl[0],"-20");
strcpy(limitl[1],"20");
limit[0]=limitl[0];
limit[1]=limitl[1];
int count_1,type;
tag_t sketch_tag, part_tag;
uf_list_p_t loop_list;
feature = NULL_TAG;
type=UF_sketch_type;
nume=1;
count_1=0;
part_tag=UF_PART_ask_display_part();
/* Start the cycling process by passing in a NULL_TAG. */
UF_OBJ_cycle_objs_in_part( part_tag,type, &sketch_tag );
while(sketch!=NULL_TAG)
{
count_1++;
UF_MODL_create_list(&loop_list);
UF_SKET_ask_sketch_features(sketch_tag,&loop_list);
UF_OBJ_cycle_objs_in_part( part_tag,type, &feature );
UF_MODL_create_extruded(loop_list,taper_angle,limit,ref_pt,direction,UF_NULLSIGN,&features);
UF_MODL_delete_list(&features);
}
}
作者:
zhangcanwei
时间:
2009-5-28 18:18
看看ug自带的拉伸例子吧,很全面
作者:
dyks000
时间:
2009-5-29 09:09
问题已解决,谢谢!
作者:
zzz
时间:
2009-6-3 15:34
你得到的sketch 特征的tag,而拉伸是要用sktech里面的curve的tags,这两个完全不是一回事啊
欢迎光临 iCAx开思网 (https://www.icax.org/)
Powered by Discuz! X3.3