158 lines
4.1 KiB
C++
158 lines
4.1 KiB
C++
#if !defined(AFX_SPHONRAINWATERDLG_H__4868AD63_3FB4_496C_8A55_0A58EF1539D1__INCLUDED_)
|
|
#define AFX_SPHONRAINWATERDLG_H__4868AD63_3FB4_496C_8A55_0A58EF1539D1__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#include "resource.h"
|
|
|
|
typedef struct SiphonInfo
|
|
{
|
|
CString strName; //管段名称
|
|
AcDbObjectId id; //管道或雨水斗id
|
|
AcDbObjectId id2; //与当前管段存在变径关系的管段
|
|
double dQ; //流量
|
|
double dLen; //管长
|
|
double dPipeDia; //管径
|
|
double dT; //局部阻力系数
|
|
bool bDia; //变径
|
|
int nType; //0 管 1 雨水斗
|
|
double dEle; //高差
|
|
BOOL bVertical; //立管
|
|
double dv; //流速
|
|
double dhf; //沿程阻力损失
|
|
double dhj; //局部阻力损失
|
|
double dH; //总阻力损失
|
|
double dH2; //∑总阻力损失
|
|
double dP; //压力
|
|
double dA; //管道沿程阻力损失系数λ
|
|
double dDeep; //斗前水深
|
|
BOOL bLinkWaterBucket; //是否连着雨水斗
|
|
}SIPHONINFO;
|
|
|
|
class CSiphonRainwaterCalcDlg;
|
|
class CSiphonRainwaterCalcGrid: public WDGrid
|
|
{
|
|
|
|
public:
|
|
|
|
CSiphonRainwaterCalcGrid();
|
|
|
|
void SetPipeMaterial(const CString& strMaterial);
|
|
|
|
void SetWnd(CSiphonRainwaterCalcDlg* pWnd);
|
|
|
|
void SetData(std::set<int> &data);
|
|
|
|
std::set<int>& GetData();
|
|
|
|
protected:
|
|
|
|
virtual void OnCellComboString(WDGridCell&cell,CComboBox&combo);
|
|
|
|
virtual void OnDblClick(WDGridRow&row);
|
|
|
|
virtual bool OnModified(WDGridCell&cell,CString &text);
|
|
|
|
virtual void OnBeforeRefresh(WDGridCell&cell);
|
|
|
|
private:
|
|
|
|
CString m_strPipeMaterial;
|
|
CSiphonRainwaterCalcDlg* m_pWnd;
|
|
std::set<int> m_setRow;
|
|
};
|
|
|
|
class CSiphonRainwaterCalcDlg : public CDialog
|
|
{
|
|
|
|
public:
|
|
|
|
CSiphonRainwaterCalcDlg(CWnd* pParent = NULL);
|
|
|
|
void SetSiphonInfo(std::vector<SIPHONINFO> &data);
|
|
|
|
void SetMapInfo(std::map<AcDbObjectId, AcDbObjectId> &mapPipe, std::map<AcDbObjectId, AcDbObjectId> &mapDim, std::map<AcDbObjectId, AcDbObjectId> &map2PipeId);
|
|
|
|
void SetPipeMaterial(const CString& strMaterial);
|
|
|
|
void SetChamferPipe(std::map<AcDbObjectId, AcDbObjectId> &mapPipe); // cet 2011.7.6 add
|
|
|
|
void SetPlan2Sys(BOOL bExist);
|
|
|
|
void DblClickLst(); // WGrid双击事件
|
|
|
|
void UpDatePipeDia(long nIndex, CString &strText); //更新管径
|
|
|
|
void UpDateT(long nIndex, CString &strText); //更新局部阻力系数
|
|
|
|
//{{AFX_DATA(CSiphonRainwaterCalcDlg)
|
|
enum { IDD = IDD_CALC_SIPHONRAINWATER };
|
|
CSiphonRainwaterCalcGrid m_listCtrl;
|
|
static CString m_strWndCmbT;
|
|
double m_dWndEdtDelta;
|
|
//}}AFX_DATA
|
|
|
|
//{{AFX_VIRTUAL(CSiphonRainwaterCalcDlg)
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
//}}AFX_VIRTUAL
|
|
|
|
protected:
|
|
|
|
//{{AFX_MSG(CSiphonRainwaterCalcDlg)
|
|
virtual BOOL OnInitDialog();
|
|
afx_msg void OnButtonTabale();
|
|
afx_msg void OnButtonHide();
|
|
afx_msg void OnButtonCalc();
|
|
afx_msg void OnButtonCheck();
|
|
afx_msg void OnButtonWord();
|
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
private:
|
|
|
|
void ResetList();
|
|
|
|
void CleanUseless0(CString &strText);
|
|
|
|
double GetU(); //运动粘性系数
|
|
|
|
void UpdataInfo();
|
|
|
|
AcDbObjectId GetPipeId(int nIndex); //获得选定行管段id
|
|
|
|
void ShowPipe(AcDbObjectId&);
|
|
|
|
void UpDatePipeDia(AcDbObjectId &id, double dDia);
|
|
|
|
int ComparePipeDia(const AcDbObjectId &id1, const AcDbObjectId &id2);
|
|
|
|
BOOL GetPressure(const AcDbObjectId &id1, const AcDbObjectId &id2, double &dPressure, CString &strName1, CString &strName2); //各节点(斜三通)压力差
|
|
|
|
std::vector<SIPHONINFO>::iterator Find(const AcDbObjectId &id);
|
|
|
|
BOOL GetPipeDn(const AcDbObjectId &id, double &dDn); // cet 2011.10.13 add
|
|
|
|
private:
|
|
|
|
std::vector<SIPHONINFO> m_vecData;
|
|
|
|
std::map<AcDbObjectId, AcDbObjectId> m_mapPipe; //原图与系统图中管段对应关系
|
|
|
|
std::map<AcDbObjectId, AcDbObjectId> m_mapDim; //原图与系统图中各管标注对应关系
|
|
|
|
std::map<AcDbObjectId, AcDbObjectId> m_map2PipeId; //原图中斜三通中干管与支管对应关系
|
|
|
|
std::map<AcDbObjectId, AcDbObjectId> m_mapChamferPipe; // cet 2011.7.6 add 倒角管段管径随对应的管段
|
|
|
|
CString m_strPipeMaterial;
|
|
|
|
BOOL m_bExistPlan2Sys; // 系统图是否存在
|
|
|
|
};
|
|
|
|
|
|
#endif // !defined(AFX_SPHONRAINWATERDLG_H__4868AD63_3FB4_496C_8A55_0A58EF1539D1__INCLUDED_)
|