Files
envi-code/SourceCode/Code2026/Pool3dCmd/JYXJDlg.cpp
T
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

176 lines
3.5 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);
}
}