import fs from 'node:fs'; const dir='reports/bridge-model-match-20260914'; const read=name=>JSON.parse(fs.readFileSync(`${dir}/${name}.json`,'utf8')); const results=['acceptance','originals','picking'].map(name=>({name,...read(name)})); if(results.some(r=>!r.pass))throw new Error('Acceptance incomplete'); const esc=s=>String(s).replaceAll('&','&').replaceAll('<','<').replaceAll('"','"'); const rows=[ ['005 应急切换','原模型对应最完整','5 步、6 次操作;7 个登记节点均唯一存在,沿用原转轴。开关精度及故障物理仿真仍有限。'], ['006 应急替代','部分匹配','4 次操作复用原车开关;双管接头与软管联动、阀体固定只转手柄。保障车和接口仍为补充示意。'], ['007 换件修复','原位泵体、螺栓已匹配','复用原泵网格和世界姿态,拆出原有 4 颗螺栓;安装位置复原,增加细节视角和直接拾取。管路、纸垫等仍为补充件。'], ['008 平衡阀互换','仍为补充装配模型','补齐油缸与两腔关系;擦拭贴面、阀座保留油口、封堵与换位对应。原整车缺少可确认的两腔平衡阀节点。'], ]; const images=[['TASK-VIRTUAL-005-original.png','005 原始流程回归'],['TASK-VIRTUAL-006-step-2.png','006 两端接头与双管连接'],['TASK-VIRTUAL-007-step-4.png','007 原模型四颗安装螺栓拆卸'],['TASK-VIRTUAL-007-step-8.png','007 新泵原位安装'],['TASK-VIRTUAL-007-context.png','007 复位视角保留拆卸状态'],['TASK-VIRTUAL-008-step-4.png','008 小腔拆阀后封堵油口'],['TASK-VIRTUAL-008-step-16.png','008 完成两腔互换']]; fs.writeFileSync(`${dir}/index.html`,`桥梁四套脚本模型匹配验收

桥梁四套脚本 · 模型匹配验收

2026-09-14 · 对照桥梁文件夹图片 4–10,以及实际 GLB 网格、节点、变换和运行结果。

结论:005 原模型对应最完整;007 已改为原位拆装;006、008 仍有实车模型缺失,不能声称四套已完全匹配。

${rows.map(r=>`${r.map(c=>``).join('')}`).join('')}
任务匹配程度核对与修正
${esc(c)}

验证范围

原 005 完整 5 步和后加三套 34 步,共 39 步、94 次操作,经真实教学预览校验;未创建学员成绩。附加 8 项单元/路由检查与生产构建通过。

${results.map(r=>`

${esc(r.name)} · PASS

原始结果`).join('')}

39 步逐项核对及模型缺项说明 · 临时验收数据清理结果

运行截图

${images.filter(([file])=>fs.existsSync(`${dir}/${file}`)).map(([file,title])=>`
${esc(title)}
${esc(title)}
`).join('')}
`);