重构: AecXData 类型标签改用枚举 AecXData::EType

- 在 AecXData 内新增 enum EType,取值直接采用 wtypes.h 的 VARENUM(VT_*),
  与原实现逐位一致(nVt 会序列化进 DWG/DXF/XData,数值必须保持不变)。
- 各模块共 303 处 nVt 判断由裸 VT_* 改为 AecXData::kTypeXxx,涉及 18 个文件;
  仅调试打印用的字符串字面量保持原样。
- AecDbObjXDataMap.h 增加 #include <wtypes.h>(EType 引用 VT_*)。
This commit is contained in:
company-desktop-computer committed 2026-10-13 09:55:42 +08:00
1 parent 9d9077a03e
commit 0467086e65
18 files changed
+602 -723

No files matched your search

@@ -937,12 +937,12 @@ BOOL AecDbAssembleWell::CalValue(const CString &sExp,double& dRes) const
break;
//替换
if (cVal.nVt == VT_I4)
if (cVal.nVt == AecXData::kTypeInt)
{
cal.SetVariableData(sKey, 1.0 * cVal.nVal);
}
if (cVal.nVt == VT_R8)
if (cVal.nVt == AecXData::kTypeDouble)
{
cal.SetVariableData(sKey, cVal.dVal[0]);
}
@@ -1756,7 +1756,7 @@ Acad::ErrorStatus AecDbEwPipe::TransformHole(const AcGeMatrix3d& xform)
for (; it != end;)
{
if (!m_mapSpecXData.GetNext(it, sKey, cVal)) break;
if (sKey.Find(_T("$H")) != -1 && cVal.nVt == VT_BSTR)//可能的实体句柄
if (sKey.Find(_T("$H")) != -1 && cVal.nVt == AecXData::kTypeString)//可能的实体句柄
{
AcDbHandle handle(cVal.pszVal);
@@ -1661,7 +1661,7 @@ void AecDbEwPipeBase::GetAssocHandleObjs(AcDbObjectIdArray& arIds)
for (; it != end;)
{
if (!m_mapSpecXData.GetNext(it, sKey,cVal)) break;
if ( sKey.Find(_T("$H")) != -1 && cVal.nVt == VT_BSTR )//可能的实体句柄
if ( sKey.Find(_T("$H")) != -1 && cVal.nVt == AecXData::kTypeString )//可能的实体句柄
{
AcDbHandle handle(cVal.pszVal);
@@ -1826,7 +1826,7 @@ Acad::ErrorStatus AecDbEwPipeBase::subTransformBy(const AcGeMatrix3d& xform)
for (; it != end;)
{
if (!m_mapSpecXData.GetNext(it, sKey, cVal)) break;
if (sKey.Find(_T("$H")) != -1 && cVal.nVt == VT_BSTR)//可能的实体句柄
if (sKey.Find(_T("$H")) != -1 && cVal.nVt == AecXData::kTypeString)//可能的实体句柄
{
AcDbHandle handle(cVal.pszVal);
@@ -240,7 +240,7 @@ void HlrCutOption::ProcessHlrResult(const AcDbEntity *pE
std::vector<CString> strs;
for (AecDbObjXDataMap::It it = testData.Begin(); it != testData.End(); ++it)
{
if (it->second.nVt == (VT_BYREF | VT_R8 + 5))
if (it->second.nVt == AecXData::kTypeBinary)
strs.push_back(it->first);
}
for (size_t i(0); i < strs.size(); ++i)
@@ -875,12 +875,12 @@ BOOL AecDbPipeHanger::CLC(CString &sTxt)
for (; it != end; )
{
m_mapSpecXData.GetNext(it, sKey, xData);
if (xData.nVt == VT_UI4 ||
xData.nVt == VT_I4)
if (xData.nVt == AecXData::kTypeSoftId ||
xData.nVt == AecXData::kTypeInt)
{
cal.SetVariableData(sKey, 1.0 * xData.nVal);
}
else if (xData.nVt == VT_R8)
else if (xData.nVt == AecXData::kTypeDouble)
{
cal.SetVariableData(sKey, xData.dVal[0]);
}