单文件约束取消后,Python 侧没必要再靠 16 处 sys.path.insert 维持扁平模块互认。
现在按职责分包:
arm/paths.py 路径唯一来源(含新增 CACHE、TPL)
arm/constants.py 实测接口数值(原 armcore 的 M/C/CLR/FIT/MOTOR_TOL 段)
arm/cad/{helpers,arm_build,part_tools,parts/} 几何与装配
arm/kinematics.py(原 human_layout.py,唯一运动学事实源)
arm/analysis/{sweep_v2,strength_check,torque_balance,finalize_travel,ws_sweep,gen_env_mesh}
arm/dataio/{screw_mesh,draw_sheet} arm/viewer/{build_viewer,shot}
arm/build_model.py(原 arm_model.py)
顺带修掉的既有缺陷(都是实测撞出来的,不是预防性改动):
- arm_model 第二次 sys.path 跳到 gitignore 的 scratch/ 去 import 构建必需的包络脚本:
ws_sweep/gen_env_mesh 提升进 arm/analysis/,缓存挪到 data/cache/(gitignore,可重生成)。
- finalize_travel / draw_sheet 顶层就是"算完写文件",一次 importlib 冒烟测试就把
docs/travel.json 重写了一遍;现在被 import 直接抛错。
- strength_check 用 OUT.replace("/out","/web") 靠字符串形状推路径,改成直接用 WEB。
- build_viewer 里 WORKSPACE 使用点漏改导致 NameError —— 已由构建关卡抓到并修掉。
os._exit 的处置与计划里的假设相反:实测光是 `python -c "import arm.cad.helpers"`
就会在解释器退出时段错误(exit 139,OCC 静态析构),全流程跑完也一样。所以入口
脚本尾部保留 flush + os._exit,并把原因写进注释;被 import 时不生效。
关卡(tests/):
- verify.py 一条命令跑三层:产物 md5、IK 数值 exact 段、截图。
- 截图基线重做并分级:同一构建连跑两轮实测 102 张逐字节可复现(要求 md5 相同),
3 张线束 x-ray 不可复现(mean<=0.0017、无像素差>8)改为与参考像素比容差;
这 3 张不再入库,免得每次跑关卡都脏 git。
- 新增 ?view=sheet / ?sheet=N / ?theme / ?guide=N 四个 URL 参数:工程图与装配向导
占了约一半 CSS 和 700 行 JS,原先没有任何截图覆盖,拆它们等于没有关卡。
- 关卡灵敏度已验:改坏 IK 基线一个数 -> FAIL;换旧版求解器 -> 5 处 exact 差异。
实测:python -m arm.build_model 退出码 0,全部产物 md5 与基线一致,
105 视图截图全过,IK exact 段逐字节一致。
38 lines
1.0 KiB
Plaintext
38 lines
1.0 KiB
Plaintext
# Python
|
||
__pycache__/
|
||
*.pyc
|
||
|
||
# 构建产物(可用 src/ 下的脚本重新生成)
|
||
out/
|
||
|
||
# 临时调试脚本与截图
|
||
scratch/
|
||
|
||
# 单文件查看器优化前的完整备份(带版本标识,勿随手删)
|
||
backups/
|
||
|
||
# 重构前的源码快照与脚本自动备份(git 历史里已有旧版本,不重复入库)
|
||
.bak/
|
||
*.bak_*
|
||
|
||
# 编辑器 / 系统文件
|
||
Thumbs.db
|
||
Desktop.ini
|
||
|
||
# 构建产物:由 python -m arm.* 重新生成,体积大(mesh 14MB + 单文件查看器 16MB×3),
|
||
# 过去被跟踪导致仓库背着 47MB 生成物;取消跟踪后重建不再脏 git status。
|
||
web/mesh_arm.json
|
||
web/sheets.jsdata
|
||
web/index.html
|
||
web/机器人手臂3D查看器.html
|
||
/机器人手臂3D查看器.html
|
||
webapp/data/
|
||
dist/
|
||
data/cache/
|
||
|
||
# 这 3 张线束 x-ray 截图在同一份构建下就不逐字节复现(抗锯齿噪声),
|
||
# 每次跑关卡都会改写它们;参考像素已存进 tests/baselines/flaky/,不再入库。
|
||
docs/shots/harness_p04_p05_xray.png
|
||
docs/shots/harness_p07_xray.png
|
||
docs/shots/harness_xray_internal.png
|