#pragma once /*---------------------------------------------------------------------------------- //AecDbParamEquipment : 参数化设备 // //2021-9 后作废 //---------------------------------------------------------------------------------*/ #include "AecDbEntityBase.h" #include "AecDbObjXDataMap.h" #include "AecMInterfaces.h" #include "define_class_xdata_key.h" #ifdef EARTHWORM_EXPORT #define DLLIMPEXP __declspec(dllexport) #else #define DLLIMPEXP __declspec(dllimport) #endif class CParamEquImplBase; class DLLIMPEXP AecDbParamEquipment : public AecDbEntityBase, public AecMInterfaces { public: ACRX_DECLARE_MEMBERS(AecDbParamEquipment); public: // 格栅 DECLARE_ENUM(GESHAN) XHG_I = 0, XHG_II, SG, BLQ, ZG_I, ZG_II, END_ENUM() // 爆气器 DECLARE_ENUM(BAOQIQI) PAN_SI = GESHAN::ZG_II + 1, GUAN_SI, END_ENUM() // 水槽 DECLARE_ENUM(FLUME) PARSHALL = BAOQIQI::GUAN_SI + 1, END_ENUM() // 堰 DECLARE_ENUM(WEIR) SANJIAOYAN = FLUME::PARSHALL + 1, CULIUKONGYAN, BAOBIYAN, END_ENUM() // 沉沙池-砂水分离 DECLARE_ENUM(SHASHUIFENLI) XCS = WEIR::BAOBIYAN + 1, HXS, LCS, END_ENUM() // 螺旋泵 DECLARE_ENUM(LUOXUANBENG) LXB = SHASHUIFENLI::LCS + 1, END_ENUM() // 闸门 DECLARE_ENUM(ZHAMEN) RECT_ZHAMEN = LUOXUANBENG::LXB + 1, CIRCLE_ZHAMEN, SHENG_NI_FA, END_ENUM() // 刮泥机 DECLARE_ENUM(GUANIJI) XZG = ZHAMEN::SHENG_NI_FA +1, CZG, ZG, QG, PJ, SX, SB, LIANTIAO, END_ENUM() // 浓缩机 DECLARE_ENUM(NONGSUOJI) NC = GUANIJI::LIANTIAO + 1, NB, END_ENUM() // 爆气机 DECLARE_ENUM(BAOQIJI) YHG = NONGSUOJI::NB + 1, AD, END_ENUM() // 加药混合 DECLARE_ENUM(JIAYAOHUNHE) GJ = BAOQIJI::AD + 1, PJ, TJ, LJF, END_ENUM() // 滤布机 DECLARE_ENUM(LVBUJI) ZHUANPAN = JIAYAOHUNHE::LJF + 1, END_ENUM() // 启闭机 DECLARE_ENUM(QIBIJI) QS_I_P = LVBUJI::ZHUANPAN + 1, QS_I_Y, QS_I_L, QS_II_L, QS_II_Y, END_ENUM() // 净水器 DECLARE_ENUM(JINGSHUIQI) JSQ_I = QIBIJI::QS_I_P + 1, JSQ_II, JSQ_III, JSQ_IV, JSQ_V, JSQ_VI, END_ENUM() // DECLARE_ENUM(CHAOLVGUAN) LG_I = JINGSHUIQI::JSQ_I + 1, LVGUAN_I, END_ENUM() protected: static Adesk::UInt32 kCurrentVersionNumber; public: AecDbParamEquipment(const int &type); AecDbParamEquipment(): m_pImpl(NULL) {} ~AecDbParamEquipment(void); void SetType(int nType); int GetType() const; 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 subExplode(AcDbVoidPtrArray& entitySet) const; virtual void subList() const; virtual Acad::ErrorStatus copyFrom(const AcRxObject* pSrc); virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform); virtual Acad::ErrorStatus subGetGripPoints(AcDbGripDataPtrArray& grips, const double curViewUnitSize, const int gripSize, const AcGeVector3d& curViewDir, const int bitflags) const; virtual Acad::ErrorStatus subGetGripPoints( AcGePoint3dArray &gripPoints, AcDbIntArray &osnapModes, AcDbIntArray &geomIds) const; virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbVoidPtrArray& appData, const AcGeVector3d& offset, const int bitflags); virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices,const AcGeVector3d& offset); virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray& stretchPoints) const; virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices,const AcGeVector3d& offset); virtual Acad::ErrorStatus subGetOsnapPoints(AcDb::OsnapMode osnapMode, INT_PTR gsSelectionMark, const AcGePoint3d& pickPoint, const AcGePoint3d& lastPoint, const AcGeMatrix3d& viewXform, AcGePoint3dArray& snapPoints, AcDbIntArray& geomIds) const; virtual Acad::ErrorStatus subGetGeomExtents(AcDbExtents& extents) const; virtual Acad::ErrorStatus subIntersectWith( const AcDbEntity* pEnt, AcDb::Intersect intType, AcGePoint3dArray& points, INT_PTR thisGsMarker, INT_PTR otherGsMarker) const; virtual Acad::ErrorStatus subIntersectWith( const AcDbEntity* pEnt, AcDb::Intersect intType, const AcGePlane& projPlane, AcGePoint3dArray& points, INT_PTR thisGsMarker, INT_PTR otherGsMarker) const; //AEC 派生 virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const; virtual Acad::ErrorStatus Draw3d(AcGiDraw &dc) const; //获取二维视图显示的图形 virtual int GetDraw2dables(Adesk::UInt16 nDrawStyle, AcDbVoidPtrArray& arEntPtrs) const; //获取三维显示图形 virtual int GetDraw3dables(AcDbVoidPtrArray& arEntPtrs,bool bWriteBimInfo = false) const; virtual SHJson::WValue& ToJson(bool bExprotGeo = true) const; virtual bool ByJson(const SHJson::WValue &v); virtual bool GetBimInfoTip(CString& sInfoTip) const; //接口 MINTERFACES_METHODS public: virtual const AecDbObjXDataMap* GetSpecialtyData() const; virtual AecDbObjXDataMap* GetSpecialtyData(AcDb::OpenMode bMode); virtual int GetSectionDraw(const AcGePoint3d& ptFr,const AcGePoint3d& ptTo,const AcGeVector3d& vtViewDir,const AcGeVector3d& vtTo, AcDbVoidPtrArray& arRegPtrs) const; public: void SetPosAndDir(const AcGePoint3d &pt, const AcGeVector3d &dir); void GetInsert(AcGePoint3d& ptIns,AcGeVector3d& vtDir) const; void SetElev(const double &dElev); double GetElev(); bool GetSrcString(CString &src); void SetSrcString(LPCTSTR src); CParamEquImplBase* cloneImpl(AecDbObjXDataMap *pXData); public: static CParamEquImplBase* createParamEquImpl(const int &type, AecDbObjXDataMap *pXData); private: AecDbObjXDataMap m_XDataMap; CParamEquImplBase *m_pImpl; };