R2:底板 / 刀片布局布线脚本、快照、截图与规划文档更新(含外壳、打印件、布线归档)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
这个提交包含在:
@@ -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()
|
||||
在新工单中引用
屏蔽一个用户