// PoolEdit.cpp : implementation file // #include "stdafx.h" #include #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