From e5e6fd7d6dc456c181712f8990c65ec336060719 Mon Sep 17 00:00:00 2001 From: company-desktop-computer Date: Thu, 22 Oct 2026 14:09:44 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20TransformBy/ToJson=20=E5=BF=85=E9=A1=BB?= =?UTF-8?q?=E9=9A=8F=E9=98=B6=E6=AE=B5=E4=B8=89=E6=94=B9=EF=BC=8C=E8=A1=A5?= =?UTF-8?q?=20kLoft=20=E4=B8=A2=E6=95=B0=E6=8D=AE=E5=90=8E=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 11.2 第 1 项从「是否一起改」改为已定。这两处都是 m_sScr 的读者,容器化 后不改不是导出数据不对,而是功能直接坏: - TransformBy:5 个类型靠 StringToRegion(m_sScr) 取截面,取不到就 bChanged=false、不 ReCreate。kExtrude2 留下参数与几何不一致; kRevolve/kRevolve2/kSweep 整段不执行 - kLoft:vec 为空使 strAll 为空,:5567 把 m_sScr 覆盖成空串,ReCreate 里 CreateLoft 因空输入直接 return false,一次移动永久丢截面数据 - ToJson:三个分支全靠 m_sScr 解析 __sScr__,不改则导出几何为空 同时记录 m_sScr 的分布(66 处、24 个函数),说明阶段三的范围是所有 m_sScr 读写者,不是生成路径加少量读取点。 --- AcDbX3dSolid-refactor-plan.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/AcDbX3dSolid-refactor-plan.md b/AcDbX3dSolid-refactor-plan.md index de97297..669f23e 100644 --- a/AcDbX3dSolid-refactor-plan.md +++ b/AcDbX3dSolid-refactor-plan.md @@ -404,7 +404,11 @@ void SetSweepData(const CString& sReg, const AcDbCurve* pCurve); ### 11.2 重启前还要定的事 -1. `TransformBy`、`ToJson` 是否一起改——这两处在运行时会反复导出/解析 SAT,是阶段三改动量的大头 +1. **已定:`TransformBy`、`ToJson` 必须一起改**(2026-10-22)。这两处都是 `m_sScr` 的读者,容器化后不改不是「导出数据不对」,而是功能直接坏: + - `TransformBy`(`:5488`)5 个类型都靠 `StringToRegion(m_sScr)` 取截面,取不到就 `bChanged = false`,末尾不 `ReCreate`。`kExtrude2` 会留下「参数已变换、几何未变」的不一致;`kRevolve` / `kRevolve2` / `kSweep` 整段分支不执行,完全不动 + - `kLoft` 更严重:`vec` 为空导致 `strAll` 为空,`:5567` 把 `m_sScr` 覆盖成空字符串,`ReCreate` 里 `CreateLoft` 因空输入直接 `return false`(`:5006`)——**一次移动就永久丢掉截面数据** + - `ToJson`(`:5211`)三个分支(`kSweep`、单 region、多 region)全靠 `m_sScr` 解析出 `__sScr__`,不改则导出的 JSON 里 region 几何为空 + - 因此阶段三的范围是「所有 `m_sScr` 读写者」,不存在「只改生成路径、留着这两处」的做法。`m_sScr` 在 `AcDbX3dSolid.cpp` 共 66 处、24 个函数:`ReCreate` 18、`TransformBy` 10、`ToJson` 9、9 个 `Create*` 各 1、4 组 Get/Set 各 1、`dwgIn/OutFields` 各 1 2. 老图纸里 region 类型的实际占比——占比低的话体积收益有限,可以永久搁置 ### 11.3 实施时的技术前提(已核对)