NX二次开发,移除组件

移除组件

移除组件时,需先删除该组件的父部件下的组件阵列,否则会移除失败

void RemoveComp(Assemblies::Component* mCom)
{
	if(mCom == NULL)
		return;

	UF_initialize();
	if(mCom->IsOccurrence())
	{
		//父部件如果存在组件阵列,删除组件阵列
		Assemblies::Component* sParent = mCom->Parent();
		if(sParent != NULL)
		{
			Part* sPart = dynamic_cast<Part*>(sParent->Prototype());
			int num_arrays = 0;
			tag_t *array_tags;
			UF_ASSEM_ask_arrays_in_part(sPart->Tag(), &num_arrays, &num_arrays);
			for(int i = 0; i < num_arrays; i++)
				UF_ASSEM_delete_array(num_arrays[i], false);
				
			UF_free(num_arrays);
		}

		//移除组件
		tag_t inst = UF_ASSEM_ask_inst_of_part_occ(mCom->Tag());
		if(inst != NULL_TAG)
			UF_ASSEM_remove_instance(inst );
	}
	UF_terminate();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值