86 lines
2.7 KiB
C++
86 lines
2.7 KiB
C++
#pragma once
|
|
|
|
class AecDbEwFitting;
|
|
class CUIISQLiteServer;
|
|
class AecDbEwEquipment;
|
|
typedef struct AecInterfaceFrTo
|
|
{
|
|
AecInterface infFr;
|
|
AecInterface infTo;
|
|
}AECINTERFACEFRTO;
|
|
|
|
typedef struct AcDbObjectIdNext
|
|
{
|
|
AcDbObjectId id;
|
|
AcDbObjectIdNext* pNext;
|
|
}ACDBOBJECTIDNEXT;
|
|
|
|
typedef struct AcDbObjectIdInf
|
|
{
|
|
AcDbObjectId id;
|
|
AecInterface infFr;
|
|
AcGeVector3d vtMove;//是否有移动
|
|
AcDbObjectIdInf* pNext;
|
|
}AcDbObjectIdInf;
|
|
|
|
class AecPipeLineModify
|
|
{
|
|
public:
|
|
AecPipeLineModify(void);
|
|
~AecPipeLineModify(void);
|
|
|
|
void SetADOServer(CUIISQLiteServer* pADOServer);
|
|
void SetPipeParamOld(const WPipe::PipeParam* pPipeParam);
|
|
|
|
void SetPipeNetIds(AcDbObjectIdArray& arNetIds);
|
|
|
|
bool ModifyPipeLineParam(AcDbObjectIdArray& arPipeIds,AcDbObjectIdArray& arFitIds,AcDbObjectIdArray& arEquIds,WPipe::PipeParam& paramNew,BOOL bUpdateMat);
|
|
|
|
bool AddjustTInfAssoc();
|
|
|
|
private:
|
|
|
|
bool ModifyFitting(AecDbEwFitting* pFit,const WPipe::PipeParam& paramNew);
|
|
|
|
bool ModifyPipeOnParam(const AcDbObjectIdArray& arPipeIds,const WPipe::PipeParam& paramNew);
|
|
bool ModifyByInfAssoc(const AcArray<AecInterface>& arFitEquOldInfs,AecMInterfaces* pFitEquMInfNew,const WPipe::PipeParam& paramNew);
|
|
|
|
CPoint PickAssocEqu(AcArray<AecInterface>& arInfs,AcDbObjectIdArray& arEquIds,AcArray<AcDbObjectIdInf>& arAssEquIds);
|
|
CPoint PickAssocFlange(AcArray<AecInterface>& arInfs,AcDbObjectIdArray& arFitIds,int iPos,AcArray<AcDbObjectIdInf>& arAssFlgs);
|
|
|
|
void MakeEquListStartByEqu(AcArray<AcDbObjectIdInf>& arAssEquIds,AcDbObjectIdArray& arEquIds);
|
|
void MakeEquListStartByFlang(AcArray<AcDbObjectIdInf>& arAssFlgs,AcDbObjectIdArray& arEquIds,AcDbObjectIdArray& arFlangIds);
|
|
void MakeEquListTheRest(AcDbObjectIdArray& arEquIds,AcDbObjectIdArray& arFlangIds,AcArray<AcDbObjectIdInf>& arIdInf);
|
|
bool ModifyPipeLineParamSys(AcDbObjectIdArray &arIds, WPipe::PipeParam ¶mNew);
|
|
|
|
//沿着list修改阀门
|
|
void ModifyEquAlongList(AcArray<AcDbObjectIdInf>& arAssEquIds,const WPipe::PipeParam& paramNe);
|
|
void ModifyEquAlongList(AecInterface& infOld,AecInterface& infNewTo,AcDbObjectIdInf* pNext,const WPipe::PipeParam& paramNew);
|
|
void ModifyPipeOnNewInf(AecInterface& infOld,AecInterface& infTo);
|
|
private:
|
|
|
|
AecDbEwEquipment* CreateNewValve(AecDbEwEquipment* pEqu,const WPipe::PipeParam& paramNew);
|
|
|
|
AecDbEwFitting* CreateNewFlang(AecDbEwFitting* pFitFr,const WPipe::PipeParam& paramNew);
|
|
|
|
AecDbEwEquipment* getEquiment(
|
|
AecDbEwEquipment *pOldEqu
|
|
, const WPipe::PipeParam ¶mNew
|
|
, bool &bHasFangle
|
|
, AecEqui::ValveType val
|
|
, LPCTSTR psz = NULL
|
|
, LPCTSTR pszFolder = NULL);
|
|
|
|
public:
|
|
|
|
WPipe::PipeParam m_paramOld;
|
|
BOOL m_bTeeStop,m_bCrossStop;
|
|
BOOL m_bUpdateMat;
|
|
AcDbObjectIdArray m_arNetIds;
|
|
AcDbObjectIdArray m_arPipeIds;
|
|
CUIISQLiteServer* m_pADOServer;
|
|
|
|
//关联的接口更改
|
|
AcArray<AecInterfaceFrTo> m_arFrTo;
|
|
};
|