company-desktop-computer/refactor/ewpipebase-region-sat AGit
main
SectionRegionDwgOutFields 不再 explode 后按曲线写,改为固定写 nLen=0 + RegionAcisoutDwgOutFields。读取端 nLen==0 本来就识别 SAT 通道,因此 kCurrentVersionNumber 保持 7,新图在老插件上仍可还原。
同时修 SAT 通道自身缺陷:
- 新增 3.7 落盘实测:SAT 原始字节、DWG 净增、acisIn 与布尔重建耗时, 并标注该数据来自 accoreconsole 模拟 REGION,非真实实体实测 - 新增 3.8 为什么不分流:createFromCurves 慢、落盘省不下体积、 写路径缺陷、升版本成本 - 修正体积代价表述:字段级估算 5~20 倍,落盘压缩后实为 4~5 倍
SectionRegionDwgOutFields 不再 explode 后按曲线写,改为固定写 nLen=0 + RegionAcisoutDwgOutFields。读取端 nLen==0 本来就识别 SAT 通道,因此 kCurrentVersionNumber 保持 7,新图在老插件上仍可还原。 同时修 SAT 通道自身缺陷: - RegionAcisoutDwgOutFields:临时文件名加进程号;new char[nLen] 补 +1 并 清零;检查短读,短读或空文件退回原生写法,不再把未初始化内存写进 DWG; acisOut/Open 失败分支补 DeleteFile;两个重复的 errorfile 分支合并为 WriteRegionNativeFallback,顺带修掉 7 字节泄漏 - RegionAcisInDwgInFields:临时文件名只取纯文件名,拒绝 DWG 里夹带的路径 成分和盘符;errorfile 分支补 delete[];create/dwgInFields/acisIn 失败 分支加日志并正确释放;acisIn 返回的非 region 实体不再泄漏 - 删除 RegionExplodeDwgOutFields(写路径退役后无调用者)
No dependencies set.
The note is not visible to the blocked user.
SectionRegionDwgOutFields 不再 explode 后按曲线写,改为固定写 nLen=0 +
RegionAcisoutDwgOutFields。读取端 nLen==0 本来就识别 SAT 通道,因此
kCurrentVersionNumber 保持 7,新图在老插件上仍可还原。
同时修 SAT 通道自身缺陷:
清零;检查短读,短读或空文件退回原生写法,不再把未初始化内存写进 DWG;
acisOut/Open 失败分支补 DeleteFile;两个重复的 errorfile 分支合并为
WriteRegionNativeFallback,顺带修掉 7 字节泄漏
成分和盘符;errorfile 分支补 delete[];create/dwgInFields/acisIn 失败
分支加日志并正确释放;acisIn 返回的非 region 实体不再泄漏