Commit Graph
11 Commits
Author SHA1 Message Date
gjm bc6996830f fix aecdbcamera.cpp 的链接错误
fix aecdbcamera.cpp 的链接错误
2026-10-26 21:26:40 +08:00
company-desktop 39dbab85bf 修复相机 HLR 结果处理中的三处正确性缺陷
B1 mergeEnvelope:命中 isNull() 的 3DSOLID 时 pSolidAll 已赋值但未从 arptrs 摘除,
后续 deleteArrayVoidPtrs 会把它删掉,返回野指针。改为记下标、循环结束后统一 removeAt。

B2 process_result:outputWithoutID.append(entAr) 误写在 for 循环体内,每轮把累积数组
整体再追加一次,同一指针在 outputWithoutID 中出现多次,AddToModelSpace 第二次失败后
DELETE_PTR 会删掉已入库的实体。append 移到循环外,并先 entAr.removeAll()。

B3 process_result:erase 之后把 it 重置成 begin(),for 的 ++it 会跳过新的首元素,
多个构筑物时漏处理。改为 while + 先取 next 迭代器。

同时更新 HRL-MODEL-refactor.md:去掉未实施的内存账本方案,验证方法改为行为观察。
2026-10-26 21:12:27 +08:00
company-desktop 14f7203f3b 修复相机 HLR 计算链路上的几处内存泄漏
- hlrCalc 两处早退(HLR 结果为空、截面裁剪后为空)没有释放补充实体
  arAdditional_all,补上释放;第一处早退发生在轴网克隆插入 result1 之前,
  同时释放调用方移交所有权的 arAxisPtrs
- mergeEnvelope 找不到可用的 3DSOLID 时直接返回,漏掉 arptrs 里由
  GetDraw3dables 克隆出来的全部实体
- process_result 打成块失败时,subAr 里的实体没有被块表接管,需要自行释放
2026-10-26 20:07:37 +08:00
company-desktop e555d29529 fix-aecdbcamera-崩溃导致双击无法退出
fix-aecdbcamera-崩溃导致双击无法退出
2026-10-26 14:04:38 +08:00
company-desktop 581394622a fix #2 bug
补充了对AecDbGuardBar,AecDbArcStair,AecDbLineStair 3种类型的判断.
2026-10-20 10:06:34 +08:00
company-desktop 6b1add6c57 Update AecDbCamera.cpp
删除AecDbCamera.cpp内的hlr相关的注释
2026-10-20 09:29:26 +08:00
gjm bbb899c0a0 fix: HLR 退化圆弧按来源实体直径判断,并支持爬梯
在删除圆心角为 PI 的退化圆弧时,增加直径比较:
- 弯头(eElbow / eReduceElbow):带法兰(连接类型 3/5)取法兰外径 m_dInterfaceD,
  否则取画法直径 m_dD;
- 爬梯(AecDbClimbStair):取踏管直径 ClimbStair::dd。
仅当圆弧直径大于来源实体直径时才删除。

getElbowDiameter 改为 getSourceDiameter,removeFittingDegenerateArcs
改为 removeDegenerateArcs(已不止管件)。
2026-10-16 23:20:57 +08:00
gjm c0c04952dc fix: HLR 结果中删除 AecDbEwFitting 产生的退化圆弧
原 isDegenerateArc 以 弧长/半径 比值判断退化圆弧,且无法区分结果来源。
改为按来源实体类型判断:
- result1 的键是数据库实体 id,直接判断该 id 是否为 AecDbEwFitting;
- result2 的键是无 id 的补充实体指针,先经 mpAdditional
  (数据库实体id -> 其产生的补充实体) 反查归属的数据库实体 id,再判断。

删除规则:结果实体是 AcDbArc 且圆心角为 PI 时删除。
2026-10-16 21:34:08 +08:00
company-desktop a1c7d39dc6 fix(HLR): 清理剖切结果中的退化圆弧,避免圆心角溢出生成反向大圆弧
AecDbXCamera::hlrCalc 在 HLR 计算后新增 isDegenerateArc 判定:结果为 AcDbArc 且 弧长/半径 < 1e-6 时视为退化圆弧(圆心角极小),从 result1/result2 中删除,防止数值溢出把"很小一段"翻转成"反向的大圆弧"。
2026-10-16 13:11:21 +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