R2:底板 / 刀片布局布线脚本、快照、截图与规划文档更新(含外壳、打印件、布线归档)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
这个提交包含在:
zhou yang
2026-10-04 19:24:45 +08:00
共同撰写人 Claude Opus 5.5
父节点 cd01640c40
当前提交 cf7cc9cf90
共修改 759 个文件,包含 76962 行新增和 5299 行删除
+32
查看文件
@@ -0,0 +1,32 @@
# -*- coding: utf-8 -*-
u"""服务器上算 GND 缝合孔位(2026-09-11 混合布线收尾):pour_base.stitch_points 默认读 _base_routes.json(脚本布线缓存),
板上现在是「预布 + EasyEDA 自动布线 + 手改」,所以把它的 routes() 换成板上快照再算。本机只拿结果下发。
DCDC_ROUTE_SERVER=1 /root/pypy/bin/pypy3 .claude/r2/stitch_srv.py # 读 _board_for_stitch.json,写 _stitch_pts.json
"""
import io
import json
import os
import sys
if os.environ.get('DCDC_ROUTE_SERVER') != '1':
sys.exit(u'!! 孔位搜索只在服务器上跑(DCDC_ROUTE_SERVER=1),见 CLAUDE.md')
HERE = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, os.path.dirname(HERE))
sys.path.insert(0, HERE)
import pour_base as PB # noqa: E402
def main():
b = json.load(io.open(os.path.join(HERE, '_board_for_stitch.json'), encoding='utf-8'))
pre = json.load(io.open(os.path.join(HERE, '_base_preroute_0911b.json'), encoding='utf-8'))
segs = [s[:7] for s in b['segs'] if s[0] in (1, 2, 15, 16)]
vias = [v[:3] for v in b['vias']]
PB._ROUTES[0] = (segs, vias, pre.get('v12_patch'))
pts = PB.stitch_points(PB.plan())
io.open(os.path.join(HERE, '_stitch_pts.json'), 'w', encoding='utf-8').write(json.dumps(pts))
print(u'缝合孔 %d 个(板上快照:%d 段 / %d 孔)' % (len(pts), len(segs), len(vias)))
if __name__ == '__main__':
main()