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

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(写路径退役后无调用者)
This commit is contained in:
company-desktop-computer committed 2026-10-21 22:15:49 +08:00
1 parent 5692d9010b
commit 8941246b16
2 files changed
+168 -167

No files matched your search

@@ -149,7 +149,6 @@ protected:
Acad::ErrorStatus BaseCurveDwgOutFields(AcDbCurve* pBaseCurve,AcDbDwgFiler* pFiler) const;
Acad::ErrorStatus RegionAcisoutDwgOutFields(AcDbDwgFiler* pFiler) const;
Acad::ErrorStatus RegionExplodeDwgOutFields(AcDbDwgFiler* pFiler,AcDbVoidPtrArray& arCurPtrs) const;
Acad::ErrorStatus SectionRegionDwgOutFields(AcDbDwgFiler* pFiler,int nVer) const;
Acad::ErrorStatus AddDimPoints(AcDbGripDataPtrArray& grips,const AcGeVector3d& curViewDir,