2026-10-04 00:04:20 +08:00
|
|
|
|
#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;
|
|
|
|
|
|
};
|