# -*- 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)