Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

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_)