#ifndef _TDBHVACDIMENSIONEX_H_ #define _TDBHVACDIMENSIONEX_H_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "TDbHvacDimension.h" using namespace TDb; class TDbText; class DLLIMPEXP TDbHvacDimensionEx : public TDbHvacDimension { typedef CArray CDblArray; public: DECLARE_TENTBASE(); ACRX_DECLARE_MEMBERS(TDbHvacDimensionEx); TDbHvacDimensionEx(); virtual ~TDbHvacDimensionEx(); virtual Acad::ErrorStatus subGetClassID(CLSID* pClsid) 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 int GetFirstVersion() const; virtual void SetSubText(long i,CString sText); // 根据参数名称获得实体的OPM信息,pszName:参数名称(XMap key值) virtual BOOL OPMInfo(LPCTSTR pszName, TDb::OPMInfo* pInfo); // 表格 void SetColumnCount(int nCount); int GetColumnCount() const; void SetUpGrid(const CUIntArray& arFlag); void GetUpGrid(CUIntArray& arFlag) const; void SetDownGrid(const CUIntArray& arFlag); void GetDownGrid(CUIntArray& arFlag) const; void SetLeadShow(int nShow); void SetGridMask(LPCTSTR pszMask); CString GetGridMask() const; int GetLeadShow() const; // 从反应器初始化标注风口的XData数据 virtual BOOL InitDuctXData(); // 返回绘制的实体,用完负责删除 virtual void MakeEntity(AcDbVoidPtrArray &entityArr) const; // 转换各部分格式字符串到实际结果 virtual BOOL TransTextToResult(); protected: // 得到分隔用|隔开的字符 virtual BOOL GetEachStr(const CString &csText, CStringArray &arrText ) const; virtual void TranslateDimText(CString &csText) const; // 转换格式字符为实际标注内容 // 根据变量名具体替换每个相应变量宏字符 virtual void ChangeTextIdByValue(CString &csText, const CString &csTextid) const; // 创建箭头 virtual void MakeArrow( AcDbVoidPtrArray &entityArr ) const; // 创建引线及边框 virtual void MakeLeadAndFrame(AcGePoint3dArray &ptArr, AcDbVoidPtrArray &entityArr) const; // 求关键点 virtual void GetKeyPoint(const AcGeVoidPointerArray& arrTexts, AcGePoint3dArray &arrPoint) const; // 获取各部分文字基点 AcGePoint3d GetTextBasePt(Adesk::UInt32 nIndex) const; // 计算文字基点 void GetTextPoint(const AcGeVoidPointerArray& arrTexts, AcGePoint3dArray &arrPoint) const; // 计算文字长度 double GetTextsLen(const AcGeVoidPointerArray& arrTexts, CDblArray& arUpLen, CDblArray&arDnLen) const; // 取得有效的表格标记 int GetValidGridFlag(CUIntArray& arUp, CUIntArray& arDown) const; // 取得圆形设备的直径 double GetEquipDiameter() const; // 取得长度 double GetEquipLength() const; // 取得宽度 double GetEquipWidth() const; // 取得高度 double GetEquipHeight() const; // 取得设备风量 double GetEquipAirVol() const; // 取得名称 CString GetEquipName() const; // 判断设备是否侧放 BOOL IsSideEquip() const; }; #endif // _TDBHVACDIMENSIONEX_H_