文件
phonerail/.claude/_upd_strap_pos.py
T

30 行
1.1 KiB
Python

# -*- coding: utf-8 -*-
u"""把 pcb2_strap_place.py 搜出来的坐标写回 pcb2_place.GLOBAL(一次性工具)。"""
import io
import json
import os
import re
import sys
HERE = os.path.dirname(os.path.abspath(__file__))
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
MAP = {'R906': ('15', 'PRT_SWP7'), 'R905': ('17', 'PRT_SWP6'), 'R904': ('31', 'PRT_SWP5'),
'R903': ('33', 'PRT_SWP4'), 'R909': ('34', 'GANG_EN'), 'R902': ('47', 'PRT_SWP3'),
'R908': ('48', 'BOOST1'), 'R901': ('49', 'PRT_SWP2'), 'R907': ('50', 'BOOST0'),
'R900': ('51', 'PRT_SWP1')}
p = os.path.join(HERE, 'pcb2_place.py')
s = io.open(p, encoding='utf-8').read()
d = json.load(io.open(os.path.join(HERE, '_pcb2_strap_place.json'), encoding='utf-8'))
n = 0
for des, (pin, fn) in MAP.items():
cx, cy, rot, r = d[des][:4]
new = u" '%s': (%.3f, %.3f, %d), # U32.%s %s,离脚 %.1f mm" % (des, cx, cy, rot, pin, fn, r)
pat = re.compile(u"^ '" + des + u"': \\([^\\n]*$", re.M)
s, k = pat.subn(lambda m: new, s)
assert k == 1, des
n += k
io.open(p, 'w', encoding='utf-8').write(s)
print(u'更新 %d 条坐标' % n)