//镜像体
void uf_mirror_body()
{
double origin[]={0,0,0};
char *Edge_len[]={"200","200","200"};
tag_t BlkTag = NULL_TAG;
UF_MODL_create_block1(UF_NULLSIGN,origin,Edge_len,&BlkTag);
//特征找体
tag_t BodyTag;
UF_MODL_ask_feat_body(BlkTag,&BodyTag);
//创建基准平面
double origin_point[]={0,0,200};
double plane_Normal[]={0,0,1};
tag_t plane_tag;
UF_MODL_create_fixed_dplane(origin_point,plane_Normal,&plane_tag);
//创建镜像体
tag_t Mirrored_body;
UF_MODL_create_mirror_body(BodyTag,plane_tag,&Mirrored_body);
}
//拆分体(平面)
void uf_split_body()
{
double origin[]={0,0,0};
char *Edge_len[]={"200","200","200"};
tag_t BlkTag = NULL_TAG;
UF_MODL_create_block1(UF_NULLSIGN,origin,Edge_len,&BlkTag);
//特征找体
tag_t BodyTag_split;
UF_MODL_ask_feat_body(BlkTag,&BodyTag_split);
//创建分割体基准平面
double origin_point_split[]={0,100,0};
double plane_Normal_split[]={0,1,0};
tag_t plane_tag_split;
UF_MODL_create_fixed_dplane(origin_point_split,plane_Normal_split,&plane_tag_split);
//创建分割体
tag_t bodies={BodyTag_split};
int num_split_bodies = 0;
tag_t* split_bodies = NULL_TAG;
UF_MODL_split_body(1,&bodies,plane_tag_split,&num_split_bodies,&split_bodies);
}
//管道
void uf_tube()
{
Session *theSession = Session::GetSession();
Part *workPart(theSession->Parts()->Work());
Point3d StartPoint1(0,0,0);
Point3d EndPoint1(0,100,0);
Line *line1;
line1 = workPart->Curves()->CreateLine(StartPoint1,EndPoint1);
tag_t line_tag = line1->Tag();
uf_list_p_t List;
UF_MODL_create_list(&List);
UF_MODL_put_list_item(List,line_tag);
//创建管道
char *limit[]={"100","50"};//定义外径和内径
uf_list_p_t feature_list;
UF_MODL_create_tube(List,limit,UF_NULLSIGN,&feature_list);
//特征找体
tag_t bodyTag;
UF_MODL_ask_feat_body(feature_list->eid,&bodyTag);
UF_OBJ_set_color(bodyTag,189);
UF_MODL_delete_list(&feature_list);
UF_MODL_delete_list(&List);
}
//阵列特征
void uf_cre_circular_iset()
{
double origin[]={0,0,0};
double orig_iset[]={0,35,0};
double direction[]={0,0,1};
char *height="30";
char *diam_cover="100";
char *diam_hole="30";
char *diam_iset = "10";
char *part_name ="cover";
UF_FEATURE_SIGN create = UF_NULLSIGN,sub=UF_NEGATIVE;
tag_t cover_id,hole_id,iset_id,feat_obj,part;
uf_list_p_t feat_list;
int englist_units = 2;
UF_MODL_create_cyl1(create,origin,height,diam_cover,direction,&cover_id);
UF_MODL_create_cyl1(sub,origin,height,diam_hole,direction,&hole_id);
UF_MODL_create_cyl1(sub,orig_iset,height,diam_iset,direction,&iset_id);
UF_MODL_create_list(&feat_list);
UF_MODL_put_list_item(feat_list,iset_id);
UF_MODL_create_circular_iset(0,origin,direction,"3","120",feat_list,&feat_obj);
UF_MODL_delete_list(&feat_list);
}
【UG\NX二次开发】镜像体、拆分体(平面)、管道、阵列特征
于 2023-11-09 21:55:29 首次发布