ug二次开发加入部件workpiece

选择当前视图中的部件作为部件,自动检查是否已经添加过重复部件,如果添加过就不在添加,而是在其下添加文件。代码如下

UF_UI_ONT_switch_view(UF_UI_ONT_geometry_mode);
	UF_OBJ_cycle_objs_in_part(UF_PART_ask_display_part(), UF_machining_geometry_grp_type, &geom_tag);//查询坐标系是否重复
	while (geom_tag != NULL_TAG)
	{
		UF_OBJ_ask_type_and_subtype(geom_tag, &geom_type, &geom_subtype);
		if (geom_subtype == UF_mill_geom_featr_subtype)
		{
			count_1++;
			UF_OBJ_ask_name(geom_tag, geom_name);
			if (!strcmp(geom_name, new_geom_name))
			{
				button_1 = 1;
				new_geom_tag = NULL_TAG;
				new_geom_tag = geom_tag;
				UF_OBJ_cycle_objs_in_part(UF_PART_ask_display_part(), UF_solid_type, &gongjian_tag);
				if (gongjian_tag != NULL_TAG)
				{
					UF_OBJ_ask_type_and_subtype(maopi_tag, &gj_type, &gj_subtype);
				}
				else
				{
					uc1601("请先创建或打开一个工件!\n在没有工件情况下无法设置毛坯和几何体", 1);
				}
			}
		}
		UF_OBJ_cycle_objs_in_part(UF_PART_ask_display_part(), UF_machining_geometry_grp_type, &geom_tag);
	}
	printf("总共有%d个工件", count_1);

	if (button_1 == 0)//如果标志位为0就说明没有加过这个工件
	{
		UF_NCGEOM_create(mcs_type_name, mcs_subtype_name, &new_mcs_tag);
		UF_SETUP_ask_geom_root(setupTag, &geom_group);
		UF_NCGROUP_accept_member(geom_group, new_mcs_tag);
		UF_CSYS_ask_wcs(&wcs);
		UF_PARAM_set_tag_value(new_mcs_tag, UF_PARAM_MCS, wcs);
		UF_OBJ_set_name(new_mcs_tag, new_mcs_name);
		UF_CAM_opt_ask_subtypes(type_names[2], UF_CAM_OPT_STYPE_CLS_GEOM, &geom_sub_cnt, &geom_sub_names);
		UF_NCGEOM_create((char*)type_names[2], (char *)geom_sub_names[1], &new_geom_tag);
		UF_OBJ_set_name(new_geom_tag, new_geom_name);
		if (new_geom_tag != NULL)
		{
			UF_NCGROUP_accept_member(new_mcs_tag, new_geom_tag);
		}
		app_data_list[0] = (UF_CAMGEOM_app_data_p_t)UF_allocate_memory(sizeof(UF_CAMGEOM_app_data_t), &err_code);
		app_data_list[0] = NULL;//就相当于UF_free 
		UF_OBJ_cycle_objs_in_part(UF_PART_ask_display_part(), UF_solid_type, &gongjian_tag);
		if (gongjian_tag != NULL_TAG)
		{
			UF_OBJ_ask_type_and_subtype(maopi_tag, &gj_type, &gj_subtype);
		}
		else
		{
			uc1601("请先创建或打开一个工件!\n在没有工件情况下无法设置毛坯和几何体", 1);
		}
		UF_CAMGEOM_append_items(new_geom_tag, UF_CAM_part, 1, &gongjian_tag, app_data_list);		// 设置工件
		UF_CAMGEOM_append_items(new_geom_tag, UF_CAM_blank, 1, &gongjian_tag, app_data_list);		// 设置毛坯
	    //UF_CAMGEOM_append_items(WORKPIECE,UF_CAM_check,1,&area_face, app_data_list);		// 设置检查体
		
		
	}
	else
		uc1601("存在重复工件", 0);
	UF_NCGROUP_accept_member(new_geom_tag, opt_tag);
	UF_UI_ONT_refresh();          //不加这句会不能马上在界面中能显示
	UF_DISP_refresh();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值