移除组件
移除组件时,需先删除该组件的父部件下的组件阵列,否则会移除失败
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();
}