#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); }