694 lines
14 KiB
C++
694 lines
14 KiB
C++
#include "stdafx.h"
|
|
#include "shs_outdoor.h"
|
|
#include "WellModifyDlg.h"
|
|
#include "SelectBlkDlg.h"
|
|
#include "DbWell.h"
|
|
#include "welldndlg.h"
|
|
|
|
#include "PipeWireMonitor.h"
|
|
#include "WellRepiarDlg.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
|
|
|
|
bool IsSameSys(CString sLayer1, CString sLayer2)
|
|
{
|
|
int nIndex1 = sLayer1.Find(_T("_"));
|
|
int nIndex2 = sLayer2.Find(_T("-"));
|
|
CString sName1, sName2;
|
|
if (nIndex1 > 0 && nIndex2 > 0)
|
|
{
|
|
sName1 = sLayer1.Right(sLayer1.GetLength() - nIndex1 - 1);
|
|
sName2 = sLayer2.Right(sLayer2.GetLength() - nIndex2 - 1);
|
|
if (sName2.Compare(sName1) == 0)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
void CheckRelation(TDbWell *pWell, PickSet &ss)
|
|
{
|
|
if (pWell->GetInterfaceNum() < 1 || ss.Length() < 1)
|
|
{
|
|
return;
|
|
}
|
|
|
|
AcDbObjectId id, idPipe;
|
|
int i = 0;
|
|
for (; i < pWell->GetInterfaceNum(); i++)
|
|
{
|
|
TPipeInterface face;
|
|
pWell->GetInterface(i, face);
|
|
|
|
id = face.m_idPipe;
|
|
for (long l = 0; l < ss.Length(); l++)
|
|
{
|
|
acdbGetObjectId(idPipe, ss[l]);
|
|
if (id == idPipe)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
if (l == ss.Length() && id.isValid())
|
|
{
|
|
ss += id;
|
|
}
|
|
}
|
|
}
|
|
|
|
bool NotConnect2Pipe(XPoint &ptLoc, const CString &sLayer, TDbWell *pWell)
|
|
{
|
|
const double dDist = DocGetCurMeterUnitDraw() ? 0.001 : 10;
|
|
AcGePoint3d ptGeLB ,ptGeLT, ptGeRB, ptGeRT;
|
|
AcGeVector3d vtX = AcGeVector3d::kXAxis;
|
|
AcGeVector3d vtY = AcGeVector3d::kYAxis;
|
|
ptGeLB = ptLoc - vtX * dDist / 2;
|
|
ptGeLB = ptGeLB - vtY * dDist / 2;
|
|
ptGeLT = ptGeLB + vtY * dDist;
|
|
ptGeRB = ptGeLB + vtX * dDist;
|
|
ptGeRT = ptGeRB + vtY * dDist;
|
|
|
|
PickSet ssSel(SS_FREE);
|
|
RBList rbFilter(RTDXF0, _T("ATS_PIPE"), NULL);
|
|
|
|
|
|
TADSGePoint3d _pt1 = Wcs2Ucs(ptGeLB)
|
|
, _pt2 = Wcs2Ucs(ptGeLT)
|
|
, _pt3 = Wcs2Ucs(ptGeRT)
|
|
, _pt4 = Wcs2Ucs(ptGeRB);
|
|
RBList rbPt = acutBuildList(RTPOINT,&_pt1,RTPOINT,&_pt2,RTPOINT,&_pt3, RTPOINT,&_pt4,NULL);
|
|
|
|
acedSSGet(_T("CP"), rbPt, NULL, rbFilter, ssSel);
|
|
|
|
CheckRelation(pWell, ssSel);
|
|
|
|
AcDbObjectId id;
|
|
AcGePoint3d ptOnPipe;
|
|
double dElev = 0.0;
|
|
int nIndex = 0;
|
|
for (long i = 0; i < ssSel.Length(); i++)
|
|
{
|
|
acdbGetObjectId(id, ssSel[i]);
|
|
OPENOBJ_BEGIN(id, AcDb::kForWrite, TDbPipe, pPipe);
|
|
|
|
if(pPipe != NULL && IsSameSys(sLayer, pPipe->layer()))
|
|
{
|
|
AcDbLine line;
|
|
AcGePoint3d ptS, ptE;
|
|
ptS = pPipe->StartPoint();
|
|
ptE = pPipe->EndPoint();
|
|
ptS.z = 0;
|
|
ptE.z = 0;
|
|
line.setStartPoint(ptS);
|
|
line.setEndPoint(ptE);
|
|
AcGePoint3d pt1 = ptLoc, pt2;
|
|
line.getClosestPointTo(ptLoc, pt2);
|
|
|
|
pt1.z = 0;
|
|
pt2.z = 0;
|
|
double dDist = pt1.distanceTo(pt2);
|
|
|
|
AcDbLine lineZ;
|
|
pt1.z = ptLoc.z + 10;
|
|
lineZ.setStartPoint(ptLoc);
|
|
lineZ.setEndPoint(pt1);
|
|
|
|
AcGePoint3dArray arryPts;
|
|
if (dDist < 1e-6)
|
|
{
|
|
arryPts.setLogicalLength(0);
|
|
lineZ.intersectWith(pPipe, AcDb::kExtendBoth, arryPts);
|
|
if (arryPts.length() > 0)
|
|
{
|
|
ptOnPipe = arryPts[0];
|
|
}
|
|
else
|
|
{
|
|
pPipe->getClosestPointTo(ptLoc, ptOnPipe);
|
|
ptLoc.z = ptOnPipe.z;
|
|
pPipe->getClosestPointTo(ptLoc, ptOnPipe);
|
|
}
|
|
|
|
if (nIndex == 0)
|
|
{
|
|
dElev = ptOnPipe.z;
|
|
}
|
|
|
|
nIndex++;
|
|
|
|
if (dElev > ptOnPipe.z && !(ptOnPipe.z > - 0.001 && ptOnPipe.z < 0.001) )
|
|
{
|
|
dElev = ptOnPipe.z;
|
|
}
|
|
}
|
|
}
|
|
OPENOBJ_END();
|
|
}
|
|
ptLoc.z = dElev;
|
|
|
|
return true;
|
|
}
|
|
|
|
void ModifyWellRelationWithPipe(const AcDbObjectId &id)
|
|
{
|
|
XPoint ptLoc;
|
|
CString sLayer;
|
|
TPipeInterface face;
|
|
OPENOBJ_BEGIN(id, AcDb::kForWrite, TDbWell, pWell);
|
|
if(pWell != NULL)
|
|
{
|
|
ptLoc = pWell->GetLocation();
|
|
sLayer = pWell->layer();
|
|
if (NotConnect2Pipe(ptLoc, sLayer, pWell))
|
|
{
|
|
pWell->SetLocation(ptLoc);
|
|
}
|
|
}
|
|
OPENOBJ_END();
|
|
}
|
|
|
|
bool IsLinkedWithWell(const TPipeInterface face, double &dPipeEle)
|
|
{
|
|
XPoint pt = face.m_ptLocation;
|
|
TDbPipe *pPipe = NULL;
|
|
AcDbObjectId idNode;
|
|
double dEle = 0.0;
|
|
double dUnit = 0.001;
|
|
if (DocGetMeterUnitDraw())
|
|
{
|
|
dUnit = 1.0;
|
|
}
|
|
|
|
acdbOpenObject(pPipe, face.m_idPipe, AcDb::kForRead);
|
|
if (pPipe != NULL)
|
|
{
|
|
if (pt.Distance2d(pPipe->GetStartPoint()) < 0.001)
|
|
{
|
|
idNode = pPipe->GetNode(1);
|
|
dEle = pPipe->GetStartPoint().z;
|
|
}
|
|
else
|
|
{
|
|
idNode = pPipe->GetNode(0);
|
|
dEle = pPipe->GetEndPoint().z;
|
|
}
|
|
|
|
double dDn = pPipe->GetDnDiameter();
|
|
int iMaterial = pPipe->GetMaterial();
|
|
CString csMat = GetPipeMaterialByIdx(iMaterial);
|
|
dDn = GetPipeDjByDn(csMat, (int)dDn) / 2;
|
|
|
|
dPipeEle = dEle * dUnit - dDn;
|
|
pPipe->close();
|
|
}
|
|
|
|
if (idNode != NULL)
|
|
{
|
|
Entity entNode;
|
|
ads_name name;
|
|
acdbGetAdsName(name, idNode);
|
|
entNode = name;
|
|
if (entNode.Is(_T("ATS_WELL")) || entNode.Is(_T("ATS_POOL")))
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
void ModifyWellEleE(const AcDbObjectId id, bool bModifyAllPipe = false)
|
|
{
|
|
TDbWell *pWell = NULL;
|
|
XPoint ptLoc;
|
|
acdbOpenObject(pWell, id, AcDb::kForWrite);
|
|
if (pWell != NULL)
|
|
{
|
|
TPipeInterface face;
|
|
double dPipeEle = 0.0;
|
|
for (int i = 0; i < pWell->GetInterfaceNum(); i++)
|
|
{
|
|
CString sLabel = pWell->GetISysLabel(i);
|
|
if (!sLabel.IsEmpty())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
face = pWell->GetInterface(i);
|
|
if (!IsLinkedWithWell(face, dPipeEle) && !bModifyAllPipe)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
pWell->SetPipeEndEle(face.m_idPipe, XString(_T("%.3f"), dPipeEle));
|
|
ptLoc = pWell->GetLocation();
|
|
}
|
|
pWell->close();
|
|
|
|
PickSet ss(SS_FREE);
|
|
RBList rbMaskDim(RTDXF0, _T("ATS_WELLDIM"), NULL);
|
|
XPoint ptUcs = Wcs2Ucs(ptLoc);
|
|
GetPointPickSet(ptUcs, ss, rbMaskDim, 50);
|
|
UpdateGraphic(ss);
|
|
}
|
|
}
|
|
|
|
// 井修复 zxl 2012.08.06 add
|
|
void RepiarWell()
|
|
{
|
|
RBList rbMask(RTDXF0, _T("ATS_WELL"), NULL);
|
|
PickSet ss(SS_FREE);
|
|
if (SelectEntities(_T("\n请选择要修复的井:<退出>"), ss, rbMask) != RTNORM)
|
|
{
|
|
return;
|
|
}
|
|
CWellRepiarDlg *pDlg = new CWellRepiarDlg;
|
|
CTemporaryResourceOverride vTemp;
|
|
pDlg->Create(IDD_WELL_REPIAR, acedGetAcadFrame());
|
|
pDlg->ShowWindow(SW_SHOW);
|
|
acedGetAcadDwgView()->SetFocus();
|
|
TCHAR szTmp[32];
|
|
ads_getstring(NULL, _T("\n按任意键退出:"), szTmp);
|
|
if (pDlg != NULL && pDlg->m_bRepiar)
|
|
{
|
|
pDlg->UpdateData(TRUE);
|
|
if (pDlg->m_bRepiarLink)
|
|
{
|
|
AcDbObjectId id;
|
|
for (long i = 0; i < ss.Length(); i++)
|
|
{
|
|
acdbGetObjectId(id, ss[i]);
|
|
ModifyWellRelationWithPipe(id);
|
|
}
|
|
|
|
TPipePerDocData *pData = GetCurPipeDocData();
|
|
pData->ApplyUpdates();
|
|
}
|
|
|
|
if (pDlg->m_bRepiarWellDim1 || pDlg->m_bRepiarWellDim2)
|
|
{
|
|
bool bModifyAll = false;
|
|
if (pDlg->m_bRepiarWellDim2)
|
|
{
|
|
bModifyAll = true;
|
|
}
|
|
AcDbObjectId id;
|
|
for (long i = 0; i < ss.Length(); i++)
|
|
{
|
|
acdbGetObjectId(id, ss[i]);
|
|
ModifyWellEleE(id, bModifyAll);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (pDlg != NULL)
|
|
{
|
|
pDlg->DestroyWindow();
|
|
delete pDlg;
|
|
pDlg = NULL;
|
|
}
|
|
}
|
|
|
|
void ModifyWell()
|
|
{
|
|
RBList rbMask(RTDXF0, _T("ATS_WELL"), NULL);
|
|
PickSet ss(SS_FREE);
|
|
if(SelectEntities(_T("\n请选择要修改的井:<退出>"), ss, rbMask) != RTNORM)
|
|
{
|
|
return;
|
|
}
|
|
CTemporaryResourceOverride vTemp;
|
|
CWellModifyDlg dlg;
|
|
dlg.GetWells(ss);
|
|
dlg.DoModal();
|
|
}
|
|
|
|
|
|
CWellModifyDlg::CWellModifyDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CWellModifyDlg::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CWellModify)
|
|
m_bDim = TRUE;
|
|
m_bDn = FALSE;
|
|
m_bElev1 = FALSE;
|
|
m_bGroundEle = FALSE;
|
|
m_dDn = 0.0;
|
|
m_dElev1 = 0.0;
|
|
m_dGroundEle = 0.0;
|
|
m_bWellRadius = FALSE;
|
|
m_bStyle = FALSE;
|
|
//}}AFX_DATA_INIT
|
|
|
|
m_csBlkName = _T("$TWTSYS$00000187");
|
|
}
|
|
|
|
|
|
void CWellModifyDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CWellModify)
|
|
DDX_Check(pDX, IDC_CHECK_DIM, m_bDim);
|
|
DDX_Check(pDX, IDC_CHECK_DN, m_bDn);
|
|
DDX_Check(pDX, IDC_CHECK_ELEV, m_bElev1);
|
|
DDX_Check(pDX, IDC_CHECK_GROUNDELE, m_bGroundEle);
|
|
DDX_Text(pDX, IDC_EDIT_DN, m_dDn);
|
|
// DDV_MinMaxDouble(pDX, m_dDn, 0., 1000.); zxl 2012.06.25 del 取消井径限制
|
|
DDX_Text(pDX, IDC_EDIT_ELEV, m_dElev1);
|
|
DDX_Text(pDX, IDC_EDIT_GROUNDELE, m_dGroundEle);
|
|
DDX_Check(pDX, IDC_CHECK_WELLRADIUS, m_bWellRadius);
|
|
DDX_Check(pDX, IDC_CHECK_STYLE, m_bStyle);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CWellModifyDlg, CDialog)
|
|
//{{AFX_MSG_MAP(CWellModify)
|
|
ON_BN_CLICKED(IDC_PREVIEW_WELL, OnPreviewWell)
|
|
ON_WM_PAINT()
|
|
ON_BN_CLICKED(IDC_BUTTON_WELLRADIUS, OnButtonWellradius)
|
|
ON_BN_CLICKED(IDC_CHECK_DN, OnCheckDn)
|
|
ON_BN_CLICKED(IDC_CHECK_ELEV, OnCheckElev)
|
|
ON_BN_CLICKED(IDC_CHECK_GROUNDELE, OnCheckGroundele)
|
|
ON_BN_CLICKED(IDC_CHECK_WELLRADIUS, OnCheckWellradius)
|
|
ON_BN_CLICKED(IDC_CHECK_STYLE, OnCheckStyle)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
BOOL CWellModifyDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
OpenSlide();
|
|
|
|
OnCheckDn();
|
|
OnCheckElev();
|
|
OnCheckGroundele();
|
|
OnCheckWellradius();
|
|
OnCheckStyle();
|
|
|
|
InitWellDn();
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
|
|
void CWellModifyDlg::OpenSlide()
|
|
{
|
|
UpdateData(TRUE);
|
|
CWnd *pImageBox1 = GetDlgItem(IDC_PREVIEW_WELL);
|
|
CString csSldName;
|
|
CString csTK, csRecord;
|
|
SplitBlkStr(m_csBlkName, csTK, csRecord);
|
|
csSldName.Format(_T("TWTSYS(%s)"), csRecord);
|
|
DrawSlide((const TCHAR*)csSldName, pImageBox1);
|
|
}
|
|
|
|
|
|
void CWellModifyDlg::OnPreviewWell()
|
|
{
|
|
CString csSldName;
|
|
CString csTK, csRecord;
|
|
SplitBlkStr(m_csBlkName, csTK, csRecord);
|
|
csSldName.Format(_T("TWTSYS(%s)"), csRecord);
|
|
|
|
CTemporaryResourceOverride vTemp;
|
|
CSelectBlkDlg dlg;
|
|
dlg.m_csTkName = _T("TWTSYS");
|
|
dlg.m_csType = _T("室外\\井");
|
|
CWnd *pWnd = GetDlgItem(IDC_PREVIEW_WELL);
|
|
CRect rect;
|
|
dlg.m_staticSlide.m_csCurRecord = csSldName;
|
|
pWnd->GetWindowRect(&rect);
|
|
dlg.m_ptBase = rect.TopLeft();
|
|
if(dlg.DoModal() == IDOK)
|
|
{
|
|
CString csRet = dlg.m_staticSlide.m_csCurRecord;
|
|
XString xsTKName, xsRocord, xsTmp;
|
|
SplitSlbName(csRet, xsTKName, xsRocord);
|
|
AcDbDatabase *dwg=acdbCurDwg();
|
|
AcAxDocLock docLock(dwg);
|
|
VERIFY(docLock.lockStatus() == Acad::eOk);
|
|
if(LoadDwbBlock((const TCHAR*)xsTKName, (const TCHAR*)xsRocord, xsTmp) != RTNORM)
|
|
{
|
|
return;
|
|
}
|
|
m_csBlkName = (const TCHAR*)xsTmp;
|
|
OpenSlide();
|
|
}
|
|
}
|
|
|
|
void CWellModifyDlg::InitWellDn()
|
|
{
|
|
std::vector<AcDbObjectId>::iterator it = m_vecWell.begin();
|
|
AcDbObjectId id;
|
|
CString sWellRadius;
|
|
ads_name ent;
|
|
double dRadius = 0.0;
|
|
m_mapWellDn.clear();
|
|
for (; it != m_vecWell.end(); it ++)
|
|
{
|
|
id = *it;
|
|
acdbGetAdsName(ent, id);
|
|
|
|
sWellRadius = ReadXdata(ent, _T("TG-WELL-RADIUS"));
|
|
dRadius = _tstof(sWellRadius);
|
|
m_mapWellDn.insert(std::make_pair(id, dRadius));
|
|
}
|
|
m_mapLstWellDn = m_mapWellDn;
|
|
}
|
|
|
|
void CWellModifyDlg::SetWellDn()
|
|
{
|
|
|
|
std::map<AcDbObjectId, double>::iterator it = m_mapWellDn.begin();
|
|
AcDbObjectId id;
|
|
ads_name ent;
|
|
for (; it != m_mapWellDn.end(); it ++)
|
|
{
|
|
id = it->first;
|
|
acdbGetAdsName(ent, id);
|
|
|
|
WriteXdata(ent, _T("TG-WELL-RADIUS"), XString(_T("%.2f"), it->second));
|
|
}
|
|
}
|
|
|
|
void CWellModifyDlg::RecoverWellDn()
|
|
{
|
|
std::map<AcDbObjectId, double>::iterator it = m_mapLstWellDn.begin();
|
|
AcDbObjectId id;
|
|
ads_name ent;
|
|
for (; it != m_mapLstWellDn.end(); it ++)
|
|
{
|
|
id = it->first;
|
|
acdbGetAdsName(ent, id);
|
|
|
|
WriteXdata(ent, _T("TG-WELL-RADIUS"), XString(_T("%.2f"), it->second));
|
|
}
|
|
}
|
|
|
|
|
|
void CWellModifyDlg::GetWellDn(std::map<AcDbObjectId, double> &mapWellDn)
|
|
{
|
|
m_mapWellDn = mapWellDn;
|
|
}
|
|
|
|
void CWellModifyDlg::OnPaint()
|
|
{
|
|
CPaintDC dc(this);
|
|
OpenSlide();
|
|
}
|
|
|
|
void CWellModifyDlg::OnButtonWellradius()
|
|
{
|
|
CWellDnDlg dlg;
|
|
dlg.SetWells(m_mapWellDn);
|
|
if(dlg.DoModal() == IDOK)
|
|
{
|
|
GetWellDn(dlg.m_mapWell);
|
|
SetWellDn();
|
|
}
|
|
}
|
|
|
|
void CWellModifyDlg::OnCheckDn()
|
|
{
|
|
UpdateData();
|
|
CWnd *pWnd = GetDlgItem(IDC_EDIT_DN);
|
|
if (m_bDn)
|
|
{
|
|
pWnd->EnableWindow(TRUE);
|
|
}
|
|
else
|
|
{
|
|
pWnd->EnableWindow(FALSE);
|
|
}
|
|
}
|
|
|
|
void CWellModifyDlg::OnCheckWellradius()
|
|
{
|
|
UpdateData();
|
|
CWnd *pWnd = GetDlgItem(IDC_BUTTON_WELLRADIUS);
|
|
if (m_bWellRadius)
|
|
{
|
|
pWnd->EnableWindow(TRUE);
|
|
}
|
|
else
|
|
{
|
|
pWnd->EnableWindow(FALSE);
|
|
}
|
|
}
|
|
|
|
|
|
void CWellModifyDlg::OnCheckElev()
|
|
{
|
|
UpdateData();
|
|
CWnd *pWnd = GetDlgItem(IDC_EDIT_ELEV);
|
|
if (m_bElev1)
|
|
{
|
|
pWnd->EnableWindow(TRUE);
|
|
}
|
|
else
|
|
{
|
|
pWnd->EnableWindow(FALSE);
|
|
}
|
|
}
|
|
|
|
void CWellModifyDlg::OnCheckStyle()
|
|
{
|
|
UpdateData();
|
|
CWnd *pWnd = GetDlgItem(IDC_PREVIEW_WELL);
|
|
if (m_bStyle)
|
|
{
|
|
pWnd->EnableWindow(TRUE);
|
|
}
|
|
else
|
|
{
|
|
pWnd->EnableWindow(FALSE);
|
|
}
|
|
}
|
|
|
|
void CWellModifyDlg::OnCheckGroundele()
|
|
{
|
|
UpdateData();
|
|
CWnd *pWnd = GetDlgItem(IDC_EDIT_GROUNDELE);
|
|
if (m_bGroundEle)
|
|
{
|
|
pWnd->EnableWindow(TRUE);
|
|
}
|
|
else
|
|
{
|
|
pWnd->EnableWindow(FALSE);
|
|
}
|
|
}
|
|
|
|
void CWellModifyDlg::GetWells(PickSet &ss)
|
|
{
|
|
m_vecWell.clear();
|
|
AcDbObjectId id;
|
|
for (long i = 0; i < ss.Length(); i++)
|
|
{
|
|
acdbGetObjectId(id, ss[i]);
|
|
if (id)
|
|
{
|
|
m_vecWell.push_back(id);
|
|
}
|
|
}
|
|
}
|
|
|
|
void CWellModifyDlg::OnOK()
|
|
{
|
|
UpdateData();
|
|
std::vector<AcDbObjectId>::iterator it = m_vecWell.begin();
|
|
AcDbObjectId id;
|
|
for (; it != m_vecWell.end(); it ++)
|
|
{
|
|
id = *it;
|
|
OPENOBJ_BEGIN(id, AcDb::kForWrite, TDbWell, pEquip);
|
|
if(pEquip)
|
|
{
|
|
|
|
if (m_bDn)
|
|
{
|
|
pEquip->SetScale(m_dDn);
|
|
pEquip->SetWellModify();
|
|
}
|
|
|
|
if (m_bElev1)
|
|
{
|
|
pEquip->SetWellEleUp(m_dElev1);
|
|
}
|
|
|
|
pEquip->EnableDrawLabel(m_bDim);
|
|
|
|
if (m_bStyle)
|
|
{
|
|
CString csTK, csRecord;
|
|
SplitBlkStr(m_csBlkName, csTK, csRecord);
|
|
XString xsTmp;
|
|
if(LoadDwbBlock((const TCHAR*)csTK, (const TCHAR*)csRecord, xsTmp) != RTNORM)
|
|
{
|
|
return;
|
|
}
|
|
pEquip->SetBlock2d(GetBlkIdByName(m_csBlkName));
|
|
|
|
if(_tcsicmp(_T("$TwtSys$00000389"), m_csBlkName) == 0 )
|
|
{
|
|
pEquip->SetHidePipe(FALSE);
|
|
}
|
|
else if(_tcsicmp(_T("$TwtSys$00000414"), m_csBlkName) == 0 || _tcsicmp(_T("$TwtSys$00000336"), m_csBlkName) == 0)
|
|
{
|
|
pEquip->SetHidePipe(TRUE);
|
|
}
|
|
else
|
|
{
|
|
pEquip->SetHidePipe(TRUE);
|
|
}
|
|
if(_tcsicmp(_T("$TwtSys$00000336"), m_csBlkName) != 0
|
|
&& _tcsicmp(_T("$TwtSys$00000395"), m_csBlkName) != 0
|
|
&& _tcsicmp(_T("$TwtSys$00000414"), m_csBlkName) != 0)
|
|
{
|
|
pEquip->SetNumber(_T("CIRCLE-0.5"));
|
|
}
|
|
else
|
|
{
|
|
pEquip->SetNumber(_T(""));
|
|
}
|
|
}
|
|
|
|
}
|
|
OPENOBJ_END();
|
|
|
|
if (m_bGroundEle)
|
|
{
|
|
ads_name ent;
|
|
acdbGetAdsName(ent, id);
|
|
WriteXdata(ent, _T("TG-WELL-GroundEle"), XString(_T("%.2f"), m_dGroundEle));
|
|
}
|
|
}
|
|
|
|
if (m_bWellRadius)
|
|
{
|
|
SetWellDn();
|
|
}
|
|
else
|
|
{
|
|
RecoverWellDn();
|
|
}
|
|
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
|
|
|
|
void CWellModifyDlg::OnCancel()
|
|
{
|
|
RecoverWellDn();
|
|
CDialog::OnCancel();
|
|
}
|