102 lines
3.4 KiB
C++
102 lines
3.4 KiB
C++
#if !defined(__TDBHVACDUCT_H__)
|
|
#define __TDBHVACDUCT_H__
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#include "TDbPipeBase.h"
|
|
|
|
#pragma warning(disable: 4275 4251)
|
|
|
|
#ifdef _TCHPIPEBASE_
|
|
#define DLLIMPEXP __declspec(dllexport)
|
|
#else
|
|
#ifdef _TCHPIPEBASE_COM_
|
|
#define DLLIMPEXP
|
|
#else
|
|
#define DLLIMPEXP __declspec(dllimport)
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef TCHPIPEBASE_DBXSERVICE
|
|
#define TCHPIPEBASE_DBXSERVICE _T("TCHPIPEBASE_DBXSERVICE")
|
|
#endif
|
|
|
|
class DLLIMPEXP TDbHvacDuct : public TDbPipeBase
|
|
{
|
|
public:
|
|
ACRX_DECLARE_MEMBERS(TDbHvacDuct);
|
|
|
|
TDbHvacDuct();
|
|
virtual ~TDbHvacDuct();
|
|
|
|
public:
|
|
//{{AFX_ARX_METHODS(TDbHvacDuct)
|
|
virtual Acad::ErrorStatus ExplodeOrDraw3d(XExplodeDraw &mode) const;
|
|
virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &mode) const;
|
|
virtual Acad::ErrorStatus subExplode(AcDbVoidPtrArray& entitySet) const;
|
|
virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler* pFiler) const;
|
|
virtual Acad::ErrorStatus dxfInFields(AcDbDxfFiler* pFiler);
|
|
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler* pFiler) const;
|
|
virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler* pFiler);
|
|
virtual Acad::ErrorStatus subGetTransformedCopy(const AcGeMatrix3d& xform,
|
|
AcDbEntity*& pEnt) const;
|
|
|
|
virtual Acad::ErrorStatus getSplitCurves(const AcGePoint3dArray& points,
|
|
AcDbVoidPtrArray& curveSegments) const;
|
|
virtual Acad::ErrorStatus getSplitCurves(const AcGeDoubleArray& params,
|
|
AcDbVoidPtrArray& curveSegments) const;
|
|
virtual void erased(const AcDbObject* dbObj, Adesk::Boolean pErasing = true);
|
|
//}}AFX_ARX_METHODS
|
|
|
|
//{{AFX_ARX_DATA_ACCESS(TDbHvacDuct)
|
|
//}}AFX_ARX_DATA_ACCESS
|
|
virtual void UpdateRalatCover () const;
|
|
|
|
// add by hh 2011-09-29 支持风管与水管之间的遮挡
|
|
virtual Acad::ErrorStatus GetClipBoundary(TGGePoly2D& poly)const;
|
|
virtual bool IsMeClip() const;
|
|
virtual bool IsClipMe(const TEntityBase* pEnt=NULL)const;//ok是否被裁剪
|
|
|
|
// 是否是立管
|
|
virtual BOOL IsVertical() const;
|
|
|
|
// 写风管尺寸变化消息, vtOff:径向偏移
|
|
virtual void WriteSizeChangeMsg(double dNewWidth, double dNewHeigh, AcGeVector3d vtOff = AcGeVector3d(0,0,0));
|
|
// 写风管拖动位移夹点消息, vtOff:偏移
|
|
virtual void WriteMoveTransMsg(AcGeVector3d vtMove);
|
|
|
|
//BEGIN==========================================================
|
|
virtual void UpdateDimData(); //在风管的尺寸、标高、材料、风量发生变化时,更新标注内容
|
|
//END============================================================
|
|
|
|
// 移动紧邻风管的风口,用于联动。处理用接口无法实现的联动。贴壁风口目前跟风管还无法建立关系
|
|
// 图面实体多时,效率有待改善
|
|
virtual void MoveNextToAirLet(AcGeVector3d vtMove);
|
|
|
|
// 得到弧管圆心,如果不是软管,则返回0点
|
|
virtual AcGePoint3d GetCirCenter() const;
|
|
|
|
// 是否是弧管
|
|
virtual BOOL IsArcDuct() const;
|
|
|
|
// 初始化为弧(仅仅针对弧管)
|
|
BOOL InitArc(AcDbArc &arc) const;
|
|
|
|
// 获得风管中点和两端方向向量
|
|
virtual AcGePoint3d GetDirect(AcGeVector3d& vtStart, AcGeVector3d& vtEnd);
|
|
|
|
private:
|
|
//{{AFX_ARX_DATA(TDbHvacDuct)
|
|
//}}AFX_ARX_DATA
|
|
|
|
|
|
private:
|
|
void *operator new[](size_t nSize) { return 0; }
|
|
void operator delete[](void *p) {};
|
|
void *operator new[](size_t nSize, const char *file, int line) { return 0; }
|
|
};
|
|
|
|
#endif // !defined(__TDBHVACDUCT_H__)
|