176 lines
3.4 KiB
C++
176 lines
3.4 KiB
C++
#include "stdafx.h"
|
|
#include "JYXJDlg.h"
|
|
#include "CoreTools.h"
|
|
#include "KTCADUtilityEx.h"
|
|
|
|
DLLIMPEXP CString IDCreate();
|
|
extern AcGePoint3d MidPoint(const AcGePoint3d& pt1,const AcGePoint3d& pt2);
|
|
namespace
|
|
{
|
|
CString convertCurve2String(ads_name ent, AcGePoint3d &ptCen)
|
|
{
|
|
AcDbObjectId id;
|
|
acdbGetObjectId(id,ent);
|
|
CString sCurve(_T(""));
|
|
OPENOBJ_BEGIN(id, AcDb::kForRead, AcDbCurve, pCurve)
|
|
{
|
|
if (pCurve)
|
|
{
|
|
AcDbPolyline* pPl = AcDbPolyline::cast(pCurve);
|
|
if (pPl != NULL)
|
|
{
|
|
AcDbExtents ext;
|
|
pPl->getGeomExtents(ext);
|
|
ptCen = MidPoint(ext.maxPoint(), ext.minPoint());
|
|
CoreTools::PolylineToString(pPl, sCurve, true);
|
|
}
|
|
|
|
AcDbCircle *pCir = AcDbCircle::cast(pCurve);
|
|
if (pCir)
|
|
{
|
|
ptCen = pCir->center();
|
|
AcDbPolyline *p = CoreTools::MakePolyline(pCir);
|
|
if (p)
|
|
CoreTools::PolylineToString(p, sCurve, true);
|
|
}
|
|
}
|
|
}
|
|
OPENOBJ_END()
|
|
return sCurve;
|
|
}
|
|
}
|
|
|
|
|
|
IMPLEMENT_DYNAMIC(CJYXJDlg, CDialog)
|
|
|
|
CJYXJDlg::CJYXJDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CJYXJDlg::IDD, pParent)
|
|
, m_dH(1400)
|
|
, m_dThick(80)
|
|
, m_dBomThick(400)
|
|
, m_sNo(_T(""))
|
|
, m_bNOSetDefault(FALSE)
|
|
{
|
|
m_sPurpose = _T("排水");
|
|
m_sTopPl = _T("");
|
|
m_sBomPl = _T("");
|
|
|
|
static int nNo = 1;
|
|
m_sNo.Format(_T("WELL-X-%d"),nNo);
|
|
nNo++;
|
|
if (m_bNOSetDefault)
|
|
m_sNo = IDCreate();
|
|
}
|
|
|
|
CJYXJDlg::~CJYXJDlg(void)
|
|
{
|
|
}
|
|
|
|
void CJYXJDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Text(pDX, IDC_EDIT1,m_dH);
|
|
DDX_Text(pDX, IDC_EDIT2,m_dThick);
|
|
DDX_Text(pDX, IDC_EDIT12,m_dBomThick);
|
|
DDX_Text(pDX, IDC_EDIT3,m_sPurpose);
|
|
DDX_Text(pDX, IDC_EDIT4,m_sTopPl);
|
|
DDX_Text(pDX, IDC_EDIT5,m_sBomPl);
|
|
DDX_Text(pDX, IDC_EDIT8, m_sNo);
|
|
if (pDX->m_bSaveAndValidate)
|
|
{
|
|
if (m_sTopPl.IsEmpty() || m_sBomPl.IsEmpty())
|
|
{
|
|
AfxMessageBox(_T("顶部pline线与底部pline线不能为空!"));
|
|
return pDX->Fail();
|
|
}
|
|
}
|
|
DDX_Check(pDX, IDC_CHECK6, m_bNOSetDefault);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CJYXJDlg, CDialog)
|
|
ON_BN_CLICKED(IDOK, &CJYXJDlg::OnBnClickedOk)
|
|
ON_BN_CLICKED(IDC_BUTTON1, &CJYXJDlg::OnBnClickedButton1)
|
|
ON_BN_CLICKED(IDC_BUTTON2, &CJYXJDlg::OnBnClickedButton2)
|
|
ON_BN_CLICKED(IDC_CHECK6, &CJYXJDlg::OnBnClickedCheck6)
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
BOOL CJYXJDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
if (m_bNOSetDefault)
|
|
GetDlgItem(IDC_EDIT8)->EnableWindow(FALSE);
|
|
|
|
UpdateData(FALSE);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CJYXJDlg::OnBnClickedOk()
|
|
{
|
|
if (!UpdateData(TRUE))
|
|
return;
|
|
|
|
OnOK();
|
|
}
|
|
|
|
void CJYXJDlg::OnBnClickedButton1()
|
|
{
|
|
EnableWindow(FALSE);
|
|
CWnd* pFrame = acedGetAcadFrame();
|
|
pFrame->EnableWindow(TRUE);
|
|
ShowWindow(SW_HIDE);
|
|
pFrame->SetFocus();
|
|
|
|
ads_point pt1;
|
|
ads_name ent;
|
|
|
|
int nRes = acedEntSel(_T("\n选择井口顶部pline线:"),ent,pt1);
|
|
if (nRes == RTNORM)
|
|
{
|
|
m_sTopPl = convertCurve2String(ent, m_ptCen);
|
|
}
|
|
|
|
pFrame->EnableWindow(FALSE);
|
|
ShowWindow(SW_SHOW);
|
|
EnableWindow(TRUE);
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CJYXJDlg::OnBnClickedButton2()
|
|
{
|
|
EnableWindow(FALSE);
|
|
CWnd* pFrame = acedGetAcadFrame();
|
|
pFrame->EnableWindow(TRUE);
|
|
ShowWindow(SW_HIDE);
|
|
pFrame->SetFocus();
|
|
|
|
ads_point pt1;
|
|
ads_name ent;
|
|
|
|
int nRes = acedEntSel(_T("\n选择井口底部pline线:"),ent,pt1);
|
|
if (nRes == RTNORM)
|
|
{
|
|
AcGePoint3d pt;
|
|
m_sBomPl = convertCurve2String(ent, pt);
|
|
}
|
|
|
|
pFrame->EnableWindow(FALSE);
|
|
ShowWindow(SW_SHOW);
|
|
EnableWindow(TRUE);
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CJYXJDlg::OnBnClickedCheck6()
|
|
{
|
|
if (m_bNOSetDefault)
|
|
{
|
|
GetDlgItem(IDC_EDIT8)->EnableWindow(FALSE);
|
|
}
|
|
else
|
|
{
|
|
GetDlgItem(IDC_EDIT8)->EnableWindow(TRUE);
|
|
}
|
|
}
|