#pragma once #pragma warning(disable:4005) #include "shjson.h" #include #include "CSelectTankDLG.h" #include "AecDbXEquipment.h" using namespace SHJson; #pragma region CEquJsonObject class CParaDesignDlg; class CEquJsonObject { public: //CEquJsonObject():_bInplace(false) {} CEquJsonObject(const std::wstring &class_type):_bInplace(false), _class_type(class_type){} virtual ~CEquJsonObject() {} public: struct Param { std::wstring _name, _type, _value, _key; std::vector _data; bool _canModify, _readOnly, _show; WValue _extend; // 扩展数据存放 // 如果 type=string 则 max/min 取整后为字符串长度最长,最短值 // json文件内,可有可无 double _max, _min; Param() { clear(); } Param(const CEquJsonObject::Param &src): _max(src._max) , _min(src._min) , _name(src._name) , _type(src._type) , _value(src._value) , _key(src._key) , _data(src._data) , _canModify(src._canModify) , _readOnly(src._readOnly) , _show(src._show) { _extend.CopyFrom(src._extend, SHJson::getJsonAllocator()); } Param& operator = (const Param &src) { _max = src._max; _min = src._min; _name = src._name; _type = src._type; _value = src._value; _key = src._key; _data = src._data; _canModify = src._canModify; _readOnly = src._readOnly; _show = src._show; _extend.CopyFrom(src._extend, SHJson::getJsonAllocator()); return *this; } void clear() { _max = DBL_MAX; _min = -DBL_MAX; _name = _type = _value = _key = _T(""); _data.clear(); _canModify = false; _readOnly = false; _show = true; _extend.SetObject(); } std::wstring getValue2String(); int getValue2Integer(); double getValue2Double(); std::wstring getCombo2String(); double getCombo2Double(); }; typedef std::vector Params; public: virtual bool modifyParams(const int &curIdx) = 0; virtual bool initParams() = 0; virtual bool checkParams(const int &curIdx, LPCTSTR value, CString &errMsg) = 0; virtual void start(CParaDesignDlg &dlg) = 0; virtual AcDbEntity* start2Ptr(CParaDesignDlg &dlg) { return NULL; } virtual void onSigleClickItem(const int &idx); virtual void inplace(AcDbObjectId &id, CParaDesignDlg &dlg) = 0; virtual bool getDatasByDlg(CParaDesignDlg &dlg) = 0; virtual void setDatasToEqu(AecDbObjXDataMap *pXData) = 0; virtual void inplace(AcDbObjectIdArray &ar, CParaDesignDlg &dlg){} virtual void setItemText(CXListCtrl &lstCtrl, const int &idxLen, const int &idxPara); public: std::wstring getSrcString(); public: void clear() { _params.clear(); _name = _pic = _T(""); _bInplace = false; } void copy(const CEquJsonObject *pSrc) { _name = pSrc->_name; _pic = pSrc->_pic; _type = pSrc->_type; _subtype = pSrc->_subtype; _dbType = pSrc->_dbType; _params.clear(); _params.assign(pSrc->_params.begin(), pSrc->_params.end()); _bInplace = pSrc->_bInplace; _class_type = pSrc->_class_type; } static CEquJsonObject* createParamEqu(LPCTSTR type, LPCTSTR subType); public: std::wstring _name, _pic; Params _params; std::wstring _type, _subtype; // 对应着 JSON结构的 类型 子类型 (例:类型:GESHAN 子类型:XHG_I) int _dbType; // 对应 AecDbParamEquipment类内的CParamEquImplBase类型 bool _bInplace; // 是否是在位编辑状态 std::wstring _class_type; public: // 下面变量与绘制有关 int _COLOR; // 颜色 AcGePoint3d _Pos; // 位置 AcGeVector3d _Dir; // 方向 }; typedef std::vector > JsonObjects; #pragma endregion #pragma region JSON namespace ParseJson { bool writeObject(WValue &value, const CEquJsonObject &obj); bool readParam(WCValue &value, CEquJsonObject::Param ¶m); bool readObject(WCValue &value, CEquJsonObject &obj); bool readObjects(LPCTSTR pszFile, LPCTSTR typeName, JsonObjects &objs); bool writeObjects(LPCTSTR pszJson, CEquJsonObject &objs); } #pragma endregion /////////////////////////////////////////////////////////////////////////////////////////////////// #define DECLARATION_SUBCLASS(class_name)\ public:\ ##class_name(): CEquJsonObject(L#class_name){}\ ~##class_name(){}\ public:\ virtual bool modifyParams(const int &curIdx);\ virtual bool initParams();\ virtual bool checkParams(const int &curIdx, LPCTSTR value, CString &errMsg);\ virtual void start(CParaDesignDlg &dlg);\ virtual void inplace(AcDbObjectId &id, CParaDesignDlg &dlg);\ virtual bool getDatasByDlg(CParaDesignDlg &dlg);\ virtual void setDatasToEqu(AecDbObjXDataMap *pXData) #define DECLARATION_SUBCLASS_NO_CONSTRUCTOR(class_name)\ public:\ ##class_name();\ ~##class_name(){}\ public:\ virtual bool modifyParams(const int &curIdx);\ virtual bool initParams();\ virtual bool checkParams(const int &curIdx, LPCTSTR value, CString &errMsg);\ virtual void start(CParaDesignDlg &dlg);\ virtual void inplace(AcDbObjectId &id, CParaDesignDlg &dlg);\ virtual bool getDatasByDlg(CParaDesignDlg &dlg);\ virtual void setDatasToEqu(AecDbObjXDataMap *pXData) /////////////////////////////////////////////////////////////////////////////////////////////////// namespace GESHAN { class XHG_I : public CEquJsonObject { DECLARATION_SUBCLASS(XHG_I); private: double getFlow(int idxB, int idxb); void getRange(const int &idx, double &max, double &min); private: enum a { clr = 0, m = 1, H = (7 + 1), H1 = (8 + 1), H2 = (9 + 1), H3 = (10 + 1), H4 = (18 + 1) , B = (11 + 1), B1 = (12 + 1), B2 = (13 + 1), B3 = (14 + 1), B4 = (15 + 1) , B5 = (19 + 1), B6 = (20 + 1), L1 = (3 + 1), L2 = (4 + 1), a = (5 + 1) , w = (6 + 1), b = (16 + 1), flow = (17 + 1) }; public: double _H1, _H2, _H3, _H4, _B, _B1, _B2, _B3, _B4, _B5, _B6, _b, _L1, _L2, _a, _w; }; class XHG_II : public CEquJsonObject { DECLARATION_SUBCLASS(XHG_II); private: double getFlow(int idxB, int idxb); void getRange(const int &idx, double &max, double &min); private: enum { clr = 0, m = 1, H = (7 + 1), H1 = (8 + 1), H2 = (9 + 1), H3 = (10 + 1) , B = (11 + 1), B1 = (12 + 1), B2 = (13 + 1), B3 = (14 + 1) , B4 = (15 + 1), L1 = (3 + 1), L2 = (4 + 1), a = (5 + 1) , w = (6 + 1), b = (16 + 1), flow = (17 + 1), B_B1 = (18 + 1) , B2_B = (19 + 1), B_B3 = (20 + 1), B4_B = (21 + 1) }; public: double _H1, _H2, _H3, _B, _B1, _B2, _B6, _b, _L1, _L2, _a, _w; }; class SG : public CEquJsonObject { DECLARATION_SUBCLASS(SG); private: void getRange(const int &idx, double &max, double &min); private: enum { clr = 0, m = (0+1), P1 = (2+1), P2 = (3+1), B = (4+1), B1 = (5+1), B_B1 = (6+1), b = (7+1) , a = (8+1), HH = (9+1), H = (10+1), H1 = (11+1), H2 = (12+1), H2_H1 = (13+1) , H3 = (14+1), H4 = (15+1), L = (16+1) }; static double g_P1[6]; static double g_P2[6]; public: double _H, _H1, _H2, _H3, _H4, _B, _B1, _B6, _b, _L, _L1, _a; }; class BLQ : public CEquJsonObject { DECLARATION_SUBCLASS(BLQ); private: void getRange(const int &idx, double &max, double &min); private: enum { clr = 0, m = (0+1), mo = (2+1), B = (6+1), B1 = (7+1), B_B1 = (8+1), b = (9+1) , a = (10+1), HH = (11+1), H = (12+1), H1 = (13+1), H2 = (14+1) , H2_H1 = (15+1), H3 = (16+1), H4 = (17+1), L = (18+1) }; }; class ZG_I : public CEquJsonObject { DECLARATION_SUBCLASS(ZG_I); private: CString getFlow(const int &idxbb, const int idxD); CString calcA(const double &dH, const double &dD); CString calcL(const double &dH, const double &dD); CString setModel(const CString &sD); private: enum { clr = 0, m = (0+1), D = (2+1), d = (3+1), l = (4+1), H4 = (5+1), H1 = (9+1) , H2 = (10+1), H3 = (11+1), H = (12+1), A = (13+1), L = (14+1), bb = (15+1), v = (16+1) }; public: double _H1, _H2, _H3, _B, _L, _l, _a, _A, _D, _d; }; class ZG_II : public CEquJsonObject { DECLARATION_SUBCLASS(ZG_II); private: CString getFlow(const int &idxbb, const int idxD); CString calcA(const double &dH, const double &dD); CString calcL(const double &dH, const double &dD); CString setModel(const CString &sD); private: enum { clr = 0, m = (0+1), D = (2+1), d = (3+1), l = (4+1), B = (5+1), H4 = (6+1), H1 = (8+1), H2 = (9+1), H3 = (10+1) , H = (11+1), A = (12+1), L = (13+1), bb = (14+1), v = (15+1) }; public: double _H1, _H2, _H3, _B, _L, _l, _a, _A, _D, _d; }; class XGC : public CEquJsonObject { DECLARATION_SUBCLASS(XGC); private: CString getFlow(const int& idxbb, const int idxD); CString calcA(const double& dH, const double& dD); CString calcL(const double& dH, const double& dD); CString setModel(const CString& sD); private: enum { clr = 0, m = 1, type = 3, D1 = 4, v = 5, P = 6, D2 = 7 , B = 8, B1 = 9, B2 = 10, A = 11, B3 = 12, H = 13, H1 = 14 , L1 = 15, L2 = 16, T = 17 }; public: double _D1, _D2, _B, _B1, _B2, _A, _B3, _H, _H1, _L1 , _L2, _T; CString _type; }; class XJT : public CEquJsonObject { DECLARATION_SUBCLASS(XJT); private: CString getFlow(const int& idxbb, const int idxD); CString calcA(const double& dH, const double& dD); CString calcL(const double& dH, const double& dD); CString setModel(const CString& sD); private: enum { clr = 0, m = 1, D1 = 5, D2 = 6, W = 7, B = 8 , B1 = 9, H = 10, H1 = 11, A = 12, L1 = 13, T = 14 }; public: double _D1, _D2, _W, _B, _B1, _H, _H1, _A, _L1, _T; }; class ZSB : public CEquJsonObject { DECLARATION_SUBCLASS(ZSB); private: CString getFlow(const int& idxbb, const int idxD); CString calcA(const double& dH, const double& dD); CString calcL(const double& dH, const double& dD); CString setModel(const CString& sD); private: enum { clr = 0, m = 1, W = 4, B = 5, B2 = 6, B3 = 7, α = 8, H = 9, L1 = 10 }; public: double _W, _B, _B2, _B3, _α, _H, _L1; }; class BS : public CEquJsonObject { DECLARATION_SUBCLASS(BS); private: CString getFlow(const int& idxbb, const int idxD); CString calcA(const double& dH, const double& dD); CString calcL(const double& dH, const double& dD); CString setModel(const CString& sD); private: enum { clr = 0, m = 1, bRect = 3, S = 4, B = 5, H = 6, H1 = 7, W1 = 8 }; public: double _S, _B, _H, _H1, _W1; CString _bRect; }; class XL : public CEquJsonObject { DECLARATION_SUBCLASS(XL); private: CString getFlow(const int& idxbb, const int idxD); CString calcA(const double& dH, const double& dD); CString calcL(const double& dH, const double& dD); CString setModel(const CString& sD); private: enum { clr = 0, m = 1, style = 3, num = 8, W = 9, H = 10, B = 11 , A = 12, B1 = 13, L1 = 14, T = 15 }; public: double _num, _W, _H, _B, _A, _B1, _L1, _T; CString _style; }; } namespace BAOQIQI { class PAN_SI : public CEquJsonObject { DECLARATION_SUBCLASS(PAN_SI); public: static bool getUserInput(std::vector &ids); virtual void inplace(AcDbObjectIdArray &ar, CParaDesignDlg &dlg); }; class GUAN_SI : public CEquJsonObject { DECLARATION_SUBCLASS(GUAN_SI); virtual void inplace(AcDbObjectIdArray &ar, CParaDesignDlg &dlg); }; class XUANLIU_SI : public CEquJsonObject { DECLARATION_SUBCLASS(XUANLIU_SI); }; } class AecDbRiverGroove; namespace FLUME { class PARSHALL : public CEquJsonObject { DECLARATION_SUBCLASS(PARSHALL); void setDatasToEqu(AecDbRiverGroove *pGroove); private: enum { clr = 0, m = 1, b = 4, B1 = 5, B2 = 6, L1 = 7, L2 = 8, L = 9, D = 10 , K = 11, N = 12, T = 13, GCK = 14, h = 15, D1 = 16, D2 = 17, La = 18, j = 19, x = 20 }; public: CString s; bool bLook; double dD, dN, dK, dL1, dL, dL2, dT, dj, db, dB1, dB2, dx, dD1, dD2, dh, dLa; }; } class AecDbEwEquipment; namespace VALVE_PIPE { class VALVE: public CEquJsonObject { public: DECLARATION_SUBCLASS(VALVE); virtual AcDbEntity* start2Ptr(CParaDesignDlg & dlg); private: enum { clr = 0, m = 2, DN = 3, PN = 4, L = 5, H = 6, W = 7, F = 8, R = 9, M = 10, }; public: CString sMaterial, sPN; double dDN, dL, dW, dH; bool bHasFlange; int nValveType; std::map bims; }; // 自带等级查询的阀门 class LEVEL_VALVE: public CEquJsonObject { public: DECLARATION_SUBCLASS(LEVEL_VALVE); virtual AcDbEntity* start2Ptr(CParaDesignDlg & dlg); virtual void onSigleClickItem(const int &idx); private: enum { clr = 0, m = 2, DN = 3, PN = 4, L = 5, H = 6, W = 7, F = 8, R =9, M = 10 , PROJ, LEVEL, TRADE, GASKET /* L 阀长 H 手轮高度 W 手轮宽度 F 是否插入法兰 R 法兰端面(插入法兰时,显示) M 驱动方式 PROJ 工程名 LEVEL 等级 TRADE 行业 GASKET 法兰垫片 */ }; public: CString sMaterial, sPN; double dDN, dL, dW, dH; bool bHasFlange; CString sEndType; int nValveType; std::map bims; }; } namespace HVAC_VALVE { class HVAC_VALVE: public CEquJsonObject { public: DECLARATION_SUBCLASS(HVAC_VALVE); virtual AcDbEntity* start2Ptr(CParaDesignDlg & dlg); virtual void onSigleClickItem(const int &idx); private: enum { // 颜色,厂家,材质, 风管形状(圆/方),圆形时管直径,方形管宽,方形管高 clr = 0 ,fa = 1, m = 2, D2D = 3, shape = 4, DN = 5, W = 6 , H = 7 // 压力, 阀长,阀宽,阀高,插入阀门带法兰,驱动类型 , PN = 8, FL = 9, FW = 10, FH = 11, Flange = 12, powerType = 13 // 适用温度,"泄漏率,风量比,阻力特性,全行程工作时间,叶片运动方式 , Te = 14, Xe = 15, Av = 16, Re = 17, Ti = 18, moveType = 19 // 风叶开度,噪音,轻型,法兰厚,法兰卷边 , Kd = 20, Ni = 21, Lg = 22, FlT = 23, FlE = 24, }; public: CString _sMaterial, _sFactory, _s2DBlk; double _dDN, _dW, _dH, _dFL, _dFW, _dFH, _dPN, _dFlT, _dFlE; bool _bHasFlange; int _nPowerType, _nMoveType; // 0 方 1 圆 int _nShape; std::map _bims; }; class XICHENZHAO : public CEquJsonObject { DECLARATION_SUBCLASS(XICHENZHAO); virtual AcDbEntity* start2Ptr(CParaDesignDlg & dlg); private: enum { // 颜色,厂家,材质,风管形状,圆形时直径,方形时管长,方形时管宽 clr = 0, fa = 1, m = 2, FShape = 3, FDN = 4, FL = 5, FW = 6 // 罩口形状,圆形时罩口直径,方形时罩口宽,方形时罩口长 , ZShape = 7 , ZDN = 8, ZL = 9, ZW = 10 // 总高,下边高,插入时风管带法兰,法兰厚,法兰卷边 , H = 11, HB = 12, Flange = 13, FlT = 14, FlE = 15 }; double _dFDN, _dFL, _dFW, _dZDN, _dZL, _dZW, _dHH, _dHB, _dFlT, _dFlE; int _nFshape, _nZshape; bool _bHasFlange; }; } namespace FENGKOU { class FENGKOU_CZ : public CEquJsonObject { DECLARATION_SUBCLASS(FENGKOU_CZ); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); virtual void onSigleClickItem(const int& idx); private: enum { // 颜色, 型号, 厂家, 风口形状, 风口公称直径D, 风口长L, 风口宽W, 风口类型, 风口厚度, 风口边框 clr = 0, m = 1, fa = 2, Shape = 3, DN = 4, L = 5, W = 6, Type = 7, T = 8, W1 = 9 // 百叶条数num, 风口间距, 总高,法兰,法兰厚,法兰卷边 , num = 10, dist = 11 }; double _D, _L, _W, _T, _W1, _num, _dist; // 0 方 1 圆 bool _bShape, _bType; CString _s2DBlk; std::map _bims; }; class FENGKOU_SP : public CEquJsonObject { DECLARATION_SUBCLASS(FENGKOU_SP); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); virtual void onSigleClickItem(const int& idx); private: enum { // 颜色, 型号, 厂家, 风口形状, 风口公称直径D, 风口长L, 风口宽W, 风口类型, 风口厚度, 风口边框 clr = 0, m = 1, fa = 2, Shape = 3, DN = 4, L = 5, W = 6, Type = 7, T = 8, W1 = 9 // 百叶条数num, 风口间距, 总高,法兰,法兰厚,法兰卷边 , num = 10, dist = 11 }; double _D, _L, _W, _T, _W1, _num, _dist; // 0 方 1 圆 bool _bShape, _bType; CString _s2DBlk; std::map _bims; }; } namespace FENGJI { class FENGJI_LIXIN : public CEquJsonObject { DECLARATION_SUBCLASS(FENGJI_LIXIN); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); private: enum { // 颜色,风机型号, 厂家, 转速, 压力, 风量, 轴动率, 电机功率, 机子重量 clr = 0, model = 1, factory = 2, r = 3, N = 4, m3 = 5, p = 6, P = 7, m = 8 // 安装长度, 安装宽度, 安装高度, 叶轮半径, 叶轮高度, 出风口形状 , L0 = 9, W0 = 10, H0 = 11, R1 = 12, H1 = 13, Shape = 14 // 方口长度, 方口宽度, 圆口半径, 风口高度 , L2 = 15, W2 = 16, R3 = 17, H2 = 18 // 底座长度, 底座宽度, 底座高度 , L4 = 19, W4 = 20, H4 = 21 }; double _L0, _W0, _H0, _R1, _H1, _L2, _W2, _R3, _H2, _L4, _W4, _H4; int _Shape; }; class FENGJI_ZHOULIU : public CEquJsonObject { DECLARATION_SUBCLASS(FENGJI_ZHOULIU); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); private: enum { // 颜色,风机型号, 厂家, 转速, 压力, 风量, 轴动率, 电机功率, 机子重量 clr = 0, model = 1, fa = 2, r = 3, N = 4, m3 = 5, p = 6, P = 7, m = 8 // 安装长度, 安装宽度, 安装高度, 风机风口半径 , L0 = 9, W0 = 10, H0 = 11, R1 = 12 // 风机高度, 风机厚度, 风机法兰卷边, 风叶宽度, 风叶高度 , H1 = 13, T1 = 14, fe = 15, W2 = 16, H2 = 17 // 梯形底座上底长度, 梯形底座下底长度, 梯形底座高度 , L30 = 18, L31 = 19, H3 = 20 }; double _L0, _W0, _H0, _R1, _H1, _T1, _fe, _W2, _H2, _L30, _L31, _H3; }; class FENGJI_HUNLIU : public CEquJsonObject { DECLARATION_SUBCLASS(FENGJI_HUNLIU); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); private: enum { // 颜色,风机型号, 厂家, 转速, 压力, 风量, 轴动率, 电机功率, 机子重量 clr = 0, model = 1, fa = 2, r = 3, N = 4, m3 = 5, p = 6, P = 7, m = 8 // 安装长度, 安装宽度, 安装高度, 风机风口半径 , L0 = 9, W0 = 10, H0 = 11, R1 = 12 // 风机高度, 风机厚度, 风机法兰卷边, 风叶宽度, 风叶高度 , H1 = 13, T1 = 14, fe = 15, W2 = 16, H2 = 17 // 梯形底座上底长度, 梯形底座下底长度, 梯形底座高度 , L30 = 18, L31 = 19, H3 = 20 }; double _L0, _W0, _H0, _R1, _H1, _T1, _fe, _W2, _H2, _L30, _L31, _H3; }; class FENGJI_WUDING : public CEquJsonObject { DECLARATION_SUBCLASS(FENGJI_WUDING); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); private: enum { // 颜色,风机型号, 厂家, 转速, 压力, 风量, 轴动率, 电机功率, 机子重量 clr = 0, model = 1, fa = 2, r = 3, N = 4, m3 = 5, p = 6, P = 7, m = 8 // 安装长度, 安装宽度, 安装高度, 风机底座长度风机底座宽度风机底座高度 , L0 = 9, W0 = 10, H0 = 11, L1 = 12, W1 = 13, H1 = 14 // 风筒半径, 风筒高度, 风帽半径, 风帽高度 , R2 = 15, H2 = 16, R3 = 17, H3 = 18 }; double _L0, _W0, _H0, _L1, _W1, _H1, _R2, _H2, _R3, _H3; }; } namespace FENGMAO { class FENGMAO_TX_CZ : public CEquJsonObject { DECLARATION_SUBCLASS(FENGMAO_TX_CZ); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); private: enum { // 颜色,型号, 厂家, 风口形状, 风口公称直径D, 风口宽W, 风口高H, 底座半径, 风帽高度, clr = 0, model = 1, factory = 2, Shape = 3, DN = 4, W = 5, H = 6, R1 = 7, H1 = 8 }; double _dDN, _dW, _dH, _dR1, _dH1; // 0 方 1 圆 bool _bShape; }; class FENGMAO_SX_CZ : public CEquJsonObject { DECLARATION_SUBCLASS(FENGMAO_SX_CZ); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); private: enum { // 颜色,风机型号, 厂家, 风口形状, 风口公称直径D, 风口宽W, 风口高H, 底座半径, 底座高度, 支架长度, 支架宽度, 支架高度 clr = 0, model = 1, factory = 2, Shape = 3, DN = 4, W = 5, H = 6, R1 = 7, H1 = 8, L2 = 9, W2 = 10, H2 = 11 }; double _dDN, _dW, _dH, _R1, _H1, _L2, _W2, _H2; // 0 方 1 圆 bool _bShape; }; class FENGMAO_ZX_CZ : public CEquJsonObject { DECLARATION_SUBCLASS(FENGMAO_ZX_CZ); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); private: enum { // 颜色,风机型号, 厂家, 风口形状, 风口公称直径D, 风口宽W, 风口高H, 底座半径, 风帽高度, clr = 0, model = 1, factory = 2, Shape = 3, DN = 4, W = 5, H = 6, R1 = 7, H1 = 8 }; double _dDN, _dW, _dH, _R1, _H1; // 0 方 1 圆 bool _bShape; }; class FENGMAO_TX_SP : public CEquJsonObject { DECLARATION_SUBCLASS(FENGMAO_TX_SP); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); private: enum { // 颜色,风机型号, 厂家, 风口形状, 风口公称直径D, 风口宽W, 风口高H, 底座半径, 风帽高度 clr = 0, model = 1, factory = 2, Shape = 3, DN = 4, W = 5, H = 6, R1 = 7, H1 = 8 }; double _dDN, _dW, _dH, _R1, _H1; // 0 方 1 圆 bool _bShape; }; class FENGMAO_SX_SP : public CEquJsonObject { DECLARATION_SUBCLASS(FENGMAO_SX_SP); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); private: enum { // 颜色,风机型号, 厂家, 风口形状, 风口公称直径D, 风口宽W, 风口高H, 底座半径, 底座高度, 支架长度, 支架宽度, 支架高度 clr = 0, model = 1, factory = 2, Shape = 3, DN = 4, W = 5, H = 6, R1 = 7, H1 = 8, L2 = 9, W2 = 10, H2 = 11 }; double _dDN, _dW, _dH, _R1, _H1, _L2, _W2, _H2; // 0 方 1 圆 bool _bShape; }; class FENGMAO_ZX_SP : public CEquJsonObject { DECLARATION_SUBCLASS(FENGMAO_ZX_SP); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); private: enum { // 颜色,风机型号, 厂家, 风口形状, 风口公称直径D, 风口宽W, 风口高H, 底座半径, 风帽高度 clr = 0, model = 1, factory = 2, Shape = 3, DN = 4, W = 5, H = 6, R1 = 7, H1 = 8 }; double _dDN, _dW, _dH, _R1, _H1; // 0 方 1 圆 bool _bShape; }; } namespace SHUIXIANG { class Rect_SHUIXIANG : public CEquJsonObject { public: DECLARATION_SUBCLASS(Rect_SHUIXIANG); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); virtual void onSigleClickItem(const int& idx); private: enum { // 颜色,型号, 厂家,标准水箱, 名称, 页码, 人孔, 方形人孔长度L0, 圆形人孔直径D0 clr = 0, fa = 1, m = 2, table = 3, name = 4, page = 5, hole = 6, L0 = 7, D0 = 8 // 容积V, 重量M, 水箱长度L1, 水箱宽度W1, 水箱高度H1 , V = 9, M = 10, L1 = 11, W1 = 12, H1 = 13 // 水箱是否需要支架support, 支架数目num, 支架位置location, 支架长度L2, 支架宽度W2, 支架高度H2 , support = 14, num = 15, location = 16, L2 = 17, W2 = 18, H2 = 19, }; public: CString _sMaterial, _sFactory, _sTable, _sName, _sPage; double _dL0, _dD0, _dL1, _dW1, _dH1, _dNum, _dL2, _dW2, _dH2; bool _bSupport; int _nHole, _nLocation;// _nHole: 0 方 1 圆 std::map _bims; }; class Circle_SHUIXIANG : public CEquJsonObject { public: DECLARATION_SUBCLASS(Circle_SHUIXIANG); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); virtual void onSigleClickItem(const int& idx); private: enum { // 颜色,型号, 厂家,标准水箱, 页码 clr = 0, fa = 1, m = 2, table = 3, page = 4 // 容积V, 重量M, 水箱放置形状shape, 水箱直径D1, 水箱高度H1 , V = 5, M = 6, shape = 7, D1 = 8, H1 = 9 // 支架高度H2, 支架边距L2, 支架间距D2 , H2 = 10, L2 = 11, D2 = 12, }; public: CString _sMaterial, _sFactory, _sTable, _sPage; double _dD1, _dH1, _dH2, _dL2, _dD2; int _nShape;// _nShape: 0 方 1 圆 std::map _bims; }; } namespace FENGGUANRUANLIANJIE { class FGRLJ : public CEquJsonObject { public: DECLARATION_SUBCLASS(FGRLJ); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); private: enum { // 颜色,型号, 厂家, 风管形状(圆/方),圆形管直径, 方形管长,方形管宽 clr = 0, m = 1, fa = 2, Shape = 3, DN = 4, L = 5, W = 6 // 风管软连接入口形状, 风管软连接入口长度L1, 风管软连接入口宽度W1, 风管软连接入口直径D1 , EnterShape = 7, L1 = 8, W1 = 9, D1 = 10 // 风管软连接高度H1, 风管软连接法兰延伸长度Flange , H1 = 11, Flange = 12, }; public: double _dL, _dW, _dDN, _dL1, _dW1, _dD1, _dH1, _dFla; // 0 方 1 圆 bool _bEnterShape, _bShape; std::map _bims; }; } namespace FENGGUANXIAOSHENGQI { class FGXSQ :public CEquJsonObject { public: DECLARATION_SUBCLASS(FGXSQ); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); private: enum { // 颜色,型号, 厂家, 风管形状(圆/方),圆形管直径, 方形管长,方形管宽 clr = 0, m = 1, fa = 2, Shape = 3, DN = 4, L = 5, W = 6 // 消声器长度, 法兰厚度 , L1 = 7, T1 = 8, }; public: double _dL, _dW, _dDN, _dL1, _dT1; // 0 方 1 圆 bool _bShape; std::map _bims; }; } namespace NENGLIANGBIAO { class NLB :public CEquJsonObject { public: DECLARATION_SUBCLASS(NLB); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); private: enum { // 颜色, 型号, 厂家,风管形状(圆/方),圆形管直径, 方形管长,方形管宽 clr = 0, m = 1, fa = 2, Shape = 3, DN = 4, L = 5, W = 6 // 圆环底座高度, 量表边长 , H = 7, L1 = 8, }; public: double _dL, _dW, _dDN, _dH, _dL1; // 0 方 1 圆 bool _bShape; std::map _bims; }; } namespace BAOJINGFA { class SHISHI : public CEquJsonObject { public: DECLARATION_SUBCLASS(SHISHI); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); private: enum { clr = 0, m = 2, R0 = 3, R1 = 4, R2 = 5, H = 6, R3 = 7, R4 = 8, R5 = 9, }; public: double dR0, dR1, dR2, dH, dR3, dR4, dR5; }; class GANSHI : public CEquJsonObject { public: DECLARATION_SUBCLASS(GANSHI); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); private: enum { clr = 0, m = 2, R0 = 3, T0 = 4, L0 = 5, R1 = 6, T1 = 7, L1 = 8 , L2 = 9, W2 = 10, H2 = 11, L3 = 12, W3 = 13, H3 = 14, L4 = 15, W4 = 16, H4 = 17 , R2 = 18, R3 = 19, R4 = 20, R5 = 21, T2 = 22, R6 = 23, R7 = 24, }; public: double dR0, dT0, dL0, dR1, dT1, dL1, dL2, dW2, dH2, dL3, dW3, dH3, dL4, dW4, dH4 , dR2, dR3, dR4, dR5, dT2, dR6, dR7; }; class YUZUOYONG : public CEquJsonObject { public: DECLARATION_SUBCLASS(YUZUOYONG); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); private: enum { clr = 0, m = 2, H5 = 3, R0 = 4, R1 = 5, H0 = 6, H4 = 7, R2 = 8, R3 = 9 , S0 = 10, W0 = 11, R4 = 12, R5 = 13, H3 = 14, S1 = 15, W1 = 16, R6 = 17, L1 = 18 , T0 = 19, R7 = 20, T1 = 21, H = 22, D = 23, H1 = 24, L0 = 25, W2 = 26, H2 = 27, }; public: double dH5, dR0, dR1, dH0, dH4, dR2, dR3, dS0, dW0 , dR4, dR5, dH3, dS1, dW1, dR6, dL1, dT0 , dR7, dT1, dH, dD, dH1, dL0, dW2, dH2; }; class YULIN : public CEquJsonObject { public: DECLARATION_SUBCLASS(YULIN); virtual AcDbEntity* start2Ptr(CParaDesignDlg& dlg); private: enum { clr = 0, m = 2, R0 = 3, R1 = 4, R2 = 5, R3 = 6, R4 = 7, R5 = 8, A = 9, }; public: double dR0, dR1, dR2, dR3, dR4, dR5, dA; }; } class AecDbWeir; namespace WEIR { class SANJIAOYAN: public CEquJsonObject { DECLARATION_SUBCLASS(SANJIAOYAN); void setDatasToEqu(AecDbWeir *p); private: enum { clr = 0, m = 1, h = (3+1), w = (4+1), t = (5+1), yc = (6+1) , spac = (7+1), a = (8+1), head = (9+1), tail = (10+1), ele = (12) , wallmode = (13), holemode = (14), has_bottom_hole = (15), bottom_head = (16) , bottom_tail = (17), bottom_r = (18), bottom_space = (19), has_bottom = (20), }; public: double dh, dw, dt, dyc, dspac, da, dhead, dtail, dele; int wallMode, holeMode; int hasBottomHole; double bottomHead, bottomTail, bottomR, bottomSpace; int hasBottom; }; class CULIUKONGYAN: public CEquJsonObject { DECLARATION_SUBCLASS(CULIUKONGYAN); void setDatasToEqu(AecDbWeir *p); private: enum { clr = 0, m = 1, h = (3+1), w = (4+1), t = (5+1), yc = (6+1) , spac = (7+1), r = (8+1), head = (9+1), tail = (10+1), ele = 12 , wallmode = (13), holemode = (14), has_bottom_hole = (15), bottom_head = (16) , bottom_tail = (17), bottom_r = (18), bottom_space = (19), has_bottom = (20), }; public: double dh, dw, dt, dyc, dspac, dr, dhead, dtail, dele; int wallMode, holeMode; int hasBottomHole; double bottomHead, bottomTail, bottomR, bottomSpace; int hasBottom; }; class BAOBIYAN: public CEquJsonObject { DECLARATION_SUBCLASS(BAOBIYAN); void setDatasToEqu(AecDbWeir *p); private: enum { clr = 0, m = 1, h = (3+1), w = (4+1), t = (5+1), ele = 7 , wallmode = (8), has_bottom_hole = (9), bottom_head = (10) , bottom_tail = (11), bottom_r = (12), bottom_space = (13), has_bottom = (14), }; public: double dh, dw, dt, dele; int wallMode; int hasBottomHole; double bottomHead, bottomTail, bottomR, bottomSpace; int hasBottom; }; } namespace SHASHUIFENLI { class XCS: public CEquJsonObject { DECLARATION_SUBCLASS(XCS); private: enum { clr = 0, model = 0+1, v = 2+1, fai = 5+1, h = 6+1, fai1 = 7+1, h1 = 8+1, p = 9+1, W = 10+1, br = 12, }; public: double _fai, _h, _fai1, _h1, _W; int _hasBr; }; class HXS: public CEquJsonObject { DECLARATION_SUBCLASS(HXS); private: enum { clr = 0, model = 0+1, T = 2+1, L = 3+1, H = 4+1, L1 = 5+1, L2 = 6+1, W = 15+1, }; public: int _Single; double _L, _L1, _L2, _H, _W; }; class LCS: public CEquJsonObject { DECLARATION_SUBCLASS(LCS); private: enum { clr = 0, model = 0+1, H = 2+1, L = 3+1, W = 4+1, G = 6+1, P = 7+1, a = 8+1, H1 = 9+1 , H2 = 10+1, H3 = 11+1, L1 = 12+1, L2 = 13+1, L3 = 14+1, }; public: double _H, _L, _W, _a, _H1, _H2, _H3, _L1, _L2, _L3; }; } namespace LUOXUANBENG { class LXB: public CEquJsonObject { DECLARATION_SUBCLASS_NO_CONSTRUCTOR(LXB); private: enum { clr = 0, model = 0+1, D = 2+1, d = 3+1, H = 4+1, P = 5+1, Hz = 6+1, L1 = 7+1, L2 = 8+1, L3 = 9+1 , I1 = 10+1, I2 = 11+1, I3 = 12+1, I4 = 13+1, h1 = 14+1, h2 = 15+1, f = 16+1, a = 17+1, b = 18+1 , e = 19+1, seta = 20+1, mm = 21+1, rr = 22+1, vv = 23+1, hh = 24+1, kk = 25+1, }; std::set combos; double getKW(int idxB, int idxb); void setComboxSel(std::wstring &idx); public: double _D, _d, _L1, _L2, _L3, _seta; }; } namespace QIBIJI { class QS_I_P : public CEquJsonObject { DECLARATION_SUBCLASS(QS_I_P); private: enum { clr = 0, model = 0 + 1, T = 2 + 1, D = 3 + 1, D1 = 4 + 1, d = 5 + 1, H = 6 + 1, H1 = 7 + 1, L = 8 + 1, LL = 10, }; void setComboxSel(std::wstring &idx); double _D, _D1, _d, _H, _H1, _L, _LL; }; class QS_I_Y : public CEquJsonObject { DECLARATION_SUBCLASS(QS_I_Y); private: enum { clr = 0, model = 0 + 1, T = 2 + 1, D1 = 3 + 1, d = 4 + 1, H = 5 + 1, H1 = 6 + 1, H2 = 7 + 1, L = 8 + 1, L1 = 9 + 1 , LL = 11, }; void setComboxSel(std::wstring &idx); double _D1, _d, _H, _H1, _H2, _L, _L1, _LL; }; class QS_I_L : public CEquJsonObject { DECLARATION_SUBCLASS_NO_CONSTRUCTOR(QS_I_L); private: enum { clr = 0, model = 0 + 1, T = 2 + 1, D = 3 + 1, L = 4 + 1, H = 5 + 1, F = 6 + 1, N = 7 + 1, R = 8 + 1, M = 9 + 1, K = 10 + 1, H1 = 11 + 1, LL = 13, }; std::set combos; void setComboxSel(std::wstring &idx); double _D, _L, _H, _F, _H1, _LL, _M; }; class QS_II_L : public CEquJsonObject { DECLARATION_SUBCLASS_NO_CONSTRUCTOR(QS_II_L); private: enum { clr = 0, model = 0 + 1, T = 2 + 1, a = 3 + 1, F = 4 + 1, G = 5 + 1, L3 = 6 + 1, N = 7 + 1, K = 8 + 1, M = 9 + 1, R = 10 + 1, H = 11 + 1, L = 12 + 1, LL = 14, }; std::set combos; void setComboxSel(std::wstring &idx); double _F, _G, _L3, _H, _L, _M, _LL; }; class QS_II_Y : public CEquJsonObject { DECLARATION_SUBCLASS(QS_II_Y); private: enum { clr = 0, model = 0 + 1, T = 2 + 1, L3 = 3 + 1, a = 4 + 1, M = 5 + 1, S = 6 + 1, H = 7 + 1, L = 8 + 1, LL = 10, }; void setComboxSel(std::wstring &idx); double _L3, _a, _H, _M, _L, _LL; }; } namespace ZHAMEN { class RECT_ZHAMEN : public CEquJsonObject { DECLARATION_SUBCLASS(RECT_ZHAMEN); private: enum { clr = 0, model = 1, A = 3, H = 4, T = 5, }; double _A, _H, _T; }; class CIRCLE_ZHAMEN : public CEquJsonObject { DECLARATION_SUBCLASS(CIRCLE_ZHAMEN); private: enum { clr = 0, model = 1, H = 3, C = 4, I = 5, A = 6, T = 7, }; double _C, _I, _A, _H, _T; }; class SHENG_NI_FA : public CEquJsonObject { DECLARATION_SUBCLASS(SHENG_NI_FA); private: enum { clr = 0, model = 1, H = 3, h = 4, DN = 5, D3 = 6, T = 7, }; double _H, _h, _DN, _D3, _T; }; } namespace GUANIJI { class XZG: public CEquJsonObject { DECLARATION_SUBCLASS(XZG); private: enum { clr = 0, model = 0 + 1, fai = 2 + 1, H = 3 + 1, N = 4 + 1, W = 9 + 1, a = 11, }; double _fai, _H, _W, _a; }; class CZG: public CEquJsonObject { DECLARATION_SUBCLASS(CZG); private: enum { clr = 0, model = 0 + 1, fai = 2 + 1, H = 3 + 1, K = 5 + 1, W = 6 + 1, a = 8, }; double _fai, _H, _W, _a; }; class ZG: public CEquJsonObject { DECLARATION_SUBCLASS(ZG); private: enum { clr = 0, model = 0 + 1, T = 2 + 1, fai = 3 + 1, H = 4 + 1, K = 5 + 1, p = 8 + 1, w = 9 + 1, W = 10 + 1, a = 12, }; double _fai, _H, _W, _a; int _Half; }; class QG: public CEquJsonObject { DECLARATION_SUBCLASS(QG); private: enum { clr = 0, model = 0+1, T = 2+1, L = 3+1, W = 4+1, H = 5+1, G = 6+1, W1 = 7+1, }; double _L, _W, _H, _G, _W1; }; class PJ: public CEquJsonObject { DECLARATION_SUBCLASS(PJ); private: enum { clr = 0, model = 0+1, T = 2+1, L = 3+1, W = 4+1, H = 5+1, W1 = 6+1, }; double _L, _H, _W, _W1; }; class SX: public CEquJsonObject { DECLARATION_SUBCLASS(SX); private: enum { clr = 0, model = 0+1, T = 2+1, L = 3+1, Lk = 4+1, A = 5+1, B = 6+1, H = 7+1, K = 8+1, F = 9+1, G = 10+1, W1 = 11+1, }; double _L, _H, _Lk, _W1; }; class SB: public CEquJsonObject { DECLARATION_SUBCLASS(SB); private: enum { clr = 0, model = 0+1, L = 2+1, Lk = 3+1, A = 4+1, B = 5+1, H = 6+1, K = 7+1, F = 8+1, G = 9+1, W1 = 10+1, }; double _L, _H, _Lk, _W1; }; class LIANTIAO : public CEquJsonObject { DECLARATION_SUBCLASS(LIANTIAO); private: enum { clr = 0, model = 1, L = 3, W = 4, H = 5, H1 = 6, DJ = 7, J = 8, L1 = 9, L2 = 10, B = 11, R = 12, L3 = 13, }; double _L, _W, _H, _H1, _L1, _L2, _L3, _B, _R; BOOL _LEFT, _DianJi; }; } namespace NONGSUOJI { class NC: public CEquJsonObject { DECLARATION_SUBCLASS(NC); private: enum { clr = 0, model = 0 + 1, T = 2 + 1, D = 3 + 1, H = 4 + 1, W = 5 + 1, a = 7, }; double _D, _H, _W, _a; }; class NB: public CEquJsonObject { DECLARATION_SUBCLASS(NB); private: enum { clr = 0, model = 0 + 1, D = 2 + 1, H = 3 + 1, T = 4 + 1, K = 5 + 1, W = 6 + 1, a = 8, }; double _D, _H, _W, _a; }; } namespace BAOQIJI { class YHG: public CEquJsonObject { DECLARATION_SUBCLASS(YHG); private: enum { clr = 0, model = 0+1, D = 2+1, L = 3+1, Q = 4+1, J = 5+1, L1= 6+1, L2 = 7+1, }; double _D, _L, _L1, _L2; }; class AD: public CEquJsonObject { DECLARATION_SUBCLASS(AD); private: enum { clr = 0, model = 0+1, D = 2+1, L = 3+1, K = 4+1, L1= 5+1, L2 = 6+1, C = 7+1, }; double _D, _L, _L1, _L2; int _DJ; }; } namespace JIAYAOHUNHE { class GJ: public CEquJsonObject { DECLARATION_SUBCLASS(GJ); private: enum { clr = 0, model = 0+1, D = 2+1, H = 3+1, SP = 4+1, }; double _D, _H, __SP; }; class PJ: public CEquJsonObject { DECLARATION_SUBCLASS(PJ); private: enum { clr = 0, model = 0+1, D = 2+1, H = 3+1, L = 4+1, W = 5+1, K = 6+1, E = 7+1, W1 = 8+1, }; double _D, _H, _L, _W, _E, _W1; }; class TJ: public CEquJsonObject { DECLARATION_SUBCLASS(TJ); private: enum { clr = 0, model = 0+1, D = 2+1, fai = 3+1, H = 4+1, W1 = 5+1, H1 = 6+1, }; double _D, _fai, _H, _H1, _W1; }; class LJF: public CEquJsonObject { DECLARATION_SUBCLASS(LJF); private: enum { clr = 0, model = 0+1, D = 2+1, H = 3+1, L = 4+1, W = 5+1, h0 = 6+1 , h1 = 7+1, K1 = 8+1, K2 = 9+1, K3 = 10+1, R1 = 11+1, R2 = 12+1 , R3 = 13+1, W1 = 14+1, h = 15+1, }; double _D, _H, _L, _h0, _h1, _W1, _h; }; } namespace LVBUJI { class ZHUANPAN: public CEquJsonObject { DECLARATION_SUBCLASS(ZHUANPAN); private: enum { clr = 0, model = 1, L = 3, D = 4, H = 5, DJ = 6, J = 7, L1 = 8, L2 = 9, T = 10, S = 11, }; double _L, _D, _H, _L1, _L2, _T, _S; BOOL _LEFT, _DianJi; }; } class AecDbXBG; namespace XIEBANGUAN { class XBG : public CEquJsonObject { DECLARATION_SUBCLASS(XBG); void setDatasToEqu(AecDbXBG *pXBG); private: enum { clr = 0, model = 1, M = 3, B = 4 , R = 5, S = 6, T = 7, A = 8, H = 9, }; CString _M; double _R, _S, _T, _A, _H; int _B; }; } namespace GUANXIANG { class GUANXIANG_I : public CEquJsonObject { DECLARATION_SUBCLASS(GUANXIANG_I); private: enum { clr = 0, model = 1, D = 3, H = 4, H1 = 5, H2 = 6, SG = 7, D1 = 8, XG = 9, D2 = 10, style = 11, L11 = 12, W11 = 13, H11 = 14, H3 = 15, type = 16, R = 17, L1 = 18, R2 = 19, num = 20 }; double _D, _H, _H1, _H2, _D1, _D2, _L11, _W11, _H11, _H3, _R, _L1, _R2; CString _SG, _XG, _style, _type, _num; }; } namespace GUANDAOGUOLVQI { class DLD_FZ: public CEquJsonObject { DECLARATION_SUBCLASS(DLD_FZ); private: enum { clr = 0 , model = 1 , factory = 2 , DN1 = 3 , DN2 = 4 , DN3 = 5 , H = 6 , H1 = 7 , H2 = 8 , H3 = 9 , H4 = 10 , H5 = 11 , W1 = 12 , W2 = 13 , W3 = 14 , WJGK = 24 }; double _DN1, _DN2, _DN3, _H, _H1, _H2, _H3, _H4, _H5, _W1, _W2, _W3; CString _WJGK; }; } namespace QIANCENGSHALV { class DMF_56: public CEquJsonObject { DECLARATION_SUBCLASS(DMF_56); private: enum { clr = 0 , model = 1 , factory = 2 , DN1 = 3 , DN2 = 4 , DN3 = 5 , H1 = 6 , H2 = 7 , W = 8 }; double _DN1, _DN2, _DN3, _H1, _H2, _W; }; } namespace YIBANXIANGTI { class FANGXINGXIANG: public CEquJsonObject { DECLARATION_SUBCLASS(FANGXINGXIANG); virtual void onSigleClickItem(const int &idx); private: enum { clr = 0 , model , factory , ma // 材质 , table // 水箱表格 , name // 水箱名称 , page // 水箱所在页码 , V , M , L // 罐体长 , W // 罐体宽 , H // 罐体高 , ZJ // 是否有支架 , ZJ_H // 支架高度 , ZJ_N // 支架数量 , ADD // 添加管嘴 }; AcArray m_arNozz; int _TYPE, _ZJ, _ZJ_N; double _L, _W, _H, _ZJ_H; CString _sTable, _sName, _sPage, _ma; }; } namespace YIBANGUANTI { class YUANXINGGUAN: public CEquJsonObject { DECLARATION_SUBCLASS(YUANXINGGUAN); virtual void onSigleClickItem(const int &idx); private: enum { clr = 0 , model , factory , ma // 材质 , TYPE // 放置形式 , TOP // 顶盖形状 , TOP_H // 顶盖高度 , BOT // 底盖形状 , BOT_H // 底盖高度 , table // 水箱表格 , name // 水箱名称 , page // 水箱所在页码 , V , M , H , D // 罐体直径 , ZJ // 是否有支架 , ZJ_H // 支架高度 , ZJ_N // 支架数量 , ADD // 添加管嘴 }; AcArray m_arNozz; int _TYPE, _TOP, _BOT, _ZJ, _ZJ_N; double _TOP_H, _BOT_H, _D, _ZJ_H, _H; CString _sTable, _sName, _sPage, _ma; }; } namespace LABAKOU { class YUANXINGLABAKOU: public CEquJsonObject { DECLARATION_SUBCLASS(YUANXINGLABAKOU); private: enum { clr = 0 , model , factory , ma // 材质 , RKDN // 出口DN , CKDN // 入口DN , CD // 长度 , HD // 厚度 , BZ // 参考标准 }; double _RKDN, _CKDN, _CD, _HD; CString _BZ; }; } namespace CHANSHUDIBAN { class YUANXINGDIBAN: public CEquJsonObject { DECLARATION_SUBCLASS(YUANXINGDIBAN); private: enum { clr = 0 , model , factory , ma // 材质 , H // 底板标高 , T // 外延边板厚 , H1 // 底板落差 , H2 // 内深 , H3 // 底板厚度 , L1 // 外延边长度 , R // 半径 , L2 // 竖边壁厚 , L3 // 内径 }; double _H, _T, _H1, _H2, _H3, _L1, _R, _L2, _L3; AecDbX3dPart* makeXPart(); }; }