company-desktop
|
4fc910d6fd
|
fix: 曲线通道重建截面时防崩溃
RegionFromCurvesDwgInFields 里两处:
- isRegionNull(pRegion) && isRegionNull(pRegionBig) 改为 ||,原写法要求
两个都无效才跳过,实际 pRegionBig 此时必非空,条件恒假,无效 region
照样进布尔运算
- booleanOper 改走已有的 rawBooleanOperWrapper,ACIS 内部异常时由 SEH
捕获,不再直接崩 CAD
顺带 delete pRegion:arRegPtrs 不拥有对象,原来 subtract 完没有释放。
曲线通道只读,spline 参数在写端从未落盘,几何缺失无法靠读端修复,
本次只处理崩溃路径,重建逻辑与启发式保持原样。
|
2026-10-22 10:24:54 +08:00 |
|
company-desktop
|
8630e2a499
|
fix: 未入库管道实体存截面时临时文件名不再撞车
objectId() 为 kNull 时(剪贴板复制、临时序列化等),handle 取不到,
原来拼出来的文件名固定是 Region_<pid>_.dat,同一次存盘里所有截面共用
一个临时文件。
改为:句柄有效时仍用句柄,否则用进程内递增序号 N1/N2/... 作为后缀。
日志里的标识同步从 handle 改成 tag。
|
2026-10-21 23:22:21 +08:00 |
|
company-desktop
|
8941246b16
|
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(写路径退役后无调用者)
|
2026-10-21 22:15:49 +08:00 |
|
company-desktop
|
0467086e65
|
重构: AecXData 类型标签改用枚举 AecXData::EType
- 在 AecXData 内新增 enum EType,取值直接采用 wtypes.h 的 VARENUM(VT_*),
与原实现逐位一致(nVt 会序列化进 DWG/DXF/XData,数值必须保持不变)。
- 各模块共 303 处 nVt 判断由裸 VT_* 改为 AecXData::kTypeXxx,涉及 18 个文件;
仅调试打印用的字符串字面量保持原样。
- AecDbObjXDataMap.h 增加 #include <wtypes.h>(EType 引用 VT_*)。
|
2026-10-13 09:55:42 +08:00 |
|
gjm
|
164968b62e
|
chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
|
2026-10-04 00:04:20 +08:00 |
|
gjm
|
345044cb46
|
初始化提交
|
2026-09-28 15:28:50 +08:00 |
|