#pragma once /*---------------------------------------------------------------------------------- //AecDbHvacDuct :风管 类 // //通过 基本体 进行基本体的拼接 //---------------------------------------------------------------------------------*/ #include "aecdbewpipebase.h" #ifdef EARTHWORM_EXPORT #define DLLIMPEXP __declspec(dllexport) #else #define DLLIMPEXP __declspec(dllimport) #endif class DLLIMPEXP AecDbHvacDuct : public AecDbEwPipeBase { public: ACRX_DECLARE_MEMBERS(AecDbHvacDuct); protected: static Adesk::UInt32 kCurrentVersionNumber; public: AecDbHvacDuct(void); virtual ~AecDbHvacDuct(void); // 设置开始点,如果是LINE管子 Acad::ErrorStatus SetStartPoint(const AcGePoint3d& ptSta); AcGePoint3d StartPoint() const; // 设置端点 如果是LINE管子 Acad::ErrorStatus SetEndPoint(const AcGePoint3d& ptEnd); AcGePoint3d EndPoint() const; //设置风管尺寸 bool SetDuctParam(const AecHvac::DuctParam* pData); void GetDuctParam(AecHvac::DuctParam& data) const; //风管的放置法向量 void setNormal(const AcGeVector3d& vtNorm); AcGeVector3d GetNormal() const; //设置水平桥架标高 void SetElevation(double dEl); bool IsArcDuct() const; bool IsVertical() const; // 用于管线系统变化后,更新实体 // 主要是 内外线的颜色、线形、线宽、图层 void UpdatePipeSystem(const int &outClr , const AcDbObjectId &outLt , const double &outWd , const AcDbObjectId &outLy , const int &innClr , const AcDbObjectId &innLt , const double &innWd , const AcDbObjectId &innLy); public: 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; #if ARX>16 virtual void subList() const; virtual Acad::ErrorStatus subGetGripPoints(AcDbGripDataPtrArray& grips, const double curViewUnitSize, const int gripSize, const AcGeVector3d& curViewDir, const int bitflags) const; virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbVoidPtrArray& appData, const AcGeVector3d& offset, const int bitflags); virtual void GetGripText(int nPos, CString& sText); #endif //AEC 派生 virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const; virtual Acad::ErrorStatus Draw3d(AcGiDraw &dc) const; virtual bool TransformAssocInf(int nInf,const AcGeMatrix3d& xform); virtual LPCTSTR GetGripCmd() const; //剖切提取,符号法,对于管线构件 virtual bool GetSectionDraw(AcGePlane& plan,const AcGeVector3d& vtTo,AcDbVoidPtrArray& arRegionPtrs) const; virtual SHJson::WValue& ToJson(bool bExprotGeo) const; virtual bool ByJson(const SHJson::WValue &v); virtual bool GetBimInfoTip(CString& sInfoTip) const; virtual int ComparedTo(AecDbCurveBase* pCurOther) const; virtual void ProcessHlrResult(const AcArray &ar , const std::map> &preAr , AcArray &output) const; protected: EPosition ExplainGripIndex(int nIndex) const; Acad::ErrorStatus ImpGetGripPonts(AcGePoint3dArray& gripPoints,const int bitflags) const; Acad::ErrorStatus moveGripBrokenOpen(int nBrokenGrip,const AcGeVector3d& offset); virtual Acad::ErrorStatus DrawFlangInf3d(AcGiDraw &dc) const; virtual Acad::ErrorStatus DrawFlangInf2d(AcGiDraw &dc) const; Acad::ErrorStatus CheckBrokenOpen(); };