192 lines
5.6 KiB
C++
192 lines
5.6 KiB
C++
#pragma once
|
|
#include "resource.h"
|
|
#include "afxwin.h"
|
|
#include "HDuctHydraulic.h"
|
|
#include "BtnST.h"
|
|
#include "HListCtrl.h"
|
|
#include "EarThwormDef.h"
|
|
|
|
|
|
// 管径颜色标识结构体
|
|
struct SPipeColor
|
|
{
|
|
double m_dMinVal; // 最小管径
|
|
double m_dMaxVal; // 最大管径
|
|
int m_iColorIdx; // 管线标识颜色索引号
|
|
};
|
|
|
|
// 风管尺寸规格
|
|
struct SDuctSectSpec
|
|
{
|
|
double m_dHeight; // '高'
|
|
double m_dWidth; // '宽', 圆风管值同'宽' == '高'同时表示风管直径
|
|
};
|
|
|
|
// 风量单位类型
|
|
enum EFluxDesc
|
|
{
|
|
eKgH = 0, // 单位类型为kg/h
|
|
eKgS = 1, // 单位类型为kg/s
|
|
eCobeH = 2, // 单位类型为m^3/h
|
|
eCobeS = 3, // 单位类型为m^3/s
|
|
eLH = 4, // 单位类型为L/h
|
|
eLS = 5, // 单位类型为L/s
|
|
};
|
|
|
|
class CFGBZDlg : public CDialog
|
|
{
|
|
DECLARE_DYNAMIC(CFGBZDlg)
|
|
|
|
public:
|
|
CFGBZDlg(CWnd* pParent = NULL);
|
|
virtual ~CFGBZDlg();
|
|
|
|
enum { IDD = IDD_FGBZ_DLG };
|
|
|
|
void SetEleReadOnly(BOOL bEleReadOnly,double dEl);
|
|
void EnableLoadLast(BOOL bLoadLast);
|
|
|
|
void LockEl(bool bLock){m_bLock = bLock;}
|
|
void SetAlignEnable(BOOL bEnableAlign){m_bEnableAlign = bEnableAlign;}
|
|
|
|
void GetPipeParam(AecHvac::DuctParam* pParam);
|
|
void SetShowParam(const AecHvac::DuctParam& param);
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
|
|
DECLARE_MESSAGE_MAP()
|
|
public:
|
|
virtual BOOL OnInitDialog();
|
|
afx_msg void OnBnClickedOk();
|
|
afx_msg void OnKgH();
|
|
afx_msg void OnKgS();
|
|
afx_msg void OnLH();
|
|
afx_msg void OnLS();
|
|
afx_msg void OnCobeS();
|
|
afx_msg void OnCobeH();
|
|
afx_msg void OnBnClickedBtnPopDnMenu();
|
|
afx_msg void OnBnClickedButChange();
|
|
afx_msg void OnChangeEdtSectWidth();
|
|
afx_msg void OnChangeEdtSectHeight();
|
|
afx_msg void OnClickLstHeight(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnClickLstWidth(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnSelchangeCmbSect();
|
|
protected:
|
|
|
|
void CheckSysParameter(BOOL bInit = TRUE);
|
|
void ReCalHeightVR();
|
|
int GetVRDataRangeFromMDB(CArray<SPipeColor, SPipeColor>& arDataRange, BOOL bVData = TRUE);
|
|
BOOL UpdataVRDataRangeArray();
|
|
void ReCalWidthVR();
|
|
void SetFluxType( EFluxDesc eFluxDesc );
|
|
int GetDuctSectSpecArray(CArray<SDuctSectSpec, SDuctSectSpec>& arMatSpec, const int iSect);
|
|
int FindInsertIndex(double &dDifferArea, double &dBestArea, CArray<SDuctSectSpec, SDuctSectSpec>& arRmdSize);
|
|
double ChangeFluxTo(double dFluxOld, EFluxDesc eType, double dDencity);
|
|
double ChangeFluxBy(double dFluxOld, EFluxDesc eType, double dDencity);
|
|
void CalSizeByFlux();
|
|
double GetNormalSize( const double &dSize, CArray<double, double>& arSize, BOOL bLittleHigh );
|
|
int GetDataRange(CArray<SPipeColor, SPipeColor>& arPipeColor);
|
|
void SetSectWidthList();
|
|
void SetSectHeightList();
|
|
void SetSectDia();
|
|
BOOL GetMediumInfo(CString& csPressure, CString& csMedium, CString& csTemperature,CString& csHumidity, CString& csDensity, CString& csStickiness);
|
|
public:
|
|
|
|
BOOL m_bLoadLast;
|
|
bool m_bLock;//是否锁定标高,临时不记录历史
|
|
double m_dElOld;
|
|
BOOL m_bEleReadOnly;
|
|
BOOL m_bEnableAlign;
|
|
int m_nAlign;
|
|
|
|
CComboBox m_wndAlignCombo;
|
|
CEdit m_wndEditEl;
|
|
|
|
CUIISQLiteServer* m_pDbServer;
|
|
CString m_csWidth;
|
|
CString m_csHeight;
|
|
|
|
HDuctHydraulic m_cHydraulic; // 水力计算
|
|
double m_dDencity; // 密度
|
|
|
|
CHListCtrl m_wndLstHeight;
|
|
CHListCtrl m_wndLstWidth;
|
|
|
|
double m_dTopEl;
|
|
CString m_sProvider;
|
|
CString m_sDuctUse;
|
|
CString m_sMat;
|
|
int m_nSecType;
|
|
double m_dt;
|
|
double m_dRatio;
|
|
CString m_sNo;
|
|
|
|
double m_dFlux; // 风量(m^3/h)
|
|
// 风速
|
|
double m_dV;
|
|
// 比摩阻
|
|
double m_dR;
|
|
// 沿层阻力
|
|
double m_dPy;
|
|
|
|
CString m_csFlux;
|
|
|
|
CDoubleArray m_arSizeRect;// 矩形尺寸
|
|
CDoubleArray m_arSizeCir;// 圆形尺寸
|
|
|
|
CComboBox m_wndCmbSect;
|
|
CComboBox m_wndCmbPipeType;
|
|
CComboBox m_wndCmbPipeMaterial;
|
|
|
|
int m_nOption;// 0-显示风速 1-显示比摩阻
|
|
CMapStringToString m_mapCfg; // 保存通用设置
|
|
|
|
//Fit
|
|
AecHvac::HvacOffsetType m_eOffsetFirst; // 乙字弯优先类型
|
|
AecHvac::HvacOffsetType m_eOffsetSec; // 乙字弯其次类型
|
|
CString m_csOffCalType; // 乙字弯计算方法
|
|
double m_dOffsetAngle; // 斜接乙字弯角度
|
|
double m_dOffsetRatio; // 乙字弯曲率倍数
|
|
|
|
AecHvac::HvacElbowType m_eElbowTypeR; // 矩形弯头默认类型
|
|
AecHvac::HvacElbowType m_eElbowTypeC; // 圆形弯头默认类型
|
|
double m_dElbowRatio; // 弯头曲率
|
|
int m_nElbowXiaMi; // 虾米弯节数
|
|
|
|
AecHvac::HvacTeeType m_eTeeTypeR; // 矩形三通默认类型
|
|
AecHvac::HvacTeeType m_eTeeTypeC; // 圆形三通默认类型
|
|
double m_dTeeRatio; // 三通曲率
|
|
double m_dTeeAngle; // 三通角度
|
|
|
|
AecHvac::HvacCrossType m_eCrossTypeR; // 矩形四通默认类型
|
|
AecHvac::HvacCrossType m_eCrossTypeC; // 圆形四通默认类型
|
|
double m_dCrossRatio; // 四通曲率
|
|
double m_dCrossAngle; // 四通角度
|
|
|
|
CString m_csReduceCalType; // 变径长度计算方法
|
|
double m_dReduceLength; // 变径长度
|
|
double m_dReduceAnlge; // 变径角度
|
|
|
|
AecHvac::HvacFlangeType m_eFlangeType; // 法兰形式
|
|
double m_dPlusEdge; // 咬口法兰翻边余量
|
|
|
|
// 风量单位类型
|
|
EFluxDesc m_eFluxType;
|
|
|
|
// 添加根据风量风速,推荐合适尺寸功能
|
|
CString m_sRmdVg; // 用户设置的风管推荐风速
|
|
CMenu m_SizeMenu; // 推荐尺寸菜单
|
|
CString m_sRmdSize; // 保存用户选中的尺寸
|
|
|
|
CArray<SPipeColor, SPipeColor> m_arPipeColor;// 流速,R
|
|
CArray<SPipeColor, SPipeColor> m_arVRange; // 速度范围
|
|
CArray<SPipeColor, SPipeColor> m_arRRange; // 比摩组范围
|
|
|
|
CButtonST m_wndBtnSTFlux;
|
|
CButtonST m_wndBtnPopDnMenu; // 弹出推荐尺寸按钮
|
|
double m_dCenEl;
|
|
afx_msg void OnEnChangeEdit2();
|
|
afx_msg void OnBnClickedButton1();
|
|
};
|