Commit Graph
13 Commits
Author SHA1 Message Date
company-desktop-computer 1c8068c8cf fix: 临时 SAT 文件名唯一化并修正越界读
- RegionToString/StringToRegion/BodyToString/StringToFace 的临时文件名
  由固定的 Region1/Region2/Region121/Region212/Region312.sat
  改为 x3d_<PID>_<序号>.sat,多 CAD 实例或多线程并发时不再互相覆盖
- 读取缓冲区补 +1 零字节,修复 new char[len] 无结尾 0 导致的越界读
- 检查 file.Read 短读,失败时释放缓冲并返回空
- 用完即 DeleteFile,不残留临时文件
2026-10-21 09:06:36 +08:00
company-desktop-computer e65eba26c8 docs: 新增 AcDbX3dSolid 重构计划
- 现状:m_sScr 用 CString 存 ACIS SAT,UTF-16 导致体积翻倍;临时文件名写死;开图逐单元走临时文件
- 否决方案:存构建曲线、自写 AcDbDwgFiler、持有 AcDbRegion 对象、隐藏 BTR、zlib 压缩
- 采用方案:SAT 的 ASCII 字节流存进 m_pSatBuffer(RegionBlobHeader + 长度前缀)
- 三阶段:临时文件唯一化 -> 懒重建 -> region 数据二进制化
- 兼容策略:读兼容老图纸(m_sScr / 0x00c1 切分),写入统一新格式,不自动迁移
- 公开 CString 接口签名不变,内部转换
- kLoftReducer 纳入统一容器;kEarthWorm/kSHEarthWorm 已废弃但 m_sScr 字段暂不删除
2026-10-20 16:20:48 +08:00
company-desktop-computer 482c3c3707 docs: 移除 ai.memory 目录,统一以 CODEBUDDY.md 为唯一项目说明
ai.memory 的概览/构建/模块/约定与 CODEBUDDY.md 完全重复且已开始漂移,
03-worklog 的两条决策在 git log(086bb1c 等)中已有完整 Why。
删除 6 个文件,并清掉 CODEBUDDY.md 中对它的引用。
2026-10-20 10:39:56 +08:00
company-desktop-computer 33d5142a7c docs: 校正 CODEBUDDY.md(编码/构建/架构细节)
- 源码编码由 GBK 更正为 UTF-8 with BOM(实测 5996 个 .cpp/.h 全部带 BOM)
- 补全构建命令(--config Debug/Release)、preset 继承链、C++ 标准切换阈值
- 补全输出目录(加密产物落 <PRODUCT>-<MODE> 子目录)、copyarx 仅 Debug 部署
- 更正授权关系:CoreLibrary 同样双版本,业务模块只链 CoreCommand_BAL_REMOTE
- 补 CMake 封装细节(add_def_file_name/target_set_name_and_suffix/ShsGlobalIncludes)
- 新增批量编译、测试/静态检查(无测试框架)、Git 协作说明
2026-10-20 10:39:15 +08:00
company-desktop-computer 581394622a fix #2 bug
补充了对AecDbGuardBar,AecDbArcStair,AecDbLineStair 3种类型的判断.
2026-10-20 10:06:34 +08:00
company-desktop-computer 6b1add6c57 Update AecDbCamera.cpp
删除AecDbCamera.cpp内的hlr相关的注释
2026-10-20 09:29:26 +08:00
company-desktop-computer 2f8b639cea 修复AecDbEwFitting剖切问题
修复AecDbEwFitting剖切后三维重绘不显示法兰问题
2026-10-19 10:34:27 +08:00
company-desktop-computer 59dcfe9e25 重构pcfiso 2026-10-19 09:26:09 +08:00
company-desktop-computer a1c7d39dc6 fix(HLR): 清理剖切结果中的退化圆弧,避免圆心角溢出生成反向大圆弧
AecDbXCamera::hlrCalc 在 HLR 计算后新增 isDegenerateArc 判定:结果为 AcDbArc 且 弧长/半径 < 1e-6 时视为退化圆弧(圆心角极小),从 result1/result2 中删除,防止数值溢出把"很小一段"翻转成"反向的大圆弧"。
2026-10-16 13:11:21 +08:00
company-desktop-computer 1db5368592 chore: 忽略 *.aps,并修正 JSTZDlg 矩阵列显示
- .gitignore 增加 *.aps(EarthWorm.aps 等 VS 资源编译产物)。
- JSTZDlg::ShowToCompareList 的矩阵分支改用 AecDbObjXDataMap::MatrixToString(),
  不再直接把 pszVal 当字符串打印(矩阵现以二进制块保存)。
2026-10-13 15:32:29 +08:00
company-desktop-computer 199abb989c 重构: AecDbObjXDataMap 解耦 UI,并统一 SetAt/数组实现
- AecXData 的 ctor/Free/CopyFrom 由头部 inline 移入 .cpp,结构体加
  AECDLLIMPEXP 导出,修复其它模块构造 AecXData 时的 LNK2019。
- 抽出私有 SetXData(pszKey, xdata) 助手,替换各 SetAt 中重复的
  find/Free+覆盖/insert 逻辑,并接管 xdata 所有权。
- 数组二进制块统一为 [kArrayMagic][元素类型][元素个数][数据...],元素类型
  复用 AecXData::EType;新增元素类型无需再加魔数或类型标签。
- 矩阵/数组魔数集中到 .cpp 顶部常量,便于维护。
- List(CListCtrl*, int) 改为 List(std::vector<CString>&):去掉 MFC 控件与
  nImage 依赖,每个元素输出 key/value 两项;CCKSXDlg::ListXDataMap 相应改为
  构造 vector 后填充两列列表。
2026-10-13 15:28:19 +08:00
company-desktop-computer 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
company-desktop-computer 9d9077a03e fix(FlangeDlg): 修正 GetEndF1/GetEndF2 端面取值下标
- CFlangeDlg::GetEndF1/GetEndF2 原先取 m_arFlangeVals 下标 0/1(公称直径/法兰外径),
  端面型式实际在下标 5/6,导致 PIPE_FLANGF 被写成 DN 字符串
- 改为下标 5/6,且为空时回退 "FF"
2026-10-09 14:09:23 +08:00