法兰双击改用法兰对话框:AecDbEwFitting 法兰双击弹出 CFlangeDlg 并回写法兰/垫片数据 #3
@@ -18033,6 +18033,103 @@ void DBL_AEC_DBEWFIT()
|
|||||||
AecDbEwFitting* pEw = AecDbEwFitting::cast(pEnt);
|
AecDbEwFitting* pEw = AecDbEwFitting::cast(pEnt);
|
||||||
if (pEw != NULL)
|
if (pEw != NULL)
|
||||||
{
|
{
|
||||||
|
//法兰:双击弹出法兰对话框,把选中的法兰/垫片数据应用到该法兰对象
|
||||||
|
if (pEw->GetFittingType() == eFlange)
|
||||||
|
{
|
||||||
|
CString dbPath = FilePath::GetSysDir();
|
||||||
|
dbPath += _T("\\Plumbing.db");
|
||||||
|
|
||||||
|
CUIISQLiteServer * pADOServer = new CUIISQLiteServer;
|
||||||
|
if (!pADOServer->InitADOServer(dbPath))
|
||||||
|
{
|
||||||
|
AfxMessageBox(_T("数据库驱动加载数据库Plumbing.db失败!"));
|
||||||
|
delete pADOServer;
|
||||||
|
pEnt->close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//取当前法兰参数作为对话框初值
|
||||||
|
const AecDbObjXDataMap* pMap = pEw->GetSpecialtyData(AcDb::kForRead);
|
||||||
|
|
||||||
|
double dDN = 0.0;
|
||||||
|
pMap->GetAt(PIPE_DN, dDN);
|
||||||
|
|
||||||
|
double dPre = 1.0;
|
||||||
|
pMap->GetAt(PIPE_PRESSURE, dPre);
|
||||||
|
|
||||||
|
CString sODNo, sPro, sLevel;
|
||||||
|
pMap->GetAt(PIPE_ODSN, sODNo);
|
||||||
|
pMap->GetAt(DOC_PROJECT, sPro);
|
||||||
|
pMap->GetAt(PIPE_LEVEL, sLevel);
|
||||||
|
|
||||||
|
if (!sLevel.IsEmpty() && sPro.IsEmpty())
|
||||||
|
{
|
||||||
|
AecDbObjXDataMap xMap;
|
||||||
|
KTModelLayoutXData::ReadModelXData(KT_PIPEINIT, xMap);
|
||||||
|
xMap.GetAt(DOC_PROJECT, sPro);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
CAcModuleResourceOverride rcTmp;
|
||||||
|
CFlangeDlg flgDlg;
|
||||||
|
flgDlg.SetAdoDb(pADOServer);
|
||||||
|
flgDlg.SetDN((int)dDN);
|
||||||
|
flgDlg.SetPressure(dPre);
|
||||||
|
flgDlg.SetLevel(sODNo, sPro, sLevel);
|
||||||
|
|
||||||
|
if (IDOK == flgDlg.DoModal())
|
||||||
|
{
|
||||||
|
//提取旧的接口
|
||||||
|
pEw->GetInterface(arOldInfs);
|
||||||
|
|
||||||
|
CStringArray arValuesF, arValuesG;
|
||||||
|
flgDlg.GetFlangeValues(arValuesF);
|
||||||
|
flgDlg.GetGasketValues(arValuesG);
|
||||||
|
|
||||||
|
//列: 0公称直径 1法兰外径 2法兰高度 3法兰厚度 4法兰颈 5端面
|
||||||
|
if (arValuesF.GetSize() >= 5)
|
||||||
|
{
|
||||||
|
double dWD = _ttof(arValuesF.GetAt(1)); //法兰盘外径
|
||||||
|
double dWh = _ttof(arValuesF.GetAt(3)); //法兰盘厚度
|
||||||
|
double dThk = _ttof(arValuesF.GetAt(3)); //法兰总厚
|
||||||
|
double dN = _ttof(arValuesF.GetAt(4)); //法兰颈
|
||||||
|
|
||||||
|
CString sEndF = _T("FF");
|
||||||
|
if (arValuesF.GetSize() > 5) sEndF = arValuesF.GetAt(5);
|
||||||
|
|
||||||
|
pEw->upgradeOpen();
|
||||||
|
|
||||||
|
AecDbObjXDataMap* pXDataMapSrc = pEw->GetSpecialtyData(AcDb::kForWrite);
|
||||||
|
|
||||||
|
pXDataMapSrc->SetAt(PIPE_WD, dWD);
|
||||||
|
pXDataMapSrc->SetAt(PIPE_WTHICK, dWh);
|
||||||
|
pXDataMapSrc->SetAt(PIPE_THICK, dThk);
|
||||||
|
pXDataMapSrc->SetAt(PIPE_N, dN);
|
||||||
|
pXDataMapSrc->SetAt(PIPE_FLANGF, sEndF);
|
||||||
|
|
||||||
|
if (arValuesG.GetSize() > 4)
|
||||||
|
{
|
||||||
|
pXDataMapSrc->SetAt(PIPE_GASKETM, arValuesG.GetAt(1));
|
||||||
|
pXDataMapSrc->SetAt(PIPE_PRESSURE, _ttof(arValuesG.GetAt(2)));
|
||||||
|
pXDataMapSrc->RemoveAt(PIPE_GASKET);
|
||||||
|
pXDataMapSrc->SetAt(PIPE_GASKET, _ttof(arValuesG.GetAt(3)));
|
||||||
|
pXDataMapSrc->SetAt(PIPE_GASKETDSC, arValuesG.GetAt(4));
|
||||||
|
}
|
||||||
|
|
||||||
|
pEw->ReCreateDraw2d();
|
||||||
|
pEw->ReCreateDraw3d();
|
||||||
|
|
||||||
|
pEw->downgradeOpen();
|
||||||
|
|
||||||
|
pEw->GetInterface(arNewInfs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
delete pADOServer;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
WPipe::PipeParam* pParam = NULL;
|
WPipe::PipeParam* pParam = NULL;
|
||||||
pParam = pEw->GetPipeParam();
|
pParam = pEw->GetPipeParam();
|
||||||
|
|
||||||
@@ -18094,6 +18191,7 @@ void DBL_AEC_DBEWFIT()
|
|||||||
pEw->GetInterface(arNewInfs);
|
pEw->GetInterface(arNewInfs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
pEnt->close();
|
pEnt->close();
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user