Files
envi-code/SourceCode/Code2026/tg_shs/shs_pipebase/TDbHImpFittingCreatorService.cpp
T
2026-09-28 15:28:50 +08:00

212 lines
4.7 KiB
C++

#include "stdafx.h"
#include "TDbHImpFittingCreatorService.h"
#include "TDbXDataMap.h"
#include "THImpHvacDuct.h"
#include "THImpHvacElbow.h"
#include "THImpHvacReducer.h"
#include "THImpHvacTee.h"
#include "THImpHvacCross.h"
#include "THImpHvacFlange.h"
#include "THImpHvacOffset.h"
#include "THImpHvacValve.h"
#include "THImpHvacAirlets.h"
#include "THImpHvacEquipment.h"
#include "THImpHvacFan.h"
#include "THImpHvacEGroup.h"
#include "THImpHvacVRVBrPipe.h"
#include "THImpHvacVRVEqu.h"
#include "THImpHvacDeDustCover.h"
#include "THImpHvacBroSymbol.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
ACRX_CONS_DEFINE_MEMBERS(TDbHImpFittingCreatorService,TDbFittingCreatorService, 0)
TDbHImpFittingCreatorService::TDbHImpFittingCreatorService()
{
}
TDbHImpFittingCreatorService::~TDbHImpFittingCreatorService()
{
}
TImpSpecFitting* TDbHImpFittingCreatorService::CreateSpecialFitting(TDbXDataMap* pXDataMap, AcDbEntity* pOwner)
{
TImpSpecFitting* pNewFitting = NULL;
if (pXDataMap != NULL)
{
int nKind = -1;
pXDataMap->GetAt(KEY_RUNTIME, nKind);
try
{
switch(nKind)
{
case TDb::eElbow:
pNewFitting = new THImpHvacElbow;
pNewFitting->m_pXDataMap = pXDataMap;
pNewFitting->m_pOwnerEnt = pOwner;
break;
case TDb::eReduce:
{
pNewFitting = new THImpHvacReducer;
pNewFitting->m_pXDataMap = pXDataMap;
pNewFitting->m_pOwnerEnt = pOwner;
}
break;
case TDb::eTee:
{
pNewFitting = new THImpHvacTee;
pNewFitting->m_pXDataMap = pXDataMap;
pNewFitting->m_pOwnerEnt = pOwner;
break;
}
case TDb::eCross:
{
pNewFitting = new THImpHvacCross;
pNewFitting->m_pXDataMap = pXDataMap;
pNewFitting->m_pOwnerEnt = pOwner;
break;
}
case TDb::eFlange:
{
pNewFitting = new THImpHvacFlange;
pNewFitting->m_pXDataMap = pXDataMap;
pNewFitting->m_pOwnerEnt = pOwner;
break;
}
case TDb::eOffset: // mcl add, 08.11.24
{
pNewFitting = new THImpHvacOffset;
pNewFitting->m_pXDataMap = pXDataMap;
pNewFitting->m_pOwnerEnt = pOwner;
break;
}
case TDb::eBroSymbol:// zh add, 2013.7.23
{
pNewFitting = new THImpHvacBroSymbol;
pNewFitting->m_pXDataMap = pXDataMap;
pNewFitting->m_pOwnerEnt = pOwner;
break;
}
default:
break;
}
}
catch (...)
{
acedAlert(_T("系统内存不足! new 失败!"));
return NULL;
}
}
return pNewFitting;
}
TDbImpPipeBase* TDbHImpFittingCreatorService::CreateSpecialPipe(TDbXDataMap* pXDataMap,AcDbEntity* pOwner)
{
TDbImpPipeBase* pNewPipe = NULL;
if (pXDataMap != NULL)
{
int nKind = -1;
pXDataMap->GetAt(KEY_RUNTIME, nKind);
if (nKind == TDb::ePipe)
{
pNewPipe = new THImpHvacDuct;
pNewPipe->m_pXDataMap = pXDataMap;
pNewPipe->m_pOwnerEnt = pOwner;
}
}
return pNewPipe;
}
TImpSpecEquipment* TDbHImpFittingCreatorService::CreateSpecialEquipment(TDbXDataMap* pXDataMap,AcDbEntity* pOwner)
{
TImpSpecEquipment* pNewEquipment = NULL;
if (pXDataMap != NULL)
{
int nKind = -1;
pXDataMap->GetAt(KEY_RUNTIME, nKind);
try
{
switch(nKind)
{
case TDb::eValve:
{
pNewEquipment = new THImpHvacValve;
pNewEquipment->m_pXDataMap = pXDataMap;
pNewEquipment->m_pOwnerEnt = pOwner;
break;
}
case TDb::eAirlets:
{
pNewEquipment = new THImpHvacAirlets;
pNewEquipment->m_pXDataMap = pXDataMap;
pNewEquipment->m_pOwnerEnt = pOwner;
break;
}
case TDb::eFan:
{
pNewEquipment = new THImpHvacFan;
pNewEquipment->m_pXDataMap = pXDataMap;
pNewEquipment->m_pOwnerEnt = pOwner;
break;
}
case TDb::eEquipment:
{
pNewEquipment = new THImpHvacEquipment;
pNewEquipment->m_pXDataMap = pXDataMap;
pNewEquipment->m_pOwnerEnt = pOwner;
break;
}
case TDb::eAirHanding:
{
pNewEquipment = new THImpHvacEGroup;
pNewEquipment->m_pXDataMap = pXDataMap;
pNewEquipment->m_pOwnerEnt = pOwner;
break;
}
case TDb::eVRVEqu:
{
pNewEquipment = new THImpHvacVRVEqu;
pNewEquipment->m_pXDataMap = pXDataMap;
pNewEquipment->m_pOwnerEnt = pOwner;
break;
}
case TDb::eVRVBrPipe:
{
pNewEquipment = new THImpHvacVRVBrPipe;
pNewEquipment->m_pXDataMap = pXDataMap;
pNewEquipment->m_pOwnerEnt = pOwner;
break;
}
case TDb::eDeDustCover:
{
pNewEquipment = new THImpHvacDeDustCover;
pNewEquipment->m_pXDataMap = pXDataMap;
pNewEquipment->m_pOwnerEnt = pOwner;
break;
}
}
}
catch(...)
{
acedAlert(_T("系统内存不足! new 失败!"));
return NULL;
}
}
return pNewEquipment;
}
TImpSpecPart* TDbHImpFittingCreatorService::CreateSpecialPart(TDbXDataMap* pXDataMap,AcDbEntity* pOwner)
{
return NULL;
}