【UG\NX二次开发】镜像体、拆分体(平面)、管道、阵列特征

//镜像体
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);
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

社恐猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值