137 lines
3.8 KiB
C++
137 lines
3.8 KiB
C++
#if !defined(AFX_PIPEINTERCHECKDLG_H__EBA007B6_ED08_4D7D_A251_1AB654F37E07__INCLUDED_)
|
|
#define AFX_PIPEINTERCHECKDLG_H__EBA007B6_ED08_4D7D_A251_1AB654F37E07__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
#include "Resource.h"
|
|
#include "DbVerticalSection.h"
|
|
#include "DbWell.h"
|
|
#include "DbPool.h"
|
|
#include "DbEquipment.h"
|
|
#include "WGroupCtrl.h"
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CPipeInterCheckDlg dialog
|
|
|
|
// 交叉碰撞点信息
|
|
class InterPipesInfo
|
|
{
|
|
public:
|
|
AcDbObjectId idLow;
|
|
AcDbObjectId idUp;
|
|
TPipeSys::SysType sysLow;
|
|
TPipeSys::SysType sysUp;
|
|
double dElevLow;
|
|
double dElevUp;
|
|
double dDnLow;
|
|
double dDnUp;
|
|
AcGePoint3d ptInter;
|
|
};
|
|
|
|
class CPipeInterCheckDlg : public WGroupDlg
|
|
{
|
|
// Construction
|
|
public:
|
|
CPipeInterCheckDlg(CWnd* pParent = NULL); // standard constructor
|
|
void SetSelectedPipes(PickSet ss);
|
|
bool HasIntersectPipe();
|
|
|
|
// Dialog Data
|
|
//{{AFX_DATA(CPipeInterCheckDlg)
|
|
enum { IDD = IDD_PIPEINTER_CHECK };
|
|
CComboBox m_cmbPipeType;
|
|
double m_dDownLen;
|
|
CString m_csDownLen;
|
|
double m_dSafeDist;
|
|
CString m_csSafeDist;
|
|
int m_iDimType;
|
|
int m_iDownPipeType;
|
|
int m_iDimPipeNotInter;
|
|
int m_iOldDownPipeType;
|
|
CString m_sElevUp;
|
|
CString m_sElevLow;
|
|
int m_iCmbType;
|
|
//}}AFX_DATA
|
|
|
|
// Overrides
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(CPipeInterCheckDlg)
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Implementation
|
|
protected:
|
|
|
|
// Generated message map functions
|
|
//{{AFX_MSG(CPipeInterCheckDlg)
|
|
virtual BOOL OnInitDialog();
|
|
afx_msg void OnRadioPipetype1();
|
|
afx_msg void OnRadioPipetype2();
|
|
afx_msg void OnRadioPipetype3();
|
|
afx_msg void OnRadioPipetype4();
|
|
afx_msg void OnSelchangeComboType();
|
|
afx_msg void OnDestroy();
|
|
afx_msg void OnClose();
|
|
afx_msg void OnTimer(UINT_PTR nIDEvent);
|
|
afx_msg void OnBtnQuit();
|
|
afx_msg void OnBtnNotdown();
|
|
afx_msg void OnBtnDown();
|
|
afx_msg void OnRadioDimtype1();
|
|
afx_msg void OnRadioDimtype2();
|
|
afx_msg void OnKillfocusEditDownlen();
|
|
afx_msg void OnKillfocusEditSafedist();
|
|
afx_msg void OnPaint();
|
|
afx_msg void OnBtnAutoDown();
|
|
//}}AFX_MSG
|
|
// 初始化交叉碰撞管线信息
|
|
void InitInterPipeInfo();
|
|
void ModifyInterPipeInfo();
|
|
void UpdateInterPipeInfo(const InterPipesInfo infoOld);
|
|
// 设置对话框状态
|
|
void SetCurrentDlgData();
|
|
void ModifyDlgRadioStu();
|
|
void SetDlgCtrlStu(bool bEnableWindow = false);
|
|
double GetPipeStartEle(Entity entPipe);
|
|
double GetPipeThick(Entity& ent);
|
|
// 更新对话框记忆数据
|
|
void UpdateDlgData(bool bRead);
|
|
// 当前检查的管线
|
|
void SetCurSelPipe();
|
|
void DrawXLineByPt();
|
|
void ShowLine();
|
|
// 移动管线使其不碰撞
|
|
void ResetSelPipeSysElev();
|
|
// 对话框显示标注内容
|
|
void SetDimText();
|
|
// 标注交叉点
|
|
void DoDimIntersectPipes(InterPipesInfo infoPipe);
|
|
// 计算管线连带的管网
|
|
void ModifyWellSysByLastWell(DList<TWellData> &lstWellSys, const PickSet &ss);
|
|
void CalcWellPipeSys(double nDeepStart, DList<TWellData> &lstWellSys);
|
|
void ModifyWellPipeElev(DList<TWellData> &lstWellSys);
|
|
|
|
private:
|
|
WGroupCtrl m_grpSet; // 伸缩编组框控件
|
|
static BOOL m_bGrpSetStatus; // 伸缩编组框控件的状态
|
|
|
|
PickSet m_ssPipe;
|
|
InterPipesInfo m_infoPipe; // 当前要处理的交叉管线
|
|
AcDbObjectId m_idMove; // 降管
|
|
|
|
std::multimap<double, InterPipesInfo> m_mapInterPipeInfo; // 交叉碰撞点信息
|
|
std::multimap<double, InterPipesInfo>::reverse_iterator m_itCurPipe;
|
|
std::vector<InterPipesInfo> m_vecPtUnInter;// 交叉不碰撞点信息
|
|
PickSet m_ssLine;
|
|
bool m_bIsVisible;
|
|
|
|
int m_iPreWelldDeep;
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
//{{AFX_INSERT_LOCATION}}
|
|
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
|
|
|
#endif // !defined(AFX_PIPEINTERCHECKDLG_H__EBA007B6_ED08_4D7D_A251_1AB654F37E07__INCLUDED_)
|