// = FileName: CThunderXData.h // = Version: 1.0 // = Author: // = Date: 2008/06/10 // = Description: 插入,查看扩展数据 // = Maintainers: #ifndef __CTHUNDERXDATA_H__ #define __CTHUNDERXDATA_H__ #if _MSC_VER > 1000 #pragma once #endif class CThunderXData { public: CThunderXData(); virtual ~CThunderXData(); public: enum XDataStyle { //滚球法 eXDataPinNum = 0, //避雷针编号 eXDataPinHeight = 1, //避雷针高度 eXDataPinRadius = 2, //避雷针保护半径 eXDataPinIs2d = 3, //避雷针显示是否为2d eXDataBlockScale = 4, //图块系数 eXDataTextHeight = 5, //字体高度 }; enum XFoldStyle { //折线法 eXFoldPinNum = 0, //避雷针编号 eXFoldPinHeight = 1, //避雷针高度 eXFoldBlockScale = 2, //图块系数 eXFoldTextHeight = 3, //字体高度 }; enum XDataProHeightIndex { eZero = 0, eOne = 1, eTwo = 2, }; public: // 设置基本数据 bool SetBaseInformationExData(const AcDbObjectId& idEnt, const CStringArray& arsXData, LPCTSTR pszAppName); // 获取基本数据(使用ID) bool GetBaseInformationExData(const AcDbObjectId& idEnt, CStringArray& arsXData, LPCTSTR pszAppName); // 获取基本数据(使用实体指针) bool GetBaseInformationExData(AcDbEntity* pEnt, CStringArray& arsXData, LPCTSTR pszAppName); // 获取指定项(使用实体指针) bool GetIndexOf(AcDbEntity* pEnt, CString& strDes, int iIndex, LPCTSTR pszAppName); // 获取指定项(使用实体ID) bool GetIndexOf(AcDbObjectId& entId, CString& strDes, int iIndex, LPCTSTR pszAppName); // 从扩展数据中获取实体ID bool GetEntityIdFromExData(const AcDbObjectId& idInput, AcDbObjectIdArray& arIdOutput, LPCTSTR pszAppName); bool GetEntityIdFromExData(const AcDbObjectId& idInput, AcDbObjectId& idOutput, LPCTSTR pszAppName); bool GetEntityIdFromExData(AcDbEntity* pEnt, AcDbObjectId& idOutput, LPCTSTR pszAppName); bool GetEntityIdFromExData(AcDbEntity* pEnt, AcDbObjectIdArray& aridOutput, LPCTSTR pszAppName); // 由实体ID获取句柄以字符串的形式写入到指定(圆)实体的扩展数据中 bool SetEntityIdToExData(const AcDbObjectIdArray& arIdData, const AcDbObjectId& idGoal, LPCTSTR pszAppName); BOOL SetProtectHeightToObjEx(const AcDbObjectId& idThunder, const AcGeDoubleArray& arProHeight); BOOL GetProtectHeightFromObjEx(const AcDbObjectId& idThunder, AcGeDoubleArray& arProHeight); BOOL GetProtectHeightFromObjEx(AcDbEntity* pEnt, AcGeDoubleArray& arProHeight); BOOL GetProtectHeightFromReg(AcGeDoubleArray& arProHeight, LPCTSTR pszKey = TEL_THUNDER_MULTIPROHT); BOOL SetProtectHeightToReg(const AcGeDoubleArray& arProHeight, LPCTSTR pszKey = TEL_THUNDER_MULTIPROHT); BOOL SplitValue(LPCTSTR pszSrc, LPCTSTR pszSplitCh, AcGeDoubleArray& arValue); BOOL SplitString(CString& sSrc, LPCTSTR pszSplitCh, CString& sValue); CString ConvertToCString(const AcGeDoubleArray& arValue, LPCTSTR pszSplitCh); BOOL SetXData(const AcDbObjectId& id, LPCTSTR pszAppName, LPCTSTR pszXData); BOOL SetXData(AcDbEntity* pEnt, LPCTSTR pszAppName, LPCTSTR pszXData); BOOL GetXData(const AcDbObjectId& id, LPCTSTR pszAppName, CString& sXData); BOOL GetXData(AcDbEntity* pEnt, LPCTSTR pszAppName, CString& sXData); BOOL SetXData(const AcDbObjectId& idSrc,LPCTSTR pszAppName,const AcDbObjectId& oid); BOOL SetXData(AcDbEntity* pEnt,LPCTSTR pszAppName,const AcDbObjectId& oid); BOOL GetXData(const AcDbObjectId& idSrc,LPCTSTR pszAppName,AcDbObjectId& oid); BOOL GetXData(AcDbEntity* pEnt,LPCTSTR pszAppName,AcDbObjectId& oid); int GetGroupNO(Entity& ent); int GetGroupNO(const AcDbObjectId& id); int GetGroupNO(AcDbEntity* pEnt); int GetFoldGroupNO(Entity& ent); int GetFoldGroupNO(const AcDbObjectId& id); int GetFoldGroupNO(AcDbEntity* pEnt); BOOL GetFoldProHeightFromObjEx(const AcDbObjectId& idThunder, AcGeDoubleArray& arProHeight); BOOL GetFoldProHeightFromObjEx(AcDbEntity* pEnt, AcGeDoubleArray& arProHeight); BOOL SetFoldProHeightToObjEx(const AcDbObjectId& idThunder, const AcGeDoubleArray& arProHeight); }; #endif // __CThunderXData_H__