前端不再是"一个 16MB HTML + 一个 2955 行模板"。现在: webapp/index.html 343 行 DOM 骨架,零内联数据 webapp/styles/*.css 811 行 CSS 按段切成 8 个文件 webapp/js/app.js 原内联主脚本逐字搬出(仍是普通脚本,S5 才改 ESM) webapp/js/ik-solver.js / ik-glue.js / vendor/three.min.js(原 web/ 三个文件) webapp/workers/ik.worker.js 真 Worker 文件 webapp/generated/00_data.js 生成物(网格/工程图/行程/碰撞/螺钉) dist/机器人手臂3D查看器.html 分发用单文件,由 build_viewer 内联上面这些文件产出 入口:python -m arm.viewer.serve 后开 http://127.0.0.1:8123/ (serve 带 no-store,改完刷新即新构建,不再需要 Ctrl+F5;显式 MIME, .js 被 Windows 注册表判成 text/plain 会让模块静默不执行) 删掉 src/viewer_tpl.html 与 web/ 目录(旧产物移入 backups/pre_split_20261015/)。 工程图不再维护第二份 sheets.jsdata —— 直接读 draw_sheet 写出的 4 个真 SVG。 实测中修掉的问题: - serve 的 / 原先"内部映射"到 webapp/index.html,导致文档基址是 /、相对路径的 8 个 CSS 与 4 个 JS 全部 404(整页无样式无脚本)。改成 302 跳转。 - file:// 下 new Worker('workers/…') 构造阶段不抛错、错误以异步 onerror 到达, 所以"构造失败才试 Blob 兜底"永远不会触发;改为按协议选路。两条路径都已实测 backend=worker(http 走文件、file:// 走 Blob)。 - Worker 握手 3s 在 headless 并发下会误判"没起来"(截图里红徽标即此),放宽到 10s, 并把后端状态暴露成 window.__IK_BACKEND / __IK_BACKEND_LOG 供测试直读。 - 截图竞态:4 并发 × 每页 14MB 数据时,虚拟时间预算会在页面加载完成前到期, 拍到半初始化画面(且能"稳定地坏",旧基线里 m9_motion 就是这么混进来的)。 并发降到 2、预算 40s、serve 加 HTTP/1.1+大缓冲+字节缓存,并用"同一构建两轮" 重新界定稳定性:99 张逐字节一致、6 张属噪声改走像素容差(mean<=0.02、单像素<=32)。 - 关卡自身两处假通过已修:node 输出被 GBK 解码炸掉时不再算 PASS; 线束干涉测试读不到通道源码时会 exit 2,而不是"零通道=零穿透=通过"。 关卡结果:python -m arm.build_model 退出码 0;10 项数据哈希与基线一致; IK exact 段逐字节一致;99 张截图逐字节一致 + 6 张在噪声阈内;线束干涉测试 1800 点 0 穿透。
100 lines
6.1 KiB
Plaintext
100 lines
6.1 KiB
Plaintext
af5c9d74bddf7d795bd38f4371fa61ec docs/shots/01_iso.png
|
|
c315879cfd09f35efa4ca4ecc1564b65 docs/shots/02_front.png
|
|
b3157f4453cf96b930f065e134a2d18b docs/shots/03_side.png
|
|
068fc4bc3eec481ff7d7b1d4da2aad88 docs/shots/04_top.png
|
|
fbb95ea7a9229195d80c6f487021ae2b docs/shots/05_exploded.png
|
|
cbea750a1b52c5e8d061a9e3f4c981fe docs/shots/06_wrist.png
|
|
bb3dc393e4cd8f2c399c343aba0b3d35 docs/shots/07_joint.png
|
|
72e86ae7743ff7416e247d19556dc657 docs/shots/08_pose.png
|
|
af5c9d74bddf7d795bd38f4371fa61ec docs/shots/09_sheet.png
|
|
af5c9d74bddf7d795bd38f4371fa61ec docs/shots/10_solid.png
|
|
8daa2255af050a225609cebbc490d3b9 docs/shots/11_tool_flange.png
|
|
002a1f4a2b65744515f5b54364fcc2a8 docs/shots/12_elbow_flare.png
|
|
b2f1454a6009a8b44ddd41be9efdaff5 docs/shots/13_forearm_side.png
|
|
e39999d2ef28536f24d7f6178fa9a15c docs/shots/bay_p04_inside.png
|
|
959e4bf08e174d90a1fe03a75a042070 docs/shots/bay_p06_inside.png
|
|
f9d8d58365b4ca693525af5540d39d32 docs/shots/bay_p07_inside.png
|
|
1b07f37e5fed9d82886b9518a3839860 docs/shots/bay_p08_inside.png
|
|
90b79bb61cacea2323ca19790d4158b2 docs/shots/boss_p04.png
|
|
dcc54259caf06f796e3dec84496abb12 docs/shots/boss_p05.png
|
|
9f2c134297f2c7a555a6eaca2e74e4de docs/shots/boss_p06.png
|
|
af5c9d74bddf7d795bd38f4371fa61ec docs/shots/harness_full_iso.png
|
|
8896124b0c45d9796e983f026134cff6 docs/shots/harness_overview.png
|
|
7cbf2c699501bff3c7ebb4beb7cd34e2 docs/shots/harness_p04_p05.png
|
|
687e2184dd3e149939ce6d4214ffc698 docs/shots/harness_p06_window.png
|
|
9fca41ada43f36a338cce31797152c3c docs/shots/harness_p07_window.png
|
|
84fb87bb5ce6cef73866401642ab0f9d docs/shots/harness_xray_full.png
|
|
7fe0cb0d52c1f7d97bf1c8fd47b22e0c docs/shots/hollow_p04_iso.png
|
|
c55a40d4bc4b4e73a672326fa02d573c docs/shots/hollow_p04_top.png
|
|
8379d580ff746c859587e29e34700d7c docs/shots/hollow_p06_iso.png
|
|
1464e622ec8090b6052ab82f7bcd6b22 docs/shots/hollow_p07_iso.png
|
|
f3b85ea576a6aa99a61953c4ff2a5ff4 docs/shots/hollow_p07_top.png
|
|
e169359e86a61f7ab80d4adea0231436 docs/shots/j3_前端压盖_全件.png
|
|
83325d3ca1b9e56fd2c70661052fd063 docs/shots/j3_前端压盖_装配.png
|
|
30ab6da268de109cd087b93b8b175cf9 docs/shots/m1_sheet_front.png
|
|
45050caba87c801ab0c29ac939e51e43 docs/shots/m2_sheet_joint.png
|
|
2b1950dda519fac21d5e71d4a9c1f990 docs/shots/m4_sheet_side.png
|
|
86098e0fada6f54d9ea3d285b3e0ed6e docs/shots/m5_guide_step1.png
|
|
8366cefeca8b935f9fef31bfd2454047 docs/shots/m6_guide_step5.png
|
|
40f4663eef6aa61f36e47e1fb1b1ab07 docs/shots/m7_sheet_blueprint.png
|
|
2702f107e6152f05a5016b916f38cb89 docs/shots/m8_sheet_dark.png
|
|
a6375fdce42c33395cad1586c9d6d8c5 docs/shots/m9_motion.png
|
|
c22cef65ca2a74b1332ecaba6b9a484a docs/shots/p03_light_iso.png
|
|
ebdeb9a180e95afd38f5a42d12743579 docs/shots/p03_light_join.png
|
|
5671bcc5a150d4899d186abd3658ef99 docs/shots/p03_light_rear.png
|
|
2a9e076fa310b0c78b1a0e8375e8aae8 docs/shots/p03_light_side.png
|
|
0aa155c87743426668114d876478582c docs/shots/p03_light_xray.png
|
|
d0c82d07ab6055c1b67c03c126fe267a docs/shots/p03_mount_iso.png
|
|
78f62639acb79e30fa88cc5fda87cfea docs/shots/p03_mount_top.png
|
|
ae0305c092707e0c73944e1d889d076a docs/shots/p04_both_ends.png
|
|
f241acda8fdae460eb38f5a054e841f9 docs/shots/p04_m2_side.png
|
|
3d261042388c8b2924848d8a29f71931 docs/shots/p05_flank_view.png
|
|
515b204e42d75d98afe0600f8b8b419d docs/shots/p05_m3_side.png
|
|
4c6014a754e233411f6e89e4112d6cde docs/shots/p06_m4_side.png
|
|
aa3cb2e1e7bff6e3ca4af66bd6c70854 docs/shots/p07_m5_side.png
|
|
7635f1d057b06f014c1683261a7237b8 docs/shots/shot_p08_user.png
|
|
f1e5bd79e6921b39d0785e4208ef5cca docs/shots/svg_exploded.png
|
|
eadcf7d6ac9853950496a559dbd8de72 docs/shots/svg_joint.png
|
|
4a9a34e534496cb2c3be499ea2029d87 docs/shots/svg_side.png
|
|
d3bf901601ff221ecd1b09dc93dd2ccc docs/shots/tie_after_close.png
|
|
7c2be3a8488997de588e3760f966fd7d docs/shots/tie_after_negY.png
|
|
0b3e26c6e2fd664f91764d26b8b1ed0c docs/shots/tie_after_oblique.png
|
|
c39cee9deabedb4dc8fad8ec76b439e5 docs/shots/tie_after_p0607.png
|
|
b51a4e5424297c9012cc0562bbeec296 docs/shots/tie_after_p0607_obl.png
|
|
70772a99b8c5d81619127eed7bc1dab5 docs/shots/tie_probe_negY.png
|
|
a3bf9bd7fb796283bbb9767cc790167a docs/shots/tie_probe_posY.png
|
|
1e1d29129833b35e43b925b25eae4b8f docs/shots/user_circle_check.png
|
|
309cc9ac3238e747104e6ceee7bd68bc docs/shots/user_compare_view.png
|
|
d25a25539d00674d608dca7234e331e0 docs/shots/user_contour_harness.png
|
|
3ed51a9cbad23f7c9c7eb79ac5471eb1 docs/shots/user_elbow_front.png
|
|
85d13ea862263aa055924df2beca98fb docs/shots/user_elbow_rear.png
|
|
6e1c039c236d28a4bec7e7b589fb2ed3 docs/shots/user_exact_view.png
|
|
6a86499dd36b2a0a1ac50ae28ea138e4 docs/shots/user_fork_fixed.png
|
|
1389d052730b4bb09eb0a17cf9c49354 docs/shots/user_harness_view.png
|
|
eebfbfbea1375770fbc333f83f64e959 docs/shots/user_harness_zoom.png
|
|
d3234ff06df60213391dab75589d65ab docs/shots/user_m1_bypass_oblique.png
|
|
99188cb1c040a2c6494322a9845ac6cb docs/shots/user_m1_exact.png
|
|
606e209a6d3dc64ee3a59d1fc22339f3 docs/shots/user_m1_rear.png
|
|
d34d5d15434bc5a980e34e5511cc49a4 docs/shots/user_p04.png
|
|
51d318f3584444ea78f2078d9ef3eddd docs/shots/user_p04_bottom.png
|
|
b31cd81ca26198896378bc38c4393b9d docs/shots/user_p04_bottom2.png
|
|
6ea6b98ad978b993868bd302ad1dd8c6 docs/shots/user_p04_opp.png
|
|
2c7f53c7bed7d25175948f09960ed634 docs/shots/user_p04_side.png
|
|
fe0b30e16a673beb200224a0e6607faa docs/shots/user_p06_iso.png
|
|
729025864df7708c900e110ec175f0da docs/shots/user_p06_xz.png
|
|
095da56acdc9b512709786df26691481 docs/shots/user_p06_yz.png
|
|
152eb1db302b62238f3051b1f48fcf45 docs/shots/user_p07_check.png
|
|
abf7113f27b6443541e3a0859d77b3fe docs/shots/user_p07_creases.png
|
|
a17303b12669be77a97dc18f2463c809 docs/shots/user_p07_wrist.png
|
|
a60f07bb05bba7a58bdd29e5202c478f docs/shots/user_shoulder_solid.png
|
|
86aab5a8eb32216b4f712c730cc67068 docs/shots/user_shoulder_top.png
|
|
a60f07bb05bba7a58bdd29e5202c478f docs/shots/user_shoulder_xray.png
|
|
02cfa0aa5681fec061f73b9d69fef41c docs/shots/user_smooth_harness.png
|
|
87a8889ba4031cdf2e378fca7e1b475c docs/shots/user_target.png
|
|
22f62024f51ee1827f662d8754019f57 docs/shots/user_view1.png
|
|
e96c715833f9321b9fd1501bc4bdf87a docs/shots/user_view2.png
|
|
64a199b2c65e7f2d0ad5e2a80c5caef8 docs/shots/view_iso_forearm.png
|
|
1d8277f0b43938423f2ca53b34df0c56 docs/shots/view_yz_neg_x.png
|
|
d51cde4a5e2450c529d1c8897e16cf29 docs/shots/view_yz_pos_x.png
|
|
d1719a9f6fb775fd63cef27c5ff17f54 docs/shots/zoom_user.png
|