140 lines
3.1 KiB
C++
140 lines
3.1 KiB
C++
// PoolEdit.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
|
|
#include <dbPump.h>
|
|
|
|
#include "PoolEdit.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CPoolEdit dialog
|
|
BOOL IsPool(AcDbObjectId idNode)
|
|
{
|
|
if(!idNode)
|
|
return FALSE;
|
|
|
|
AcDbObjectId idBlk = NULL;
|
|
OPENOBJ_BEGIN(idNode, AcDb::kForRead, TDbPump, pEquip);
|
|
if(pEquip)
|
|
idBlk = pEquip->GetBlock2d();
|
|
else
|
|
return FALSE;
|
|
OPENOBJ_END();
|
|
|
|
XString xsTmp1 = _T("$twtsys$00000353");
|
|
XString xsTmp2 = _T("$twtsys$00000354");
|
|
XString xsTmp3 = _T("$twtsys$00000355");
|
|
XString xsTmp4 = _T("$twtsys$00000356");
|
|
XString xsTmp5 = _T("$twtsys$00000357");
|
|
XString xsTmp6 = _T("$twtsys$00000399");
|
|
const TCHAR *szBlkName = NULL;
|
|
OPENOBJ_BEGIN(idBlk, AcDb::kForRead, AcDbBlockTableRecord, pRecord);
|
|
if(pRecord){
|
|
pRecord->getName(szBlkName);
|
|
}
|
|
OPENOBJ_END();
|
|
if(_tcsicmp(szBlkName, xsTmp2) == 0 || _tcsicmp(szBlkName, xsTmp1) == 0 || _tcsicmp(szBlkName, xsTmp5) == 0 ||
|
|
_tcsicmp(szBlkName, xsTmp4) == 0 || _tcsicmp(szBlkName, xsTmp3) == 0 || _tcsicmp(szBlkName, xsTmp6) == 0)
|
|
return TRUE;
|
|
else
|
|
return FALSE;
|
|
}
|
|
|
|
int EditPool(AcDbObjectId id)
|
|
{
|
|
if(!id)
|
|
return RTERROR;
|
|
CTemporaryResourceOverride vTemp;
|
|
CPoolEdit dlg;
|
|
OPENOBJ_BEGIN(id, AcDb::kForRead, TDbPump, pEquip);
|
|
if(pEquip){
|
|
dlg.m_nLen = pEquip->GetPumpLength();
|
|
dlg.m_nWidth = pEquip->GetPumpWidth();
|
|
dlg.m_dEleUp = pEquip->GetPumpQ();
|
|
dlg.m_dEleDown = pEquip->GetPumpRaise();
|
|
dlg.m_dUpEle = pEquip->GetPumpSpare();
|
|
}
|
|
OPENOBJ_END();
|
|
if(dlg.DoModal() != IDOK)
|
|
return 1;
|
|
OPENOBJ_BEGIN(id, AcDb::kForWrite, TDbPump, pEquip);
|
|
if(pEquip){
|
|
pEquip->SetPumpLength(dlg.m_nLen);
|
|
pEquip->SetPumpWidth(dlg.m_nWidth);
|
|
pEquip->SetPumpQ(dlg.m_dEleUp);
|
|
pEquip->SetPumpRaise(dlg.m_dEleDown);
|
|
pEquip->SetPumpSpare(dlg.m_dUpEle);
|
|
|
|
double nAng = pEquip->GetAngle();
|
|
if(dlg.m_bMirror)
|
|
pEquip->SetAngle(nAng + PI);
|
|
}
|
|
OPENOBJ_END();
|
|
return RTNORM;
|
|
}
|
|
|
|
CPoolEdit::CPoolEdit(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CPoolEdit::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CPoolEdit)
|
|
m_nLen = 0.0;
|
|
m_nWidth = 0.0;
|
|
m_bMirror = FALSE;
|
|
m_dEleUp = 0.0;
|
|
m_dEleDown = 0.0;
|
|
m_dUpEle = 0.0;
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
|
|
void CPoolEdit::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CPoolEdit)
|
|
DDX_Text(pDX, IDC_EDIT_LEN, m_nLen);
|
|
DDX_Text(pDX, IDC_EDIT_WIDTH, m_nWidth);
|
|
DDX_Check(pDX, IDC_CHECK_Y, m_bMirror);
|
|
DDX_Text(pDX, IDC_EDIT_ELEUP, m_dEleUp);
|
|
DDX_Text(pDX, IDC_EDIT_ELEDOWN, m_dEleDown);
|
|
DDX_Text(pDX, IDC_EDIT_ELE, m_dUpEle);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CPoolEdit, CDialog)
|
|
//{{AFX_MSG_MAP(CPoolEdit)
|
|
// NOTE: the ClassWizard will add message map macros here
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CPoolEdit message handlers
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|