refactor: 管道截面统一存 SAT,曲线写路径退役 #29

Merged
gjm merged 2 commits from company-desktop-computer/refactor/ewpipebase-region-sat AGit into main 2026-10-21 23:05:00 +08:00
Collaborator

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(写路径退役后无调用者)
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(写路径退役后无调用者)
company-desktop-computer added 2 commits 2026-10-21 22:16:02 +08:00
- 新增 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(写路径退役后无调用者)
gjm approved these changes 2026-10-21 23:04:55 +08:00
gjm merged commit a63f5e2693 into main 2026-10-21 23:05:00 +08:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gjm/envi-code#29