643 lines
14 KiB
C++
643 lines
14 KiB
C++
#include "stdafx.h"
|
|
#include "shs_outdoor.h"
|
|
#include "WellDnDlg.h"
|
|
#include "DbWell.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
|
|
CWellDnGrid::CWellDnGrid()
|
|
{
|
|
|
|
}
|
|
|
|
void CWellDnGrid::SetColorIndex(std::vector<int> vecIndex)
|
|
{
|
|
m_vecIndex = vecIndex;
|
|
}
|
|
|
|
void CWellDnGrid::OnBeforeRefresh(WDGridCell &cell)
|
|
{
|
|
CDC &dc=GetDC();
|
|
COLORREF color;
|
|
std::vector<int>::iterator it = m_vecIndex.begin();
|
|
int i = 0;
|
|
for (; it != m_vecIndex.end(); it++, i++)
|
|
{
|
|
if (i == cell.GetRowIndex() && cell.GetColIndex() == 0)
|
|
{
|
|
if (*it == 0)
|
|
{
|
|
color=acedGetRGB(6);
|
|
}
|
|
else if (*it == -1)
|
|
{
|
|
color = acedGetRGB(3);
|
|
}
|
|
else
|
|
{
|
|
WDGrid::OnBeforeRefresh(cell);
|
|
continue;
|
|
}
|
|
|
|
dc.SetBkColor(color);
|
|
dc.SetBkMode(TRANSPARENT);
|
|
}
|
|
}
|
|
}
|
|
|
|
CWellDnDlg::CWellDnDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CWellDnDlg::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CWellDn)
|
|
m_sWellSerial = _T("");
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
|
|
void CWellDnDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CWellDn)
|
|
DDX_Control(pDX, IDC_LIST_WELLDN, m_lstWellDn);
|
|
DDX_Text(pDX, IDC_EDIT_WELLSERIAL, m_sWellSerial);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CWellDnDlg, CDialog)
|
|
//{{AFX_MSG_MAP(CWellDn)
|
|
ON_BN_CLICKED(IDC_BTN_FIND, OnBtnFind)
|
|
ON_BN_CLICKED(IDC_BTN_WELLDN, OnBtnWelldn)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
BOOL CWellDnDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
CWnd *pWnd = GetDlgItem(IDC_BTN_WELLDN);
|
|
if (pWnd != NULL)
|
|
{
|
|
pWnd->SetFocus();
|
|
}
|
|
|
|
m_lstWellDn.Clear();
|
|
m_lstWellDn.Create(this, IDC_LIST_WELLDN);
|
|
m_lstWellDn.FitLastCol();
|
|
m_lstWellDn.SetNoAppendButton(TRUE);
|
|
m_lstWellDn.SetNoDefaultMenu(true);
|
|
|
|
m_lstWellDn.AppendCol( _T("井编号"), 60);
|
|
m_lstWellDn.AppendCol( _T("实际井径"), 80);
|
|
|
|
m_lstWellDn.GetCol(0).SetReadOnly();
|
|
|
|
SetWellDn();
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CWellDnDlg::SetWells(std::map<AcDbObjectId, double> &mapWell)
|
|
{
|
|
m_mapWell = mapWell;
|
|
}
|
|
|
|
void CWellDnDlg::SetWellDn()
|
|
{
|
|
m_lstWellDn.Clear();
|
|
std::map<AcDbObjectId, double>::iterator it = m_mapWell.begin();
|
|
|
|
AcDbObjectId id;
|
|
TDbWell *pWell = NULL;
|
|
ads_name ent;
|
|
|
|
int iIndex = 1;
|
|
std::vector<int> vecIndex;
|
|
vecIndex.clear();
|
|
for (int i = 0; it != m_mapWell.end(); it++, i++)
|
|
{
|
|
id = it->first;
|
|
acdbOpenObject(pWell, id, AcDb::kForRead);
|
|
if (pWell)
|
|
{
|
|
m_lstWellDn.AppendRow();
|
|
m_lstWellDn.GetCell(i, 0).SetText(pWell->GetWellName());
|
|
|
|
WDGridCell cell = m_lstWellDn.GetCell(i, 1);
|
|
|
|
acdbGetAdsName(ent, id);
|
|
CString sWellRadius = ReadXdata(ent, _T("TG-WELL-RADIUS"));
|
|
double dRadius = 0.0;
|
|
if (it->second <= 0.0)//连井管线太多或太少,或连井管线方向不符合计算要求,无法计算
|
|
{
|
|
iIndex = it->second;
|
|
dRadius = _tstof(sWellRadius);
|
|
}
|
|
else
|
|
{
|
|
iIndex = 1;
|
|
dRadius = it->second;
|
|
}
|
|
m_lstWellDn.GetCell(i, 1).SetText(XString(_T("%0.2f"), dRadius));
|
|
pWell->Close();
|
|
}
|
|
vecIndex.push_back(iIndex);
|
|
}
|
|
|
|
m_lstWellDn.SetColorIndex(vecIndex);
|
|
UpdateData(FALSE);
|
|
|
|
}
|
|
|
|
|
|
//比较两个井编号是否相等
|
|
void SetName(CString &sTemp)
|
|
{
|
|
int iIndex = 0;
|
|
TCHAR szTemp;
|
|
for (; iIndex < sTemp.GetLength(); iIndex ++)
|
|
{
|
|
szTemp = sTemp[iIndex];
|
|
if (szTemp >= _T('a') && szTemp <= _T('z'))
|
|
{
|
|
szTemp -= 32;
|
|
sTemp.SetAt(iIndex, szTemp);
|
|
}
|
|
}
|
|
}
|
|
bool CompareName(CString &sTemp, CString &sTemp2)
|
|
{
|
|
SetName(sTemp);
|
|
SetName(sTemp2);
|
|
if (sTemp.Compare(sTemp2) == 0)
|
|
{
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
void CWellDnDlg::OnBtnFind()
|
|
{
|
|
UpdateData(TRUE);
|
|
m_lstWellDn.UnSelect();
|
|
CString sName;
|
|
CString sName2 = m_sWellSerial;
|
|
int iRow = 0;
|
|
for(m_lstWellDn.MoveToFirst(); !m_lstWellDn.IsOut(); m_lstWellDn.MoveToNext())
|
|
{
|
|
WDGridRow *pRow = m_lstWellDn.CurRow();
|
|
sName = (*pRow)[0].GetText();
|
|
if (CompareName(sName, sName2))
|
|
{
|
|
m_lstWellDn.SelectRow(iRow);
|
|
return;
|
|
}
|
|
iRow ++;
|
|
}
|
|
AfxMessageBox(_T("请输入有效的井编号!"));
|
|
}
|
|
|
|
void CWellDnDlg::GetPipeInfo(AcDbObjectId PipeId, XPoint ptLoc, double &dDn, AcGeVector3d &vt, BOOL &bIsIn)
|
|
{
|
|
OPENOBJ_BEGIN(PipeId, AcDb::kForRead, TDbPipe, pPipe);
|
|
if(pPipe){
|
|
dDn = pPipe->GetDnDiameter();
|
|
XPoint ptS, ptE, ptTmp;
|
|
ptS = pPipe->StartPoint();
|
|
ptE = pPipe->EndPoint();
|
|
ptS.z = 0;
|
|
ptE.z = 0;
|
|
if(ptLoc == ptS)
|
|
ptTmp = ptE;
|
|
else
|
|
ptTmp = ptS;
|
|
AcGeVector3d vt1(ptTmp.x - ptLoc.x, ptTmp.y - ptLoc.y, ptTmp.z - ptLoc.z);
|
|
vt = vt1;
|
|
TPipeSys::FlowDirection dir = pPipe->GetFlowDir();
|
|
if(dir == TPipeSys::kFromStart){
|
|
if(ptLoc == ptS)
|
|
bIsIn = FALSE;
|
|
else
|
|
bIsIn = TRUE;
|
|
}
|
|
else{
|
|
if(ptLoc == ptS)
|
|
bIsIn = TRUE;
|
|
else
|
|
bIsIn = FALSE;
|
|
}
|
|
}
|
|
OPENOBJ_END();
|
|
}
|
|
|
|
void CWellDnDlg::OnBtnWelldn()
|
|
{
|
|
std::map<AcDbObjectId, double>::iterator it = m_mapWell.begin();
|
|
AcDbObjectId id;
|
|
double dWellRaius;
|
|
for (; it != m_mapWell.end(); it ++)
|
|
{
|
|
id = it->first;
|
|
OPENOBJ_BEGIN(id, AcDb::kForRead, TDbWell, pEquip);
|
|
if(pEquip)
|
|
{
|
|
int num = pEquip->GetInterfaceNum();
|
|
XPoint ptLoc = pEquip->GetLocation();
|
|
ptLoc.z = 0;
|
|
|
|
//zxl 2011.12.07 modify
|
|
//if(num < 2 || num > 4)
|
|
if (num < 1 || num > 4)
|
|
{
|
|
dWellRaius = 0.0;
|
|
it->second = dWellRaius;
|
|
continue;
|
|
}
|
|
|
|
//zxl 2011.12.07 modify
|
|
TPipeInterface face1;
|
|
pEquip->GetInterface(0, face1);
|
|
AcDbObjectId PipeId1 = face1.m_idPipe;
|
|
double dn1;
|
|
AcGeVector3d vt1;
|
|
BOOL bIn1;
|
|
GetPipeInfo(PipeId1,ptLoc,dn1, vt1, bIn1);
|
|
|
|
//zxl 2011.12.07 modify
|
|
if(num == 1)
|
|
{
|
|
if(dn1 < 401)
|
|
dWellRaius = 700;
|
|
else if(dn1 < 601)
|
|
dWellRaius = 1000;
|
|
else if(dn1 < 801)
|
|
dWellRaius = 1250;
|
|
else
|
|
dWellRaius = 1500;
|
|
}
|
|
else if(num == 2)
|
|
{
|
|
//zxl 2011.12.07 add
|
|
TPipeInterface face2;
|
|
pEquip->GetInterface(1, face2);
|
|
AcDbObjectId PipeId2 = face2.m_idPipe;
|
|
double dn2;
|
|
AcGeVector3d vt2;
|
|
BOOL bIn2;
|
|
GetPipeInfo(PipeId2,ptLoc,dn2, vt2, bIn2);
|
|
|
|
double dAng = vt1.angleTo(vt2);
|
|
if((dAng-0.1) < PI/2)
|
|
{ //90°转弯井
|
|
if(dn1 < 301 && dn2 < 301)
|
|
dWellRaius = 700;
|
|
else if(dn1 < 501 && dn2 < 501)
|
|
dWellRaius = 1000;
|
|
else if(dn1 < 601 && dn2 < 601)
|
|
dWellRaius = 1250;
|
|
else
|
|
dWellRaius = 1500;
|
|
}
|
|
else
|
|
{ //转弯井
|
|
if(dn1 < 401 && dn2 < 401)
|
|
dWellRaius = 700;
|
|
else if(dn1 < 601 && dn2 < 601)
|
|
dWellRaius = 1000;
|
|
else if(dn1 < 801 && dn2 <801)
|
|
dWellRaius = 1250;
|
|
else
|
|
dWellRaius = 1500;
|
|
}
|
|
}
|
|
else if(num == 3)
|
|
{
|
|
//zxl 2011.12.07 add
|
|
TPipeInterface face2;
|
|
pEquip->GetInterface(1, face2);
|
|
AcDbObjectId PipeId2 = face2.m_idPipe;
|
|
double dn2;
|
|
AcGeVector3d vt2;
|
|
BOOL bIn2;
|
|
GetPipeInfo(PipeId2,ptLoc,dn2, vt2, bIn2);
|
|
|
|
TPipeInterface face3;
|
|
pEquip->GetInterface(2, face3);
|
|
AcDbObjectId PipeId3 = face3.m_idPipe;
|
|
double dn3, dnIn, dnOut;
|
|
AcGeVector3d vt3;
|
|
BOOL bIn3;
|
|
double dAng1, dAng2;
|
|
GetPipeInfo(PipeId3, ptLoc, dn3, vt3, bIn3);
|
|
|
|
if(!bIn1 && bIn2 && bIn3)
|
|
{
|
|
dAng1 = vt1.angleTo(vt2);
|
|
dAng2 = vt1.angleTo(vt3);
|
|
dnOut = dn1;
|
|
dnIn = dn2;
|
|
}
|
|
else if(bIn1 && !bIn2 && bIn3){
|
|
dAng1 = vt2.angleTo(vt1);
|
|
dAng2 = vt2.angleTo(vt3);
|
|
dnOut = dn2;
|
|
dnIn = dn1;
|
|
}
|
|
else if(bIn1 && bIn2 && !bIn3){
|
|
dAng1 = vt3.angleTo(vt1);
|
|
dAng2 = vt3.angleTo(vt2);
|
|
dnOut = dn3;
|
|
dnIn = dn1;
|
|
}
|
|
else
|
|
{
|
|
//井所接的管线方向错误
|
|
it->second = -1;
|
|
continue;
|
|
}
|
|
if((dAng1-0.1) < PI/2 && (dAng2-0.1) < PI/2) //90°三通井
|
|
{
|
|
if(dnOut < 401 && dnIn < 301)
|
|
dWellRaius = 700;
|
|
else if(dnOut < 601 && dnIn < 501)
|
|
dWellRaius = 1000;
|
|
else if(dnOut < 801 && dnIn < 601)
|
|
dWellRaius = 1250;
|
|
else
|
|
dWellRaius = 1500;
|
|
}
|
|
else if((dAng1-0.1) < PI/3*2 && (dAng2-0.1) < PI/3*2) //91°~ 120°三通井
|
|
{
|
|
if(dnOut < 401 && dnIn < 301)
|
|
dWellRaius = 700;
|
|
else if(dnOut < 601 && dnIn < 401)
|
|
dWellRaius = 1000;
|
|
else if(dnOut < 801 && dnIn < 501)
|
|
dWellRaius = 1250;
|
|
else
|
|
dWellRaius = 1500;
|
|
}
|
|
else if((dAng1-0.1) < PI/180*135 && (dAng2-0.1) < PI/180*135)//121°~ 135°三通井
|
|
{
|
|
if(dnOut < 401 && dnIn < 201)
|
|
dWellRaius = 700;
|
|
else if(dnOut < 601 && dnIn < 301)
|
|
dWellRaius = 1000;
|
|
else if(dnOut < 801 && dnIn < 401)
|
|
dWellRaius = 1250;
|
|
else
|
|
dWellRaius = 1500;
|
|
}
|
|
}
|
|
else if(num == 4)
|
|
{
|
|
//zxl 2011.12.07 add
|
|
TPipeInterface face2;
|
|
pEquip->GetInterface(1, face2);
|
|
AcDbObjectId PipeId2 = face2.m_idPipe;
|
|
double dn2;
|
|
AcGeVector3d vt2;
|
|
BOOL bIn2;
|
|
GetPipeInfo(PipeId2,ptLoc,dn2, vt2, bIn2);
|
|
|
|
TPipeInterface face3;
|
|
pEquip->GetInterface(2, face3);
|
|
TPipeInterface face4;
|
|
pEquip->GetInterface(3, face4);
|
|
|
|
AcDbObjectId PipeId3 = face3.m_idPipe;
|
|
AcDbObjectId PipeId4 = face4.m_idPipe;
|
|
double dn3, dn4;
|
|
AcGeVector3d vt3, vt4;
|
|
BOOL bIn3, bIn4;
|
|
double dAng1, dAng2, dAng3;
|
|
GetPipeInfo(PipeId3, ptLoc, dn3, vt3, bIn3);
|
|
GetPipeInfo(PipeId4, ptLoc, dn4, vt4, bIn4);
|
|
double dAngTmp1, dAngTmp2;
|
|
double D, D1, D2, D3;
|
|
|
|
if(!bIn1 && bIn2 && bIn3 && bIn4)
|
|
{
|
|
dAng1 = vt1.angleTo(vt2);
|
|
dAng2 = vt1.angleTo(vt3);
|
|
dAng3 = vt1.angleTo(vt4);
|
|
D = dn1; //流出管的管径
|
|
if(dAng1 > dAng2 && dAng1 > dAng3)//流入管的管径
|
|
{
|
|
D1 = dn2;
|
|
D2 = dn3;
|
|
D3 = dn4;
|
|
}
|
|
else if(dAng2 > dAng1 && dAng2 > dAng3)
|
|
{
|
|
D1 = dn3;
|
|
D2 = dn2;
|
|
D3 = dn4;
|
|
}
|
|
else if(dAng3 > dAng1 && dAng3 > dAng2)
|
|
{
|
|
D1 = dn4;
|
|
D2 = dn3;
|
|
D3 = dn2;
|
|
}
|
|
}
|
|
else if(bIn1 && !bIn2 && bIn3 && bIn4)
|
|
{
|
|
dAng1 = vt2.angleTo(vt1);
|
|
dAng2 = vt2.angleTo(vt3);
|
|
dAng3 = vt2.angleTo(vt4);
|
|
D = dn2;
|
|
if(dAng1 > dAng2 && dAng1 > dAng3)//流入管的管径
|
|
{
|
|
D1 = dn1;
|
|
D2 = dn3;
|
|
D3 = dn4;
|
|
}
|
|
else if(dAng2 > dAng1 && dAng2 > dAng3)
|
|
{
|
|
D1 = dn3;
|
|
D2 = dn1;
|
|
D3 = dn4;
|
|
}
|
|
else if(dAng3 > dAng1 && dAng3 > dAng2)
|
|
{
|
|
D1 = dn4;
|
|
D2 = dn3;
|
|
D3 = dn1;
|
|
}
|
|
}
|
|
else if(bIn1 && bIn2 && !bIn3 && bIn4)
|
|
{
|
|
dAng1 = vt3.angleTo(vt1);
|
|
dAng2 = vt3.angleTo(vt2);
|
|
dAng3 = vt3.angleTo(vt4);
|
|
D = dn3;
|
|
if(dAng1 > dAng2 && dAng1 > dAng3)//流入管的管径
|
|
{
|
|
D1 = dn1;
|
|
D2 = dn2;
|
|
D3 = dn4;
|
|
}
|
|
else if(dAng2 > dAng1 && dAng2 > dAng3)
|
|
{
|
|
D1 = dn2;
|
|
D2 = dn1;
|
|
D3 = dn4;
|
|
}
|
|
else if(dAng3 > dAng1 && dAng3 > dAng2)
|
|
{
|
|
D1 = dn4;
|
|
D2 = dn2;
|
|
D3 = dn1;
|
|
}
|
|
}
|
|
else if(bIn1 && bIn2 && bIn3 && !bIn4)
|
|
{
|
|
dAng1 = vt4.angleTo(vt1);
|
|
dAng2 = vt4.angleTo(vt2);
|
|
dAng3 = vt4.angleTo(vt3);
|
|
D = dn4;
|
|
if(dAng1 > dAng2 && dAng1 > dAng3)//流入管的管径
|
|
{
|
|
D1 = dn1;
|
|
D2 = dn2;
|
|
D3 = dn3;
|
|
}
|
|
else if(dAng2 > dAng1 && dAng2 > dAng3)
|
|
{
|
|
D1 = dn2;
|
|
D2 = dn1;
|
|
D3 = dn3;
|
|
}
|
|
else if(dAng3 > dAng1 && dAng3 > dAng2)
|
|
{
|
|
D1 = dn3;
|
|
D2 = dn2;
|
|
D3 = dn1;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
it->second = -1;
|
|
continue;
|
|
}
|
|
//找到其中2个较小角度
|
|
if(dAng1 > dAng2 && dAng1 > dAng3)
|
|
{
|
|
dAngTmp1 = dAng2;
|
|
dAngTmp2 = dAng3;
|
|
}
|
|
else if(dAng2 > dAng1 && dAng2 > dAng3)
|
|
{
|
|
dAngTmp1 = dAng1;
|
|
dAngTmp2 = dAng3;
|
|
}
|
|
else if(dAng3 > dAng1 && dAng3 > dAng2)
|
|
{
|
|
dAngTmp1 = dAng1;
|
|
dAngTmp2 = dAng2;
|
|
}
|
|
if((dAngTmp1-0.1) < PI/2 && (dAngTmp2-0.1) < PI/2) //90°四通井
|
|
{
|
|
if(D < 401 && D1 < 401 && D2 < 301 && D3 < 301)
|
|
dWellRaius = 700;
|
|
else if(D < 601 && D1 < 601 && D2 < 501 && D3 < 501)
|
|
dWellRaius = 1000;
|
|
else if(D < 801 && D1 < 801 && D2 < 601 && D3 < 601)
|
|
dWellRaius = 1250;
|
|
else
|
|
dWellRaius = 1500;
|
|
}
|
|
else if((dAngTmp1-0.1) < PI/3*2 && (dAngTmp2-0.1) < PI/3*2) //91°~ 120°四通井
|
|
{
|
|
if(D < 401 && D1 < 401 && D2 < 201 && D3 < 201)
|
|
dWellRaius = 700;
|
|
else if(D < 401 && D1 < 301 && D2 < 301 && D3 < 301)
|
|
dWellRaius = 700;
|
|
else if(D < 601 && D1 < 601 && D2 < 201 && D3 < 201)
|
|
dWellRaius = 1000;
|
|
else if(D < 601 && D1 < 501 && D2 < 301 && D3 < 301)
|
|
dWellRaius = 1000;
|
|
else if(D < 601 && D1 < 401 && D2 < 401 && D3 < 401)
|
|
dWellRaius = 1000;
|
|
else if(D < 801 && D1 < 801 && D2 < 201 && D3 < 201)
|
|
dWellRaius = 1250;
|
|
else if(D < 801 && D1 < 701 && D2 < 301 && D3 < 301)
|
|
dWellRaius = 1250;
|
|
else if(D < 801 && D1 < 601 && D2 < 401 && D3 < 401)
|
|
dWellRaius = 1250;
|
|
else if(D < 801 && D1 < 501 && D2 < 501 && D3 < 501)
|
|
dWellRaius = 1250;
|
|
else
|
|
dWellRaius = 1500;
|
|
}
|
|
else if((dAngTmp1-0.1) < PI/180*135 && (dAngTmp2-0.1) < PI/180*135)//121°~ 135°四通井
|
|
{
|
|
if(D < 401 && D1 < 201 && D2 < 201 && D3 < 201)
|
|
dWellRaius = 700;
|
|
else if(D < 601 && D1 < 401 && D2 < 201 && D3 < 201)
|
|
dWellRaius = 1000;
|
|
else if(D < 601 && D1 < 301 && D2 < 301 && D3 < 301)
|
|
dWellRaius = 1000;
|
|
else if(D < 801 && D1 < 601 && D2 < 201 && D3 < 201)
|
|
dWellRaius = 1250;
|
|
else if(D < 801 && D1 < 501 && D2 < 301 && D3 < 301)
|
|
dWellRaius = 1250;
|
|
else if(D < 801 && D1 < 401 && D2 < 401 && D3 < 401)
|
|
dWellRaius = 1250;
|
|
else
|
|
dWellRaius = 1500;
|
|
}
|
|
}
|
|
}
|
|
OPENOBJ_END();
|
|
|
|
it->second = dWellRaius;
|
|
}
|
|
|
|
SetWellDn();
|
|
}
|
|
|
|
void CWellDnDlg::OnOK()
|
|
{
|
|
UpdateData();
|
|
CString sWellSerial;
|
|
double dRadius;
|
|
int iRow = 0;
|
|
for(m_lstWellDn.MoveToFirst(); !m_lstWellDn.IsOut(); m_lstWellDn.MoveToNext())
|
|
{
|
|
WDGridRow *pRow = m_lstWellDn.CurRow();
|
|
sWellSerial = (*pRow)[0].GetText();
|
|
dRadius = _tstof((*pRow)[1].GetText());
|
|
|
|
UpdateWellDn(sWellSerial, dRadius);
|
|
iRow ++;
|
|
}
|
|
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
void CWellDnDlg::UpdateWellDn(CString &sWellName, double &dRadius)
|
|
{
|
|
std::map<AcDbObjectId, double>::iterator it = m_mapWell.begin();
|
|
AcDbObjectId id;
|
|
TDbWell *pWell = NULL;
|
|
for (int i = 0; it != m_mapWell.end(); it ++, i++)
|
|
{
|
|
id = it->first;
|
|
acdbOpenObject(pWell, id, AcDb::kForRead);
|
|
if (pWell)
|
|
{
|
|
if (sWellName.Compare(pWell->GetWellName()) == 0)
|
|
{
|
|
it->second = dRadius;
|
|
}
|
|
pWell->Close();
|
|
}
|
|
}
|
|
} |