1.元件的重命名
bool ThkTmsHCompNumDefMng::ReNameComp(ThkArrayX<sThkTmsNumDefHeatComp*>& arrComp)
{
if ((int)arrComp.GetCount()<=0)
{
return false;
}
for (int k = 0; k < (int)arrComp.GetCount(); k++)
{
sThkTmsNumDefHeatComp* pComp = arrComp[k];
if (pComp == NULL)
{
continue;
}
ThkSolid tSld;
if (pComp->m_strCode.IsEmpty())
{
continue;
}
if (tSld.Retrieve(pComp->m_strCode, PRO_MDL_PART) == PRO_TK_NO_ERROR)
{
Msg_OutErr("模型%s已存在", pComp->m_strCode);
continue;
}
ThkSolid aSld;
if (aSld.CrtByTpl(pComp->m_strCode,pComp->m_tComp.GetMdl()) != PRO_TK_NO_ERROR)
{
Msg_OutErr("%s模型创建失败", pComp->m_strCode);
return false;
}
pComp->m_tComp.ReplaceMdl(aSld);
pComp->m_strName = pComp->m_strCode;
pComp->m_tComp.SetParam(THK_TMS_CCODE, pComp->m_strCode);
}
return true;
}
2.元件的加亮
bool ThkTmsHCompNumDefMng::HighLightComp(sThkTmsNumDefHeatComp* pComp)
{
if (pComp == NULL)
{
return false;
}
if (pComp->m_tPath.Highlight() != PRO_TK_NO_ERROR)
{
return false;
}
return true;
}
3.获取所有层级下的元件
bool ThkTmsHCompNumDefMng::ReadAllComp(ThkAsmcomppath tPath)
{
if (!tPath.IsValid())
{
return false;
}
ThkSolid tSld = tPath.GetMdl();
if (!tSld.IsAsm())
{
return false;
}
CAtlArray<ThkComponent>arrComp;
tSld.GetAllComp(arrComp);
for (int j = 0; j < (int)arrComp.GetCount(); j++)
{
ThkComponent tComp = arrComp[j];
if (tComp.IsEmpty())
{
continue;
}
if (!tComp.GetMdl().IsExistThkParam(THK_TMS_MTYPE))
{
continue;
}
int nType = -1;
if (!tComp.GetMdl().GetThkParam(THK_TMS_MTYPE, nType))
{
continue;
}
ThkAsmcomppath tCompPath = tPath + tComp.GetPath();
eTmsMdlType mType = TMS_MDL_UNUSE;
mType = (eTmsMdlType)nType;
if (mType== TMS_MDL_TPS)
{
sThkTmsNumDefHeatComp* pComp = new sThkTmsNumDefHeatComp;
if (!pComp->Init(tComp, tCompPath))
{
delete pComp;
pComp = NULL;
}
else
{
m_vThermistorComp.push_back(pComp);
}
}
else if (mType == TMS_MDL_TCOUP)
{
sThkTmsNumDefHeatComp* pComp = new sThkTmsNumDefHeatComp;
if (!pComp->Init(tComp, tCompPath))
{
delete pComp;
pComp = NULL;
}
else
{
m_vTmeCoupleComp.push_back(pComp);
}
}
else if (mType == TMS_MDL_HFM)
{
sThkTmsNumDefHeatComp* pComp = new sThkTmsNumDefHeatComp;
if (!pComp->Init(tComp, tCompPath))
{
delete pComp;
pComp = NULL;
}
else
{
m_vHeatFlowMeterComp.push_back(pComp);
}
}
ReadAllComp(tCompPath);
}
return true;
}