Files
envi-code/SourceCode/Code2026/inc/implement/AecDbXEquipment.h
T
2026-09-28 15:28:50 +08:00

279 lines
13 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#pragma once
/*----------------------------------------------------------------------------------
//AecDbXEquipment : 参数化设备
//
//
//---------------------------------------------------------------------------------*/
#include "AecDbObjXDataMap.h"
#include "AecDbBDPipeBase.h"
#include "define_class_xdata_key.h"
#include "AecMInterfaces.h"
#include "EarThwormDef.h"
#ifdef EARTHWORM_EXPORT
#define DLLIMPEXP __declspec(dllexport)
#else
#define DLLIMPEXP __declspec(dllimport)
#endif
class XEquipmentImplBase;
class DLLIMPEXP AecDbXEquipment: public AecDbBDPipeBase
{
public:
ACRX_DECLARE_MEMBERS(AecDbXEquipment);
// 为罐体上的管嘴
public:
struct TANK_NOZZ
{
int nType; // 0 圆形 1方形
double dX; // 俯视X长度
double dY; // 俯视Y长度
double dH; // 管嘴高度
double dAngle; // 管嘴方向(与XOY面)
double dDNX; // 管公称直径,方管时为长
double dDNY; // 方管时为高,其它情况无效
double dFlDN; // 法兰公称直径
double dFlT; // 法兰厚度
int nRectDir; // 方形罐体管嘴的方向
TCHAR pszName[512]; // 管嘴名称
};
public:
// 格栅
DECLARE_ENUM(GESHAN)
XHG_I = 0,
XHG_II,
SG,
BLQ,
ZG_I,
ZG_II,
XGC,
XJT,
ZSB,
BS,
XL,
END_ENUM()
// 爆气器
DECLARE_ENUM(BAOQIQI)
PAN_SI = GESHAN::XL + 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(XIEBANGUAN)
XBG = QIBIJI::QS_II_Y + 1,
END_ENUM()
// 罐箱
DECLARE_ENUM(GUANXIANG)
GUANXIANG_I = XIEBANGUAN::XBG + 1,
END_ENUM()
// 管道过滤器
DECLARE_ENUM(GUANDAOGUOLVQI)
DLD_FZ = GUANXIANG::GUANXIANG_I + 1,
END_ENUM()
// 浅层砂率
DECLARE_ENUM(QIANCENGSHALV)
DMF_56 = GUANDAOGUOLVQI::DLD_FZ + 1,
END_ENUM()
// 一般罐体
DECLARE_ENUM(YIBANGUANTI)
YUANXINGGUAN = QIANCENGSHALV::DMF_56 + 1,
END_ENUM()
DECLARE_ENUM(YIBANXIANGTI)
FANGXINGXIANG = YIBANGUANTI::YUANXINGGUAN + 1,
END_ENUM()
DECLARE_ENUM(LABAKOU)
YUANXINGLABAKOU = YIBANXIANGTI::FANGXINGXIANG + 1,
END_ENUM()
DECLARE_ENUM(CHANSHUDIBAN)
YUANXINGDIBAN = LABAKOU::YUANXINGLABAKOU + 1,
END_ENUM()
protected:
static Adesk::UInt32 kCurrentVersionNumber;
public:
AecDbXEquipment(const int &type);
AecDbXEquipment(): m_pImpl(NULL) {}
~AecDbXEquipment(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 void subList() const;
virtual Acad::ErrorStatus copyFrom(const AcRxObject* pSrc);
Acad::ErrorStatus copyFrom2(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 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 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;
//AEC 派生
virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const;
virtual Acad::ErrorStatus Draw3d(AcGiDraw &dc) const;
virtual SHJson::WValue& ToJson(bool bExprotGeo = true) const;
virtual bool ByJson(const SHJson::WValue &v);
virtual bool GetBimInfoTip(CString& sInfoTip) const;
virtual CString getUniqueName() const;
virtual int GetDraw2dables(Adesk::UInt16 nDrawStyle, AcDbVoidPtrArray& arEntPtrs) const;
virtual void ProcessHlrResult(const AcArray<AcDbEntity *> &ar
, const std::map<AcDbEntity *, AcArray<AcDbEntity *>> &preAr
, AcArray<AcDbEntity *> &output) 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;
void draw3dByImp();
static bool isType(AcDbObjectId &id, const int &type);
static bool isType(AecDbXEquipment *pEqu, const int &type);
public:
void clearInterface();
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) const ;
void SetSrcString(LPCTSTR src);
XEquipmentImplBase* cloneImpl(AecDbObjXDataMap *pXData);
XEquipmentImplBase* createParamEquImpl(const int &type, bool bRedraw);
CString GetSpec();
bool GetSpec(std::vector<std::pair<CString, CString>> &spec);
bool GetJsonParams(std::vector<std::pair<CString, CString>> &spec);
virtual bool GetProperties(SimpleProperty::PropertySetByIndex &porpertys) const;
virtual bool SetProperties(SimpleProperty::PropertySetByName &porpertys);
private:
XEquipmentImplBase *m_pImpl;
protected:
AcArray<AecInterface> m_interfaces;
};