#ifndef _DB_EQUIPMENT_BOX_H #define _DB_EQUIPMENT_BOX_H #include "dbopening.h" // 设备箱对象 class TARCH_EXP TDbEquipmentBox: public TDbOpening { DECLARE_TENTBASE(); ACRX_DECLARE_MEMBERS(TDbEquipmentBox); private: const static Adesk::UInt8 g_nVersion; protected: double m_dBreadth; // 宽度,块的宽度,与墙厚度无关 public: TDbEquipmentBox(); ~TDbEquipmentBox(); public: // 设置设备箱的宽度 void SetBreadth(double dBreadth); double GetBreadth() const; // 设置是否打断墙体 void SetBreakWall(BOOL bBreak); BOOL GetBreakWall() const; public: // Overriden function from AcDbEntity virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler* pFiler); virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler* pFiler) const; virtual Acad::ErrorStatus dxfInFields(AcDbDxfFiler* pFiler); virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler* pFiler) const; virtual Acad::ErrorStatus subGetGripPoints(AcGePoint3dArray& gripPoints, AcDbIntArray& osnapModes, AcDbIntArray& geomIds) const; virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform); public: // Overriden function from TEntityBase virtual BOOL IsValid() const; virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag); virtual int GetFirstVersion() const { return 9; } virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &dc) const; virtual Acad::ErrorStatus ExplodeOrDraw3d(XExplodeDraw &dc) const; virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const; #if ADS>15 virtual void CreateGrip(); virtual Acad::ErrorStatus EntityToDim(long iGrip,long iDim, const AcDbEntity* pEnt0); virtual Acad::ErrorStatus DimToEntity(long iGrip,long iDim, double newValue, const AcGeVector3d& offset); #endif public: // Overriden function from TOpeningData virtual const TCHAR* GetKindString() const; public: // Overriden function from TDbOpening virtual void MirrorSelf(BOOL bLeftRight); public: // Helper Method Acad::ErrorStatus GetInsert3DScale(double *pScaleX, double *pScaleY, double *pScaleZ) const; Acad::ErrorStatus GetInsert2DScale(double *pScaleX, double *pScaleY) const; }; #endif