96 lines
2.1 KiB
C++
96 lines
2.1 KiB
C++
#include "stdafx.h"
|
|
#include "PNGDlg.h"
|
|
#include "CoreTools.h"
|
|
#include "PipelineTools.h"
|
|
#include "AecDbSludgePipe.h"
|
|
|
|
IMPLEMENT_DYNAMIC(PNGDlg, CDialogEx)
|
|
|
|
PNGDlg::PNGDlg(CWnd* pParent /*=nullptr*/)
|
|
: CDialog(IDD_PNG_DLG, pParent)
|
|
, m_dOuter(200.)
|
|
, m_dT(5.)
|
|
, m_dHoldR(20.)
|
|
, m_dHoldSp(150.)
|
|
, m_dHeadSp(100.)
|
|
, m_dTailSp(100.)
|
|
{
|
|
|
|
}
|
|
|
|
PNGDlg::~PNGDlg()
|
|
{
|
|
}
|
|
|
|
void PNGDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Text(pDX, IDC_EDIT1, m_dOuter);
|
|
DDV_MinMaxDouble(pDX, m_dOuter, 0.1, 1000000);
|
|
DDX_Text(pDX, IDC_EDIT2, m_dT);
|
|
DDV_MinMaxDouble(pDX, m_dT, 0.1, 1000000);
|
|
DDX_Text(pDX, IDC_EDIT3, m_dHoldR);
|
|
DDV_MinMaxDouble(pDX, m_dHoldR, 0.1, 1000000);
|
|
DDX_Text(pDX, IDC_EDIT4, m_dHoldSp);
|
|
DDV_MinMaxDouble(pDX, m_dHoldSp, 0.1, 1000000);
|
|
DDX_Text(pDX, IDC_EDIT5, m_dHeadSp);
|
|
DDV_MinMaxDouble(pDX, m_dHeadSp, 0.1, 1000000);
|
|
DDX_Text(pDX, IDC_EDIT6, m_dTailSp);
|
|
DDV_MinMaxDouble(pDX, m_dTailSp, 0.1, 1000000);
|
|
}
|
|
|
|
BOOL PNGDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
GET_CACHE(PNGDlg, %f%f%f%f%f%f, &m_dOuter, &m_dT, &m_dHoldR, &m_dHoldSp, &m_dHeadSp, &m_dTailSp);
|
|
UpdateData(false);
|
|
return 0;
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(PNGDlg, CDialog)
|
|
ON_BN_CLICKED(IDOK, &PNGDlg::OnBnClickedOk)
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
|
|
|
|
void PNGDlg::OnBnClickedOk()
|
|
{
|
|
UpdateData(true);
|
|
GET_CACHE(PNGDlg, %f%f%f%f%f%f, m_dOuter, m_dT, m_dHoldR, m_dHoldSp, m_dHeadSp, m_dTailSp);
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
void PNGDlg::Start()
|
|
{
|
|
CAcModuleResourceOverride myResources;
|
|
|
|
PNGDlg dlg;
|
|
if (dlg.DoModal() != IDOK) return;
|
|
|
|
if (dlg.m_dOuter <= dlg.m_dT)
|
|
{
|
|
AfxMessageBox(_T("壁厚不能大于外径!"));
|
|
return;
|
|
}
|
|
|
|
ads_point adspt1, adspt2;
|
|
if (acedGetPoint(NULL, _T("选择起点:"), adspt1) != RTNORM) return;
|
|
if (acedGetPoint(adspt1, _T("选择终点:"), adspt2) != RTNORM) return;
|
|
|
|
AecDbSludgePipe *p = new AecDbSludgePipe();
|
|
|
|
p->SetBaseCurve(asPnt3d(adspt1), asPnt3d(adspt2));
|
|
p->SetHeadSpa(dlg.m_dHeadSp);
|
|
p->SetTailSpa(dlg.m_dTailSp);
|
|
p->SetOuter(dlg.m_dOuter);
|
|
p->SetInner(dlg.m_dOuter - dlg.m_dT);
|
|
p->SetSpacing(dlg.m_dHoldSp);
|
|
p->SetHoldD(dlg.m_dHoldR);
|
|
p->AppendAngle(1.25 * PI);
|
|
p->AppendAngle(1.75 * PI);
|
|
p->InitPipeBase();
|
|
CoreTools::AddToModelSpace(p);
|
|
}
|