Files
FreeCADWasmDev/docs/current/PARTDESIGN_SHAFT_9483_REPAIR_20260918.md

3.4 KiB
Raw Blame History

第 9483 轮轴向导缺口接续

按 DESKTOP_WEB_DELIVERY_PLAN_20260918.md 查缺补漏,复用现有轴几何、任务面板、文档事务、保存恢复与桌面分析源码。本记录不替代计划,不表示重新移植。

原问题与本轮结果

第 9483 轮“业务状态有推进”只表示当轮发生变化,不代表轴向导完成。该轮已换成 Fem::Constraint*,但 PartDesign 内核没有提供这些类型;桌面分析还依赖未打包的 NumPy,Web 状态固定返回 analysisComputed: false。

  • 在原 PartDesign 内核编入桌面的 Fixed、Force、Bearing、Gear、Pulley 约束实现并注册类型。无需加载第二个文档内核。最初直接链接完整 Fem 暴露 SMESH 头文件缺失,已收窄到轴向导实际需要的约束源码,未扩展到 FEM 网格构建任务。
  • 复用 Shaft.equilibrium()、SegmentFunction 和 TranslationFunction;矩阵求解由已使用的 Eigen 提供 Python 绑定。桌面环境保留 NumPy 后端。单未知数、零反力、奇异/不一致方程明确处理,编辑后不保留旧计算结果。
  • WebAnalysis.py 从当前文档约束恢复分析模型,不新建几何。返回支反力、内力、力矩、挠度及应力曲线;完整求解、部分求解、约束不足、未配置分开表示。
  • 原轴向导面板增加原生结果图、数值表、支反力与约束参数输入。图形仅展示原生计算数据;结果注明来自上次应用状态,并明确钢材 E=210000 N/mm² 的桌面假设。
  • 修正 Force 物理量在 N 与内部单位之间的转换、弹性模量换算、原生 BeltAngle 弧度使用、整型 IsDriven 读取;维度更新后重新求解并刷新约束引用。禁止改写无关/只读原生属性。
  • 回执通用标签改为“本轮有进展,未新增整项通过”,缓存直接更新措辞,不重复读取历史日志。保留第 9483 轮原始内容与后续修复记录,不倒写为历史验收成功。
  • 恢复调度时发现第 9535 轮把下一项明确缺口当作旧功能构建任务,因 implementation_ready 提前跳过实施,继而冷却重排。已限制:confirmed-gaps 不走实施前的构建完成捷径,必须先实施具体缺口,必要构建仍在实施后处理。只重启原有服务加载修复,未增设调度器。

编译与交付状态

本轮只执行必要的原生编译、Python 语法编译、TypeScript 编译、资源同步与前端打包。未运行测试、验收、浏览器验证,也未新增测试用例。最终构建结果见同条 execution-policy.json/confirmedGapRepairs 记录。

状态:实现已接通,待后续统一验证;不修改历史验收通过数。未验证数值/界面运行结果,不能以编译结果代替业务验收。静力超静定问题沿用桌面边界,报告无唯一解;不新增通用 FEM 求解器。

下一项已确认缺口

WebDocument.execute() 仍拒绝已有轴的段数变化,partdesign-shaft-task.tsx 仍禁用已有轴增删段。已完成的尺寸修改直接复用;下一轮只补已有轴的段数增删及其约束引用/撤销保存接续,继续不运行验证任务。不得据旧覆盖清单重做其他工作台。

主要入口:

  • freecad-source/src/WebAssembly/FreeCADCoreProbe/ShaftLinearSystem.cpp
  • freecad-source/src/Mod/PartDesign/WizardShaft/{LinearSystem,WebAnalysis,WebDocument,Shaft,SegmentFunction}.py
  • web/src/partdesign-shaft-{facade,task,analysis}.ts(x)