company-desktop-computer/fix/pool-section-sat-name AGit
main
删除 Pool3dCmd/PoolSectionTemp.h,JMDBDlg、JMSJDlg、HZQTDlg 共 7 处 改为 CoreTools::getTempFilePath(T("JMSJ"), _T(".sat"), 目录)。
同时修 getTempFilePath 自身的问题:
temp-file-naming.md 同步改为介绍这个通用函数。
1. AcDbX3dSolid::CreateFromSat 的 temp\temp.sat 改为 temp_<pid>_<原子序号>.sat,用完 DeleteFile。原来固定名且从不删除, 两个 CAD 实例同时从 SAT 重建时会互相覆盖。 2. DGJM.sat 的读取统一改成「分配时补终止符 + 按实际读到的长度赋值」: new char[n] 之后直接赋给 CString 会把未初始化内存当字符串读到终止符, 现在 new char[n+1] + memset,再用 CString(pszTxt, nRead) 明确长度。 涉及 AcDbX3dSolid、AecDbEarthWormFitting、DGJMDlg、GJYXJMDlg、 JMDBDlg、JMSJDlg 共 6 处。 DGJM.sat 本身仍是固定文件名,写读双方靠它隐式传递,本次不改名。
JMDBDlg、JMSJDlg、HZQTDlg 共 7 处共用固定的 JMSJ.sat,两个 CAD 实例 同时运行时会互相覆盖,acisIn 可能读到另一个实例写的截面。 新增 Pool3dCmd/PoolSectionTemp.h 的 GetPoolSectionSatPath(),文件名改为 JMSJ_<pid>.sat。同一进程内所有调用点路径一致,acisOut 写、ShowLastSection 读的隐式链路不受影响;进程之间用 PID 隔离。顺带去掉无意义的 MakeLower。 同时新增 temp-file-naming.md,记录临时文件命名规则、全库现状,以及 DGJM.sat 已废弃、不再改造的结论。
删除 Pool3dCmd/PoolSectionTemp.h,JMDBDlg、JMSJDlg、HZQTDlg 共 7 处 改为 CoreTools::getTempFilePath(_T("JMSJ_"), _T(".sat"), 目录)。 同时修 getTempFilePath 自身的问题: - 传了有效父目录时 sParentPath 没有赋值,会拼出 "\JMSJ_xxx.sat" - 父目录为空时仍对 pszParentPath 调 _taccess,参数可能是 NULL - return sPath(); 语法错误 - objId 用 %lu 格式化 Adesk::ULongPtr,64 位下会截断,改 %I64u temp-file-naming.md 同步改为介绍这个通用函数。
No dependencies set.
The note is not visible to the blocked user.
删除 Pool3dCmd/PoolSectionTemp.h,JMDBDlg、JMSJDlg、HZQTDlg 共 7 处
改为 CoreTools::getTempFilePath(T("JMSJ"), _T(".sat"), 目录)。
同时修 getTempFilePath 自身的问题:
temp-file-naming.md 同步改为介绍这个通用函数。
删除 Pool3dCmd/PoolSectionTemp.h,JMDBDlg、JMSJDlg、HZQTDlg 共 7 处 改为 CoreTools::getTempFilePath(_T("JMSJ_"), _T(".sat"), 目录)。 同时修 getTempFilePath 自身的问题: - 传了有效父目录时 sParentPath 没有赋值,会拼出 "\JMSJ_xxx.sat" - 父目录为空时仍对 pszParentPath 调 _taccess,参数可能是 NULL - return sPath(); 语法错误 - objId 用 %lu 格式化 Adesk::ULongPtr,64 位下会截断,改 %I64u temp-file-naming.md 同步改为介绍这个通用函数。