607 lines
19 KiB
C++
607 lines
19 KiB
C++
// WellEditDlg.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
|
|
#include "twtdef.h"
|
|
|
|
#include <DbWell.h>
|
|
|
|
#include "WellEditDlg.h"
|
|
#include "DbSymbolAnnotate.h"
|
|
#include "SelectBlkDlg.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
//***************************************************************************************************
|
|
// 编辑井
|
|
//***************************************************************************************************
|
|
extern void ChangeWellNameSerial(Entity ent, const TCHAR* szNewName);
|
|
|
|
int EditWell(AcDbObjectId id)
|
|
{
|
|
if(!id)
|
|
return RTERROR;
|
|
|
|
ads_name ent;
|
|
XPoint ptLoc;
|
|
double nScale(0), nPoltScale(0);
|
|
acdbGetAdsName(ent, id);
|
|
CString csName, csBlkName;
|
|
CString csEleUp;
|
|
CString csEleLow, csEleBlk;
|
|
BOOL bDrawLable(FALSE), bDrop(FALSE), bIsFeed(FALSE);
|
|
CString csQ = ReadXdata(ent, _T("TG-DIRTWELLQ"));
|
|
CString csWellRadius = ReadXdata(ent, _T("TG-WELL-RADIUS"));
|
|
CString csGroundEle = ReadXdata(ent, _T("TG-WELL-GroundEle"));
|
|
|
|
|
|
OPENOBJ_BEGIN(id, AcDb::kForRead, TDbWell, pEquip);
|
|
if(pEquip){
|
|
AcDbObjectId eqId = pEquip->GetBlock2d();
|
|
csBlkName = GetBlkNameById(eqId);
|
|
nPoltScale = pEquip->GetPScale();
|
|
nScale = pEquip->GetScale();
|
|
ptLoc = pEquip->GetLocation();
|
|
csName = pEquip->GetWellName();
|
|
csEleUp.Format(_T("%.3f"), pEquip->GetWellEleUp());
|
|
csEleLow.Format(_T("%.3f"), pEquip->GetWellEleDown());
|
|
csEleBlk.Format(_T("%.1f"), pEquip->GetLocation().z/1000);
|
|
bDrawLable = pEquip->IsDrawLabel();
|
|
bDrop = pEquip->IsDropWell();
|
|
TCHAR *szLay = pEquip->layer();
|
|
CString csLay = szLay;
|
|
delete [] szLay;
|
|
if(csLay == LAY_WELL_FEED)
|
|
bIsFeed = TRUE;
|
|
}
|
|
OPENOBJ_END();
|
|
RBList rbMaskDim(RTDXF0, _T("ATS_WELLDIM"), NULL);
|
|
|
|
CTemporaryResourceOverride vTemp;
|
|
CWellEditDlg dlg;
|
|
dlg.m_csName = csName;
|
|
dlg.m_csBlkName = csBlkName;
|
|
dlg.m_csSclae.Format(_T("1:%.0f"), nPoltScale);
|
|
dlg.m_csEleUp = csEleUp;
|
|
dlg.m_csEleDown = csEleLow;
|
|
dlg.m_nScale = nScale;
|
|
dlg.m_csEleBlk = csEleBlk;
|
|
dlg.m_dWellRaius = _tstof(csWellRadius);
|
|
dlg.m_csGroundEle = csGroundEle;
|
|
dlg.m_id = id;
|
|
dlg.m_bIsFeed = bIsFeed;
|
|
|
|
dlg.m_bDrop = bDrop;
|
|
dlg.m_bDrawLable = bDrawLable;
|
|
dlg.m_nQ = _tstof(csQ);
|
|
if(dlg.DoModal() != IDOK)
|
|
return 1;
|
|
|
|
OPENOBJ_BEGIN(id, AcDb::kForWrite, TDbWell, pEquip);
|
|
if(pEquip){
|
|
pEquip->SetBlock2d(GetBlkIdByName(dlg.m_csBlkName));
|
|
pEquip->SetScale(dlg.m_nScale);
|
|
pEquip->SetWellModify();
|
|
pEquip->SetWellEleUp(_tstof(dlg.m_csEleUp));
|
|
pEquip->SetWellEleDown(_tstof(dlg.m_csEleDown));
|
|
pEquip->EnableDrawLabel(dlg.m_bDrawLable);
|
|
pEquip->SetDropWell(dlg.m_bDrop);
|
|
XPoint ptLoc = pEquip->GetLocation();
|
|
ptLoc.z = _tstof(dlg.m_csEleBlk)*1000;
|
|
pEquip->SetLocation(ptLoc);
|
|
pEquip->SetInsert(ptLoc);
|
|
if(_tcsicmp(_T("$TwtSys$00000389"), dlg.m_csBlkName) == 0 )
|
|
pEquip->SetHidePipe(FALSE);
|
|
else if(_tcsicmp(_T("$TwtSys$00000414"), dlg.m_csBlkName) == 0 || _tcsicmp(_T("$TwtSys$00000336"), dlg.m_csBlkName) == 0){
|
|
pEquip->SetHidePipe(TRUE);
|
|
}
|
|
else{
|
|
pEquip->SetHidePipe(TRUE);
|
|
// pEquip->SetAngle(0); cet 2010.6.7 del 图块方向发生变化应保持不变
|
|
}
|
|
if(_tcsicmp(_T("$TwtSys$00000336"), dlg.m_csBlkName) != 0
|
|
&& _tcsicmp(_T("$TwtSys$00000395"), dlg.m_csBlkName) != 0
|
|
&& _tcsicmp(_T("$TwtSys$00000414"), dlg.m_csBlkName) != 0)
|
|
pEquip->SetNumber(_T("CIRCLE-0.5"));
|
|
else
|
|
pEquip->SetNumber(_T(""));
|
|
}
|
|
OPENOBJ_END();
|
|
if(dlg.m_nQ > 0){
|
|
WriteXdata(ent, _T("TG-DIRTWELLQ"), XString(_T("%.2f"), dlg.m_nQ));
|
|
}
|
|
if(dlg.m_csName != csName){
|
|
ChangeWellNameSerial(ent, dlg.m_csName);
|
|
}
|
|
|
|
WriteXdata(ent, _T("TG-WELL-RADIUS"), XString(_T("%.2f"), dlg.m_dWellRaius));
|
|
WriteXdata(ent, _T("TG-WELL-GroundEle"), dlg.m_csGroundEle);
|
|
PickSet ss2(SS_FREE);
|
|
XPoint ptUcs = Wcs2Ucs(ptLoc);
|
|
GetPointPickSet(ptUcs, ss2, rbMaskDim, 50);
|
|
UpdateGraphic(ss2);
|
|
|
|
return 1;
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CWellEditDlg dialog
|
|
|
|
|
|
CWellEditDlg::CWellEditDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CWellEditDlg::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CWellEditDlg)
|
|
m_nScale = 0.0;
|
|
m_csName = _T("");
|
|
m_csEleUp = _T("");
|
|
m_csEleDown = _T("");
|
|
m_csSclae = _T("");
|
|
m_bDrawLable = FALSE;
|
|
m_nQ = 0.0;
|
|
m_bDrop = FALSE;
|
|
m_csEleBlk = _T("");
|
|
m_dWellRaius = 0.0;
|
|
m_csGroundEle = _T("");
|
|
//}}AFX_DATA_INIT
|
|
m_bIsFeed = FALSE;
|
|
}
|
|
|
|
|
|
void CWellEditDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CWellEditDlg)
|
|
DDX_Text(pDX, IDC_EDIT_DIM, m_nScale);
|
|
DDX_Text(pDX, IDC_EDIT_NAME, m_csName);
|
|
DDX_Text(pDX, IDC_EDIT_ELEV, m_csEleUp);
|
|
DDX_Text(pDX, IDC_EDIT_ELEV2, m_csEleDown);
|
|
DDX_Text(pDX, IDC_EDIT_SCALEPAPLE, m_csSclae);
|
|
DDX_Check(pDX, IDC_CHECK_DIM, m_bDrawLable);
|
|
DDX_Text(pDX, IDC_EDIT_Q, m_nQ);
|
|
DDX_Check(pDX, IDC_CHECK_DROP, m_bDrop);
|
|
DDX_Text(pDX, IDC_EDIT_ELEV3, m_csEleBlk);
|
|
DDX_Text(pDX, IDC_EDIT_WELL_RADIUS, m_dWellRaius);
|
|
DDX_Text(pDX, IDC_EDIT_GROUNDELE, m_csGroundEle);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CWellEditDlg, CDialog)
|
|
//{{AFX_MSG_MAP(CWellEditDlg)
|
|
ON_WM_PAINT()
|
|
ON_BN_CLICKED(IDC_PREVIEW_WELL, OnPreviewWell)
|
|
ON_BN_CLICKED(IDC_BUTTON_WELLRADIUS, OnButtonWellradius)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CWellEditDlg message handlers
|
|
|
|
void CWellEditDlg::OnPaint()
|
|
{
|
|
CPaintDC dc(this); // device context for painting
|
|
OpenSlide();
|
|
}
|
|
|
|
BOOL CWellEditDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
if(m_bIsFeed){
|
|
CWnd *pWnd = GetDlgItem(IDC_CHECK_DROP);
|
|
pWnd->ShowWindow(SW_HIDE);
|
|
}
|
|
OpenSlide();
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void CWellEditDlg::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 CWellEditDlg::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 CWellEditDlg::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 CWellEditDlg::OnButtonWellradius()
|
|
{
|
|
OPENOBJ_BEGIN(m_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){
|
|
MessageBox(_T("该井所接管线太少或太多!无法计算"));
|
|
return;
|
|
}
|
|
//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)
|
|
m_dWellRaius = 700;
|
|
else if(dn1 < 601)
|
|
m_dWellRaius = 1000;
|
|
else if(dn1 < 801)
|
|
m_dWellRaius = 1250;
|
|
else
|
|
m_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)
|
|
m_dWellRaius = 700;
|
|
else if(dn1 < 501 && dn2 < 501)
|
|
m_dWellRaius = 1000;
|
|
else if(dn1 < 601 && dn2 < 601)
|
|
m_dWellRaius = 1250;
|
|
else
|
|
m_dWellRaius = 1500;
|
|
}
|
|
else{ //转弯井
|
|
if(dn1 < 401 && dn2 < 401)
|
|
m_dWellRaius = 700;
|
|
else if(dn1 < 601 && dn2 < 601)
|
|
m_dWellRaius = 1000;
|
|
else if(dn1 < 801 && dn2 <801)
|
|
m_dWellRaius = 1250;
|
|
else
|
|
m_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{
|
|
MessageBox(_T("井所接的管线方向错误!"));
|
|
return;
|
|
}
|
|
if((dAng1-0.1) < PI/2 && (dAng2-0.1) < PI/2){ //90°三通井
|
|
if(dnOut < 401 && dnIn < 301)
|
|
m_dWellRaius = 700;
|
|
else if(dnOut < 601 && dnIn < 501)
|
|
m_dWellRaius = 1000;
|
|
else if(dnOut < 801 && dnIn < 601)
|
|
m_dWellRaius = 1250;
|
|
else
|
|
m_dWellRaius = 1500;
|
|
}
|
|
else if((dAng1-0.1) < PI/3*2 && (dAng2-0.1) < PI/3*2){ //91°~ 120°三通井
|
|
if(dnOut < 401 && dnIn < 301)
|
|
m_dWellRaius = 700;
|
|
else if(dnOut < 601 && dnIn < 401)
|
|
m_dWellRaius = 1000;
|
|
else if(dnOut < 801 && dnIn < 501)
|
|
m_dWellRaius = 1250;
|
|
else
|
|
m_dWellRaius = 1500;
|
|
}
|
|
else if((dAng1-0.1) < PI/180*135 && (dAng2-0.1) < PI/180*135){//121°~ 135°三通井
|
|
if(dnOut < 401 && dnIn < 201)
|
|
m_dWellRaius = 700;
|
|
else if(dnOut < 601 && dnIn < 301)
|
|
m_dWellRaius = 1000;
|
|
else if(dnOut < 801 && dnIn < 401)
|
|
m_dWellRaius = 1250;
|
|
else
|
|
m_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{
|
|
MessageBox(_T("井所接的管线方向错误!"));
|
|
return;
|
|
}
|
|
//找到其中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)
|
|
m_dWellRaius = 700;
|
|
else if(D < 601 && D1 < 601 && D2 < 501 && D3 < 501)
|
|
m_dWellRaius = 1000;
|
|
else if(D < 801 && D1 < 801 && D2 < 601 && D3 < 601)
|
|
m_dWellRaius = 1250;
|
|
else
|
|
m_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)
|
|
m_dWellRaius = 700;
|
|
else if(D < 401 && D1 < 301 && D2 < 301 && D3 < 301)
|
|
m_dWellRaius = 700;
|
|
else if(D < 601 && D1 < 601 && D2 < 201 && D3 < 201)
|
|
m_dWellRaius = 1000;
|
|
else if(D < 601 && D1 < 501 && D2 < 301 && D3 < 301)
|
|
m_dWellRaius = 1000;
|
|
else if(D < 601 && D1 < 401 && D2 < 401 && D3 < 401)
|
|
m_dWellRaius = 1000;
|
|
else if(D < 801 && D1 < 801 && D2 < 201 && D3 < 201)
|
|
m_dWellRaius = 1250;
|
|
else if(D < 801 && D1 < 701 && D2 < 301 && D3 < 301)
|
|
m_dWellRaius = 1250;
|
|
else if(D < 801 && D1 < 601 && D2 < 401 && D3 < 401)
|
|
m_dWellRaius = 1250;
|
|
else if(D < 801 && D1 < 501 && D2 < 501 && D3 < 501)
|
|
m_dWellRaius = 1250;
|
|
else
|
|
m_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)
|
|
m_dWellRaius = 700;
|
|
else if(D < 601 && D1 < 401 && D2 < 201 && D3 < 201)
|
|
m_dWellRaius = 1000;
|
|
else if(D < 601 && D1 < 301 && D2 < 301 && D3 < 301)
|
|
m_dWellRaius = 1000;
|
|
else if(D < 801 && D1 < 601 && D2 < 201 && D3 < 201)
|
|
m_dWellRaius = 1250;
|
|
else if(D < 801 && D1 < 501 && D2 < 301 && D3 < 301)
|
|
m_dWellRaius = 1250;
|
|
else if(D < 801 && D1 < 401 && D2 < 401 && D3 < 401)
|
|
m_dWellRaius = 1250;
|
|
else
|
|
m_dWellRaius = 1500;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
OPENOBJ_END();
|
|
UpdateData(FALSE);
|
|
}
|