From 581394622a45e0991865e0ebcea3fe6bf0a6a57f Mon Sep 17 00:00:00 2001 From: company-desktop-computer Date: Tue, 20 Oct 2026 10:06:34 +0800 Subject: [PATCH] fix #2 bug MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补充了对AecDbGuardBar,AecDbArcStair,AecDbLineStair 3种类型的判断. --- .../Code2026/CoreLibrary/AecDbCamera.cpp | 59 +++++++++++++++---- 1 file changed, 47 insertions(+), 12 deletions(-) diff --git a/SourceCode/Code2026/CoreLibrary/AecDbCamera.cpp b/SourceCode/Code2026/CoreLibrary/AecDbCamera.cpp index eb7c068..db3b87d 100644 --- a/SourceCode/Code2026/CoreLibrary/AecDbCamera.cpp +++ b/SourceCode/Code2026/CoreLibrary/AecDbCamera.cpp @@ -11,6 +11,9 @@ #include "compare_double.h" #include "simpleproperty.h" #include "hlrcommands.h" +#include "aecdbarcstair.h" +#include "aecdblinestair.h" +#include "aecdbguardbar.cpp" IMP_XDATA_KEY(AecDbXCamera, _ptEye_); IMP_XDATA_KEY(AecDbXCamera, _vtEye_); @@ -493,24 +496,56 @@ namespace return true; } + AecDbArcStair *pArcStair(AecDbArcStair::cast(pEnt)); + if (pArcStair) + { + LineStair data; + memset(&data,0,sizeof(LineStair)); + pArcStair->GetLineStairData(data); + dDiameter = data.bar.dD; + return true; + } + + AecDbLineStair *pLineStair(AecDbLineStair::cast(pEnt)); + if (pLineStair) + { + LineStair data; + memset(&data,0,sizeof(LineStair)); + pArcStair->GetLineStairData(data); + dDiameter = data.bar.dD; + return true; + } + + AecDbGuardBar *pBar(AecDbGuardBar::cast(pEnt)); + if (pBar) + { + GuardBar bar; + ::memset(&bar, 0, sizeof(GuardBar)); + pBar->GetGuardBarData(bar); + dDiameter = bar.dD; + return true; + } + // 弯头 AecDbEwFitting *pFit(AecDbEwFitting::cast(pEnt)); - if (pFit == NULL) - return false; + if (pFit) + { + const EFittingType eType(pFit->GetFittingType()); + if (eType != eElbow && eType != eReduceElbow) + return false; - const EFittingType eType(pFit->GetFittingType()); - if (eType != eElbow && eType != eReduceElbow) - return false; + WPipe::PipeParam *pParam(pFit->GetPipeParam()); + if (pParam == NULL) + return false; - WPipe::PipeParam *pParam(pFit->GetPipeParam()); - if (pParam == NULL) - return false; + const bool bFlange(pParam->m_nConnectType == 3 || pParam->m_nConnectType == 5); + dDiameter = bFlange ? pParam->m_dInterfaceD : pParam->m_dD; - const bool bFlange(pParam->m_nConnectType == 3 || pParam->m_nConnectType == 5); - dDiameter = bFlange ? pParam->m_dInterfaceD : pParam->m_dD; + delete pParam; + return true; + } - delete pParam; - return true; + return false; } // result2 的键是"产生该批结果的实体指针",这类实体没有 id(是补充实体)。 -- 2.54.0