220 lines
4.8 KiB
C++
220 lines
4.8 KiB
C++
#include "stdafx.h"
|
||
#include "ParshallFlumeDlg.h"
|
||
#include "CoreTools.h"
|
||
#include "PipelineTools.h"
|
||
#include "aecdbrivergroove.h"
|
||
|
||
IMPLEMENT_DYNAMIC(CParshallFlumeDlg, CDialog)
|
||
|
||
CParshallFlumeDlg::CParshallFlumeDlg(CWnd* pParent /*=nullptr*/)
|
||
: CDialog(IDD_DLG_PARSHALL, pParent)
|
||
, m_iCheckHold(0)
|
||
, m_dD(0)
|
||
, m_dN(0)
|
||
, m_dK(0)
|
||
, m_dX(0)
|
||
, m_dL(0)
|
||
, m_dj(0)
|
||
, m_dB1(0)
|
||
, m_dB2(0)
|
||
, m_db(0)
|
||
, m_dT(0)
|
||
, m_dL1(0)
|
||
, m_dL2(0)
|
||
, m_dD1(0)
|
||
, m_dD2(0)
|
||
, m_dh(0)
|
||
, m_dLa(0)
|
||
{
|
||
GET_CACHE(CParshallFlumeDlg, %d%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
|
||
, &m_iCheckHold
|
||
, &m_dD
|
||
, &m_dN
|
||
, &m_dK
|
||
, &m_dX
|
||
, &m_dL
|
||
, &m_dj
|
||
, &m_dB1
|
||
, &m_dB2
|
||
, &m_db
|
||
, &m_dT
|
||
, &m_dL1
|
||
, &m_dL2
|
||
, &m_dD1
|
||
, &m_dD2
|
||
, &m_dh
|
||
, &m_dLa );
|
||
}
|
||
|
||
CParshallFlumeDlg::~CParshallFlumeDlg()
|
||
{
|
||
}
|
||
|
||
void CParshallFlumeDlg::DoDataExchange(CDataExchange* pDX)
|
||
{
|
||
CDialog::DoDataExchange(pDX);
|
||
DDX_Check(pDX, IDC_CHECK1, m_iCheckHold);
|
||
DDX_Text(pDX, IDC_EDIT1, m_dD);
|
||
DDV_MinMaxDouble(pDX, m_dD, 0.001, 99999999);
|
||
DDX_Text(pDX, IDC_EDIT2, m_dN);
|
||
DDV_MinMaxDouble(pDX, m_dN, 0.001, 99999999);
|
||
DDX_Text(pDX, IDC_EDIT3, m_dK);
|
||
DDV_MinMaxDouble(pDX, m_dK, 0.001, 99999999);
|
||
DDX_Text(pDX, IDC_EDIT4, m_dX);
|
||
DDV_MinMaxDouble(pDX, m_dX, 0.001, 99999999);
|
||
DDX_Text(pDX, IDC_EDIT9, m_dL);
|
||
DDV_MinMaxDouble(pDX, m_dL, 0.001, 99999999);
|
||
DDX_Text(pDX, IDC_EDIT10, m_dj);
|
||
DDV_MinMaxDouble(pDX, m_dj, 0.001, 99999999);
|
||
DDX_Text(pDX, IDC_EDIT7, m_dB1);
|
||
DDV_MinMaxDouble(pDX, m_dB1, 0.001, 99999999);
|
||
DDX_Text(pDX, IDC_EDIT11, m_dB2);
|
||
DDV_MinMaxDouble(pDX, m_dB2, 0.001, 99999999);
|
||
DDX_Text(pDX, IDC_EDIT12, m_db);
|
||
DDV_MinMaxDouble(pDX, m_db, 0.001, 99999999);
|
||
DDX_Text(pDX, IDC_EDIT8, m_dT);
|
||
DDV_MinMaxDouble(pDX, m_dT, 0.001, 99999999);
|
||
DDX_Text(pDX, IDC_EDIT5, m_dL1);
|
||
DDV_MinMaxDouble(pDX, m_dL1, 0.001, 99999999);
|
||
DDX_Text(pDX, IDC_EDIT6, m_dL2);
|
||
DDV_MinMaxDouble(pDX, m_dL2, 0.001, 99999999);
|
||
DDX_Text(pDX, IDC_EDIT13, m_dD1);
|
||
DDX_Text(pDX, IDC_EDIT14, m_dD2);
|
||
DDX_Text(pDX, IDC_EDIT15, m_dh);
|
||
DDX_Text(pDX, IDC_EDIT16, m_dLa);
|
||
}
|
||
|
||
BOOL CParshallFlumeDlg::OnInitDialog()
|
||
{
|
||
CDialog::OnInitDialog();
|
||
|
||
UpdateData(FALSE);
|
||
|
||
eanbleWindow();
|
||
|
||
CenterWindow();
|
||
CoreTools::showPictureDlg(FilePath::GetSysDir() + _T("\\Parshall-flume.bmp"), this);
|
||
|
||
return TRUE;
|
||
}
|
||
|
||
BEGIN_MESSAGE_MAP(CParshallFlumeDlg, CDialog)
|
||
ON_BN_CLICKED(IDOK, &CParshallFlumeDlg::OnBnClickedOk)
|
||
ON_BN_CLICKED(IDC_CHECK1, &CParshallFlumeDlg::OnBnClickedCheck1)
|
||
ON_WM_PAINT()
|
||
ON_BN_CLICKED(IDOK2, &CParshallFlumeDlg::OnBnClickedOk2)
|
||
END_MESSAGE_MAP()
|
||
|
||
void CParshallFlumeDlg::OnBnClickedOk()
|
||
{
|
||
UpdateData(TRUE);
|
||
SET_CACHE(CParshallFlumeDlg
|
||
, %d%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
|
||
, m_iCheckHold
|
||
, m_dD
|
||
, m_dN
|
||
, m_dK
|
||
, m_dX
|
||
, m_dL
|
||
, m_dj
|
||
, m_dB1
|
||
, m_dB2
|
||
, m_db
|
||
, m_dT
|
||
, m_dL1
|
||
, m_dL2
|
||
, m_dD1
|
||
, m_dD2
|
||
, m_dh
|
||
, m_dLa );
|
||
CDialog::OnOK();
|
||
}
|
||
|
||
void CParshallFlumeDlg::start()
|
||
{
|
||
CAcModuleResourceOverride myResources;
|
||
CParshallFlumeDlg dlg;
|
||
if (dlg.DoModal() != IDOK) return;
|
||
|
||
double dEl(1.);
|
||
ads_point adspt1, adspt2;
|
||
if (acedGetPoint(NULL, _T("\n选择起点:"), adspt1) != RTNORM) return;
|
||
if (acedGetPoint(adspt1, _T("\n选择终点:"), adspt2) != RTNORM) return;
|
||
if (acedGetReal(_T("\n输入标高(米)<1>:"), &dEl) == RTCAN) return;
|
||
|
||
AcGePoint3d ptS(asPnt3d(adspt1)), ptE(asPnt3d(adspt2));
|
||
ptS.z = ptE.z = dEl * 1000;
|
||
|
||
CoreTools::UCS2WCS(ptS, ptS);
|
||
CoreTools::UCS2WCS(ptE, ptE);
|
||
|
||
AecDbRiverGroove *pGroove = new AecDbRiverGroove;
|
||
|
||
pGroove->SetD(dlg.m_dD);
|
||
pGroove->SetN(dlg.m_dN);
|
||
pGroove->SetK(dlg.m_dK);
|
||
pGroove->SetL1(dlg.m_dL1);
|
||
pGroove->SetL(dlg.m_dL);
|
||
pGroove->SetL2(dlg.m_dL2);
|
||
pGroove->SetT(dlg.m_dT);
|
||
pGroove->Setj(dlg.m_dj);
|
||
pGroove->Setb(dlg.m_db);
|
||
pGroove->SetB1(dlg.m_dB1);
|
||
pGroove->SetB2(dlg.m_dB2);
|
||
pGroove->SetX(dlg.m_dX);
|
||
|
||
if (dlg.m_iCheckHold)
|
||
{
|
||
pGroove->SetLa(dlg.m_dLa);
|
||
pGroove->Seth(dlg.m_dh);
|
||
pGroove->SetD1(dlg.m_dD1);
|
||
pGroove->SetD2(dlg.m_dD2);
|
||
}
|
||
else
|
||
{
|
||
pGroove->SetLa(.0);
|
||
pGroove->Seth(.0);
|
||
pGroove->SetD1(.0);
|
||
pGroove->SetD2(.0);
|
||
}
|
||
|
||
pGroove->SetBaseCurve(ptS, ptE);
|
||
pGroove->SetSection1(dlg.m_dD, dlg.m_dB1, 1);
|
||
|
||
CoreTools::AddToModelSpace(pGroove);
|
||
}
|
||
|
||
void CParshallFlumeDlg::OnBnClickedCheck1()
|
||
{
|
||
m_iCheckHold = !m_iCheckHold;
|
||
eanbleWindow();
|
||
}
|
||
|
||
void CParshallFlumeDlg::eanbleWindow()
|
||
{
|
||
CWnd *pWnd = GetDlgItem(IDC_EDIT13);
|
||
if (pWnd) pWnd->EnableWindow(m_iCheckHold);
|
||
pWnd = GetDlgItem(IDC_EDIT14);
|
||
if (pWnd) pWnd->EnableWindow(m_iCheckHold);
|
||
pWnd = GetDlgItem(IDC_EDIT15);
|
||
if (pWnd) pWnd->EnableWindow(m_iCheckHold);
|
||
pWnd = GetDlgItem(IDC_EDIT16);
|
||
if (pWnd) pWnd->EnableWindow(m_iCheckHold);
|
||
}
|
||
|
||
void CParshallFlumeDlg::OnPaint()
|
||
{
|
||
CPaintDC dc(this);
|
||
}
|
||
|
||
void CParshallFlumeDlg::OnBnClickedOk2()
|
||
{
|
||
CoreTools::showPictureDlg(FilePath::GetSysDir() + _T("\\Parshall-flume.bmp"), this);
|
||
}
|
||
|
||
BOOL CParshallFlumeDlg::DestroyWindow()
|
||
{
|
||
CoreTools::hidePictureDlg();
|
||
return CDialog::DestroyWindow();
|
||
}
|