iCAx开思工具箱
标题:
【求助】关于函数UF_MODL_create_extruded()
[打印本页]
作者:
tari
时间:
2004-9-14 09:45
标题:
【求助】关于函数UF_MODL_create_extruded()
我在使用该函数时,系统提示错误为:section curves are not connected each other
UF_MODL_create_extruded(loop_list,taper_angle,limit,ref_pt,direction,create,feature);
各条曲线我通过UF_MODL_put_list_item()函数添加进去了,恳请指点!
作者:
tari
时间:
2004-9-14 10:30
下面是相关的一段代码:(base_pt是点构造器生成的点,arc1是以base_pt为中心生成的圆)
UF_MODL_create_list([$loop_list)]
if(edge!=NULL_TAG)
{
UF_MODL_ask_edge_faces(edge,[$face_list)]
p3=face_list;
while(p3!=NULL)
{
UF_MODL_ask_face_parm(p3->eid,base_pt,parm,face_pt);
UF_MODL_ask_face_props(p3->eid,parm,point,[$u1,&v1,&u2,&v2,unit_norm,&radii)]
UF_VEC3_is_parallel(unit_norm,direction,tolerance,[$is_parallel)]
if(is_parallel!=1)
{
face=p3->eid;
break;
}
p3=p3->next;
}
UF_MODL_create_curve_from_edge(edge,[$curve)]
UF_MODL_ask_curve_parm(curve,base_pt,[$param,curve_pt)]
double tolerance=0.0254;
int num_intersections;
UF_MODL_intersect_info_p_t *intersections;
UF_MODL_intersect_objects(curve,arc1,tolerance,[$num_intersections,&intersections)]
for(int kk=0;kk<3;kk++)
{
curve1_pt[kk]=intersections[0]->intersect.point.coords[kk];
curve2_pt[kk]=intersections[1]->intersect.point.coords[kk];
}
UF_MODL_ask_face_parm(face,curve_pt,parm,face_pt);
UF_MODL_ask_face_props(face,parm,point,[$u1,&v1,&u2,&v2,unit_norm,&radii)]
for(int i=0;i<3;i++)
{
second_pt
=curve_pt
+unit_norm
*3.5;
}
UF_MODL_ask_face_parm(face,curve1_pt,parm,face_pt);
UF_MODL_ask_face_props(face,parm,point,[$u1,&v1,&u2,&v2,unit_norm,&radii)]
for(i=0;i<3;i++)
{
first_pt
=curve1_pt
+unit_norm
*0.5;
}
sline.start_point[0]=curve1_pt[0];
sline.start_point[1]=curve1_pt[1];
sline.start_point[2]=curve1_pt[2];
sline.end_point[0]=first_pt[0];
sline.end_point[1]=first_pt[1];
sline.end_point[2]=first_pt[2];
UF_CURVE_create_line([$sline,&line1)]
UF_MODL_put_list_item(loop_list,line1);
UF_MODL_ask_face_parm(face,curve2_pt,parm,face_pt);
UF_MODL_ask_face_props(face,parm,point,[$u1,&v1,&u2,&v2,unit_norm,&radii)]
for(i=0;i<3;i++)
{
third_pt
=curve2_pt
+unit_norm
*0.5;
}
sline.start_point[0]=curve2_pt[0];
sline.start_point[1]=curve2_pt[1];
sline.start_point[2]=curve2_pt[2];
sline.end_point[0]=third_pt[0];
sline.end_point[1]=third_pt[1];
sline.end_point[2]=third_pt[2];
UF_CURVE_create_line([$sline,&line2)]
UF_MODL_put_list_item(loop_list,line2);
sline.start_point[0]=curve1_pt[0];
sline.start_point[1]=curve1_pt[1];
sline.start_point[2]=curve1_pt[2];
sline.end_point[0]=curve2_pt[0];
sline.end_point[1]=curve2_pt[1];
sline.end_point[2]=curve2_pt[2];
UF_CURVE_create_line([$sline,&line3)]
UF_MODL_put_list_item(loop_list,line3);
UF_CURVE_create_arc_thru_3pts(create_flag,first_pt,second_pt,third_pt,[$arc_tag)]
UF_MODL_put_list_item(loop_list,arc_tag);
UF_CURVE_ask_arc_data(arc_tag,[$arc)]
UF_CURVE_arc_t arc_coords;
tag_t circle;
tag_t body;
arc_coords.matrix_tag=arc.matrix_tag;
for(i=0;i<3;i++)
arc_coords.arc_center
=arc.arc_center
;
arc_coords.start_angle=0;
arc_coords.end_angle=360*DEGRA;
arc_coords.radius=1;
UF_CURVE_create_arc([$arc_coords,&circle)]
UF_MODL_put_list_item(loop_list,circle);
rc=UF_MODL_create_extruded(loop_list,taper_angle,limit,ref_pt,direction,create,[$feature)]
if(rc)
{
UF_get_fail_message(rc,msg);
printf("error=%s\n",msg);
}
loop_list包含的5段曲线都是有值的
作者:
tari
时间:
2004-9-14 17:59
各位高手指点一下吧!
作者:
刘亮
时间:
2004-9-14 20:01
朋友
UF_MODL_create_extruded()在哪个头文件里啊?
我怎么找不到啊
作者:
tari
时间:
2004-9-14 20:03
uf_modl.h
作者:
刘亮
时间:
2004-9-14 20:37
怎么还是没有啊?是不是在uf_modl.h 里?
作者:
刘亮
时间:
2004-9-14 20:43
在uf_modl_sweep.h里
作者:
tari
时间:
2004-9-14 22:13
我换了一个零件执行没问题,迷惑中!
各位继续指点,谢谢!
作者:
tari
时间:
2004-9-14 22:30
下面两副图就是对应执行的情况:
作者:
tari
时间:
2004-9-14 22:31
这个零件就不行
作者:
tari
时间:
2004-9-15 08:57
我利用上面自动生成的线用UG自带的拉伸命令执行,错误提示如图:
作者:
yanfang1108
时间:
2004-9-15 09:34
我也遇到过这种问题,你再好好检查一下,你看一下,你的拉伸曲线是不是不是封闭的?
作者:
tari
时间:
2004-9-15 09:51
这个问题我解决了,是曲线不在同一个平面造成曲线不封闭,谢谢大家!
欢迎光临 iCAx开思工具箱 (https://t.icax.org/)
Powered by Discuz! X3.3