#pragma once #include "AecDbBDPipeBase.h" #ifdef EARTHWORM_EXPORT #define DLLIMPEXP __declspec(dllexport) #else #define DLLIMPEXP __declspec(dllimport) #endif class DLLIMPEXP AecDbBeam : public AecDbBDPipeBase { public: ACRX_DECLARE_MEMBERS(AecDbBeam); protected: static Adesk::UInt32 kCurrentVersionNumber; public: AecDbBeam(void); ~AecDbBeam(void); // 设置开始点 LINE柱子 void SetBeamData(double dw,double dh); // 通用设置 void GetBeamData(ColumnParam& data) 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 Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray& stretchPoints) const; virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices,const AcGeVector3d& offset); 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 Draw3d(AcGiDraw &dc) const; //梁和柱共用图块,所以3D画法不同,截面特殊重载 virtual int GetCreatPipe3dSolid(AcDbVoidPtrArray &ar3DSolidPtrs) const; virtual void subList() const; virtual int ComparedTo(AecDbCurveBase* pCurOther) const; virtual SHJson::WValue& ToJson(bool bExprotGeo = true) const; virtual bool ByJson(const SHJson::WValue &v); virtual bool GetBimInfoTip(CString& sInfoTip) const; virtual void ProcessHlrResult(const AcArray &ar , const std::map> &preAr , AcArray &output) const; virtual void PreprocessForHlr(const AcGePoint3d &ptPlnO , const AcGeVector3d &vtPlnN , AcArray &ar) const; virtual bool GetProperties(SimpleProperty::PropertySetByIndex &porpertys) const; virtual bool SetProperties(SimpleProperty::PropertySetByName &porpertys); void SetTopEl(const double &d); void SetEndEl(const double &d); protected: // 设置标高,bTopEl为true设置起点顶标高,否则设置终点顶标高 void SetElev(const double &d, const bool &bTopEl); EPosition ExplainGripIndex(int nIndex,CString& sTip) const; Acad::ErrorStatus ImpGetGripPoints(AcGePoint3dArray& gripPoints,const int bitflags) const; Acad::ErrorStatus SubAddDimPoints(AcDbGripDataPtrArray& grips,const AcGeVector3d& curViewDir) const; };